summaryrefslogtreecommitdiff
path: root/payloads/libpayload
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload')
-rw-r--r--payloads/libpayload/drivers/usb/xhci.c2
-rw-r--r--payloads/libpayload/include/usb/usb.h3
-rw-r--r--payloads/libpayload/libc/malloc.c9
-rw-r--r--payloads/libpayload/libcbfs/cbfs.c11
4 files changed, 13 insertions, 12 deletions
diff --git a/payloads/libpayload/drivers/usb/xhci.c b/payloads/libpayload/drivers/usb/xhci.c
index 714c9ceaa6..33009bc637 100644
--- a/payloads/libpayload/drivers/usb/xhci.c
+++ b/payloads/libpayload/drivers/usb/xhci.c
@@ -168,7 +168,7 @@ xhci_init (unsigned long physical_bar)
controller->poll_intr_queue = xhci_poll_intr_queue;
controller->pcidev = 0;
- controller->reg_base = (u32)physical_bar;
+ controller->reg_base = (uintptr_t)physical_bar;
controller->instance = xzalloc(sizeof(xhci_t));
xhci_t *const xhci = (xhci_t *)controller->instance;
diff --git a/payloads/libpayload/include/usb/usb.h b/payloads/libpayload/include/usb/usb.h
index ec9912ae7f..4d8b2c2ecd 100644
--- a/payloads/libpayload/include/usb/usb.h
+++ b/payloads/libpayload/include/usb/usb.h
@@ -31,6 +31,7 @@
#define __USB_H
#include <libpayload.h>
#include <pci/pci.h>
+#include <stdint.h>
typedef enum { host_to_device = 0, device_to_host = 1 } dev_req_dir;
typedef enum { standard_type = 0, class_type = 1, vendor_type =
@@ -210,7 +211,7 @@ typedef enum { OHCI = 0, UHCI = 1, EHCI = 2, XHCI = 3} hc_type;
struct usbdev_hc {
hci_t *next;
- u32 reg_base;
+ uintptr_t reg_base;
pcidev_t pcidev; // 0 if not used (eg on ARM)
hc_type type;
int latest_address;
diff --git a/payloads/libpayload/libc/malloc.c b/payloads/libpayload/libc/malloc.c
index 0f2845d4ea..1d99a9c4b6 100644
--- a/payloads/libpayload/libc/malloc.c
+++ b/payloads/libpayload/libc/malloc.c
@@ -41,6 +41,7 @@
#define IN_MALLOC_C
#include <libpayload.h>
+#include <stdint.h>
struct memory_type {
void *start;
@@ -158,7 +159,7 @@ static void *alloc(int len, struct memory_type *type)
if (header & FLAG_FREE) {
if (len <= size) {
- hdrtype_t volatile *nptr = (hdrtype_t volatile *)((int)ptr + HDRSIZE + len);
+ hdrtype_t volatile *nptr = (hdrtype_t volatile *)((uintptr_t)ptr + HDRSIZE + len);
int nsize = size - (HDRSIZE + len);
/* If there is still room in this block,
@@ -177,11 +178,11 @@ static void *alloc(int len, struct memory_type *type)
*ptr = USED_BLOCK(size);
}
- return (void *)((int)ptr + HDRSIZE);
+ return (void *)((uintptr_t)ptr + HDRSIZE);
}
}
- ptr = (hdrtype_t volatile *)((int)ptr + HDRSIZE + size);
+ ptr = (hdrtype_t volatile *)((uintptr_t)ptr + HDRSIZE + size);
} while (ptr < (hdrtype_t *) type->end);
@@ -353,7 +354,7 @@ static struct align_region_t *allocate_region(int alignment, int num_elements, s
free(new_region);
return NULL;
}
- new_region->start_data = (void*)((u32)(new_region->start + num_elements + alignment - 1) & (~(alignment-1)));
+ new_region->start_data = (void*)((uintptr_t)(new_region->start + num_elements + alignment - 1) & (~(alignment-1)));
new_region->size = num_elements * alignment;
new_region->free = num_elements;
new_region->next = type->align_regions;
diff --git a/payloads/libpayload/libcbfs/cbfs.c b/payloads/libpayload/libcbfs/cbfs.c
index 561055534a..5ab7ffa04a 100644
--- a/payloads/libpayload/libcbfs/cbfs.c
+++ b/payloads/libpayload/libcbfs/cbfs.c
@@ -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));
}