Перейти к содержанию
    

at91sam9260-ek U-Boot вот я и застопорился...

Изначально, при приобретении из Китая, на плате был linux-2.6.27. С ним я ковырялся в надежде поднять blutooth и wifi, кое как научился собирать загружаемые модули ядра. Теперь решил перейти на более свежий. Воспользовался buildroot-2021.02.3. Получил bootstap и u-boot, которые залил в плату. Получил образ zImage и ещё rootfs.jffs2 и делал попытки их загрузить. Вот некоторые из них:

AT91Bootstrap 3.8.10 (Чт 30 сен 2021 10:00:21 MSK)

NAND: Done to load image


U-Boot 2016.09.01 (Sep 30 2021 - 10:04:26 +0300)

CPU: AT91SAM9260
Crystal frequency:   18.432 MHz
CPU clock        :  198.656 MHz
Master clock     :   99.328 MHz
DRAM:  64 MiB
WARNING: Caches not enabled
NAND:  256 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0
Error: macb0 address not set.

Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x200000, size 0x300000
 3145728 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot> 

И загрузка/перезагрузка начинает происходить циклически, если её не остановить.

Что я не так делаю???

Спастбо!!!

 

 

Изменено пользователем Овчинников Игорь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, aaarrr said:

Bootstrap и u-boot залиты в NAND. zImage, похоже, нет. Чем и как заливали?

Заливал SAM-BA из винды.

bootsrap 0x0

u-boot 0x20000

 

заливал в NAND. только вот  некая информация из консоли загрузчика:

 

 

Изменено пользователем Овчинников Игорь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, aaarrr сказал:

Bootstrap и u-boot залиты в NAND. zImage, похоже, нет. Чем и как заливали?

судя по "Wrong Image Format for bootm command" у ТС u-boot желает uImage. для zImage команда bootz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Овчинников Игорь said:

Заливал SAM-BA из винды

Залили только загрузчики, ядра и рутфс нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, aaarrr said:

Залили только загрузчики, ядра и рутфс нет.

залил кроме загрузчиков ещё и zimage по 0x200000.

Чт-то не так?

Перед этим сделал:

mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d zImage zImage.bin

Потом это залил... результат показал уже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как уже писали выше, есть команды booti/bootz/bootm для загрузки Image, zImage и uImage соответственно. Еще DTB нужен, т.е. bootz $imageaddr - $dtbaddr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, aaarrr said:

Как уже писали выше, есть команды booti/bootz/bootm для загрузки Image, zImage и uImage соответственно. Еще DTB нужен, т.е. bootz $imageaddr - $dtbaddr

Если бы я был знаток и знал бы тонкости, то наверное не задавал бы вопросов вообще.

Перед тем как поднять тему много всего курил/читал сутки на пролёт. Сил больше нет... потому и спрашиваю.

Не смог найти чёткой последовательности

RomBOOT
>

AT91Bootstrap 3.8.10 (Чт 30 сен 2021 10:00:21 MSK)

NAND: Done to load image


U-Boot 2016.09.01 (Sep 30 2021 - 10:04:26 +0300)

CPU: AT91SAM9260
Crystal frequency:   18.432 MHz
CPU clock        :  198.656 MHz
Master clock     :   99.328 MHz
DRAM:  64 MiB
WARNING: Caches not enabled
NAND:  256 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0
Error: macb0 address not set.

Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x200000, size 0x300000
 3145728 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot> help
?       - alias for 'help'
base    - print or set address offset
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootefi - Boots an EFI payload from memory
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp    - boot image via network using DHCP/TFTP protocol
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
erase   - erase FLASH memory
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fdt     - flattened device tree utility commands
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print command description/usage
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mm      - memory modify (auto-incrementing address)
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
tftpboot- boot image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
U-Boot> 

Много из этого уже потрогал. Но ведь мог и ошибаться, ну и не знать конечно.

Вообще-то что бы не тревожить никого напрасно сначала читаю/курю уже готовые чьи-то ответы в разных источниках.

Поднятие темы это одна из последних надежд. Везде ответы сильно размыты и не сразу можно понять о чём вообще хотят сказать, а многие отвечают на середину и начало... но про то, что надо умалчивают.

К примеру про mkimage узнал только позавчера... а до этого множество пустых попыток было и только сейчас узнаю что всё зря.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цитата

Если бы я был знаток и знал бы тонкости, то наверное не задавал бы вопросов вообще.

судя по вопросам, вы еще только в начале пути познания мира мелкик платформ, а плата ваша достаточно "старая" и по ней в интернетах куча, нет, огромная куча информации..

для начала поищите в каталоге SAB-BA содержимое каталога, где лежат бинарники для записи "at91bootstrap.bin" "u-boot.bin" "image" и посмотрите, что за буква - zimage или uimage - тут можно понять, есть ли бинарник ядра и как упаковано

далее в консоли u-boot посмотрите настройки окружения командой printenv - тут можно посмотреть loadaddr - адрес куда обычно загружается ядро перез запуском

обычно убут выполняет скрипт со строки bootcmd

там м.б. ветвления по загрузке с сети, usb, mmc, nand

в командах загрузки из nand смотрите что-то типа "nand read $loadaddr" - команда считывает ядро из нанда в память

и там же будет bootm или bootz (как посоветовал @aaarrr)

если имидж ядра uImage, то можно ядро загрузить отдельными командами и убедиться, что оно валидное командой "iminfo $loadaddr"

в случае zImage надо разбираться в скриптах загрузки, карты раскладки бинарников в нанде и существование dtb для вашей платы

оптимальный путь познания - найти полную документацию на плату, описание программирования и комплект всех исходников - это все д.б. у производителя платы

ну и копать на форумах, подобных этому https://www.at91.com/viewtopic.php?t=5574

Цитата

а многие отвечают на середину и начало... но про то, что надо умалчивают

это "нормально", я сам такое проходил. для кого-то многие вещи тривиальны и о них не пишут, кто-то расписывает дотошно по пунктам. sam9260 прост как гвоздь, разберетесь, там сломать нечего..

ЗЫ где-то в каталоге SAB-BA д.б. файлы логов, что и куда пишется, попробуйте поискать и посмотреть..

Изменено пользователем Jury093

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Jury093 said:

судя по вопросам, вы еще только в начале пути познания мира мелкик платформ, а плата ваша достаточно "старая" и по ней в интернетах куча, нет, огромная куча информации..

для начала поищите в каталоге SAB-BA содержимое каталога, где лежат бинарники для записи "at91bootstrap.bin" "u-boot.bin" "image" и посмотрите, что за буква - zimage или uimage - тут можно понять, есть ли бинарник ядра и как упаковано

далее в консоли u-boot посмотрите настройки окружения командой printenv - тут можно посмотреть loadaddr - адрес куда обычно загружается ядро перез запуском

обычно убут выполняет скрипт со строки bootcmd

там м.б. ветвления по загрузке с сети, usb, mmc, nand

в командах загрузки из nand смотрите что-то типа "nand read $loadaddr" - команда считывает ядро из нанда в память

и там же будет bootm или bootz (как посоветовал @aaarrr)

если имидж ядра uImage, то можно ядро загрузить отдельными командами и убедиться, что оно валидное командой "iminfo $loadaddr"

в случае zImage надо разбираться в скриптах загрузки, карты раскладки бинарников в нанде и существование dtb для вашей платы

оптимальный путь познания - найти полную документацию на плату, описание программирования и комплект всех исходников - это все д.б. у производителя платы

ну и копать на форумах, подобных этому https://www.at91.com/viewtopic.php?t=5574

это "нормально", я сам такое проходил. для кого-то многие вещи тривиальны и о них не пишут, кто-то расписывает дотошно по пунктам. sam9260 прост как гвоздь, разберетесь, там сломать нечего..

ЗЫ где-то в каталоге SAB-BA д.б. файлы логов, что и куда пишется, попробуйте поискать и посмотреть..

 

Доброго времени суток!!!

Спасибо!!!! Это уже нормальный ответ и стало понятно, если не всё полностью, то направление куда копать и куда двигаться. Вы правы, чего я и не скрываю, я действительно в самом начале именно в этом.

Спасибо!!! И простите, что отвлекаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали.

2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, aaarrr said:

1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали.

2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап.

К сожалению убил u-boot, заменив новым только что собранным... который не работает. Сейчас пробую всё собрать снова.

Ещё смотрю на исходники U-Boot...  надо только указать адрес его размещения, а адрес старта (передачи управления) проде как настраивается.

Плата не породитая из Кикая - какой-то клон от at91sam9260-ek... без схемы, исходников и т.п. Был там linux-2.6.27... сейчас пробую собрать  linux-4.8.6. точнее уже собрал.

Надо u-boot пересобрать по нормальному. Что касается bootstrap, то по причине того, что он маленький у меня попросов не возникло. Можно его пересобрать в ручном режиме.

У меня непонятка с Kernel, котороиу u-boot и должен передать управление. И так же нероняткка с u-boot - он просто второй загрузчик, тли ещё что-то делает оставаясь резидентом. Одним словом не понятно.

Изменено пользователем Овчинников Игорь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, aaarrr said:

1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали.

2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап.

Вот вроде восстановил u-boot:

RomBOOT
>

AT91Bootstrap 3.8.10 (Вс 03 окт 2021 16:22:43 MSK)

NAND: Done to load image


U-Boot 2016.09.01 (Oct 03 2021 - 16:23:14 +0300)

CPU: AT91SAM9260
Crystal frequency:   18.432 MHz
CPU clock        :  198.656 MHz
Master clock     :   99.328 MHz
DRAM:  64 MiB
WARNING: Caches not enabled
NAND:  256 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0
Error: macb0 address not set.

Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x200000, size 0x300000
 3145728 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot> help
?       - alias for 'help'
base    - print or set address offset
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootefi - Boots an EFI payload from memory
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp    - boot image via network using DHCP/TFTP protocol
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
erase   - erase FLASH memory
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fdt     - flattened device tree utility commands
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print command description/usage
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mm      - memory modify (auto-incrementing address)
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
tftpboot- boot image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
U-Boot> printenv
baudrate=115200
bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2
bootcmd=nand read 0x22000000 0x200000 0x300000; bootm
bootdelay=3
ethact=macb0
stderr=serial
stdin=serial
stdout=serial

Environment size: 362/131067 bytes
U-Boot> 
baudrate=115200
bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2
bootcmd=nand read 0x22000000 0x200000 0x300000; bootm
bootdelay=3
ethact=macb0
stderr=serial
stdin=serial
stdout=serial

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте работу сети:

setenv ethaddr <случайный MAC адрес для платы>

setenv ipaddr <адрес из той же подсети, что и ПК>

ping <адрес ПК>

 

Если сеть работает, то дальше лучше пользоваться ей - tftp, nfs.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, Овчинников Игорь сказал:

Вот вроде восстановил u-boot:

а попробуйте после неудачной попытки запуска ядра дать в консоли команду

bootm 0x22000000

если ошибка останется, то либо ядро не записано в нанд, либо упаковано не так, ну или сам нанд битый (последнее не точно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...