Традиционная модель устройств «поток байтов» UNIX представляет собой довольно высокоуровневую абстракцию большинства современных аппаратных средств, и поэтому существует множество драйверов, которые не создают/dev записи для устройств, которые они контролируют в основном потому, что они не Эта модель подходит. В частности, драйверы шин очень похожи на то, что они существуют, но только ради обнаружения и доступа к устройствам, расположенным за ними; нет/dev/sata, который позволяет вам взаимодействовать с фактическим контроллером хоста, отправляя необработанные команды на любой старый порт независимо от того, что связано или нет; нет/dev/usb, который позволяет вам произвольно переносить произвольные конечные точки, которые могут или не могут существовать.
Кроме того, ваш типичный контроллер «внешнего интерфейса», как в этом случае, на порядок меньше, чем интерфейс, такой как SATA или USB, сам «устройство» часто представляет собой блок регистра, управляющий некоторыми часами и чипом -выберите мультиплексор. Даже если водитель действительно создал что-то, с чем вы могли бы взаимодействовать напрямую, не так много можно было бы сделать do с ним.
Правильный способ продолжения в этой ситуации - описать ваше FPGA-устройство в DT в качестве ребенка шины GMI, не менее точно отражая аппаратное обеспечение, а затем разработайте для этого собственный драйвер. Сам драйвер шины просто прозрачно посередине. И если вам нужен быстрый и грязный способ начать работу, просто прочитав и наведя адрес шины напрямую, ну, это за областью ввода-вывода с отображением памяти; это именно то, для чего/dev/mem существует.
Является ли соответствующий драйвер встроенным в ядро или встроен в модуль и загружен? Я предполагаю, что вы на самом деле установили обновленный DTB на машине, вы можете проверить/sys/firmware/devicetree/base/<путь к устройству>/статус для подтверждения. – Notlikethat
Да Я могу видеть запись для своего устройства по этому пути со всеми его свойствами –
Драйвер скомпилирован в ядро (без модуля) –