Вроде как есть возможность mmc read addr blk# cnt
Пробую...
Обнуляю область диска для ядра + пару блоков сверху.
dd if=/dev/zero of=/dev/sdd seek=3000 bs=512 count=25000
3000 стартовый блок для ядра.
для скрипта.
dd if=/dev/zero of=/dev/sdd seek=50000 bs=512 count=100
50000 стартовый блок для скрипта.
Копирую ядро.
dd if=uImage of=/dev/sdd seek=3000 bs=512
21372+1 записей получено
21372+1 записей отправлено
скопировано 10942896 байт (11 MB), 17,9258 c, 610 kB/c
Копирую скрипт.
dd if=script.bin of=/dev/sdd seek=50000 bs=512
64+1 записей получено
64+1 записей отправлено
скопировано 32992 байта (33 kB), 0,0722164 c, 457 kB/c
В uboot загружаю в память так.
ядро:
BB8 = стартовый блок 3000.
537D = размер + 1 блок сверху 21372 + 1. Если не добавить 1 блок, то bad CRC.
mmc read 0x48000000 BB8 537D
MMC read: dev # 0, block # 3000, count 21373 ... 21373 blocks read: OK
скрипт:
C350 = стартовый блок 50000.
40 = размер 64 блока.
mmc read 0x43000000 C350 40
MMC read: dev # 0, block # 50000, count 64 ... 64 blocks read: OK
Загрузка...
bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
Image Name: Linux-3.4.103
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 10942832 Bytes = 10.4 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
Starting kernel ...
nonsec: No DTB (using sunxi FEX?), so the non-secure mode is not desired.
Switch to non-secure mode has failed - booting the kernel in secure mode ...
А дальше через несколько секунд перезагрузка((
Пока не могу понять где ошибка(
Может быть ядро не может прочитать script, но почему?