[coreboot] Subtractive Resources

Myles Watson mylesgw at gmail.com
Fri Nov 7 17:46:51 CET 2008



> -----Original Message-----
> From: ron minnich [mailto:rminnich at gmail.com]
> Sent: Friday, November 07, 2008 9:24 AM
> To: Myles Watson
> Cc: Coreboot
> Subject: Re: Subtractive Resources
> 
> On Fri, Nov 7, 2008 at 7:18 AM, Myles Watson <mylesgw at gmail.com> wrote:
> > I'm running into a problem when resources are read.
> >
> > The amd8111 adds two subtractive resources on link 0.  The problem is
> that
> > it has no link 0.
> 
> This is usually a sign that I got the dtc wrong somehow.
> 
> Here is v2:
> struct device _dev15 = {
>         .ops = 0,
>         .bus = &_dev8.link[0],
>         .path = {.type=DEVICE_PATH_PCI,.u={.pci={ .devfn =
> PCI_DEVFN(0x0,0)}}},
>         .enabled = 1,
>         .on_mainboard = 1,
>         .link = {
>                 [0] = {
>                         .link = 0,
>                         .dev = &_dev15,
>                         .children = &_dev16,
>                 },
>         },
>         .links = 1,
>         .sibling = &_dev20,
>         .chip_ops = &southbridge_amd_amd8111_ops,
>         .chip_info = &southbridge_amd_amd8111_info_14,
>         .next=&_dev16
> };
> 
> and
> 
> struct device _dev16 = {
>         .ops = 0,
>         .bus = &_dev15.link[0],
>         .path = {.type=DEVICE_PATH_PCI,.u={.pci={ .devfn =
> PCI_DEVFN(0x0,0)}}},
>         .enabled = 1,
>         .on_mainboard = 1,
>         .link = {
>         },
>         .links = 0,
>         .sibling = &_dev17,
>         .chip_ops = &southbridge_amd_amd8111_ops,
>         .chip_info = &southbridge_amd_amd8111_info_14,
>         .next=&_dev17
> };
> 
> 
> So the amd8111 is a bridge that needs resources.

My understanding is that the amd8111 _has_ a bridge, but the device that is
causing the problem is lpc, which is not a bridge, nor behind the amd8111's
bridge.  So when its resources are read and it is found to have subtractive
resources, the code tries to descend.  It doesn't have a bus, and this
fails.

> That said, you said your change fixes it. Does that mean serengeti
> works? It's hard to see how given that this is a bridge.

Sorry I wasn't more clear.  I meant that the fix no longer tries to call
functions with NULL pointers.  I don't think the dts is wrong, but I think
that there are a lot fewer intermediaries in v3 then there were in v2.

Thanks,
Myles





More information about the coreboot mailing list