[coreboot] unexpected exception errors loading vga rom

Joseph Smith joe at settoplinux.org
Wed Apr 29 05:38:12 CEST 2009




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???

-- 
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org





More information about the coreboot mailing list