diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 15:35:35 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 15:35:35 -0400 |
| commit | fe3b01b72cba79d4b14875e6940a87987ad196a9 (patch) | |
| tree | 59fa3342e0f3b32772c3d64be96514a0c6119ba2 /docs | |
| parent | 69f0c2dbc4cd5f61302ae8d70002e1a1eb96da52 (diff) | |
| download | open-iov-fe3b01b72cba79d4b14875e6940a87987ad196a9.tar.gz open-iov-fe3b01b72cba79d4b14875e6940a87987ad196a9.zip | |
gsp-phys: populate the chipset/CL block of the pre-boot system info
Fill the GspSystemInfo chipset fields the production client syncs before
the GSP boot instead of leaving them zero:
- clPdbProperties (bitmask in the client's clSyncWithGsp order): bit 0
(config space accessible, from the OS MCFG/ECAM availability), bit 7
and bit 21 (Intel Skylake-family upstream-port setup: ASPM POR list,
root-port nosnoop WAR), bit 13 (upstream port ASPM L1 capable), bit 27
(LTR supported+enabled up to the root port) and bit 32 (IO coherent).
PDB_PROP_CL_UNSUPPORTED_CHIPSET is never assigned by the client, so the
faithful unmatched-chipset value is 0.
- Chipset = 0 (CS_UNKNOWN) for a host bridge with no chipsetInfo[] entry,
the reference's no-match fallback.
- FHBBusInfo/chipsetIDInfo: 10-byte BUSINFO blobs of the first host
bridge of the GPU's domain (device, vendor, subdevice, subvendor,
revision), with the subsystem-capability fallback on chipsetIDInfo.
acpiMethodData is intentionally sent all-zero (bValid=0): no ACPI/AML
calls are made and every consumer tolerates the no-data encoding. All
device lookups use refcounted pci_get_device()/pci_dev_put().
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/03-architecture/08-physical-gpu-integration.md | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/docs/03-architecture/08-physical-gpu-integration.md b/docs/03-architecture/08-physical-gpu-integration.md index 9949227..2ea44a1 100644 --- a/docs/03-architecture/08-physical-gpu-integration.md +++ b/docs/03-architecture/08-physical-gpu-integration.md @@ -201,7 +201,14 @@ Booter Load kick the module also queues the two pre-boot asynchronous init RPCs the production client sends in the same spot: `GSP_SET_SYSTEM_INFO` (72, the host/GPU address and PCI environment description GSP-RM consumes before it creates its GPU object) and `SET_REGISTRY` (73; a header-only empty table, -which the server explicitly accepts). The server +which the server explicitly accepts). The system-info payload also carries the +chipset description the production client syncs into the firmware before boot: +the core-logic property bitmask, the `Chipset` value and two host-bridge +BUSINFO blobs (device/vendor/subsystem ids and revision of the first host +bridge of the GPU's domain), built from the live PCI topology +(root-port/chipset class match, upstream link and LTR capabilities). The ACPI +method-data block is sent invalid/zero: the boot path deliberately makes no +ACPI/AML calls and every consumer tolerates the no-data encoding. The server waits for the host to execute the sequencer command buffer carried in that event before it raises `GSP_INIT_DONE` (0x1001). **A plain release is not yet possible:** the Booter Unload gate requires all four secure scratch14 handoff |
