[coreboot] unexpected exception errors loading vga rom

ron minnich rminnich at gmail.com
Thu Apr 30 01:36:57 CEST 2009


On Tue, Apr 28, 2009 at 8:38 PM, Joseph Smith <joe at settoplinux.org> wrote:

> 1. 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.

>
>
> 2. 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.
>
> 3. 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




More information about the coreboot mailing list