i.Таймаут MX28 SOC DMA при чтении NAND FLASH

То, что вы хотите сделать, невозможно, насколько я понял ваш вопрос. Сценарий %pre запускается до того, как что-либо из RPM будет доступно на диске, поэтому он не может ссылаться на что-либо из пакета. Сценарий %post, с другой стороны, запускается после того, как полезная нагрузка пакета была помещена на место, так что с этой частью все в порядке. Более подробную информацию о порядке выполнения операций по установке/обновлению/удалению пакетов RPM можно найти на https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Scriptlet_Ordering. Хотя этот URL относится к проекту Fedora, содержащаяся в нем информация должна быть применима к любому дистрибутиву linux на базе RPM.

1
27.05.2019, 15:50
1 ответ

Сначала я много занимался отладкой, но решения не нашел. Потом я понял, что у меня есть старая версия Linux, которая работает (, она была подготовлена ​​другой компанией много лет назад ). Это доказывает, что это не аппаратная проблема. Также тот факт, что 2 разные аппаратные платы показывают одну и ту же проблему, указывает не на аппаратную проблему. В какой-то момент я решил попробовать старую версию Linux, максимально приближенную к старому рабочему решению. Это показало, что ядро ​​3.16.68 работает нормально, используя собственную сборку. Мои сборки 5.1.5 и 4.20.7 показывают проблему NAND FLASH. Дальнейшие эксперименты показали, что последнее рабочее ядро ​​4.16.18, начиная с 4.17.1 и выше проблема присутствует. Похоже, что между NAND FLASH поддержка периферийных устройств Freescale GPMI была реструктурирована. Я предполагаю, что это сделано Freescale для размещения новых процессоров / SOC. Похоже, что поддержка старого оборудования нарушена. Я не могу сказать, известно ли об этом на Freescale или нет. Есть признаки того, что Freescale больше не поддерживает старый i.MX28. Так или иначе, пришло время проанализировать различия. Принципиальное отличие заключается в вызове функции для адаптации тактовой частоты периферийного устройства GPMI, которое было добавлено. По какой-то причине после комментирования этого единственного вызова периферийное устройство GPMI работает правильно с NAND FLASH. Этот код находится в файле «drivers/mtd/nand/raw/gpminand/gpmi -lib.c», функция «gpmi _nfc _применить _тайминги». Просто закомментируйте вызов «clk _set _rate». По крайней мере, для меня это работает. Позже я понял, что лучше избегать звонка только тогда, когда процессор i.MX28,чтобы позволить ему работать для более поздних чипов.

Я не анализировал, что именно делает скорость clk _set _и как ее нужно вызывать, чтобы она работала на всех процессорах. Другого железа у меня нет, проверить не смогу.

0
28.01.2020, 00:11

Теги

Похожие вопросы