Официальный форум СВД Встраиваемые Системы
20 Апрель, 2024, 02:07:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не обнаруживается устройство nand-flash  (Прочитано 2582 раз)
ad
Пользователь

Сообщений: 70


« : 22 Февраль, 2016, 22:59:24 »

Есть загрузочный образ (bsp) для процессора на базе ARM Cortex A8. Этот образ успешно использовался и менялся какое-то время. Затем была создана какая-то версия, для которой сохранился исполняемый файл и исходники (точно знаю, что исходники от этой версии исполняемого файла). Затем bsp менялся и, в итоге, обнаружилось, что при запуске драйвера devb-mmcsd-jacinto5 для NANВ-flash устройство в /dev/ не создается. Для sd-карты создается, я для NAND - нет. Проблема заключается в том, что тот исходник, из которого получился рабочий bsp, в котором создаются оба раздела, создает теперь bsp, в котором раздел для NAND не создается. Первоначальный исходный код, с которым я начинал вообще работать, и я точно знаю, что он был нормальным, тоже теперь создает образ без второго раздела в /dev/. Пробовал собрать на 5 компьютерах. Результат - один и тот же. Сможете подсказать, как вернуть вариант исходников, для которых bsp будет с работающим 2-ым разделом? Проверил, что на всех компьютерах, где производилась сборка есть SP1 для QNX6.5.0/
Записан
gordeev_as
Пользователь

Сообщений: 32


« Ответ #1 : 24 Февраль, 2016, 07:30:40 »

А что пишется в sloginfo после запуска драйвера?
Просто NAND и SD это разные физически устройства, может драйвер чего то не находит.
Для NAND обычно используется отдельный драйвер типа fs-etfs-??, например fs-etfs-at91sam9xx идет в BSP для AT91sam9263.
Поищите что то подобное.
Записан
ad
Пользователь

Сообщений: 70


« Ответ #2 : 24 Февраль, 2016, 20:13:43 »

Этот драйвер запускается после mmc и немцы в ответах на вопросы по поводу драйвера приводили запуск именно указанного драйвера. Устройства разные, но запускаются на одной шине, если я правильно расшифровываю mmc.
Записан
gordeev_as
Пользователь

Сообщений: 32


« Ответ #3 : 25 Февраль, 2016, 07:06:42 »

SD и MMC могут работать на одной шине.
MMC это MultiMediaCard, потоньше чем SD. Имеет SPI интерфейс (почитайте википедию). У NAND же интерфейс параллельный. Конечно разработчики драйвера могли запихнуть поддержку обоих устройств в один драйвер, но это не логично. Так что запустите старый образ в котором NAND подключается и работает и смотрите какие драйверы запущены. Думаю, через pidin fds можно найти какой именно отвечает за NAND, у него будет дескриптор открыт NAND устройства.
Можете вставить кусок кода где происходит запуск всех драйверов и какой процессор у Вас стоит на плате, а лучше весь скрипт?
Записан
ad
Пользователь

Сообщений: 70


« Ответ #4 : 27 Февраль, 2016, 16:18:25 »

SD и MMC могут работать на одной шине.
MMC это MultiMediaCard, потоньше чем SD. Имеет SPI интерфейс (почитайте википедию). У NAND же интерфейс параллельный. Конечно разработчики драйвера могли запихнуть поддержку обоих устройств в один драйвер, но это не логично. Так что запустите старый образ в котором NAND подключается и работает и смотрите какие драйверы запущены. Думаю, через pidin fds можно найти какой именно отвечает за NAND, у него будет дескриптор открыт NAND устройства.
Можете вставить кусок кода где происходит запуск всех драйверов и какой процессор у Вас стоит на плате, а лучше весь скрипт?
Ну тем не менее запихнули. Вот привожу ответ немцев по поводу запуска драйверов. Ровно так, как в ответе, драйвера в скрипте запуска и запускаются:
Цитировать
the NAND on the TQMa335x is a eMMC.
Find below the commands to start the driver and examples to format the
eMMC for use with QNX6 filesystem or FAT.

# MMC1 eMMC
     devb-mmcsd-jacinto5 mmcsd ioport=0x481D8100,irq=28,ioport=0x49000000,dma=2,dma=3,bw=8,clock=50000000
     waitfor /dev/hd1 5

Ну и на всякий случай, привожу то, как запускаются в скрипте драйвера:

Код:
#######################################################################
## MMC/SD driver
#######################################################################
display_msg Starting MMC/SD driver...
# MMC0 SD card
devb-mmcsd-jacinto5 cam blk automount=hd0t12:/fs/sd0 mmcsd ioport=0x48060100,irq=64,ioport=0x49000000,dma=24,dma=25

# MMC1 eMMC
devb-mmcsd-jacinto5 mmcsd ioport=0x481D8100,irq=28,ioport=0x49000000,dma=2,dma=3,bw=8,clock=50000000
waitfor /dev/hd1 5
Записан
ad
Пользователь

Сообщений: 70


« Ответ #5 : 27 Февраль, 2016, 16:22:07 »

По поводу pidin fds спасибо. Посмотрю. Ну и постараюсь еще сохранить sloginfo на работающем и неработающем bsp.
Записан
gordeev_as
Пользователь

Сообщений: 32


« Ответ #6 : 29 Февраль, 2016, 08:42:42 »

Тогда все понятно, это не NAND ,а eMMC (embedded MMC).
В таком случае конечно это может быть один драйвер.
Тогда ждем что пишется в sloginfo в обоих случаях.
Видно что для каждого устройства (SD, eMMC) запускается свой экземпляр драйвера, поэтому в sloginfo будет видно что не нравится новому драйверу.
Записан
Владимир Махилёв
Сотрудник СВД ВС
Старожил

Сообщений: 704



WWW
« Ответ #7 : 29 Февраль, 2016, 12:28:03 »

Для подробного лога нужно указать дополнительный параметр драйверу, что-нибудь вида cam verbose или mmcsd verbose=9 (если такая опция у драйвера есть).

Настоятельно рекомендую обратить внимание на то, что могло измениться в исходных кодах всего BSP, а не только в одном конкретном драйвере. Компонентов которые можно было поломать достаточно много (startup, общие заголовочные файлы, общие библиотеки).

Возьмите рабочую старую версию BSP и новую.
Оба BSP полностью пересоберите (не только драйвер SD, но и startup и другие драйверы) и проверьте работу на плате. Чтобы не было путаницы рекомендую сделать это в консоли.
Удостоверьтесь, что в старом BSP драйвер работает. Сравните исходные коды по всему BSP. Удобно сравнивать какой-либо внешней графической программой, показывающей различия (meld, kdiff, kompare или аналоги для Windows)


Записан

ad
Пользователь

Сообщений: 70


« Ответ #8 : 01 Март, 2016, 22:52:15 »

Спасибо огромное за советы. Мы собираем в консоли в QNX 6.5.0. Привыкли уже использовать VIM, MQC и MED. Пересборка проекта, как правило, полная, а не только драйвера.
Записан
ad
Пользователь

Сообщений: 70


« Ответ #9 : 01 Март, 2016, 22:57:03 »

Проблема обнаружена и решена. Оказалось, что контроллер ARM, не смотря на неправильный uEnv.txt для запуска с eMMC, умудрялся запускаться с eMMC или NAND и, пока по не совсем понятным причинам, не монтировал именно флеш-карту, а не eMMC. В sloginfo писал как раз-таки о некорректности карты. Выдавал сообщение:
Цитировать
Unsupported card inserted!
С карточкой теперь разбираемся. Пока что такой оказалась лишь одна штука. Но вполне возможно, тут дело в кривых ручках и что-то неправильно делали. Думаю... разберемся. Еще раз СПАСИБО.
Записан
gordeev_as
Пользователь

Сообщений: 32


« Ответ #10 : 02 Март, 2016, 07:21:36 »

Ну что же приятно слышать, что причина установлена.
После того как разберетесь окончательно, напишите в чем именно была проблема и как решили, для истории.
Записан
ad
Пользователь

Сообщений: 70


« Ответ #11 : 15 Март, 2016, 22:52:01 »

Ну что же приятно слышать, что причина установлена.
После того как разберетесь окончательно, напишите в чем именно была проблема и как решили, для истории.
Ну остановились на том, что при проверке надо смотреть какие устройства загрузились, если что-то не загрузилось, то искать в sloginfo фразу, указанную выше и в этом случае, менять flash-карту.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 08 Март, 2024, 16:03:19