[coreboot] HT chains fixup

Myles Watson mylesgw at gmail.com
Fri Nov 21 04:21:37 CET 2008

> -----Original Message-----
> From: coreboot-bounces at coreboot.org [mailto:coreboot-bounces at coreboot.org]
> On Behalf Of Peter Stuge
> Sent: Thursday, November 20, 2008 4:32 PM
> To: Coreboot
> Subject: Re: [coreboot] HT chains fixup
> Myles Watson wrote:
> > I'm hoping to come out of this with much simpler code.
> Reading up on this thread, I think you will. Looks like very good
> progress.

> Some comments;
> I would like the dtb to be available and usable earlier rather than
> later. I like that we can use it more.

I agree. I think the more things we make explicit in the dts, the easier it
will be to port boards to v3.

> As Myles hinted at, I think HT does require us to have offset support
> in the tree.
> This also means that HT has to be treated differently than PCI. I
> didn't really like the idea of simplifying HT out of the tree, but -
> as Myles pointed out - I'm still learning about HT. :)

That wasn't directed to anyone in particular.  Hopefully as we clean up the
code it will be more and more obvious to everyone how it works and why it
should be implemented in the way we chose.

> How does HT unit arbitration work at power up? Ie. what determines
> the order of unit 0:s?

There is no arbitration.  HT is point-to-point, so you always know which one
you're talking to.  The closest device set to the correct UnitID responds.
At power up all of them are set to 0, so you can only see the configuration
space of the first device (link on the chain.)  If you want to be able to
read configuration registers of the next device, you have to move the first
device away from zero.  Then the next read at 0 will be the next device.  If
it's the last device, when you move it no one responds at 0 and you know
you're done. 

As soon as the UnitIDs are set, it appears to be PCI.


More information about the coreboot mailing list