[COMMIT] Infrastructure Updates 4
Eric W. Biederman
ebiederman at lnxi.com
Wed Sep 3 12:51:01 CEST 2003
Stefan Reinauer <stepan at suse.de> writes:
> * Eric W. Biederman <ebiederman at lnxi.com> [030903 17:47]:
> > First the most basic result I have is that I need to know what all of the
> > logical devices that come out of a chip are.
>
> > So off of each logical device I have one or more channels. The only
> > way I could think of to describe multiple channels is to repeat
> > the logical device in the configuration file.
> >
> > All of the logical device paths are relative to the device they are hanging
> > off of (it just looks like the bus number). So to say the amd/amd8131 was
> > hanging off of the second hypertransport link I would change it's logical
> > devices to:
> >
> > southbridge amd/amd8131 "amd8131"
> > pci 1:0.0
> > pci 1:0.1
> > pci 1:1.0
> > pci 1:1.1
> > end
> >
> > I am not saying that is the best way to go, but it currently works.
>
> Ah. this is fine and allows porting linuxbios easily to new opteron
> mainboards.
> I see some drawbacks:
>
> * the logical devices of the amd8131 pci-x bridge has to be described in
> the mainboard configuration file. This means a lot of duplicate config
> "code" spread over the mainboard directory. Can this somehow go to the
> Config.lb file in southbridge/amd/amd8131/ ?
Yes. But at the same time everything there is explicit and up front.
Which is not necessarily a bad thing. It is very hard to see what is going
on if you introduce a level of indirection here to be more sparse.
I have tried for the most part to ensure that if you don't mention a logical
device it still turns up. It is just that you can not feed it any static configuration
if it is not mentioned.
> * The device description itself and the link (channel?) information is
> intermixed (preventing above config change from happening)
I introduced channel because that is a concept that is purely in the
configuration. How that maps to hardware capabilities can vary.
Think a pci bridge chip with 8 pci busses hanging off of it, for
the kinds of problem I was trying to solve.
> * link information is duplicate. This might be a feature though when
> devices happen that connect to more than one link. (Is this
> theoretically possible, i.e. to raise bandwidth?)
A little.
> > The register "up" is something that has not been used at all yet. Personally
> > I am not comfortable with the fact that we have both cpu and northbridge
> > instances for the cpus..
>
> This looks weird for the opteron case, true. But most architectures
> still don't come with an on-cpu northbridge, so keeping that seperated
> might be a good idea (in case a certain northbridge can cope with
> several cpu types)
Right. Which is why I have not messed with it yet.
I have just stared with a rough draft that works. I don't have
problems with changing it, so long as all of the requirements are met.
> > > Does it look like this? :
> > >
> > > 8111
> > > |
> > > 8131
> > > |
> > > CPU0 -- CPU1
> >
> > Yes. The order of the device structures is significant.
>
> should this:
>
> southbridge amd/amd8131 "amd8131"
> pci 0:0.0
> pci 0:0.1
> pci 0:1.0
> pci 0:1.1
> end
> southbridge amd/amd8111 "amd8111"
> pci 0:0.0
> pci 0:1.0
> [..]
> end
>
> not rather look like this then: ?
>
> southbridge amd/amd8131 "amd8131"
> pci 0:0.0
> pci 0:0.1
> pci 0:1.0
> pci 0:1.1
> southbridge amd/amd8111 "amd8111"
> pci 1:0.0
> pci 1:1.0
> [..]
> end
> end
Quite possibly. A hypertransport chain is a weird case. For the
moment I am treating it like a weird pci bus, and that seems to
work... But further nesting might not be bad with the right set of
changes.
> > Yes. Except I don't yet have a way to automatically down clock it from 800Mhz
> > which it claims it can do but cannot.
>
> this seems only like a matter of the information not being parsed from
> an appropriate place in the config file yet.
Yep, pretty much. Although for bug fixes I would like it if the
configuration file didn't have to be involved. Just the driver for
the 8131 saying that it can't do 800Mhz which is a slightly different
thing.
Eric
More information about the coreboot
mailing list