[coreboot] unexpected exception errors loading vga rom

ron minnich rminnich at gmail.com
Wed Apr 29 07:46:54 CEST 2009


On Tue, Apr 28, 2009 at 8:38 PM, Joseph Smith <joe at settoplinux.org> wrote:
>
>
>
> On Mon, 27 Apr 2009 10:14:02 +0200, Stefan Reinauer <stepan at coresystems.de>
> wrote:
>> On 27.04.2009 9:55 Uhr, Joseph Smith wrote:
>>> Well, I have confirmed the problem. Looks there is something crazy about
>>> how the ethernet and modem (even though the IP1000 doesn't actually have
>> a
>>> modem) are setup. If I disable the ICH4 ethernet and enable the AC97
>> ICH4
>>> modem, sure as shit it boots up everytime (VGA too) and all IRQS look
>>> great. If I enable both of them EVERYTHING gets IRQ 0, and I have
>> issues.
>>> If I enable ethernet and disable the modem (this is the way it should
>> be)
>>> EVERYTHING gets IRQ 0, and I have issues.....
>>>
>>> Anyone seen this kind of thing before? I have no idea how to fix this
>>> one....
>>>
>>>
> Well now were getting somewhere. It is as I thought. The modem and Ethernet
> were not playing nice causing io read/write issues under 0x200, hence the
> unexpected exception errors. The IRQ 0 problems also make sense because the
> interrupt controllers live in that io area correct? I guess on this board
> they were not designed to coincide...there isn't an actual on-board modem
> anyways.
>
> So here is what I did to get it working, and this is the part I need help
> with.
>
> 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);
>
>
> 2. I completely removed the modem code from
> src/mainboard/thomson/ip1000/Config.lb
>
> -      device pci 1f.6 off end          # AC'97 modem
>
> 3. Then I completely removed the modem code from
> src/southbridge/intel/i82801xx/i82801xx_ac97.c
>
> -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,
> -};
>
> And boom :-)
> I am booting like a rocket ship in action:-)
>
>
> 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???
>
> Maybe a #ifdef to  global disable modem define???

You've got this working but you are kind of abusing the build system,
esp. if you are modifying files like i82801xx_ac97.c. I will leave it
to someone else to
discuss why you don't want to do step 3 ... I'm gonna go sleep now :-)

ron




More information about the coreboot mailing list