Jump to content

    

Сборка ядра под OMAP-L138.

Добрый день!

 

С линуксом почти не сталкивались, по ДСП работаем.

Есть своя плата: ОМАP-L138, NAND 4Gb Samsung K9F4G08U0D-SIB0000, DDR2 1Gb Samsung K4T1G164QF-BIE6T00, Ethernet, SATA, USB2.0 OTG, видеопорт, и др. периферия...

Хотим собрать своё ядро. При собственой конфигурации виснет после надписи "Starting kernel ..."

Может кто подсказать в чем дело?

Файл конфигурации прилагаю.

 

 

Благодарю.

config.txt

Share this post


Link to post
Share on other sites
Добрый день!

 

С линуксом почти не сталкивались, по ДСП работаем.

Есть своя плата: ОМАP-L138, NAND 4Gb Samsung K9F4G08U0D-SIB0000, DDR2 1Gb Samsung K4T1G164QF-BIE6T00, Ethernet, SATA, USB2.0 OTG, видеопорт, и др. периферия...

Хотим собрать своё ядро. При собственой конфигурации виснет после надписи "Starting kernel ..."

Может кто подсказать в чем дело?

Файл конфигурации прилагаю.

 

 

Благодарю.

 

Почему не взяли, например, OMAPL138 DVSDK от техаса?

Share this post


Link to post
Share on other sites

Выложите лучше строку аргументов ядра.

Share this post


Link to post
Share on other sites

Спасибо за ответы.

У нас есть отладочная плата Logic PD на базе OMAPL138.

На этой отладочной плате пересобирали все компоненты - все работает.

Но на ней загрузка из SPI flash, память mDDR, поэтому использовать файлы прошивки те же не получается.

Приходится пересобирать под нашу плату свои u-boot (с оберткой от AISGEN), uImage, Файловую систему.

Файл борды не правил, он остался неизменным - board-da850-evm.c.

Базовый конфигурационный файлом является da850_omapl138_defconfig.

В нем добавили поддержку NAND, отключили поддержку SD/MMC.

Аргументы bootargs

bootargs=console=ttyS2,115200n8 rootfstype=ubifs root=ubi0:rootfs ubi.mtd=ubi rw mem=128M

В данном случае загрузка идет через USB. Также пробовали через TFTP - результат тот же.

Нашли информацию о том, что с того момента как выводится надпись

"Starting kernel ..."

может быть неправильно настроен вывод в консоль (не тот ttySx).

http://processors.wiki.ti.com/index.php/FA...r_DaVinci_Linux

Проверили, убедились что настройки в исходниках ядра те (что для u-boot, что для uImage UART2).

 

Потом нашли документ

http://processors.wiki.ti.com/index.php/Ke...s_Booting_Linux

Буду проверять сегодня совпадение ID для u-boot и для uImage.

 

Возможно кто то проконсультирует или подготовит свои u-boot (до и после AISGEN) uImage и файловую систему с нашей конфигурацией (готов оплатить).

Хотя бы начать с минимальной конфигурацией - NAND 8bit, DDR2, USB, а дальше будем сами разбираться.

 

 

Share this post


Link to post
Share on other sites

Попробуйте добавить к строке ядра еще "debug earlyprintk".

Еще, не так давно, omap переехал на нормальные названия tty. Попробуйте console=/dev/ttyO2... и далее по тексту. Хотя, если версия ядра не менялась - не имеет смысла.

Share this post


Link to post
Share on other sites

Всем спасибо.

Скорее всего проблемы с ядром, оно попорчено. Есть желание пересобрать но последним SDK. Хотел бы спросить, каким образом сконфигурировать u-boot на 8 бит. В DA850 флэшь стоит 16 бит. Возможно с этим у нас также проблемы, поскольку не сохраняет настроечные переменные через saveenv. В AISGEN конечно указан размер 8 бит, но после загрузки u-boot он записывает данные скорее всего в 16-ти битном режиме.

 

Жду подсказок.

 

Share this post


Link to post
Share on other sites
Буду проверять сегодня совпадение ID для u-boot и для uImage.

 

Первым делом об этом подумал, но не оно. Эта проверка в бутлоадере производится. Там еше проверка чексуммы делается.

Но после этого кернел распаковывается и стартует. Вот в какой момент появляется надпись не помню. завтра на работе посмотрю. Вот из интернета:

 

> 3122350 bytes read

> ## Booting image at 00800000 ...

> Image Name: Linux-3.11.0-rc3

> Created: 2013-07-30 18:56:55 UTC

> Image Type: ARM Linux Kernel Image (uncompressed)

> Data Size: 3122286 Bytes = 3 MB

> Load Address: 00008000

> Entry Point: 00008000

> Verifying Checksum ... OK

> OK

>

> Starting kernel ...

>

> Uncompressing Linux... done, booting the kernel.

> Booting Linux on physical CPU 0x0

 

Share this post


Link to post
Share on other sites
Скорее всего проблемы с ядром, оно попорчено. Есть желание пересобрать но последним SDK. Хотел бы спросить, каким образом сконфигурировать u-boot на 8 бит. В DA850 флэшь стоит 16 бит. Возможно с этим у нас также проблемы, поскольку не сохраняет настроечные переменные через saveenv. В AISGEN конечно указан размер 8 бит, но после загрузки u-boot он записывает данные скорее всего в 16-ти битном режиме.

для проверки содержимого настроек юбута, остановите его и дайте команду:

printenv

посмотрите - соответствует ли содержимое bootargs нужным значениям..

 

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

 

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

 

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

 

ну и для полноты картины желательно описать последовательность сборки и чем собирали.. часто упускается какой-то этап или ключ, после которого только унылое "Starting kernel.."

в разных BSP и SDK есть свои неочевидные тонкости и так вам быстрее подскажут..

 

вот очень дельно предложение:

Попробуйте добавить к строке ядра еще "debug earlyprintk"

там вроде надо еще пощелкать пунктами в Kernel Hacking чтобы ядро стало более говорливое..

 

ставлю на две версии - Id или tty, в резерве nand

Share this post


Link to post
Share on other sites

Debug earlyprintk попробовали сразу же после предложения так сделать.

Соответствующий флаг в menuconfig в Kernel Hackin выставили. Все то же самое.

Как раз поэтому и появилось предположение, что с ядром что то не так.

Сейчас я ставлю вопрос по другому. Решил все пересобрать с самого начала в последней версии, начиная с u-boot.

Собирал на базе SDK для LCDK. Но у LCDK NAND 16 бит, а у нас 8. Я закрыл в их коде установку 16-ти битного NAND.

После AISGEN u-boot запустился, но перестал сохранять переменные после команды saveenv. После загрузки пишет всегда BAD CRC.

Есть основания считать, что NAND по прежнему остался 16 битным. Пока глубоко не исследовал,

возможно есть простой способ установки NAND в 8 бит, а SDRAM в DDR2 (не mDDR).

Share this post


Link to post
Share on other sites

Есть предположение насчет неработоспособности ядра uImage, заключающееся в том,

что SDRAM сконфигурировано как mDDR, а не как DDR2 (у нас именно DDR2).

Пока не ясно, память SDRAM конфигурируется в ядре uImage

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

Возможно кто то подскажет что то на этот счет.

Share this post


Link to post
Share on other sites

В большинстве случаев настраивается в u-boot. Во всяком случае какой-то минимум сообщений от ядра вы должны получить.

 

Есть "тупой" способ проверить. В у-буте загружаете ядро в память и запускаете его. Плата предположительно зависает. Даете ей ресет. И без повторной загрузки ядра в памяти делаете ему bootm. Или iminfo. Обычно, нсли с памятью все ок, ее содержимое сохраняется. Правда есть варант, что ядро при загрузке могло затереть эту облась после релокации.

Share this post


Link to post
Share on other sites
В большинстве случаев настраивается в u-boot. Во всяком случае какой-то минимум сообщений от ядра вы должны получить.

 

Если консоль не сломалась

Share this post


Link to post
Share on other sites

C u-boot разобрались. С uImage пока нет. Останавливается здесь:

 

netconsole: network logging started

davinci_emac davinci_emac.1: using random MAC addr: 76:f7:52:75:1e:d8

omap_rtc omap_rtc: setting system clock to 2000-01-13 23:12:09 UTC (947805129)

VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)

Please append a correct "root=" boot option; here are the available partitions:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

 

Будем дальше копать.

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