From b46cec41664f35c689385c70c76d274a059c7251 Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Tue, 6 Jun 2023 09:23:28 +0100 Subject: ubifs: allow loading to above 4GiB The ubifsload command is truncating any address above 4GiB as it casts this address to an u32, instead of using an unsigned long which most of the other load commands do. Change this to an unsigned long to allow loading into high memory for boards which use these areas. Fixes the following error: => ubifsload 0x2100000000 /boot/Image.lzma Loading file '/boot/Image.lzma' to addr 0x00000000... Unhandled exception: Store/AMO access fault Signed-off-by: Ben Dooks Signed-off-by: Ben Dooks --- fs/ubifs/ubifs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'fs') diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index d3026e3..609bdbf 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -925,12 +925,12 @@ void ubifs_close(void) } /* Compat wrappers for common/cmd_ubifs.c */ -int ubifs_load(char *filename, u32 addr, u32 size) +int ubifs_load(char *filename, unsigned long addr, u32 size) { loff_t actread; int err; - printf("Loading file '%s' to addr 0x%08x...\n", filename, addr); + printf("Loading file '%s' to addr 0x%08lx...\n", filename, addr); err = ubifs_read(filename, (void *)(uintptr_t)addr, 0, size, &actread); if (err == 0) { -- cgit v1.1