В рамках борьбы со склерозом решил составить "карту" nand-flash памяти модуля IMX53-OEM. Прошу знатоков взглянуть и указать на ошибки.
Вроде бы всё перепроверил, но есть сомнения. Например, почему ядру для обычного режима работы ("kernel" на рисунке) выделено меньше памяти, чем ядру для безопасной загрузки ("safe_kernel")? И для чего нужен блок памяти размером 128 КБ по смещению 01FE00?
Честно говоря я так и не понял смысл safe kernel ;-) но скорей всего там ядро с корневой в initramfs собранное, а адреса вы эти все можете увидеть набрав
EVK U-Boot > printenv
в консоли убута и посмотрев помощь по командам
EVK U-Boot > help nand
Собственно если загрузчик жив (u-boot на вашей схеме) - вы всегда можете подгрузить ядро с любого внешнего носителя или по tftp, а если он мертв то уже никакой safe kernel не поможет и восстановление только из MFG через USB. Разве что все это для того чтобы непротиворечиво описать процесс восстановления в руководстве что конечно очень важно - на первых порах всем и всегда трудно вникнуть.
Ну, во время разработки safe kernel может быть не часто нужен, но в конечном продукте может пригодиться.
Всё так. На начальном этапе тяжело складывать всю информацию в единую картину. Вот и я не могу спать спокойно, пока не пойму назначение этого блока памяти, обозначенного на рисунке "?". Для чего он нужен? Почему он "откушен" именно от блока памяти, в котором хранится основное ядро системы? Или в моей схеме ошибка?
Да низачем он не нужен - спите спокойно :) Переменные окружения u-boot (это место куда они сохраняются при изменении в рантайме - не путайте со встроенными которые заданы на этапе компиляции через конфиг) лежат по адресу 0х 200 000, все остальное неважно - просто кто-то просчитался и осталась "дырка". Может из-за какой-то "фобии" оставлен промежуток между концом сегмента с ядром и началом сегмента с корневой ФС. Меня бы на вашем месте больше заинтересовало - зачем под убут резервировать 16M :)
В общем да, но был один нюанс со старой версией убута - его с трудом можно было заставить нормально работать с NAND, после этого уже давно все пришло в норму но "кроить" заново уже поздно.
"Дырка" планировалась для переменных окружения (в моем сознании), а реально они размещены в другом месте, можете просто не обращать внимание или увеличить область для ядра.