Как работает MLO (минимальный загрузчик)?

Я пытаюсь понять, как MLO загружается в микросхему SOC и выполнить минимальную конфигурацию. Я использую TI DM8168 соц.

Я прошел по следующей ссылке, чтобы понять MLO или x-loader:

http://omappedia.org/wiki/Bootloader_Project

Я узнал, что код ПЗУ загружает MLO (x-загрузчик) в оперативную память SoC, которая выполняет минимальную настройку, и, наконец, загружает uboot (универсальный загрузчик), который, наконец, запускает ядро ​​linux.

Здесь я сомневаюсь, что мой объем оперативной памяти составляет 64 КБ, а размер MLO равен 116 КБ, тогда как код ПЗУ загружает MLO во встроенную память.

1 ответ

Похоже, что DM8168 имеет более 64 КБ встроенной оперативной памяти: как объясняется в Руководстве по функциональным возможностям DM816x AM389x PSP 04.00.01.13, он имеет как минимум еще два блока внутренней памяти, ссылающихся на OMC0 и OMC1, каждый из которых имеет размер 256 КБ.

Эти два банка могут использоваться u-boot в соответствии с этим документом:

OCMC0 0x40300000 - 0x4033FFFF OCMC 0 будет использоваться кодом ПЗУ и U-boot. После загрузки ядра Linux OCMC0 становится свободным, и ядро ​​может его использовать. Если OCMC0 не должен использоваться для загрузки u-boot, если загружен с использованием CCS.

OCMC1 0x40400000 - 0x4043FFFF OCMC 1 будет использоваться кодом ПЗУ и U-boot. После загрузки ядра Linux OCMC0 становится свободным, и ядро ​​может его использовать.

Из u-boot-omap3/board/ti/ti8168/config.mk кажется, что u-boot использует OMC1

TI_LOAD_ADDR = 0x40400000

Это объясняет, почему ваш загрузочный образ 116 КБ может уместиться во внутреннюю память DM8168.

Другие вопросы по тегам