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

    

Проблема с новым ядром для 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 в конфиге ядра и пр. ухищрения. Проблема не решена. Решили использовать старое ядро.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация