Могу ли я имитировать устройство HW с адресом HW с помощью модуля ядра? (редактировать: виртуальный адрес, который будет перенаправляться на мой модуль)

#linux-kernel

#linux-ядро

Вопрос:

Мне нужно проверить, как наш производственный модуль Linux обрабатывает ошибки HW. драйвер, который я тестирую, не должен быть изменен, за исключением, может быть, адреса HW, который драйвер использует для связи с HW.


Я хочу написать модуль ядра, который перехватывает чтение / запись в HW и при необходимости изменяет их, он также должен обрабатывать прерывание, но я знаю, как это сделать.


могу ли я смоделировать адрес HW для загрузки производственного драйвера, и чтение / запись будет перенаправляться на мой драйвер, и я перешлю его в HW, или для этого мне нужен конкретный HW?


редактировать: поскольку я могу переопределить mmap тестируемого драйвера, могу ли я создать виртуальный адрес в пространстве ядра, который перенаправляет чтение / запись в мой модуль?

Комментарии:

1. Посмотрите на mmiotracer функциональность (доступна только для x86).

2. Спасибо, но я работаю над arm cortex-a

Ответ №1:

По-видимому, поскольку наш драйвер должен работать на другом оборудовании, у него есть «уровень аппаратной абстракции», который должен реализовать пользователь, и весь доступ к hw осуществляется через этот уровень. Я добавлю туда вставку ошибки. Если у кого-нибудь еще есть способ, пожалуйста, дайте мне знать, несмотря ни на что. Кстати, я работаю над процессорами arm.