With your patch I can run my ATI 5450 as primary GPU (I have no secondary at all) as basic VGA:
Windows XP can start and show the desktop if it has no installed drivers. It is very big progress for me :)
After I installed drivers it can't init the GPU. I think when you tries to install Win7 you got same - because it already have buildin drivers and tries to init extended display mode.
root@xen:/var/log/xen# tail -f /var/log/xen/qemu-dm-winxp.log
(here domU started up)
pt_iomem_map: e_phys=d0000000 maddr=d0000000 type=8 len=268435456 index=0 first_map=1
pt_bar_reg_read: first read BARs of gfx
pt_bar_reg_read: first read BARs of gfx
pt_iomem_map: e_phys=febc0000 maddr=febc0000 type=0 len=131072 index=2 first_map=1
pt_bar_reg_read: first read BARs of gfx
pt_bar_reg_read: first read BARs of gfx
pt_ioport_map: e_phys=e000 pio_base=e000 len=256 index=4 first_map=1
pt_iomem_map: e_phys=f1000000 maddr=febfc000 type=0 len=16384 index=0 first_map=1
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
(here I see windows xp 'load' progress with logo, mayb it tries to init vga)
pt_iomem_map: e_phys=ffffffff maddr=d0000000 type=8 len=268435456 index=0 first_map=0
pt_iomem_map: e_phys=ffffffff maddr=febc0000 type=0 len=131072 index=2 first_map=0
pt_ioport_map: e_phys=ffff pio_base=e000 len=256 index=4 first_map=0
pt_iomem_map: e_phys=d0000000 maddr=d0000000 type=8 len=268435456 index=0 first_map=0
pt_iomem_map: e_phys=febc0000 maddr=febc0000 type=0 len=131072 index=2 first_map=0
pt_ioport_map: e_phys=e000 pio_base=e000 len=256 index=4 first_map=0
pt_iomem_map: e_phys=ffffffff maddr=febfc000 type=0 len=16384 index=0 first_map=0
pt_pci_write_config: Warning: Guest attempt to set address to unused Base Address Register. [00:06.0][Offset:30h][Length:4]
pt_iomem_map: e_phys=f1000000 maddr=febfc000 type=0 len=16384 index=0 first_map=0
(here it must start to show the desktop)
pt_iomem_map: e_phys=ffffffff maddr=d0000000 type=8 len=268435456 index=0 first_map=0
pt_iomem_map: e_phys=ffffffff maddr=febc0000 type=0 len=131072 index=2 first_map=0
pt_ioport_map: e_phys=ffff pio_base=e000 len=256 index=4 first_map=0
pt_iomem_map: e_phys=e0000000 maddr=d0000000 type=8 len=268435456 index=0 first_map=0
pt_iomem_map: e_phys=fbfe0000 maddr=febc0000 type=0 len=131072 index=2 first_map=0
pt_ioport_map: e_phys=e000 pio_base=e000 len=256 index=4 first_map=0
(but something goes wrong :))
reset requested in cpu_handle_ioreq.
Issued domain 6 reboot
It may be problem with memory map in dsdt.asl but I don't know how it may fix. :(
Thanks a lot for your patch.
Gennady.