Commit 927fdbf
openarch 0.9.0、两个板级包的 run 档 (#342)
`mcpplibs.openarch@0.9.0` adds an ARMv7-A backend, and with it the answer to a
question the layer's three original machines could not ask. All of them are
64-bit with 64-bit page-table entries, and `pte_encode.h` recorded that as a
fact about every machine there. ARMv7-A's short-descriptor entry is 32 bits.
The value fits in the `arch_u64` the interface carries, so the carrier did not
change; what was missing is a way to ASK for the storage width. A kernel sizing
a table from `sizeof(arch::pte)` builds one twice as large as the hardware
walks, and nothing diagnoses it — the table is well formed, the entries are
correct, and the machine reads the gaps. `arch_pte_entry_bytes()` is the answer
and every backend implements it.
Cortex-M could not settle this: it is a 32-bit machine with an MPU and no page
table, so its pte group exists and refuses. A 32-bit machine WITHOUT paging
leaves the question where it was.
`openarch:preemption` is withheld on armv7a, by the mechanism Cortex-M already
uses to withhold `openarch:address-space`: the resumption address lives on the
SVC stack rather than in a register, so a trap-time switch is well defined only
if the resumed context was suspended the same way, and that is not a design this
backend has measured.
`mcpplibs.riscv-virt-rt@0.7.1` and `mcpplibs.aarch64-virt-rt@0.2.1` move their
emulator onto the `run` tier. The untiered form meant `Always`, so a CI job that
compiled firmware and never ran it downloaded 33-36 MB of emulator for nothing.
The engine has had `when` since 2026.9.4.2 and `cortex-m-rt` adopted it; these
two had not, which left one batch with two spellings.
Audited before submission: 37 versions, 74 URLs fetched and hashed against the
index, every tarball's own manifest checked for identity, version and escaping
path dependencies.
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>1 parent 73037e7 commit 927fdbf
3 files changed
Lines changed: 63 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
59 | 66 | | |
60 | 67 | | |
61 | 68 | | |
| |||
80 | 87 | | |
81 | 88 | | |
82 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
83 | 97 | | |
84 | 98 | | |
85 | 99 | | |
| |||
104 | 118 | | |
105 | 119 | | |
106 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
107 | 128 | | |
108 | 129 | | |
109 | 130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
59 | 66 | | |
60 | 67 | | |
61 | 68 | | |
| |||
128 | 135 | | |
129 | 136 | | |
130 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
131 | 145 | | |
132 | 146 | | |
133 | 147 | | |
| |||
200 | 214 | | |
201 | 215 | | |
202 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
203 | 224 | | |
204 | 225 | | |
205 | 226 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
135 | 142 | | |
136 | 143 | | |
137 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
138 | 152 | | |
139 | 153 | | |
140 | 154 | | |
| |||
208 | 222 | | |
209 | 223 | | |
210 | 224 | | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
211 | 232 | | |
212 | 233 | | |
213 | 234 | | |
| |||
0 commit comments