b40: S12-wrapper pop restore kills 8B/call leak; uni DDRHI parity; run-sbl b40

This commit is contained in:
SashegDev
2026-09-15 00:58:48 +00:00
parent 521c8e5398
commit 0062e8f8da
4 changed files with 154 additions and 15 deletions
+12
View File
@@ -229,3 +229,15 @@
UARTDM-страница) замаплен в uni как leak-sink (+8M runway).
QEMU не тронут (в гэпе периферия; короткие прогоны не достают).
UART все еще пуст.
## b40: S12-wrapper pop restore (2026-09-14)
- 105M-фолт раскрыт ловушкой записи в текст: push.w на 0x80078DC писал
по sp=0x802F688 (стек в тексте sbl_main), далее fetch по затертым
байтам. Корень: b25 заменил pop r4,pc на bx ip во враппере S12
(0x8007B66), каждый вызов сиротил 8B фрейма (около 58B/Kinsn);
к 105M sp съехал, pop.w с восстановлением sp/pc (0x800EB94) взял
чужой stacked-lr. b40 вернул pop (2B), r0=0 снова по контракту.
- Побочка: ранний clock-путь теперь идет честно (раньше диверт его
пропускал): IMEM-стек, чтение за верхом IMEM. Uni не мапил DDRHI,
QEMU мапит: добавлен паритет (0x08610000, 16M-64K). b40 на 2M чист,
sp живет в DDRHI, unmapped 0. Дефолт run-sbl теперь b40.