grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v5 02/20] loader/linux: support passing rsdp address via boot par


From: Juergen Gross
Subject: [PATCH v5 02/20] loader/linux: support passing rsdp address via boot params
Date: Wed, 21 Nov 2018 15:28:37 +0100

Xen PVH guests will have the RSDP at an arbitrary address. Support that
by passing the RSDP address via the boot parameters to Linux.

Signed-off-by: Juergen Gross <address@hidden>
---
V2: add oring 0x8000 to version field
V3: move including machine/kernel.h to patch 8 (Daniel Kiper)
V5: move acpi_rsdp_addr to struct linux_kernel_params (Peter Anvin)
---
 grub-core/loader/i386/linux.c | 4 ++++
 include/grub/i386/linux.h     | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
index c408b10d8..375ee80dc 100644
--- a/grub-core/loader/i386/linux.c
+++ b/grub-core/loader/i386/linux.c
@@ -508,6 +508,10 @@ grub_linux_boot (void)
        }
     }
 
+#ifdef GRUB_KERNEL_USE_RSDP_ADDR
+  linux_params.acpi_rsdp_addr = grub_le_to_cpu64 (grub_rsdp_addr);
+#endif
+
   mmap_size = find_mmap_size ();
   /* Make sure that each size is aligned to a page boundary.  */
   cl_offset = ALIGN_UP (mmap_size + sizeof (linux_params), 4096);
diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h
index 60c7c3b5e..a96059311 100644
--- a/include/grub/i386/linux.h
+++ b/include/grub/i386/linux.h
@@ -210,8 +210,9 @@ struct linux_kernel_params
   grub_uint32_t ist_command;           /* 64 */
   grub_uint32_t ist_event;             /* 68 */
   grub_uint32_t ist_perf_level;                /* 6c */
+  grub_uint64_t acpi_rsdp_addr;                /* 70 */
 
-  grub_uint8_t padding5[0x80 - 0x70];
+  grub_uint8_t padding5[0x80 - 0x78];
 
   grub_uint8_t hd0_drive_info[0x10];   /* 80 */
   grub_uint8_t hd1_drive_info[0x10];   /* 90 */
-- 
2.16.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]