libpayload: Fix pointer related casts

Fix pointer related casts since this can create a problem for 64-bit systems.

BUG=None
BRANCH=None
TEST=Compiled successfully for link, nyan using emerge-* libpayload

Original-Change-Id: I4cbd2d9f1efaaac87c3eba69204337fd6893ed66
Original-Reviewed-on: https://chromium-review.googlesource.com/199564
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Original-Tested-by: Furquan Shaikh <furquan@chromium.org>
(cherry picked from commit 914b118a64b0691aeca463dff24252db9c24109e)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>

Change-Id: I11f070ed5d3eddd8b9be30c428cb24c8439e617b
Reviewed-on: http://review.coreboot.org/7905
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
Furquan Shaikh
2014-05-13 13:47:32 -07:00
committed by Marc Jones
parent a40901bf01
commit 79a591fb38
4 changed files with 13 additions and 12 deletions

View File

@@ -135,21 +135,21 @@ void * cbfs_load_stage(struct cbfs_media *media, const char *name)
cbfs_get_file_content(media, name, CBFS_TYPE_STAGE, NULL);
/* this is a mess. There is no ntohll. */
/* for now, assume compatible byte order until we solve this. */
uint32_t entry;
uintptr_t entry;
uint32_t final_size;
if (stage == NULL)
return (void *) -1;
LOG("loading stage %s @ 0x%x (%d bytes), entry @ 0x%llx\n",
LOG("loading stage %s @ 0x%p (%d bytes), entry @ 0x%llx\n",
name,
(uint32_t) stage->load, stage->memlen,
(void*)(uintptr_t) stage->load, stage->memlen,
stage->entry);
final_size = cbfs_decompress(stage->compression,
((unsigned char *) stage) +
sizeof(struct cbfs_stage),
(void *) (uint32_t) stage->load,
(void *) (uintptr_t) stage->load,
stage->len);
if (!final_size)
return (void *) -1;
@@ -179,8 +179,7 @@ int cbfs_execute_stage(struct cbfs_media *media, const char *name)
return 1;
}
/* FIXME: This isn't right */
LOG("run @ %p\n", (void *) ntohl((uint32_t) stage->entry));
LOG("run @ %p\n", (void *) (uintptr_t)ntohll(stage->entry));
return run_address((void *)(uintptr_t)ntohll(stage->entry));
}