Eliminate use of pointers in coreboot table
Because pointers can be 32bit or 64bit big,
using them in the coreboot table requires the
OS and the firmware to operate in the same mode
which is not always the case. Hence, use 64bit
for all pointers stored in the coreboot table.
Guess we'll have to fix this up once we port to
the first 128bit machines.
BUG=chrome-os-partner:18638
TEST=USE=depthcharge emerge-link libpayload depthcharge chromeos-coreboot-link chromeos-bootimage
produces working image
BRANCH=none
Change-Id: I46fc1dad530e5230986f7aa5740595428ede4f93
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/48723
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
bde97c09ad
commit
cdac2d378d
5 changed files with 9 additions and 9 deletions
|
|
@ -188,7 +188,7 @@ struct cb_gpios {
|
|||
struct cb_vdat {
|
||||
uint32_t tag;
|
||||
uint32_t size; /* size of the entire entry */
|
||||
void *vdat_addr;
|
||||
uint64_t vdat_addr;
|
||||
uint32_t vdat_size;
|
||||
};
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ struct cb_vdat {
|
|||
struct cb_cbmem_tab {
|
||||
uint32_t tag;
|
||||
uint32_t size;
|
||||
void *cbmem_tab;
|
||||
uint64_t cbmem_tab;
|
||||
};
|
||||
|
||||
#define CB_TAG_VBNV 0x0019
|
||||
|
|
@ -213,7 +213,7 @@ struct cb_vbnv {
|
|||
struct cb_vboot_handoff {
|
||||
uint32_t tag;
|
||||
uint32_t size;
|
||||
void *vboot_handoff_addr;
|
||||
uint64_t vboot_handoff_addr;
|
||||
uint32_t vboot_handoff_size;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ struct lb_vdat {
|
|||
uint32_t tag;
|
||||
uint32_t size;
|
||||
|
||||
void *vdat_addr;
|
||||
uint64_t vdat_addr;
|
||||
uint32_t vdat_size;
|
||||
};
|
||||
|
||||
|
|
@ -246,7 +246,7 @@ struct lb_vboot_handoff {
|
|||
uint32_t tag;
|
||||
uint32_t size;
|
||||
|
||||
void *vboot_handoff_addr;
|
||||
uint64_t vboot_handoff_addr;
|
||||
uint32_t vboot_handoff_size;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ static void lb_vboot_handoff(struct lb_header *header)
|
|||
vbho = (struct lb_vboot_handoff *)lb_new_record(header);
|
||||
vbho->tag = LB_TAB_VBOOT_HANDOFF;
|
||||
vbho->size = sizeof(*vbho);
|
||||
vbho->vboot_handoff_addr = addr;
|
||||
vbho->vboot_handoff_addr = (intptr_t)addr;
|
||||
vbho->vboot_handoff_size = size;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ void chromeos_set_me_hash(u32 *hash, int len)
|
|||
memcpy(me_hash_saved, hash, len*sizeof(u32));
|
||||
}
|
||||
|
||||
void acpi_get_vdat_info(void **vdat_addr, uint32_t *vdat_size)
|
||||
void acpi_get_vdat_info(uint64_t *vdat_addr, uint32_t *vdat_size)
|
||||
{
|
||||
*vdat_addr = vboot_data;
|
||||
*vdat_addr = (intptr_t)vboot_data;
|
||||
*vdat_size = sizeof(*vboot_data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,6 @@ typedef struct {
|
|||
extern chromeos_acpi_t *vboot_data;
|
||||
void chromeos_init_vboot(chromeos_acpi_t *chromeos);
|
||||
void chromeos_set_me_hash(u32*, int);
|
||||
void acpi_get_vdat_info(void **vdat_addr, uint32_t *vdat_size);
|
||||
void acpi_get_vdat_info(uint64_t *vdat_addr, uint32_t *vdat_size);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue