Hi, The kexec system call seems to require that the vmlinuz loading address is aligned to a page boundary. 4096 bytes is a fairly common page size, but perhaps not the only possibility? Does kexec require additional alignments? Fredrik Signed-off-by: Fredrik Noring <noring@xxxxxxxxxx> --- a/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c +++ b/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c @@ -44,12 +44,8 @@ int main(int argc, char *argv[]) vmlinux_size = (uint64_t)sb.st_size; vmlinuz_load_addr = vmlinux_load_addr + vmlinux_size; - /* - * Align with 16 bytes: "greater than that used for any standard data - * types by a MIPS compiler." -- See MIPS Run Linux (Second Edition). - */ - - vmlinuz_load_addr += (16 - vmlinux_size % 16); + /* The kexec system call requires page alignment. */ + vmlinuz_load_addr += (4096 - vmlinux_size % 4096); printf("0x%llx\n", vmlinuz_load_addr);