Jump to content

    
Sign in to follow this  
Harvester

Конфигурация U-boot

Recommended Posts

Добрый день.

Имеется плата с кастомным Linux-ом. Вот начало лога консольного вывода:

U-Boot 2009.03-svn201

CPU:   MPC5125 rev. 1.0, Core e300c4 at 400 MHz, CSB at 200 MHz
board: xxxx
I2C:   ready
DRAM:  128 MB
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01

for update u-boot: run uboot_update
for update linux: run linux_update

Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x7e00000, size 0x100000
 1048576 bytes read: OK
dsp_load: DSP HPI probe passed
dsp_load: Upload DSP Loader

Насколько я понимаю, после строки "Hit any key to stop autoboot" u-boot начинает выполнять некий скрипт начальной загрузки.

Нашел в исходниках файл uboot-installer.sh, который, похоже, имеет отношение к процессу загрузки:

#
# U-boot environment installer
#
setenv led_resetst 0 1 0 1
#
setenv dsp_prg_naddr 7e00000
setenv dsp_prg_nsize 100000
setenv nandboot 'setenv bootargs "root=ubi0:rootfs rootfstype=ubifs ubi.mtd=rootfs ubi.mtd=opt console=$consdev,$baudrate ro" && nand read $kernel_laddr $dsp_prg_naddr $dsp_prg_nsize && dsp_load $kernel_laddr; nand read $kernel_laddr $kernel_naddr $kernel_nsize && bootm $kernel_laddr'
#
saveenv

Но здесь просто задаются переменные среды :(

Попробовал пройти "grep -rl nandboot ./" по исходникам - выдает только вышеуказанный файл.

Подскажите пожалуйста, как точно узнать, что и с какими параметрами запускается при загрузке?

Share this post


Link to post
Share on other sites
42 минуты назад, Harvester сказал:

Подскажите пожалуйста, как точно узнать, что и с какими параметрами запускается при загрузке?

не понятен вопрос - что именно интересует?

если что такое nandboot - это всего лишь имя скрипта в окружение убута, хоть горшком назовите, главное запустить из окружения

дефолтное имя начального скрипта - bootcmd, из него запускаются остальные скрипты и ,как правило, финальный прыжок на ядро

покопайтесь в документации на юбут в каталоге  исходников doc/ или на сайте http://www.denx.de/wiki/U-Boot/WebHome

функция main убута в common/main.c

 

Share this post


Link to post
Share on other sites
42 minutes ago, Jury093 said:

не понятен вопрос - что именно интересует?

Интересует что и с какими параметрами запускается убутом.

Share this post


Link to post
Share on other sites
20 минут назад, Harvester сказал:

Интересует что и с какими параметрами запускается убутом.

http://www.denx.de/wiki/DULG/Manual

вам в 5.9, особенно 5.9.4 и 5.9.6

Share this post


Link to post
Share on other sites
2 hours ago, Harvester said:

Подскажите пожалуйста, как точно узнать, что и с какими параметрами запускается при загрузке?

Прервите загрузку u-boot, затем выполните команду "printenv". При автоматической загрузке запускается на исполнение содержимое переменной "bootcmd".

Share this post


Link to post
Share on other sites
On 7/11/2019 at 12:03 PM, aaarrr said:

Прервите загрузку u-boot, затем выполните команду "printenv". При автоматической загрузке запускается на исполнение содержимое переменной "bootcmd".

Вот что получилось:

bootcmd=run nandboot
nandboot=setenv bootargs "root=ubi0:rootfs rootfstype=ubifs ubi.mtd=rootfs ubi.mtd=opt console=$consdev,$baudrate ro" && nand read $kernel_laddr $dsp_prg_naddr $dsp_prg_nsize && dsp_load $kernel_laddr; nand read $kernel_laddr $kernel_naddr $kernel_nsize && bootm $kernel_laddr

Получается, что в убуте просто задается переменная bootargs. Содержимое переменной обрабатывается уже ядром, при этом в bootargs я не вижу интересующую меня команду.

Получается, что она запускается позже. Отсюда следующий вопрос - как узнать, что исполняется ядром после обработки bootargs?

Share this post


Link to post
Share on other sites
2 минуты назад, Harvester сказал:

Получается, что она запускается позже. Отсюда следующий вопрос - как узнать, что исполняется ядром после обработки bootargs?

cat /proc/cmdline

Share this post


Link to post
Share on other sites
33 minutes ago, Harvester said:

как узнать, что исполняется ядром после обработки bootargs?

В лог загрузки посмотреть. Вариант 2 - забить на U-Boot и закатать bootargs в DT.

Share this post


Link to post
Share on other sites
1 hour ago, gosha-z said:

В лог загрузки посмотреть.

Так в этом-то и вопрос. Вот лог:

Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x7e00000, size 0x100000
 1048576 bytes read: OK
dsp_load: DSP HPI probe passed
dsp_load: Upload DSP Loader

Я вижу только результат выполнения команды, а мне нужно знать с какими параметрами она запускается (они есть, это я знаю 100%).

Где может лежать скрипт, запускающий команду при загрузке системы?

Share this post


Link to post
Share on other sites
6 minutes ago, aaarrr said:

nandboot внимательно посмотрите:

М-да, а слона-то я и не заметил... :blush:

Тогда другая проблема - в файловой системе устройства нет файла "dsp_load". :(

Что же тогда запускается?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this