diff --git a/arch/sandbox/include/asm/types.h b/arch/sandbox/include/asm/types.h index a9872194d..d471d257b 100644 --- a/arch/sandbox/include/asm/types.h +++ b/arch/sandbox/include/asm/types.h @@ -7,6 +7,13 @@ * 64 bit */ #define INTERNAL_SIZE_T unsigned long + +/* + * This is a Kconfig variable in the Kernel, but we want to detect + * this during compile time, so we set it here. + */ +#define CONFIG_PHYS_ADDR_T_64BIT + #endif typedef unsigned short umode_t; diff --git a/commands/iomem.c b/commands/iomem.c index 96b03bab8..70355fd1e 100644 --- a/commands/iomem.c +++ b/commands/iomem.c @@ -30,7 +30,8 @@ static void __print_resources(struct resource *res, int indent) for (i = 0; i < indent; i++) printf(" "); - printf("0x%08x - 0x%08x (size 0x%08x) %s\n", res->start, + printf(PRINTF_CONVERSION_RESOURCE " - " PRINTF_CONVERSION_RESOURCE + " (size " PRINTF_CONVERSION_RESOURCE ") %s\n", res->start, res->start + res->size - 1, res->size, res->name); diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 547d6843a..3be4b9903 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -388,7 +388,8 @@ static int do_devinfo(int argc, char *argv[]) printf("num : %d\n", i); if (res->name) printf("name : %s\n", res->name); - printf("start : 0x%08x\nsize : 0x%08x\n", + printf("start : " PRINTF_CONVERSION_RESOURCE "\nsize : " + PRINTF_CONVERSION_RESOURCE "\n", res->start, res->size); } diff --git a/include/linux/ioport.h b/include/linux/ioport.h index c837b5349..3f95dddf4 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -25,6 +25,12 @@ struct resource { struct list_head sibling; }; +#ifdef CONFIG_PHYS_ADDR_T_64BIT +#define PRINTF_CONVERSION_RESOURCE "0x%016llx" +#else +#define PRINTF_CONVERSION_RESOURCE "0x%08x" +#endif + /* * IO resources have these defined flags. */