[coreboot] v3 HT

Marc Jones Marc.Jones at amd.com
Mon Oct 27 22:55:49 CET 2008


Myles Watson wrote:
> 
>> -----Original Message-----
>> From: Marc Jones [mailto:Marc.Jones at amd.com]
>> Sent: Monday, October 27, 2008 3:26 PM
>> To: Myles Watson
>> Cc: 'ron minnich'; 'Coreboot'
>> Subject: Re: [coreboot] v3 HT
>>
>> Myles Watson wrote:
>>>> -----Original Message-----
>>>> From: Marc Jones [mailto:Marc.Jones at amd.com]
>>>> Sent: Monday, October 27, 2008 3:10 PM
>>>> To: Myles Watson
>>>> Cc: 'ron minnich'; 'Coreboot'
>>>> Subject: Re: [coreboot] v3 HT
>>>>
>>>> Myles Watson wrote:
>>>>>> -----Original Message-----
>>>>>> From: ron minnich [mailto:rminnich at gmail.com]
>>>>>> Sent: Monday, October 27, 2008 8:57 AM
>>>>>> To: Myles Watson
>>>>>> Cc: Coreboot
>>>>>> Subject: Re: [coreboot] v3 HT
>>>>>>
>>>>>> On Mon, Oct 27, 2008 at 7:48 AM, Myles Watson <mylesgw at gmail.com>
>>>> wrote:
>>>>>>> I don't think we need to expand the dts to fix this, we just need to
>>>>>> make
>>>>>>> the code match the structure.
>>>>>> Do you have a rough idea of how this would look in the code? This is
>> a
>>>>>> good catch.
>>>>> Right now the code goes through the list of children and initializes
>>>> them as
>>>>> bridges, without checking to see that they are.  Then it enumerates
>> them
>>>>> with the pci code.
>>>>>
>>>>> I think we'd have to find the children that are bridges and then
>>>> enumerate
>>>>> them with the list of children, so that we can pass parameters
>>>> correctly.  I
>>>>> don't think it would be too hard.
>>>>>
>>>>> 1. Find bridges and set them to not decode
>>>>> 2. Set first bridge to decode all device numbers (HT Unit IDs)
>>>>> 3. Do PCI scan on bridge with remaining non-bridge children
>>>>> 4. Find next bridge
>>>>> 5. Set to decode next device numbers
>>>>> 6. Goto 3
>>>> I think that the dts is can/should to handle arbitrary bus numbering
>>>> (since a bridge can be plugged into any slot making everything change).
>>>> The numbers are not so important if as long as the tree has the same
>>>> connections (bridgeA has device 1, 2, 3 and bridgeB has x, y, z).
>>>>
>>>> I don't think that you need a bridge scan before the device scan. It
>> can
>>>> be done as one. The device tree just needs to note the appropriate
>>>> decode (bus number) for the bridge and the devices under it. Also, If
>>>> the bus is already numbered we we shouldn't change it. Just use what is
>>>> set.
>>> So the collapse existing enumeration needs to be taken out?
>> I didn't know that there was a collapse. That might not be good since a
>> bridge could be "hard coded" to a location. That is ok if bus numbers
>> are arbitrary. It they get colapsed that would be bad. I need to go
>> understand this part of the dts/scan more.
> 
> It's not part of the dts.  It's also in v2 ht_collapse_early_enumeration.

Oh, It is fine for the HT code to do a collapse before dts/pci 
enumeration. The dts should assume that its correct. The dts/device code 
should be able to handle any arbitrary bus numbering that was set prior 
to it running.

Marc


-- 
Marc Jones
Senior Firmware Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com
http://www.amd.com/embeddedprocessors





More information about the coreboot mailing list