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

Проблема с новым ядром для DM365

Мы пробуем использовать ядро версии 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-карта работает без нареканий.

Кто-нибудь сталкивался с подобным? Есть мысли в какую сторону "копать"?

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


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

Мы пробуем использовать ядро версии 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 и посмотреть на поведение в процессе загрузки - если клоков не будет, то что-то забыли в настройках ядра или для ядра..

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


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

как варианты - проверьте правильность настроек (а также отсутствие конфликта) 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?

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


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

Уважаемые форумчане, ещё вопрос:

Собрали файловую систему с помощью 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)

 

В чем может быть проблема?

 

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


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

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

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


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

Еще совет: если есть сеть, запустите сначала систему с NFS.

NFS'а, к сожалению, нет.

Форум Ti'шный уже весь по этой тематике прочитали. Ничего из предложенного там не помогло. Ни другой компилятор и библиотеки, ни вкл./откл опции ARM EABIA в конфиге ядра и пр. ухищрения. Проблема не решена. Решили использовать старое ядро.

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


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

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

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

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

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

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

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

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

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

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