‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

worklog: worklog



U-Boot 2017.03-rc1 (Mar 10 2017 - 10:09:11 +0300)

CPU : STM32F7 (Cortex-M7)
Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz
Model: SEA STM32F746-AWESOME board
DRAM: (bus test ok)64 MiB
WARNING: Caches not enabled
Flash: 1 MiB
In: serial_stm32x7
Out: serial_stm32x7
Err: serial_stm32x7
Net:
Warning: ethernet@40028000 (eth0) using random MAC address - aa:99:75:dd:1d:71
eth0: ethernet@40028000
Hit SPACE in 10 seconds to stop autoboot.
U-Boot:> version

U-Boot 2017.03-rc1 (Mar 10 2017 - 10:09:11 +0300)
arm-none-eabihf-gcc (GCC) 6.3.0
GNU ld (GNU Binutils) 2.28


Fuck yeah. Но ядро всё равно не грузитсо. И свежепересобранное, и скачанное с emcraft (и старое, и новое). С вроде бы правильным Flattened Device Tree (во всяком случае, с моим скромным опытом в создании таких штук я не могу найти никаких огрехов). Физически плата совершенно исправна - я протестировал всю память самым злым тестом, сеть очевидно работает, а больше пока ничего и нет. Собирал стоковым под eabi компилятором, который ничего не знает про cortex-m7 (только -m4). Собирал наисвежайшесобранным (видно по version) компилером под eabihf, собранным специально под cortex-m7 --with-float=fpv5-sp-d16.

Эволюция, этапы:
1) после слов "Starting kernel..." тишина и потребление платы снижается до минимума, активности на шине памяти нет - поциент в коме.
2) потом что-то поправил ("что-то" - не помню, что именно) и вот уже после слов "Starting kernel..." вижу "Uncompressing kernel" и далее "booting", потребление снижается до минимума - поциент снова в коме, но хотя бы уже выводит в правильный порт. Как я понимаю из описания у-бута, "starting kernel" это вообще последнее, что он сам пишет, затем идёт передача управления на ядро - то есть, раз надпись есть, то ядро таки НАЧИНАЕТ работать., но затем падает. Вероятно, Hard fault - в живых остаётся только включённая периферия, работающая независимо от состояния ядра.
3) с выводом всё то же самое, но потребление остаётся прежним и активность на шине продолжается - т.е. поциент таки выполняет какой-то код (даже если это бесконечный цикл).

Ядро, ессно, настраивал. Через menuconfig указал платформу, чип, куда что выводить, какие драйверы включить в ядро, какие просто модулями (всё, относящееся к самому чипу, а не ко внешней требухе, вкомпилировано в ядро). Итого, кернел 4.10.0 весит около 10 мегабайт в несжатом и около 5 в сжатом виде, примерно такое же получается 4.2 от emcraft.

Включённый earlyprintk ничего не выводит, равно как и прочие отладки в kernel hacking.

Прекомпилированный rootfs.uImage от emcraft не запускается из-за разницы в железном конфиге.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments