[coreboot] unexpected exception errors loading vga rom

Joseph Smith joe at settoplinux.org
Wed Apr 29 14:42:59 CEST 2009




On Wed, 29 Apr 2009 08:27:17 -0400, Joseph Smith <joe at settoplinux.org>
wrote:
> 
> 
> 
> On Tue, 28 Apr 2009 22:46:54 -0700, ron minnich <rminnich at gmail.com>
> wrote:
>> 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 :-)
>> 
> Yes, in a perfect world I should just have to turn the device off in
> src/mainboard/thomson/ip1000/Config.lb and I would never see any traces
of
> the device.
> 
> Quote from the 82801DB datasheet LPC register 0xF2:
> "Software sets this bit to disable the AC ’97 modem controller
function.
> BIOS must not enable I/O or memory address space decode, interrupt
> generation, or any other functionality of functions that are to be
> disabled."
> 
> But just turning the device off is not performing all of the above
> functions required by the southbridge. If anyone has any suggestions on
> how
> to really disable this device without touching
> src/southbridge/intel/i82801xx/i82801xx_ac97.c I would be glad to hear
> them....
> 
By the way why are the AC97 audio and modem in one file? They are their own
PCI device and have thier own PCI config register, they should have thier
own file (this is leading into something into the future for some audio
specific stuff and modem specific stuff). If no one minds I would like to
spit this two into thier own file.

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





More information about the coreboot mailing list