loader/linux: Support passing RSDP address via boot params
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 <jgross@suse.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> Tested-by: Hans van Kranenburg <hans@knorrie.org>
This commit is contained in:
parent
560d7d4d2f
commit
0a0cb415b8
2 changed files with 6 additions and 1 deletions
|
@ -511,6 +511,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 ();
|
mmap_size = find_mmap_size ();
|
||||||
/* Make sure that each size is aligned to a page boundary. */
|
/* Make sure that each size is aligned to a page boundary. */
|
||||||
cl_offset = ALIGN_UP (mmap_size + sizeof (linux_params), 4096);
|
cl_offset = ALIGN_UP (mmap_size + sizeof (linux_params), 4096);
|
||||||
|
|
|
@ -211,8 +211,9 @@ struct linux_kernel_params
|
||||||
grub_uint32_t ist_command; /* 64 */
|
grub_uint32_t ist_command; /* 64 */
|
||||||
grub_uint32_t ist_event; /* 68 */
|
grub_uint32_t ist_event; /* 68 */
|
||||||
grub_uint32_t ist_perf_level; /* 6c */
|
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 hd0_drive_info[0x10]; /* 80 */
|
||||||
grub_uint8_t hd1_drive_info[0x10]; /* 90 */
|
grub_uint8_t hd1_drive_info[0x10]; /* 90 */
|
||||||
|
|
Loading…
Reference in a new issue