diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h index dfbd4b4bbac2834d9fb48a209dc0a99da116b240..d961dddc9e17ef67b947496c776afc066f52cd44 100644 --- a/arch/x86/include/asm/bootparam.h +++ b/arch/x86/include/asm/bootparam.h @@ -94,7 +94,8 @@ struct boot_params { __u8 _pad2[4]; /* 0x054 */ __u64 tboot_addr; /* 0x058 */ struct ist_info ist_info; /* 0x060 */ - __u8 _pad3[16]; /* 0x070 */ + __u64 acpi_rsdp_addr; /* 0x070 */ + __u8 _pad3[8]; /* 0x078 */ __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ struct sys_desc_table sys_desc_table; /* 0x0a0 */ diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index 6a6258a5057a3b16700aac4a3c93c25e720fd715..d07041fd4ceb4dfd2a5a6cae47675e63b6fa0758 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -288,6 +288,10 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot, hdr->hardware_subarch = X86_SUBARCH_INTEL_MID; #endif +#ifdef CONFIG_GENERATE_ACPI_TABLE + setup_base->acpi_rsdp_addr = acpi_get_rsdp_addr(); +#endif + setup_device_tree(hdr, (const void *)env_get_hex("fdtaddr", 0)); setup_video(&setup_base->screen_info);