Здравствуйте.
Пытаюсь загрузисться с SD карты. Пробовал оба слота. Тот что около проца хотя бы определяется юбутом. Но на команду fatload mmc 0 0x81000000 uImage говорит
** Unable to use mmc 0:1 for fatload **
Пробовал и с разомкнутым J6, и с замкнутым. При этом MLO и u-boot.bin с флешки грузятся, а fatload грузить ядро отказывается.
Подозреваю что дело в u-boot. Но у меня какие-то проблемы с закачкой по ftp, и я не могу вытащить 3 гига виртуальной машины. Но судя по всему мне из неё нужен только u-boot_sd.bin (в скриптах именно он упоминается). Можно ли положить этот файт отдельно, или дайте инструкцию как собрать его из исходников, их я скачал.
Попытался собрать. Делал так:
make distclean
make ti8148_evm_min_sd
make -j 5u-boot.ti
Получил вот это:
arch/arm/lib/libarm.a(board.o): In function `start_armboot':
board.c:(.text+0x1a0): undefined reference to `mmc_initialize'
arch/arm/lib/libarm.a(board.o):(.data+0x8): undefined reference to `env_init'
arch/arm/lib/libarm.a(board.o):(.data+0x10): undefined reference to `serial_init'
common/libcommon.a(cmd_load.o): In function `do_load_serial_bin':
cmd_load.c:(.text+0x5e8): undefined reference to `serial_setbrg'
cmd_load.c:(.text+0x930): undefined reference to `serial_setbrg'
common/libcommon.a(cmd_nvedit.o): In function `_do_setenv':
cmd_nvedit.c:(.text+0x340): undefined reference to `serial_setbrg'
common/libcommon.a(console.o): In function `puts':
console.c:(.text+0x358): undefined reference to `serial_puts'
common/libcommon.a(console.o): In function `serial_printf':
console.c:(.text+0x3f4): undefined reference to `serial_puts'
common/libcommon.a(console.o): In function `putc':
console.c:(.text+0x420): undefined reference to `serial_putc'
common/libcommon.a(console.o): In function `tstc':
console.c:(.text+0x438): undefined reference to `serial_tstc'
common/libcommon.a(console.o): In function `getc':
console.c:(.text+0x450): undefined reference to `serial_getc'
common/libcommon.a(env_common.o): In function `env_get_char':
env_common.c:(.text+0x5c): undefined reference to `env_get_char_spec'
common/libcommon.a(env_common.o): In function `env_crc_update':
env_common.c:(.text+0x94): undefined reference to `env_ptr'
common/libcommon.a(env_common.o): In function `set_default_env':
env_common.c:(.text+0xd4): undefined reference to `env_ptr'
common/libcommon.a(env_common.o): In function `env_relocate':
env_common.c:(.text+0x10c): undefined reference to `env_relocate_spec'
env_common.c:(.text+0x124): undefined reference to `env_ptr'
common/libcommon.a(stdio.o): In function `stdio_init':
stdio.c:(.text+0x110): undefined reference to `serial_putc'
stdio.c:(.text+0x114): undefined reference to `serial_puts'
stdio.c:(.text+0x118): undefined reference to `serial_getc'
stdio.c:(.text+0x11c): undefined reference to `serial_tstc'
board/ti/ti8148/libti8148.a(evm.o): In function `board_mmc_init':
evm.c:(.text+0x3b8): undefined reference to `omap_mmc_init'
make: *** [u-boot] Ошибка 1
Причем тут виртуальная машина ? Для сборки u-boot подойдет любой дистрибутив Linux. Все что вам нужно - это прописать путь к кросскомпилятору в переменную окружения PATH
Причем тут виртуальная машина ? Для сборки u-boot подойдет любой дистрибутив Linux
В целом ни причём. Но последние команды скрипта привязаны к конкретным путям виртуальной машины, соответственно у меня не отработают. по сути я скрипт и выполнил, только без последних команд для копирования. Результат выше.
В результате даже образовались файлы MLO, MLO.NAND и u-boot.bin Ложу MLO и u-boot.bin на флешку, u-boot загружается, fatload не работает.
Какой тогда смысл от загрузки с флешки?
Есть момент, который я забыл опубликовать ...
С fatload в текущем u-boot действительно есть какие то "тараканы", во всяком случае с командной строки у меня тоже не работало, работало только при вбитых в убут аргумениах загрузки.
По замыслу TI, убут берет с карты скрипт (название не поню, нужно в конфиге смотреть) и запускает его, а в случае его отсутствия идет по аргументам загрузки ...