On 09/18/2011 06:45 AM, Avi Kivity wrote: >> + /* The PCI-ISA bridge should have been configured properly such that >> + this works for PCI devices as well. This only supports one bridge, >> + but "secondary" VGA cards are generally accessed by MMIO only >> anyway. */ >> + isa_register_portio_list(NULL, 0x3b0, vga_portio_list, s, "vga"); >> >> memory_region_init_io(vga_mem,&vga_mem_ops, s, > > This is called even for pci machines which have no ISA bus (and even > if they did, the code should work wit the pci bus, not ISA). The code > should return the portio list of the caller to register, or perhaps > accept a callback to do the registration.
You're over-thinking this. It's all legacy ISA crap full stop. If the machine doesn't have a PCI-ISA bridge, then the machine will also be prepared to access the VGA registers via its BARs. In such a case we just should skip this entire section. Probably isa_register_portio_list should simply notice no ISA bus has been registered and do nothing. r~