Скорее всего так, но loader.bin все-таки MMU отключает:
ROM:0000029C MOV R1, #0
ROM:000002A0 MCR p15, 0, R1,c1,c0
Надо декодировать конфигурацию MUX и используемые GPIO
(муторное занятие).
2 MB (CS2) → 0x8000000 это до 0x8200000.
loader.bin ссылается на адреса от 0x8002260 до 0x80A0C3C, т.е.
первый мегабайт. Хотя непонятно, куда updater.exe
поместит сам loader.bin (73K)
Начало fw_all.bin похоже по структуре на loader.bin ,
но есть статические ссылки на 0x0c000000 (CS3) сегмент,
а указатель стека уже не вверху первого, а второго мегабайта:
334: e59fd118 ldr sp, [pc, #280] ; 0x454 --> 0x081ec3f0
338: e28f0001 add r0, pc, #1 ; 0x1
33c: e12fff10 bx r0
Так что можно предположить, что NOR находится здесь: 0x0c000000+16MB
Есть и еще один особый адрес: 0x0c020000
6a8: e3a006c0 mov r0, #201326592 ; 0xc000000
6ac: e1a0f000 mov pc, r0
...
708: e59f0000 ldr r0, [pc, #0] ; 0x710 --> 0x0c020000
70c: e1a0f000 mov pc, r0
так же как и начало SRAM
6c8: e3a00680 mov r0, #134217728 ; 0x8000000
6cc: e1a0f000 mov pc, r0
OMAP вообще-то умеет грузиться из CS3 напрямую, но как это все сделано в гармине неясно.
Размер экрана 160x240 (может и наоборот, хотя врядли), но EOL прочитает
это из конфигурационных регистров LCDC.
LCD панель на 60/76Cx 8-битная (?), EOL предполагает только 16бит, надо править.
Вот пока такие мысли.