Всем привет,
разбираюсь с портированием бутлоадера u-boot и Линукса на ARM-платформу. Сейчас дошел до стадии определения memory map -- я так понимаю, при этом должен учитываться стартовый адрес Линукса, т.е. то что в $(LINUX)/arch/arm/mach-<board>/Makefile.boot (если говорить о 2.6.x ядре).
Непонятно, как располагаются в памяти образы u-boot, линукса, initrd (если есть), т.е. в какой последовательности и пр. -- загрузчик копирует себя всегда в верхние адреса памяти, а потом за ним располагается Линукс? Ведь ядро ожидает получить от загрузчика ряд параметров (для ARM-архитектур это ATAG-структуры), как я понимаю, по определенному адресу - так вот как этот адрес определяется, по по каким правилам/критериям. Эти адреса для каждой платформы, очевидно, свои и
выставляются в коде исходя из карты памяти, указанной в даташите?
Был бы признателен за просвещение по этому вопросу :-)