aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2019-09-13 18:42:00 +0300
committerBin Meng <bmeng.cn@gmail.com>2019-10-01 18:20:47 +0800
commitd905aa8a4277e200e11fdf6d73a7c76d0e6f34a4 (patch)
treed7d89e0ca39716d728e3a89618d0c6892752600b /arch
parent023ff4b88dcec5faa3f9b841bae4d3d232b58ce2 (diff)
downloadu-boot-d905aa8a4277e200e11fdf6d73a7c76d0e6f34a4.zip
u-boot-d905aa8a4277e200e11fdf6d73a7c76d0e6f34a4.tar.gz
u-boot-d905aa8a4277e200e11fdf6d73a7c76d0e6f34a4.tar.bz2
x86: zImage: Propagate acpi_rsdp_addr to kernel via boot parameters
This is reincarnation of the U-Boot commit 3469bf4274540d1491d58e878a9edc0bdcba17ac Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Date: Wed Jan 10 19:40:15 2018 +0200 x86: zImage: Propagate acpi_rsdp_addr to kernel via boot parameters after upstream got eventually the Linux kernel commit e6e094e053af75cbc164e950814d3d084fb1e698 Author: Juergen Gross <jgross@suse.com> Date: Tue Nov 20 08:25:29 2018 +0100 x86/acpi, x86/boot: Take RSDP address from boot params if available Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/include/asm/bootparam.h3
-rw-r--r--arch/x86/lib/zimage.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h
index dfbd4b4..d961ddd 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 6a6258a..d07041f 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);