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.