On 24.10.2008 20:14, Marc Jones wrote:
> Carl-Daniel Hailfinger wrote:
>> Hi,
>>
>> I'm trying to understand how HT is modeled into PCI space so that I can
>> propose the "right" way to handle it in the dts.
>> Depending on whether I run lspci -t under coreboot or factory BIOS,
>> different topologies will be displayed. That means looking at lspci is
>> not going to tell me how the hardware really works.
>>
>> Given a standard setup with three HT links from the CPU, where do I find
>> which device?
>> Is PCI device 18.0 sort of a PCI bridge which has multiple PCI buses (HT
>> links) behind itself?
>
>>
>> Or is the hardware organized in a completely different way? I'm
>> especially curious about the MP scenario as depicted above. Where do the
>> PCI functions of 18.[0123] reside?
>>
>
> This is why you don't want to mix the ht links and the pci bus. The
> physical layout and the logical layout on pci are different. the lspci
> -t view is the correct view.

Except that it sometimes differs (at least in numbering) between
coreboot and factory BIOS, so I'm not sure which aspects of lspci -t are
immutable and which are arbitrary.

> That is how the devices are addressed. Several different physical
> layouts will get you the same logical layout because of how pci buses
> are scanned.

Interesting.

> this
> cpu --- pci
>  |
> cpu --- pci
>
> would be equivalent to this (although unlikely topology)
> cpu --- pci
>  | \--- pci
> cpu
>
> I think it would be a mistake to over complicate the dts with the
> physical connections.

Is the "pci" in your graphics above a bus or a device?
>From your answer it seems that "pci" represents a bus. Do 18.[0123],
19.[0123] and other processor devices all live on PCI bus 0? Is that bus
somewhat related to the buses attached via ncHT? IIRC I once saw a
machine where 18.[0123] was alone on bus 0 and all other PCI devices
were on separate buses.

Taking the "everything is PCI" model, how would I specify the virtual
PCI buses attached via ncHT? Are they children (secondary buses) of 18.0
which would act like a PCI-to-PCI bridge?


> The dts should be easy for people to fill in to make a platform work.

Agreed.


> They don't know (or need to know) what ht links are connecting the cpu
> and what ones go to pci bus.

They need a way to specify settings for any given PCI device. Since most
modern machines have multiple PCI devices with the same vendor/device
ID, we have to be able to identify devices based on their logical path.
For that, we have to model the logical PCI bus/device/tree reasonably
well. I'm trying to do that, but no model seems to fit.


Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/


--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to