Модель устройства qemu pci
Я работаю над реализацией контроллера PCIe Endpoint DMA для FPGA (VHDL). Поскольку я уже устал запускать свой дизайн на реальном оборудовании, я взглянул на qemu. У него уже есть встроенное устройство pci-edu edu.c, и теоретически я мог бы начать расширять его, чтобы он вел себя так же, как мой VHDL-дизайн.
Однако это кажется чрезмерным усилием, поскольку у меня уже есть модель контроллера DMA, но написанная на VHDL. Я рассматриваю возможность использования обычного симулятора HDL с VHPI для связи между драйвером ядра и кодом VHDL.
Теперь все, что мне нужно, - это перенаправить входы и выходы, отображаемые в память, из модели устройства qemu в гостевое или хостовое (что более подходит) пространство пользователя.
Моей первой идеей было использовать символьное устройство pipe, встроенное в qemu. Можно ли открыть и записать на символьное устройство из контекста устройства qemu pci? Я имею в виду, что я хотел бы взаимодействовать с чем-то вроде / dev / pipe_to_host в коде edu.c.
Если нет или если это невозможно, существуют ли другие способы взаимодействия с хостом или гостевым пользовательским пространством напрямую через FIFO-подобную структуру из устройства qemu pci?