aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/libc/coreboot.c
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2020-07-18 14:45:23 +0200
committerPatrick Georgi <pgeorgi@google.com>2020-08-24 09:12:56 +0000
commitb2eafa666cb7f5318daa61962bae62859f4e4e88 (patch)
tree4f48d47ea287eba330b94a5659913320aaa45753 /payloads/libpayload/libc/coreboot.c
parent14adb7eaa9f31e9db346f7b9de61e3a63905b03e (diff)
libpayload: Cache physical CMOS option table location
In the presence of self-relocating payloads, it's safer to keep physical addresses in `libsysinfo`. Change-Id: I64a37bef263022edb504086c02a3fd22ce068ba4 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/43576 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'payloads/libpayload/libc/coreboot.c')
-rw-r--r--payloads/libpayload/libc/coreboot.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/payloads/libpayload/libc/coreboot.c b/payloads/libpayload/libc/coreboot.c
index 25812e5a95..cb47a8317b 100644
--- a/payloads/libpayload/libc/coreboot.c
+++ b/payloads/libpayload/libc/coreboot.c
@@ -170,8 +170,8 @@ static void cb_parse_sku_id(unsigned char *ptr, struct sysinfo_t *info)
#if CONFIG(LP_NVRAM)
static void cb_parse_optiontable(void *ptr, struct sysinfo_t *info)
{
- /* ptr points to a coreboot table entry and is already virtual */
- info->option_table = ptr;
+ /* ptr is already virtual, but we want to keep physical addresses */
+ info->cmos_option_table = virt_to_phys(ptr);
}
static void cb_parse_checksum(void *ptr, struct sysinfo_t *info)