-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@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.
Thanks.
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.
Thanks, Myles