b24: world-switch stub + clock S11
This commit is contained in:
@@ -91,3 +91,15 @@
|
||||
- b23: 2M инстр. без падений (sp здоров), sbl_main идёт дальше
|
||||
(`0x80164C4`-subtree → прыжок в OCIMEM-нули `0x222F84` — фронт PBL-данных).
|
||||
QEMU-паритет: R15=0x223000, sp=0x85FFF00, lr=0x80164CB — там же.
|
||||
|
||||
## b24: world-switch stub, clock S11 (2026-09-12)
|
||||
- Диспетчер (`0x80164C4`-subtree) зовёт ARM jump-table `0x8007158`
|
||||
(`ldr pc`), та — в OCIMEM-трамплин world-switch `0x221EF8`
|
||||
(ARM: save regs, `cps MON`, `mrc`, `ldr sp/pc` из PBL-таблиц
|
||||
`[0x221F6C]=0x223620`/`[0x221F70]=0x223930` → вызов TZ; TZ не загружен).
|
||||
Вход получается в Thumb → b24-стаб (4B `movs r0,#0; bx lr`):
|
||||
возврат 0 в диспетчер (TZ deferred). Перезаписывает голову ARM'а
|
||||
(восстановимо из ELF).
|
||||
- Дальше: clock-fn `0x800E960` (udiv-подсчёты) с голым выходом
|
||||
`pop{r4,pc}` (без push, tail-chain через NOP-идиому) → S11 (b24):
|
||||
вход → `bx lr` (lr = брошенный-но-валидный `0x80076CD`).
|
||||
|
||||
Reference in New Issue
Block a user