diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 14:12:22 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 14:12:22 -0400 |
| commit | c5e0ff01d5e969dfd649889db604f160bd4f0f82 (patch) | |
| tree | 6825144e9b32fb0c3e518efe5b15f9dd3db375a2 /kernel/gsp_phys_booter.c | |
| parent | b4cabe40e9719210984c86f785b6d7c5a4042370 (diff) | |
| download | open-iov-c5e0ff01d5e969dfd649889db604f160bd4f0f82.tar.gz open-iov-c5e0ff01d5e969dfd649889db604f160bd4f0f82.zip | |
gsp-phys: add RMDevidCheckIgnore to the registry profile
Append RMDevidCheckIgnore=1 (dword) to the pre-boot SET_REGISTRY
profile, after the 35 host default parameters and RmDisableDisplay=1.
The key is the registry escape for the static-config devid/board check
that currently fails GSP-RM init; every existing entry is unchanged.
Regenerated kernel/gsp_phys_registry_img.h with the same canonical
packing (values inline, names-only blob): size 1377, numEntries 37,
rpc.length 1409, one 4 KB element. The module code is unchanged apart
from comments: the submission and the prepared log line read the size
and entry count from the generated blob/macros.
Diffstat (limited to 'kernel/gsp_phys_booter.c')
| -rw-r--r-- | kernel/gsp_phys_booter.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index 68b71ca..9ec2f45 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -519,9 +519,10 @@ struct gsp_phys_gsp_system_info { * (g_os_nvoc.h:217-230; ABI checks gsp_abi_check.c:2126-2136). The header is * 8 bytes: `size` is the total table size (header + entry array + name/value * blob, entries[] = 16 bytes each) and `numEntries` the number of entries. - * The submitted payload is gsp_phys_registry_image[] (generated): 36 dword - * entries (the host driver's default profile plus RmDisableDisplay=1) with - * the NUL-terminated names and inline dword values after the entry array. + * The submitted payload is gsp_phys_registry_image[] (generated): 37 dword + * entries (the host driver's default profile plus RmDisableDisplay=1 and + * RMDevidCheckIgnore=1) with the NUL-terminated names and inline dword + * values after the entry array. */ struct gsp_phys_packed_registry_entry { __le32 name_offset; /* offset from table base to the NUL-terminated name */ @@ -3100,11 +3101,12 @@ static int gsp_phys_preinit_rpcs(void __iomem *bar0, struct pci_dev *pdev) } /* - * Host default registry profile (36 dword entries, 1342 bytes): the - * host driver's default parameter table plus RmDisableDisplay=1. The - * display key makes the GSP-RM display-presence check treat display as - * absent so the display engine is removed during pre-init; the rest - * reproduces the stock host environment. The payload is the generated + * Host default registry profile (37 dword entries, 1377 bytes): the + * host driver's default parameter table plus RmDisableDisplay=1 (the + * GSP-RM display-presence check treats display as absent so the display + * engine is removed during pre-init) and RMDevidCheckIgnore=1 (escape + * for the static-config devid/board check); the rest reproduces the + * stock host environment. The payload is the generated * PACKED_REGISTRY_TABLE blob (header + entries + names), not aligned * to 8 bytes; the TX producer zero-pads the staging copy and folds the * checksum over the padded length, matching the reference checksum. |
