Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с новым ядром для DM365
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Сигнальные процессоры и их программирование - DSP
MaxPIC
Мы пробуем использовать ядро версии 4.12 на процессоре DM365 (DaVinci). Возникла такая проблема: перестала работать SD карта.
В логах видно следующее и дальше тишина:
> [ 2.454648] davinci_mmc da830-mmc.0: Can't get dma_tx channel
> [ 2.460524] davinci_mmc da830-mmc.0: probe deferral not supported
> [ 2.484224] Waiting for root device /dev/mmcblk0p2...

При этом в u-boot'е SD-карта нормально работает. В старом ядре версии 2.33 SD-карта работает без нареканий.
Кто-нибудь сталкивался с подобным? Есть мысли в какую сторону "копать"?
Jury093
Цитата(MaxPIC @ Aug 21 2017, 12:31) *
Мы пробуем использовать ядро версии 4.12 на процессоре DM365 (DaVinci). Возникла такая проблема: перестала работать SD карта.
В логах видно следующее и дальше тишина:
> [ 2.454648] davinci_mmc da830-mmc.0: Can't get dma_tx channel
> [ 2.460524] davinci_mmc da830-mmc.0: probe deferral not supported
> [ 2.484224] Waiting for root device /dev/mmcblk0p2...

При этом в u-boot'е SD-карта нормально работает. В старом ядре версии 2.33 SD-карта работает без нареканий.
Кто-нибудь сталкивался с подобным? Есть мысли в какую сторону "копать"?

как варианты - проверьте правильность настроек (а также отсутствие конфликта) gpio для вашего канала mmc и поищите почему драйверу отказано в "Can't get dma_tx channel"? возможно поддержка dma выключена в настройках ядра..
еще как проверка - встать осциллом на контакт clk для uSD/mmc и посмотреть на поведение в процессе загрузки - если клоков не будет, то что-то забыли в настройках ядра или для ядра..
MaxPIC
Цитата(Jury093 @ Aug 21 2017, 13:26) *
как варианты - проверьте правильность настроек (а также отсутствие конфликта) gpio для вашего канала mmc и поищите почему драйверу отказано в "Can't get dma_tx channel"? возможно поддержка dma выключена в настройках ядра..
еще как проверка - встать осциллом на контакт clk для uSD/mmc и посмотреть на поведение в процессе загрузки - если клоков не будет, то что-то забыли в настройках ядра или для ядра..

C "Can't get dma_tx channel" в итоге поборолись. Теперь загрузка всегда останавливается на "Waiting for root device /dev/mmcblk0p2"
1. Никакого "kernel panic" нет.
2. Ножка CD (Card Detect) сконфигурирована, пробовали даже изменить процедуру запроса состояния CD так, чтобы она вне зависимости постоянно возвращала 0 ( пробовали и 1). Не помогло. Аналогично пробовали с WP (Write Protect).
3. Клоки на карте есть. Менять пробовали - меняются, но симптомы остаются прежними.
4. Со старым ядром карта полностью работоспособно на максимальной скорости, т.е. "железо" полностью работоспособное.
5. Устройство точно mmc0, раздел точно p2.
Зашли в тупик. Кто-нибудь сталкивался с подобным? Может быть на другом процессоре DM644x, DM64x, DM355, OMAP-L13x?
MaxPIC
Уважаемые форумчане, ещё вопрос:
Собрали файловую систему с помощью buildroot.
Она нормально работает со старым ядром (2.6.32).
При переходе на новое ядро 3.12 ядро выдает лог:

[ 2.664179] kjournald starting. Commit interval 5 seconds
[ 2.675257] EXT3-fs (mmcblk0p2): using internal journal
[ 2.680890] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[ 2.687980] VFS: Mounted root (ext3 filesystem) on device 179:2.
[ 2.697133] devtmpfs: mounted
[ 2.701489] Freeing unused kernel memory: 160K (c051c000 - c0544000)
[ 2.765721] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 2.765721]
[ 2.774937] CPU: 0 PID: 1 Comm: init Not tainted 3.12.0-dirty #434
[ 2.781142] Backtrace:
[ 2.783709] [<c000bd84>] (dump_backtrace+0x0/0x104) from [<c000c02c>] (show_stack+0x18/0x1c)
[ 2.792172] r6:c057cae8 r5:c0556ebc r4:c3432000 r3:00000204
[ 2.797986] [<c000c014>] (show_stack+0x0/0x1c) from [<c03e95e8>] (dump_stack+0x20/0x28)

В чем может быть проблема?
Jury093
Цитата(MaxPIC @ Aug 23 2017, 12:10) *
C "Can't get dma_tx channel" в итоге поборолись. Теперь загрузка всегда останавливается на "Waiting for root device /dev/mmcblk0p2"
1. Никакого "kernel panic" нет.
2. Ножка CD (Card Detect) сконфигурирована, пробовали даже изменить процедуру запроса состояния CD так, чтобы она вне зависимости постоянно возвращала 0 ( пробовали и 1). Не помогло. Аналогично пробовали с WP (Write Protect).
3. Клоки на карте есть. Менять пробовали - меняются, но симптомы остаются прежними.
4. Со старым ядром карта полностью работоспособно на максимальной скорости, т.е. "железо" полностью работоспособное.
5. Устройство точно mmc0, раздел точно p2.
Зашли в тупик. Кто-нибудь сталкивался с подобным? Может быть на другом процессоре DM644x, DM64x, DM355, OMAP-L13x?

1. приведите строку аргументов для загрузки ядра, там где "console rw" и прочее
2. по карте
2.1 посмотрите в menuconfig нет ли там выбора канала для mmc/sd
2.2 там где смотрели клоки, также гляньте data0 и [1..3]
2.3 карточка точно старая? может суете sdhc/uhs1 и контроллер не работает с этим стандартом, например..
2.4 найдите в исходниках ядра в разделе mmc драйвер хоста mmc/sd для вашего dm365 и там в функцию _probe навтыкайте printk, там же полезно вывести отладку для диагностики. на старом ядре всё работает, значит затык в новом.. если это не фатальный баг версии ядра (а такое бывает), то всё д.б. просто - драйвер интит пины (или это делается раньше), разрешаются клоки, в принципе всё, далее однобитный обмен с картой и переход на скоростной режим
2.5 CD/WP можно прописать NULL, я не помню ядер, которые этим пользуются в мелких системах, разве что в 2.6.хх каких-нить

по вашему "кернел паник" в инете практически пусто, вот тут
https://e2e.ti.com/support/dsp/omap_applica...2340#pi317270=1
ничем полезным не кончилось..

попробуйте пару идей
1. однопользовательский режим - в строке аргументов для ядра уберите "root=/dev/mmcblk0p2 init=/init" и добавьте "noinitrd init=/bin/sh"
должны дойти до командной строки
2. чем вы собирали новое ядро? вне зависимости попробуйте новое ядро собрать кросскомпилятором, которым собиралась рутовая в билдруте
aaarrr
Еще совет: если есть сеть, запустите сначала систему с NFS.
MaxPIC
Цитата(aaarrr @ Aug 25 2017, 00:55) *
Еще совет: если есть сеть, запустите сначала систему с NFS.

NFS'а, к сожалению, нет.
Форум Ti'шный уже весь по этой тематике прочитали. Ничего из предложенного там не помогло. Ни другой компилятор и библиотеки, ни вкл./откл опции ARM EABIA в конфиге ядра и пр. ухищрения. Проблема не решена. Решили использовать старое ядро.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.