libpayload: Parse CBMEM ACPI GNVS pointer
Pull the ACPI GNVS pointer from CBMEM and expose it in the sysinfo structure for use by payloads. BUG=chrome-os-partner:24380 BRANCH=none TEST=build and boot rambi with emmc in ACPI mode Change-Id: I47c358f33c464a4a01080268fb553705218c940c Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/179900 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/5016 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
committed by
Aaron Durbin
parent
2f6402c7a6
commit
f517c448a5
@ -135,6 +135,12 @@ static void cb_parse_mrc_cache(unsigned char *ptr, struct sysinfo_t *info)
|
|||||||
info->mrc_cache = phys_to_virt(cbmem->cbmem_tab);
|
info->mrc_cache = phys_to_virt(cbmem->cbmem_tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void cb_parse_acpi_gnvs(unsigned char *ptr, struct sysinfo_t *info)
|
||||||
|
{
|
||||||
|
struct cb_cbmem_tab *const cbmem = (struct cb_cbmem_tab *)ptr;
|
||||||
|
info->acpi_gnvs = phys_to_virt(cbmem->cbmem_tab);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NVRAM
|
#ifdef CONFIG_NVRAM
|
||||||
static void cb_parse_optiontable(void *ptr, struct sysinfo_t *info)
|
static void cb_parse_optiontable(void *ptr, struct sysinfo_t *info)
|
||||||
{
|
{
|
||||||
@ -288,6 +294,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
|
|||||||
case CB_TAG_MRC_CACHE:
|
case CB_TAG_MRC_CACHE:
|
||||||
cb_parse_mrc_cache(ptr, info);
|
cb_parse_mrc_cache(ptr, info);
|
||||||
break;
|
break;
|
||||||
|
case CB_TAG_ACPI_GNVS:
|
||||||
|
cb_parse_acpi_gnvs(ptr, info);
|
||||||
|
break;
|
||||||
case CB_TAG_X86_ROM_MTRR:
|
case CB_TAG_X86_ROM_MTRR:
|
||||||
cb_parse_x86_rom_var_mtrr(ptr, info);
|
cb_parse_x86_rom_var_mtrr(ptr, info);
|
||||||
break;
|
break;
|
||||||
|
@ -195,6 +195,7 @@ struct cb_vdat {
|
|||||||
#define CB_TAG_TIMESTAMPS 0x0016
|
#define CB_TAG_TIMESTAMPS 0x0016
|
||||||
#define CB_TAG_CBMEM_CONSOLE 0x0017
|
#define CB_TAG_CBMEM_CONSOLE 0x0017
|
||||||
#define CB_TAG_MRC_CACHE 0x0018
|
#define CB_TAG_MRC_CACHE 0x0018
|
||||||
|
#define CB_TAG_ACPI_GNVS 0x0024
|
||||||
struct cb_cbmem_tab {
|
struct cb_cbmem_tab {
|
||||||
uint32_t tag;
|
uint32_t tag;
|
||||||
uint32_t size;
|
uint32_t size;
|
||||||
|
@ -107,6 +107,7 @@ struct sysinfo_t {
|
|||||||
void *tstamp_table;
|
void *tstamp_table;
|
||||||
void *cbmem_cons;
|
void *cbmem_cons;
|
||||||
void *mrc_cache;
|
void *mrc_cache;
|
||||||
|
void *acpi_gnvs;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct sysinfo_t lib_sysinfo;
|
extern struct sysinfo_t lib_sysinfo;
|
||||||
|
Reference in New Issue
Block a user