On Tue, Apr 28, 2009 at 8:38 PM, Joseph Smith joe@settoplinux.org wrote:
- In auto.c I disabled the modem right off through the LPC device:
/* Set the LPC device statically. */ dev = PCI_DEV(0x0, 0x1f, 0x0);
/* Disable Modem. */ pci_write_config8(dev, 0xf2, 0x40);
What is the effect of this? Does it make it so that the modem is not visible in PCI config space? If that is indeed what you are doing, that's good. It's the kind of thing that we have to do all the time.
- I completely removed the modem code from
src/mainboard/thomson/ip1000/Config.lb
- device pci 1f.6 off end # AC'97 modem
This should not really matter either way if step 1 worked. I suspect that step 1 is having no effect.
What this means is that if this pci device is found it should no be enabled. But this is in the sense of the CMD register, not in the sense of visibility in pci config space.
- Then I completely removed the modem code from
src/southbridge/intel/i82801xx/i82801xx_ac97.c
Icky. You should never touch this type of file. If you have to then something is quite broken. Note that if step (1) above really removes the device from config space, then the presence of this code is not important.
-static const struct pci_driver i82801db_ac97_modem __pci_driver = {
- .ops = &ac97_ops,
- .vendor = PCI_VENDOR_ID_INTEL,
- .device = PCI_DEVICE_ID_INTEL_82801DB_AC97_MODEM,
-};
If you really disabled the device in the 'not visible in config space' sense then the device code for the device will not get run. So I suspect step 1 had no real effect.
I have tried Just step 1 with no luck, and step 1 & 2 with no luck. So even with the device disabled via the LPC and coreboot something from the i82801db_ac97_modem() is still partially initializing causing this io crazyness. I can submit a patch for steps 1-2 but....my question is how can I completely disable the i82801db_ac97_modem() driver without having to manually delete code every time I use a new revision???
I think something in step 1 is not working the way you think it is.
Don't forget: there is a difference between 'not visible in config space' and 'not enabled but visible'.
Maybe a #ifdef to global disable modem define???
definitely not :-)
Thanks for your patience on this. I admire your persistence. We'll get it.
ron