summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 13:49:50 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 13:49:50 -0400
commit97e2d46daf7e26aface861bce24b767eaccc967c (patch)
treec45c2beaf9e941fb164d8a363ed6069d9ba48e4c
parent4254b221f393e5262083e5d7158110b934a52e57 (diff)
downloadopen-iov-97e2d46daf7e26aface861bce24b767eaccc967c.tar.gz
open-iov-97e2d46daf7e26aface861bce24b767eaccc967c.zip
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.
-rw-r--r--kernel/gsp_phys_booter.c48
-rw-r--r--kernel/gsp_phys_registry_img.h143
2 files changed, 166 insertions, 25 deletions
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 <linux/types.h>
+
+#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 */