MaxBMSTU 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Мы пробуем использовать ядро версии 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 2 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Мы пробуем использовать ядро версии 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 и посмотреть на поведение в процессе загрузки - если клоков не будет, то что-то забыли в настройках ядра или для ядра.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaxBMSTU 0 23 августа, 2017 Опубликовано 23 августа, 2017 · Жалоба как варианты - проверьте правильность настроек (а также отсутствие конфликта) 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaxBMSTU 0 24 августа, 2017 Опубликовано 24 августа, 2017 · Жалоба Уважаемые форумчане, ещё вопрос: Собрали файловую систему с помощью 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 2 24 августа, 2017 Опубликовано 24 августа, 2017 · Жалоба 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 68 24 августа, 2017 Опубликовано 24 августа, 2017 · Жалоба Еще совет: если есть сеть, запустите сначала систему с NFS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaxBMSTU 0 28 августа, 2017 Опубликовано 28 августа, 2017 · Жалоба Еще совет: если есть сеть, запустите сначала систему с NFS. NFS'а, к сожалению, нет. Форум Ti'шный уже весь по этой тематике прочитали. Ничего из предложенного там не помогло. Ни другой компилятор и библиотеки, ни вкл./откл опции ARM EABIA в конфиге ядра и пр. ухищрения. Проблема не решена. Решили использовать старое ядро. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться