diff options
Diffstat (limited to 'arch/riscv/kernel')
| -rw-r--r-- | arch/riscv/kernel/elf_kexec.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/riscv/kernel/elf_kexec.c b/arch/riscv/kernel/elf_kexec.c index f4099059ed8f..e60fbd8660c4 100644 --- a/arch/riscv/kernel/elf_kexec.c +++ b/arch/riscv/kernel/elf_kexec.c @@ -98,7 +98,13 @@ static int elf_find_pbase(struct kimage *image, unsigned long kernel_len,  	kbuf.image = image;  	kbuf.buf_min = lowest_paddr;  	kbuf.buf_max = ULONG_MAX; -	kbuf.buf_align = PAGE_SIZE; + +	/* +	 * Current riscv boot protocol requires 2MB alignment for +	 * RV64 and 4MB alignment for RV32 +	 * +	 */ +	kbuf.buf_align = PMD_SIZE;  	kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;  	kbuf.memsz = ALIGN(kernel_len, PAGE_SIZE);  	kbuf.top_down = false;  | 
