diff options
author | Julius Werner <jwerner@chromium.org> | 2013-08-27 15:38:54 -0700 |
---|---|---|
committer | Patrick Georgi <patrick@georgi-clan.de> | 2014-08-10 22:23:19 +0200 |
commit | 1f5487a7c0687b910a898b1fe704e9b75947b5dc (patch) | |
tree | 90bcbe5a0f6055a1ea214637536c92bb5d2e9844 /payloads/libpayload | |
parent | 579538b5c764e813866b3eae60f79bfc1d801471 (diff) |
coreboot_tables: reduce redundant data structures
There are three coreboot table tags that all define some kind of memory
region, and each has their own homologous struct. I'm about to add a
fourth so I'll just clean this up and turn it into a generic struct
lb_range instead.
Change-Id: Id148b2737d442e0636d2c05e74efa1fdf844a0d3
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/167154
(cherry picked from commit 22d82ffa3f5500fbc1b785e343add25e61f4f194)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6456
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/arch/armv7/coreboot.c | 12 | ||||
-rw-r--r-- | payloads/libpayload/arch/x86/coreboot.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/include/coreboot_tables.h | 28 |
3 files changed, 22 insertions, 36 deletions
diff --git a/payloads/libpayload/arch/armv7/coreboot.c b/payloads/libpayload/arch/armv7/coreboot.c index 076010d64d..d1f03453a2 100644 --- a/payloads/libpayload/arch/armv7/coreboot.c +++ b/payloads/libpayload/arch/armv7/coreboot.c @@ -81,10 +81,10 @@ static void cb_parse_serial(void *ptr, struct sysinfo_t *info) #ifdef CONFIG_LP_CHROMEOS static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_vbnv *vbnv = (struct cb_vbnv *)ptr; + struct lb_range *vbnv = (struct lb_range *)ptr; - info->vbnv_start = vbnv->vbnv_start; - info->vbnv_size = vbnv->vbnv_size; + info->vbnv_start = vbnv->range_start; + info->vbnv_size = vbnv->range_size; } static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) @@ -101,10 +101,10 @@ static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) static void cb_parse_vdat(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_vdat *vdat = (struct cb_vdat *) ptr; + struct lb_range *vdat = (struct lb_range *)ptr; - info->vdat_addr = phys_to_virt(vdat->vdat_addr); - info->vdat_size = vdat->vdat_size; + info->vdat_addr = phys_to_virt(vdat->range_start); + info->vdat_size = vdat->range_size; } #endif diff --git a/payloads/libpayload/arch/x86/coreboot.c b/payloads/libpayload/arch/x86/coreboot.c index 05ab336940..320b8c2c98 100644 --- a/payloads/libpayload/arch/x86/coreboot.c +++ b/payloads/libpayload/arch/x86/coreboot.c @@ -82,18 +82,18 @@ static void cb_parse_serial(void *ptr, struct sysinfo_t *info) #ifdef CONFIG_LP_CHROMEOS static void cb_parse_vboot_handoff(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_vboot_handoff *vbho = (struct cb_vboot_handoff *)ptr; + struct lb_range *vbho = (struct lb_range *)ptr; - info->vboot_handoff = (void *)(uintptr_t)vbho->vboot_handoff_addr; - info->vboot_handoff_size = vbho->vboot_handoff_size; + info->vboot_handoff = (void *)(uintptr_t)vbho->range_start; + info->vboot_handoff_size = vbho->range_size; } static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_vbnv *vbnv = (struct cb_vbnv *)ptr; + struct lb_range *vbnv = (struct lb_range *)ptr; - info->vbnv_start = vbnv->vbnv_start; - info->vbnv_size = vbnv->vbnv_size; + info->vbnv_start = vbnv->range_start; + info->vbnv_size = vbnv->range_size; } static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) @@ -110,10 +110,10 @@ static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) static void cb_parse_vdat(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_vdat *vdat = (struct cb_vdat *) ptr; + struct lb_range *vdat = (struct lb_range *) ptr; - info->vdat_addr = phys_to_virt(vdat->vdat_addr); - info->vdat_size = vdat->vdat_size; + info->vdat_addr = phys_to_virt(vdat->range_start); + info->vdat_size = vdat->range_size; } #endif diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h index 911157bf93..5132d50261 100644 --- a/payloads/libpayload/include/coreboot_tables.h +++ b/payloads/libpayload/include/coreboot_tables.h @@ -184,12 +184,14 @@ struct cb_gpios { struct cb_gpio gpios[0]; }; -#define CB_TAG_VDAT 0x0015 -struct cb_vdat { +#define CB_TAG_VDAT 0x0015 +#define CB_TAG_VBNV 0x0019 +#define CB_TAG_VBOOT_HANDOFF 0x0020 +struct lb_range { uint32_t tag; - uint32_t size; /* size of the entire entry */ - uint64_t vdat_addr; - uint32_t vdat_size; + uint32_t size; + uint64_t range_start; + uint32_t range_size; }; #define CB_TAG_TIMESTAMPS 0x0016 @@ -202,22 +204,6 @@ struct cb_cbmem_tab { uint64_t cbmem_tab; }; -#define CB_TAG_VBNV 0x0019 -struct cb_vbnv { - uint32_t tag; - uint32_t size; - uint32_t vbnv_start; - uint32_t vbnv_size; -}; - -#define CB_TAG_VBOOT_HANDOFF 0x0020 -struct cb_vboot_handoff { - uint32_t tag; - uint32_t size; - uint64_t vboot_handoff_addr; - uint32_t vboot_handoff_size; -}; - #define CB_TAG_X86_ROM_MTRR 0x0021 struct cb_x86_rom_mtrr { uint32_t tag; |