12 ms·
Usually these machines come with obscure hardware interface cards (ISA card if you are lucky) and software which talks directly to those cards. Even though you
by magnat 3y ago
Usually these machines come with obscure hardware interface cards (ISA card if you are lucky) and software which talks directly to those cards. Even though you can find a modern PC with ISA slot, passing through ISA devices to a VM/emu is the hard part.
- nyanpasu64 3y agoI wonder if the MISTer FPGS running AO486 is fast enough, or the CPU is too low-spec and emulated slowly, or doesn't support physical ISA peripherals.
- ridgered4 3y agoIs it even possible to passthrough ISA to a VM? Legacy PCI is (well-ish) supported with its own quirks but I've never heard of ISA passthrough even mentioned before.
- magnat 3y agoUnlike PCI, ISA has no concept of mandatory configuration space, apart from optional Legacy Plug and Play. Worst case scenario is that ISA card responds on some arbitrary I/O port known only to manufacturer and hardcoded in driver. Since all installed cards share the bus, you can't really pass through a single card without exactly knowing its resources. In principle your VM/emulator could intercept guest reads/writes to those selected addresses and pass them (using host-side kernel driver) directly to the card. If the card uses no IRQ nor DMA, that could work. Routing IRQs would be tricky (again: determining which card raises which interrupt without global configuration registers requires a lot of manual work and/or guessing), but I guess it's doable. DMA won't work. As far as I can tell, you can't use IOMMU to isolate ISA bus memory requests, let alone isolate a single device from the bus. Without knowing how card receives DMA parameters from the driver and no hardware support to translate device-generated addresses, your card would corrupt host memory on first DMA request.