From 5f7d506ae72034af4245c4eabbe6553b5ff68bb0 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Tue, 17 Mar 2009 16:41:01 +0000 Subject: [PATCH] Add high coreboot table support to libpayload Signed-off-by: Stefan Reinauer Acked-by: Myles Watson git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4016 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- payloads/libpayload/i386/coreboot.c | 4 ++++ payloads/libpayload/include/coreboot_tables.h | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/payloads/libpayload/i386/coreboot.c b/payloads/libpayload/i386/coreboot.c index 2a675afbe6..66e02f11b7 100644 --- a/payloads/libpayload/i386/coreboot.c +++ b/payloads/libpayload/i386/coreboot.c @@ -2,6 +2,7 @@ * This file is part of the libpayload project. * * Copyright (C) 2008 Advanced Micro Devices, Inc. + * Copyright (C) 2009 coresystems GmbH * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -125,6 +126,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info) /* We only care about a few tags here (maybe more later). */ switch (rec->tag) { + case CB_TAG_FORWARD: + return cb_parse_header((void *)(unsigned long)((struct cb_forward *)rec)->forward, len, info); + continue; case CB_TAG_MEMORY: cb_parse_memory(ptr, info); break; diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h index a289a91c6f..768bb34ec1 100644 --- a/payloads/libpayload/include/coreboot_tables.h +++ b/payloads/libpayload/include/coreboot_tables.h @@ -128,6 +128,14 @@ struct cb_console { #define CB_TAG_CONSOLE_SROM 4 #define CB_TAG_CONSOLE_EHCI 5 +#define CB_TAG_FORWARD 0x00011 + +struct cb_forward { + u32 tag; + u32 size; + u64 forward; +}; + #define CB_TAG_CMOS_OPTION_TABLE 0x00c8 struct cb_cmos_option_table { u32 tag;