This bit can be set for one PCIe "port" or the other, actually two possible settings but both cannot be enabled in the same time. So the bit to set depends where the GFX card is attached in fact. Should we proceed with this "detection" to set the correct bit or can we assume the user connects his card to PCIe SLOT0, in this case we hard code the correct bit setting for PCIe SLOT0?
So far I am doing this in the auto.c file after the RAM verification, and this is not the best place to do that, I know. Where would be the best place to patch that in? In a way we are only setting one bit nothing more.
As far as I know, this is supposed to be done by the option CONFIG_CONSOLE_VGA. (For example, see set_vga_bridge_bits() in src/devices/device.c.) If that option isn't setting all the bits, then it sounds like it needs to be extended.
Actually this function does not set any bits to the hardware I believe. Just setting up some bits in the device structure. The bit enable thing for the root complex is going to be 80579 specific not sure it should be part of this file. Actually enabling these bits means write to the PCI configuration space.
I guess I could add a vga_enable.c part of northbridge/i3100 and call this function from auto.c or something like that, not sure if that would be fine or not.
The correct way to do this is to add the functionality to the chipset init function. It should check the bit that was set in the device structure and write the correct thing to the PCI configuration space.
Thanks, Myles