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>
This commit is contained in:
Julius Werner
2013-08-27 15:38:54 -07:00
committed by Patrick Georgi
parent 579538b5c7
commit 1f5487a7c0
5 changed files with 39 additions and 69 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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;