From 4ceb08c2e4d07edc1ebed46b1ed2a2bce00f24e7 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Thu, 1 Oct 2026 13:49:50 -0400 Subject: gsp-phys: send the host default registry profile with RmDisableDisplay for GSP-RM init The pre-boot SET_REGISTRY (function 73) submitted an empty PACKED_REGISTRY_TABLE. Replace it with the default registry profile the host driver sends before boot: the 35 default dword parameters from its 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 instead of being brought up on a headless boot. The payload is generated into kernel/gsp_phys_registry_img.h as a PACKED_REGISTRY_TABLE blob (8-byte header, 36 16-byte dword entries, NUL-terminated names after the array; values inline; no value bytes in the name blob, matching the reference packer): size 1342, numEntries 36, rpc.length 1374, one 4 KB element. fn72 is unchanged. The payload length is not 8-byte aligned (record 1390 -> 1392); the TX producer already zero-pads the kvzalloc'd staging record and folds the XOR checksum over the padded length, exactly like the reference producer zero-pads before _checkSum32, so no producer change is needed. The blob is static const data: no heap, no new stack frame, and a submit failure still aborts the boot. The prepared log line now prints the payload size and entry count. --- kernel/gsp_phys_booter.c | 48 +++++++------- kernel/gsp_phys_registry_img.h | 143 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+), 25 deletions(-) create mode 100644 kernel/gsp_phys_registry_img.h diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index d59da78..9a170c9 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -51,6 +51,7 @@ #include "gsp_phys_gpu.h" #include "gsp_phys_booter_load_img.h" #include "gsp_phys_gsp_rm_boot_img.h" +#include "gsp_phys_registry_img.h" static bool gsp_phys_boot_param; module_param_named(gsp_phys_boot, gsp_phys_boot_param, bool, 0644); @@ -504,10 +505,9 @@ 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. - * An empty table is size = 8, numEntries = 0 and is explicitly accepted by - * the GSP-RM server: _rpcSetRegistry maps osUnpackageRegistry()'s - * NV_WARN_NOTHING_TO_DO to "Registry is empty." and continues (the Nouveau - * client is documented to send no keys). Payload 8 bytes, rpc.length = 40. + * 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. */ struct gsp_phys_packed_registry_entry { __le32 name_offset; /* offset from table base to the NUL-terminated name */ @@ -2984,17 +2984,15 @@ static void gsp_phys_preinit_fill_system_info( * Queue the two pre-boot async init RPCs the reference calls * kgspQueueAsyncInitRpcs (kernel_gsp.c:3358-3381): GSP_SET_SYSTEM_INFO (72, * rpcGspSetSystemInfo_v17_00, 928-byte payload) then SET_REGISTRY (73, - * rpcSetRegistry_v17_00, empty PACKED_REGISTRY_TABLE: size 8/numEntries 0, - * which the GSP-RM server accepts and continues on). Both are fire-and-forget - * (no rpc_result wait): the GSP-RM server's function table entries return - * "nothing" and no reply is expected. The existing TX producer already has - * submit-only semantics, so both records go through gsp_phys_queue_tx_submit - * with increasing seqNum. + * rpcSetRegistry_v17_00, the host driver's default registry profile plus + * RmDisableDisplay=1). Both are fire-and-forget (no rpc_result wait): the + * GSP-RM server's function table entries return "nothing" and no reply is + * expected. The existing TX producer already has submit-only semantics, so + * both records go through gsp_phys_queue_tx_submit with increasing seqNum. */ static int gsp_phys_preinit_rpcs(void __iomem *bar0, struct pci_dev *pdev) { struct gsp_phys_gsp_system_info *info; - struct gsp_phys_packed_registry_table *reg; int ret; info = kzalloc(sizeof(*info), GFP_KERNEL); @@ -3029,23 +3027,23 @@ static int gsp_phys_preinit_rpcs(void __iomem *bar0, struct pci_dev *pdev) } /* - * Empty registry table (size 8, numEntries 0): the reference CPU-RM - * treats an empty local table as a warning, but the GSP-RM server - * explicitly maps osUnpackageRegistry()'s NV_WARN_NOTHING_TO_DO to - * "Registry is empty." and answers success, so the header-only form - * is the minimal valid payload. + * 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 + * 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. */ - reg = kzalloc(sizeof(*reg), GFP_KERNEL); - if (!reg) - return -ENOMEM; - reg->size = cpu_to_le32(sizeof(*reg)); - reg->num_entries = cpu_to_le32(0); - pr_info("gsp-phys-boot: pre-boot SET_REGISTRY (fn%u) prepared: size=%u numEntries=0 (header-only table; GSP-RM accepts the empty case)\n", - GSP_PHYS_RPC_FUNC_SET_REGISTRY, (unsigned int)sizeof(*reg)); + pr_info("gsp-phys-boot: pre-boot SET_REGISTRY (fn%u) prepared: size=%u numEntries=%u (host default profile + RmDisableDisplay=1)\n", + GSP_PHYS_RPC_FUNC_SET_REGISTRY, + (unsigned int)GSP_PHYS_REGISTRY_IMAGE_SIZE, + get_unaligned_le32(gsp_phys_registry_image + 4)); ret = gsp_phys_queue_tx_submit(bar0, GSP_PHYS_RPC_FUNC_SET_REGISTRY, - reg, sizeof(*reg)); - kfree(reg); + gsp_phys_registry_image, + GSP_PHYS_REGISTRY_IMAGE_SIZE); if (ret) { pr_err("gsp-phys-boot: pre-boot SET_REGISTRY (fn%u) submit failed: %d\n", GSP_PHYS_RPC_FUNC_SET_REGISTRY, ret); diff --git a/kernel/gsp_phys_registry_img.h b/kernel/gsp_phys_registry_img.h new file mode 100644 index 0000000..3a70816 --- /dev/null +++ b/kernel/gsp_phys_registry_img.h @@ -0,0 +1,143 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * SET_REGISTRY (function 73) payload: the default registry profile the + * host driver sends, plus RmDisableDisplay=1. + * + * The 36 dword entries are the host driver's default parameter table + * (35 entries: the nv_parms defaults) followed by RmDisableDisplay=1, + * which makes the display engine fail its presence check during GSP-RM + * pre-init so the display engine is torn down before state init. + * + * Layout: 8-byte PACKED_REGISTRY_TABLE header (size, numEntries), + * 36 * 16-byte PACKED_REGISTRY_ENTRY records (nameOffset, type=1, + * inline dword data, length=4), then the NUL-terminated names in entry + * order. Dword values are inline in the entry records, so the blob is + * names only (the reference packer copies no value bytes for dwords). + * Payload size 1342 bytes: 8 + 36*16 + 758 (names blob). + * + * Generated table; do not edit by hand. + */ + +#ifndef GSP_PHYS_REGISTRY_IMG_H +#define GSP_PHYS_REGISTRY_IMG_H + +#include + +#define GSP_PHYS_REGISTRY_IMAGE_SIZE 1342 + +static const u8 gsp_phys_registry_image[GSP_PHYS_REGISTRY_IMAGE_SIZE] = { + 0x3e, 0x05, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x59, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x63, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x83, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x91, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xc2, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xe2, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x26, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x36, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x49, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x62, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x85, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xa4, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xbe, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xe6, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xfd, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x28, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3a, 0x04, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x58, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6b, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7d, 0x04, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x93, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xae, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc2, 0x04, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xde, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xef, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x13, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2d, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x6d, + 0x61, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x00, 0x52, 0x6d, 0x4c, 0x6f, 0x67, 0x6f, 0x6e, 0x52, 0x43, 0x00, 0x4d, + 0x6f, 0x64, 0x69, 0x66, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x00, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x55, 0x49, 0x44, 0x00, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x47, 0x49, 0x44, 0x00, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x00, + 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x00, 0x55, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x4d, 0x53, 0x49, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x43, 0x49, 0x65, 0x47, 0x65, 0x6e, 0x33, 0x00, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, + 0x4b, 0x4d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x48, 0x65, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x56, 0x4d, 0x61, 0x6c, 0x6c, + 0x6f, 0x63, 0x48, 0x65, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4d, 0x4d, 0x49, 0x4f, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x4f, 0x50, 0x73, + 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x55, 0x4d, 0x41, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x00, 0x4e, 0x76, 0x4c, 0x69, 0x6e, 0x6b, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x00, 0x52, 0x6d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x69, 0x6e, 0x67, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, + 0x00, 0x50, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x00, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x53, 0x30, 0x69, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x53, 0x30, + 0x69, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x00, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x00, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x00, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x43, 0x49, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x43, 0x49, 0x45, + 0x52, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x00, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x72, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x70, 0x75, + 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x00, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x70, 0x75, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x00, 0x52, 0x6d, 0x4e, 0x76, 0x6c, + 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x4c, 0x69, 0x6e, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x00, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x62, 0x67, 0x42, 0x72, 0x65, 0x61, 0x6b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x00, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x6d, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x47, 0x70, 0x75, 0x73, 0x00, 0x44, 0x6d, + 0x61, 0x52, 0x65, 0x6d, 0x61, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x6d, + 0x69, 0x6f, 0x00, 0x49, 0x6d, 0x65, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x00, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x6d, 0x65, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x30, 0x00, 0x47, 0x72, 0x64, 0x6d, 0x61, 0x50, 0x63, 0x69, 0x54, + 0x6f, 0x70, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x00, 0x52, 0x6d, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x00, +}; + +#endif /* GSP_PHYS_REGISTRY_IMG_H */ -- cgit v1.2.3