Вы не поняли вопрос. (Я наверное некоректно поставил его)
На плате уже есть U-boot, для отладки другой версии мы ее запускаем в память. Вопрос был в том, где менять TEXT_BASE в том что уже прошит на плату, или втом который мы отлаживаем?
а-а-а.. разумеется в сорцах той версии, которую хочется запустить из под штатного..
т.е. на плате уже есть юбут, который умеет по сетке грузить в РАМ. берем или его же сорцы (желательно сделать копию) или новые, правим тот файл, компилируем и tftpboot тот бинарник в РАМ
прошитый юбут выступает в роли загрузочного инструмента
Diclaimer (отмазка) - все что изложено ниже может использоваться по своему усмотрению
на свой страх и риск. Автор ни несет никакой ответственности ни за что, включая упущенную
выгоду от чего-либо. Лопата! :)
*********************************************************************
отталкивался отсюда - раздел U-boot линк
---------------------------------------------------------------------
распаковал тулчейн arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
в /usr/local/arm/newarm
---------------------------------------------------------------------
распаковал исходники u-boot-1.3.4
наложил патч u-boot-1.3.4-exp.3.diff
в Makefile около 144 строки поменять имя тулчейна
создал скрипт сборки в корне u-boot-1.3.4/make_new с содержимым
в файле u-boot-1.3.4/common/main.c
замена в строке 51
выполнить ./make_new
после этого происходит успешная сборка и генерится бинарник
u-boot.bin размером 156952 (размер может менятся)
=====================================================================
внедряю поддержку sd/mmc
в файле /board/atmel/at91sam9260ek/at91sam9260ek.c
например между инитом сериал и нанда вписывается функция
ниже в функции board_init() добавил
---------------------------------------------------------------------
скопировал файл cp include/asm-avr32/arch-at32ap700x/mmc.h include/asm-arm/arch-at91sam9/
---------------------------------------------------------------------
в файле /include/configs/at91sam9260ek.h
поменял (часть настроек взял у Павла)
дописал
отключил
самый "неприятный" момент править тут:
---------------------------------------------------------------------
в файле include/asm-arm/arch-at91sam9/memory-map.h
дописал
---------------------------------------------------------------------
в файле include/asm-arm/arch-at91sam9/clk.h
дописал
---------------------------------------------------------------------
в файле include/asm-arm/arch-at91sam9/hardware.h
после строки
дописал
---------------------------------------------------------------------
в файле drivers/mmc/atmel_mci.c
в строку 510 вписывается "костыль"
---------------------------------------------------------------------
в файле cpu/arm926ejs/at91sam9/ether.c
было
стало
---------------------------------------------------------------------
выполнить
./make_new
после этого происходит успешная сборка и генерится бинарник
u-boot.bin размером 174704 (размер может менятся)
=====================================================================
Итоги: все вышеописанное бегло протестировано на плате SK-MAT91SAM9260,
но на борту 64МБ sdram, 256МБ nand
- загрузка по сети - успешна
- загрузка с SD/MMC - успешна (SD256MB, SD2GB)
- загрузка с USB Flash - успешна (Transcend - 256MB, 4GB)
- загрузка с USB IDE - успешна (HDD 40GB)
явные косяки
- загрузка с USB Reader с CompactFlash - timeout
- возможны _любые_ глюки с переменными окружения U-boot
- mmcinit - врет в структуре CSD размер накопителя и прочее
непонятные косяки
- чего-то не хватает для ext2ls mmc 0 - молча глотает (SD размечена в EXT2)
ps1 в теории, мог что-нить пропустить, хотя раза три прогонял все вышеописанное с чистого листа
ps2 diff делать не стал ибо не умею и не хочу уметь :)
ps3 чуть позже выложу готовый бинарник, архив модифицированных файлов, архив всей сборки
ps4 буду рад дельным комментариям, предложениям, замечаниям
хм.. выкладываю обещанные остальные части - ничего с прошлого раза не менял..
сборник модифицированных и созданных файлов (тем, кому лень править исходники) айн ~50KB
полный архив созданный из модифицированного исходника u-boot_1.3.4 цвай ~12MB
напоминаю, что протестировано на Dataflash, 64МБ SDRAM - для 32МБ надо поправить на свой размер памяти в хидере конфига и разумеется пересобрать :)
Саш, ну не люблю я эту глючную систему. Сколько раз пытался всякие патчи пристраивать, каждый раз какая-нить хрень вылезала..
и что, например, вот с этим делать? - тулчейны могут быть разные:
зы ближе к вечеру попробую сплодить патч - дело новое, не особо интересное :)
долго пыхтел, сопел, сплодил вот такую корявскую версию "патча" :)
лежит тут весит 31кб
как ставить:
- кросскомпиллер поставил вышеописанный
- с denx.de взять u-boot-1.3.4 распаковать
- в корень каталога u-boot-1.3.4 распаковать этот патч
- пропатчить cat имя-патча | patch -p1
- установить права на запуск скриптам make_binmake_config - хрен знает как это в патче сделать
- запустить ./make_config
- запустить ./make_bin
- бинарник (у меня 174704b) прошить самбой в датафлеш по адресу 0x8000
вот так примерно должно выглядеть: