So I would first check to see if the VGA adapter identification code checks the enable bit.
I added debug code that does just that.
It is quite possible that just because a device is disable that I we don't ignore it. Looking at an old version of the code, we do clearly do not check the enable bit, and just finds the first vga device on the list of all devices.
That version must be pretty old then. The current code will 'continue' the loop if the enable is not set. Here's what my VGA debug code spewed.. Notice that 12.4 is in the tree twice once disabled (where it is skipped) and then a second time where it gets picked up.
Perhaps the merge of the static and dynamic trees gets tripped up by whats in the Config.lb?
Done reading resources. Looking at device Root Device Looking at device PCI_DOMAIN: 0000 Looking at device PCI: 00:00.0 Looking at device PCI: 00:09.0 first onboard = PCI: 00:09.0 Looking at device PCI: 00:09.0 Looking at device PCI: 00:12.0 Looking at device PNP: 002e.0 Looking at device PNP: 002e.1 Looking at device PNP: 002e.2 Looking at device PNP: 002e.3 Skipping disabled device PNP: 002e.3 Looking at device PNP: 002e.4 Looking at device PNP: 002e.5 Looking at device PNP: 002e.6 Looking at device PNP: 002e.7 Looking at device PNP: 002e.8 Looking at device PCI: 00:12.1 Skipping disabled device PCI: 00:12.1 Looking at device PCI: 00:12.2 Looking at device PCI: 00:12.3 Skipping disabled device PCI: 00:12.3 Looking at device PCI: 00:12.4 Skipping disabled device PCI: 00:12.4 Looking at device PCI: 00:12.1 Looking at device PCI: 00:12.2 Looking at device PCI: 00:12.3 Looking at device PCI: 00:12.4 first onboard = PCI: 00:12.4 Looking at device PCI: 00:13.0 Looking at vga_onboard Yes: PCI: 00:12.4 Reassigning vga to PCI: 00:12.4 Allocating VGA resource PCI: 00:12.4 Setting PCI_BRIDGE_CTL_VGA for bridge PCI_DOMAIN: 0000 Setting PCI_BRIDGE_CTL_VGA for bridge Root Device
-- Richard A. Smith