[U-Boot] [PATCH] powerpc/85xx: compare actual device addresses with the device tree

Scott Wood
2010-11-10T21:49:02Z

On Wed, 10 Nov 2010 22:30:07 +0100
Wolfgang Denk <wd@denx.de> wrote:

> Dear Scott Wood,
>
> In message <20101110151241.49d687e8@udp111988uds.am.freescale.net> you wrote:
> >
> > > Would that hurt? I though Linux does it's own initialization of the
> > > PCI system anyway, so does it matter what we did in U-Boot?
> >
> > It's caused us problems in the past on 83xx. I think it still relies
> > on U-Boot's config.
>
> I tend to consider this a bug in the Linux code, then.

Possibly -- and certainly it doesn't seem like something that should be
one way on 83xx and another way on 85xx. There are some cooperative AMP
cases where it's easier to have Linux just not touch anything, though
that needn't affect what happens in the normal case. I do recall the
server-side powerpc people liking to keep all PCI device assignments as
the firmware left them, as they tend to have early consoles on PCI and
don't want to disrupt them by moving BARs around (esp. if debug output
is enabled in the PCI code).

There could be some weirdness if the mismatch causes there to be
overlap with something else that U-Boot has set up -- possibly just
temporarily, such as if U-Boot assigns address X to PCI0 and Y to
PCI1, and Linux assigns address X to PCI1 and Y to PCI0. Linux might
set PCI0 to the new address and try to initialize it before it gets to
looking at PCI1.

In general, it seems like something that we'd like to know about if
they don't match, even if we fix the 83xx dependency.

Also, while 85xx sets the ATMU registers, I don't see where Linux sets
the LAWs.

-Scott