diff options
Diffstat (limited to 'arch/x86/cpu/coreboot')
-rw-r--r-- | arch/x86/cpu/coreboot/tables.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/cpu/coreboot/tables.c b/arch/x86/cpu/coreboot/tables.c index e693f4457db..2cb4a426ab6 100644 --- a/arch/x86/cpu/coreboot/tables.c +++ b/arch/x86/cpu/coreboot/tables.c @@ -28,6 +28,7 @@ * SUCH DAMAGE. */ +#include <common.h> #include <asm/ic/coreboot/ipchecksum.h> #include <asm/ic/coreboot/sysinfo.h> #include <asm/ic/coreboot/tables.h> @@ -116,6 +117,11 @@ static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) info->gpios[i] = gpios->gpios[i]; } +static void cb_parse_fdt(unsigned char *ptr, struct sysinfo_t *info) +{ + info->sys_fdt = (struct fdt_header *)(((struct cb_fdt *)ptr) + 1); +} + static void cb_parse_framebuffer(unsigned char *ptr, struct sysinfo_t *info) { info->framebuffer = (struct cb_framebuffer *)ptr; @@ -216,6 +222,10 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info) break; case CB_TAG_GPIO: cb_parse_gpios(ptr, info); + break; + case CB_TAG_FDT: + cb_parse_fdt(ptr, info); + break; } ptr += rec->size; |