Недавно я обновил операционную систему с ядра 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]
Мобильная версия