docs: b41 desert retarget, b42 hang+revert, b43 PBL contract

This commit is contained in:
SashegDev
2026-09-15 08:05:59 +00:00
parent 432e84bc95
commit e3f476ccb7
+18
View File
@@ -241,3 +241,21 @@
пропускал): IMEM-стек, чтение за верхом IMEM. Uni не мапил DDRHI,
QEMU мапит: добавлен паритет (0x08610000, 16M-64K). b40 на 2M чист,
sp живет в DDRHI, unmapped 0. Дефолт run-sbl теперь b40.
## b41: desert retarget EB90->EB0A (2026-09-14)
- Вызов пустыни шел в середину функции (мимо push.w 48B пролога),
эпилог pop.w снимал чужое (+48B), S20-rerun возвращал в середину:
ловушка +100B/Kinsn. b41 зовет пролог, фрейм балансируется,
пустыня возвращается к вызывающему. sbl_main дошел до 0x802F652
(SMEM write), пошли фазы строк SBL1, lr в sbl_main.
- Creep остался (~320B/K, равномерный): --sphist показал хвост
враппера S12 (+8B x27/K) и дерево mid-pop. QEMU b41 чист 120с.
## b42/b43: frameless откачен (2026-09-14)
- b42 убрал push+pop враппера: creep исчез в ноль на 2M, но хвост
bx lr зациклился сам на себя (lr=0x8007B65): push хранит возврат
вызывающего, убирать нельзя. Откат.
- PBL-контракт вместо этого: S12-keep (валидный pushed lr) идет
в хвост (парный pop, баланс), S12-default (мусор) дивертит в
poll-resumption без визита в хвост (блоб 100->132B, uni+QEMU).
Диагностика: --sphist (дельты sp по pc), --tpop (куда уходит pop).