Пользовательская плата на основе i.MX soc: модуль пользовательского драйвера аварийно завершает работу после обновления Linux

Ответить
Anonymous
 Пользовательская плата на основе i.MX soc: модуль пользовательского драйвера аварийно завершает работу после обновления

Сообщение Anonymous »

Введение. Я использую специальную плату на базе SoC i.MX6q, которая взаимодействует с FPGA по шине EIM: эта связь управляется через специальный модуль драйвера. Сигнал DTACK и память WDOG включены на шине EIM.
Недавно я обновил операционную систему с ядра 4.1.15 до версии 6.12.3 и перекомпилировал модуль драйвера для новой версии операционной системы. В новой версии модуля драйвера я заменил «старую» функцию ioremap_nocache() на функцию ioremap().
Модуль драйвера в функции probe() пытается проверить наличие FPGA, записывая данные с помощью функции iowrite16(), а затем пытаясь прочитать их обратно с помощью ioread16(). функция.
Вот базовый драйвер для воспроизведения проблемы:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 

#include 

#define WPROBE        ((unsigned long)0x003F0004L)
#define RPROBE        ((unsigned long)0x003F0008L)
#define PROBE_VAL(aWORD) \
(unsigned short)(((aWORD >> 8) & 0x000f)                    | \
((aWORD ^ 0xffff) & 0x00f0)             | \
(((aWORD ^ 0xffff) >> 4) & 0x0f00)    | \
((aWORD 

Подробнее здесь: [url]https://stackoverflow.com/questions/79822517/custom-board-based-on-i-mx-soc-custom-driver-module-crashes-after-linux-update[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»