Jump to content

    

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

Добрый день.

Имеется плата с кастомным 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
2 hours ago, Jury093 said:

cat /proc/cmdline

root=ubi0:rootfs rootfstype=ubifs ubi.mtd=rootfs ubi.mtd=opt console=ttyPSC0,115200 ro

Т.е. содержимое bootargs. Это не то, что мне нужно.

Share this post


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

Это не то, что мне нужно.

Так что нужно? Хоть намекнули бы.

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

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

2 hours ago, Harvester said:

nand read $kernel_laddr $dsp_prg_naddr $dsp_prg_nsize && dsp_load $kernel_laddr

 

Share this post


Link to post
Share on other sites

dsp_load - это что-то специфичное... Ядро стартует по команде bootm

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this