projects
/
coreboot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix missing VM mapping
[coreboot.git]
/
payloads
/
libpayload
/
arch
/
i386
/
coreboot.c
diff --git
a/payloads/libpayload/arch/i386/coreboot.c
b/payloads/libpayload/arch/i386/coreboot.c
index 3c99c4fde089ee8f60527616db8707683ba81c91..709f8ae00fc6ac2d274d41835ecf4fbd660fc90e 100644
(file)
--- a/
payloads/libpayload/arch/i386/coreboot.c
+++ b/
payloads/libpayload/arch/i386/coreboot.c
@@
-113,6
+113,7
@@
static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
{
struct cb_header *header;
unsigned char *ptr = addr;
{
struct cb_header *header;
unsigned char *ptr = addr;
+ void *forward;
int i;
for (i = 0; i < len; i += 16, ptr += 16) {
int i;
for (i = 0; i < len; i += 16, ptr += 16) {
@@
-145,7
+146,8
@@
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:
/* 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);
+ forward = phys_to_virt((void *)(unsigned long)((struct cb_forward *)rec)->forward);
+ return cb_parse_header(forward, len, info);
continue;
case CB_TAG_MEMORY:
cb_parse_memory(ptr, info);
continue;
case CB_TAG_MEMORY:
cb_parse_memory(ptr, info);