Hi
W dniu 22.03.2022 o 10:30, Arthur Heymans pisze:
Hi
e.g. if we got from HOB info that physical stack x has
preallocated PCI buses 0x20..0x2f, io form 0x2000..0x2fff, mem
0xd0000000..0xdfffffff, mem 0x10000000000...0x1ffffffffff and
there are 2 root buses 0x20 and 0x28 instead of adding one domain
with "physical" stack we added two domains with "virtual" stacks:
stack x1 with virtually preallocated PCI buses 0x20..0x27, ip form
0x2000..0x27ff, mem 0xd0000000..0xd7ffffff, mem
0x10000000000...0x17fffffffff
stack x2 with virtually preallocated PCI buses 0x28..0x2f, ip form
0x2800..0x2fff, mem 0xd7000000..0xdfffffff, mem
0x18000000000...0x1ffffffffff
Each one with only one root bus without this link_list->next
"complexity"
This only works if the downstream resources fit in this split virtual
allocation, which you can't know before reading all downstream resources.
Especially for mem32 resources the resource allocation is already
tight so I think this can get ugly.
Today most resources are mem64 "ready" and above 4G window is big enough
so using "prefer 64bit strategy" practically eliminates this tight on
mem32 range
At some point of time I was thinking about something called
"subdomains" concept to cover this multiple root buses in one
domain case so to make something like:
domain 0 //domain
domain 1 //subdomain
first root bus from stack x and its downstream devices
end
domain 2 //subdomain
second root bus from stack x and its downstream devices
end
end
domain ...
...
end
...
T8he way I understood it, domains are a set of resource windows to be
constrained and then distributed over children and in this case
children over multiple PCI root busses.
I have some doubts that subdomains map the situation
correctly/efficiently, because it has essentially the same problem as
knowing how to split the resources between domains correctly.
As I stated it was never implemented as subdomain level device is more a
"bridge device" than "domain device"
OTOH, does it even make sense to map this in the devicetree? The way
FSP reports stacks is generated at runtime and differs depending on
the hardware configuration.
So having a static structure mapping that may not be interesting?
Arthur
It depends if few ms in boot time does matter.
It also depends on SoCs familly. Didn`t checked xeon but on SoCs I was
worked on most of stack configuration was common to whole family with
only minor differences on 1 or 2 stacks.
Mariusz
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org