item 4.6: fix Stadium quota-grant ordering; fix aarch64 PSCI SYSTEM_RESET function ID

Artemis's 30-rep surface stress campaign was failing 100% of trials on all
three architectures: stadium_grant_quota() ran after IDENTITY exec in
capsule_birth.c, but Artemis's init.4th auto-runs the stress campaign as
part of that same IDENTITY exec, so every STADIUM-ADMIT call during it hit
a nonexistent quota slot and refused unconditionally. Moved the grant call
before IDENTITY exec. Verified 30/30 reps PASS on amd64, aarch64, and
riscv64 post-fix (was 30/30 FAIL on all three pre-fix).

Also fixed an independent, real bug found during the same acceptance pass:
aarch64's arch_cold_reset() issued PSCI SYSTEM_RESET using the SMC64
calling convention (0xC4000009), which is not a valid PSCI function ID --
SYSTEM_RESET has no SMC64 variant. Corrected to the SMC32 encoding
(0x84000009). This did not resolve the separate aarch64 BYE cold-restart
exception also found in this pass (root cause not yet found, tested and
refuted an interrupt-race hypothesis, documented in FABRIC-2.md Section I
for follow-up) but is a genuine spec fix worth keeping regardless.

Full writeup, evidence, and the still-open aarch64 crash investigation in
FABRIC-2.md Sections H and I.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-18 14:53:18 -04:00
co-authored by Claude Sonnet 5
parent 48ab9945de
commit 8d90538801
29 changed files with 1507970 additions and 164 deletions
+49 -43
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-08-15T13:36:13Z -->
<!-- Generated by mkcapsule --manifest 2026-08-18T18:07:32Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -9,7 +9,7 @@
| Capsule | Blocks claimed | xxHash64 |
|---------|----------------|----------|
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` |
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4851, 4852 | `0xc9e92cd18f4c7b49` |
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852 | `0x2d2c57ec0cb5ec18` |
| `common:msg.4th` | 4055 | `0xa99c5bcd3877f80e` |
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
@@ -122,10 +122,10 @@
| 4107 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4108 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4109 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4110 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4111 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4112 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4113 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4110 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4111 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4112 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4113 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4114 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4115 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4116 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
@@ -134,26 +134,26 @@
| 4119 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4120 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4121 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4122 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4123 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4124 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4125 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4126 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4127 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4128 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4129 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4130 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4131 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4132 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4133 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4134 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4135 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4136 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4137 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4138 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4139 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4140 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4141 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4122 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4123 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4124 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4125 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4126 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4127 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4128 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4129 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4130 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4131 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4132 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4133 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4134 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4135 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4136 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4137 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4138 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4139 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4140 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4141 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4142 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4143 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4144 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
@@ -172,23 +172,29 @@
| 4157 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4158 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4159 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4160 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4161 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4162 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4163 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4164 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4165 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4166 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4167 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4168 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4169 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4170 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4171 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4172 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4173 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4174 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4160 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4161 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4162 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4163 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4164 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4165 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4166 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4167 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4168 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4169 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4170 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4171 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4172 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4173 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4174 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4175 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4176 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
| 4177 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4178 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4179 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4180 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4181 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4182 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
@@ -228,8 +234,8 @@
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4851 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4852 | `artemis:init.4th` | `0xc9e92cd18f4c7b49` | ok |
| 4851 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4852 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
| 4900 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
| 4901 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
| 4902 | `fabric.4th` | `0x9b1d061339cea98d` | ok |