Завожу кит на контроллере at91sam9x25 256mb ram, за основу беру существующую борду at91sam9x5ek с 128мб ram. Но есть непонимание в существующих конфигах бутстрапа и юбута.
конфиг бутстрапа:
CONFIG_RAM_128MB=y
CONFIG_IMG_SIZE="0x00080000" <- размер юбута
CONFIG_JUMP_ADDR="0x26F00000" <- адрес куда будет скопирован юбут
Размер рам памяти на существующих бордах 9x5ek - 128мб, из приведённого конфига выше видим что юбут пишется в адрес 6F00000 тоесть в 111-ый мегобайт, а всего памяти 128 мб - отсюда первый вопрос:
1. Почему именно в 111-ый мегобайт неужели юбуту требуется 17мб оперативы? (всего 128 -111 = 17мб). Размер юбута всего 0x80000 байт. Кректно ли так писать или всёже можно сдвинуть ближе к концу памяти, и насколько ?
2. CONFIG_RAM_128MB - эту переменную в исходниках не нахожу где она может фигурировать. Насколько я понимаю бутстрапу всёравно на объм памяти, важно только адрес куда копировать следующий бутлоадер или систему, следоватьльно CONFIG_RAM_128MB - в бутстрапе не начто не влияет. Корректно ли это?
Далее про юбут:
В юбуте есть утилита mtest (кторую мне придётся юзать) для проверки оперативы, эта утилита пишет патерны в пямять и их читает. Начинает она с базового абреса куда замаплена ram память ( 0x20000000 ) до заданного адреса в конфигах:
CONFIG_SYS_MEMTEST_END 0x26e00000
Как я уже говорил выше - бутстрап пишет юбут в адресс 6F00000, тоесть до этого адреса мы с оперативной памятью можем делать что угодно.
3, Но почему тогда mtest не проверяет именно да юбута? Тоесть 6F00000 - 6e00000 = 1mb - до конечного адреса проверки. Не коректней ли будет выставить SYS_MEMTEST_END в 0x26f00000 тем самым будем проверять всю память до юбута.
Cкорей всего там ещё видеобуффер храниться для LCD. В этом мегабайте...
Про второе да бутстрапу пофиг...
При разном размере памяти только разная инициализация DDR контроллера... По количеству cas\ras банков памяти, если я не ошибаюсь...