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

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

Добрый день!

 

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

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

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

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

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

 

 

Благодарю.

config.txt

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


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

Добрый день!

 

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

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

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

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

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

 

 

Благодарю.

 

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

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


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

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

У нас есть отладочная плата 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, а дальше будем сами разбираться.

 

 

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


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

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

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

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


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

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

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

 

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

 

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


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

Буду проверять сегодня совпадение 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

 

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


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

Скорее всего проблемы с ядром, оно попорчено. Есть желание пересобрать но последним 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

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


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

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).

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


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

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

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

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

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

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

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


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

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

 

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

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


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

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

 

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

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


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

Даже со сломанной консолью вывод можно посмотреть вот таким вот изящным способом.

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


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

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)

 

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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