* Richard Smith smithbone@gmail.com [060421 18:05]:
I have modified the epia-m auto.c to have a ifdef wrapper around the section that disables the firewire bridge. I called it DISABLE_FIREWIRE. I added uses DISABLE_FIREWIRE to the Options.lb and setup a defaut.
you need to add the option in src/config/Options.lb as well.
I then created a new target called epia-ml that just uses the epia-m mainboard but would disable the firewire disable section.
Another idea: /* * Disable the firewire stuff, which apparently steps on IO 0+ * on * reset. Doh! */ dev = pci_locate_device(PCI_ID(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_6305), 0); if (dev != PCI_DEV_INVALID) { pci_write_config8(dev, 0x15, 0x1c); }
This is the problematic code, especially pci_locate_device.
I would guess this is messing up boot times on all systems that it is running on without finding a device.
Idea: We should add a maximum bus number to it, so we can look for the device on bus0 only for example, or on the first 10 busses, if we know its an epia that will never have an onboard device with a bus number higher than that. Searching 256 busses takes a while, no doubt. And its not a smart thing to do at this place either.
Stefan