From 1e7911e8aa830fcdf86cbb72671d79ea4c2c0e2a Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Tue, 27 Dec 2016 15:24:02 +0100 Subject: util/intelmetool: Fix warning building with 32-bit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On a 32-bit system, pointers are 32-bit wide, and not 64-bit, resulting in the warning below. ``` mmap.c: In function ‘map_physical_exact’: mmap.c:26:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] virt_addr = mmap((void*)mapto, len, PROT_WRITE | PROT_READ, ^ ``` Fix this by using compatible types. Change-Id: I4ede26127efcbd5668b978e6880a0535607e373d Signed-off-by: Paul Menzel Reviewed-on: https://review.coreboot.org/17970 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber Reviewed-by: Martin Roth --- util/intelmetool/intelmetool.c | 4 ++-- util/intelmetool/mmap.c | 18 +++++++++--------- util/intelmetool/mmap.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) (limited to 'util') diff --git a/util/intelmetool/intelmetool.c b/util/intelmetool/intelmetool.c index aec0715212..7ffd5359b3 100644 --- a/util/intelmetool/intelmetool.c +++ b/util/intelmetool/intelmetool.c @@ -82,7 +82,7 @@ static void dump_me_memory() { uint32_t me_clone = 0x60000000; uint8_t *dump; - dump = map_physical_exact(me_clone, me_clone, 0x2000000); + dump = map_physical_exact((off_t)me_clone, (void *)me_clone, 0x2000000); zeroit(dump, 0x2000000); printf("Send magic command for memory clone\n"); @@ -206,7 +206,7 @@ static int activate_me() { pci_fill_info(sb, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_SIZES | PCI_FILL_CLASS); rcba_phys = pci_read_long(sb, 0xf0) & 0xfffffffe; - rcba = map_physical(rcba_phys, size); + rcba = map_physical((off_t)rcba_phys, size); //printf("RCBA at 0x%08" PRIx32 "\n", (uint32_t)rcba_phys); fd2 = *(uint32_t *)(rcba + FD2); diff --git a/util/intelmetool/mmap.c b/util/intelmetool/mmap.c index da36eaac08..041aac9c81 100644 --- a/util/intelmetool/mmap.c +++ b/util/intelmetool/mmap.c @@ -19,33 +19,33 @@ #ifndef __DARWIN__ int fd_mem; -void *map_physical_exact(uint64_t phys_addr, uint64_t mapto, size_t len) { +void *map_physical_exact(off_t phys_addr, void *mapto, size_t len) { void *virt_addr; int err; - virt_addr = mmap((void*)mapto, len, PROT_WRITE | PROT_READ, - MAP_SHARED | MAP_FIXED, fd_mem, (off_t) phys_addr); + virt_addr = mmap(mapto, len, PROT_WRITE | PROT_READ, + MAP_SHARED | MAP_FIXED, fd_mem, phys_addr); if (virt_addr == MAP_FAILED) { err = errno; - printf("Error mapping physical memory 0x%016" PRIx64 "[0x%zx] ERRNO=%d\n", - phys_addr, len, err); + printf("Error mapping physical memory 0x%016jd [0x%zx] ERRNO=%d\n", + (intmax_t)phys_addr, len, err); return NULL; } return virt_addr; } -void *map_physical(uint64_t phys_addr, size_t len) { +void *map_physical(off_t phys_addr, size_t len) { void *virt_addr; int err; - virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, fd_mem, (off_t) phys_addr); + virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, fd_mem, phys_addr); if (virt_addr == MAP_FAILED) { err = errno; - printf("Error mapping physical memory 0x%016" PRIx64 "[0x%zx] ERRNO=%d\n", - phys_addr, len, err); + printf("Error mapping physical memory 0x%016jd [0x%zx] ERRNO=%d\n", + (intmax_t)phys_addr, len, err); return NULL; } diff --git a/util/intelmetool/mmap.h b/util/intelmetool/mmap.h index 109ceff498..2a7fa05308 100644 --- a/util/intelmetool/mmap.h +++ b/util/intelmetool/mmap.h @@ -21,7 +21,7 @@ #ifndef __DARWIN__ extern int fd_mem; -extern void *map_physical(uint64_t phys_addr, size_t len); +extern void *map_physical(off_t phys_addr, size_t len); extern void unmap_physical(void *virt_addr, size_t len); -extern void *map_physical_exact(uint64_t phys_addr, uint64_t mapto, size_t len); +extern void *map_physical_exact(off_t phys_addr, void *mapto, size_t len); #endif -- cgit v1.2.3