From: Fredrik Noring <noring@nocrew.org>
To: linux-mips@linux-mips.org
Cc: "Maciej W. Rozycki" <macro@mips.com>
Subject: Re: [RFC] MIPS: Align vmlinuz load address to a page boundary
Date: Tue, 12 Jun 2018 20:19:01 +0200 [thread overview]
Message-ID: <20180612181900.GA2482@localhost.localdomain> (raw)
In-Reply-To: <20180610182056.GA15738@localhost.localdomain>
> 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?
Sorry for the brief description. The problem, more specifically, is
reported by kexec-tools/kexec/kexec.c:343:
/* Verify base is pagesize aligned.
* Finding a way to cope with this problem
* is important but for now error so at least
* we are not surprised by the code doing the wrong
* thing.
*/
if (base & (pagesize -1)) {
die("Base address: 0x%lx is not page aligned\n", base);
}
https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec.c?id=HEAD#n343
A more pressing issue at the moment though is that initramfs in vmlinuz is
ignored when booting. Is it supposed to work with a MIPS kernel?
Fredrik
> --- 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);
>
next prev parent reply other threads:[~2018-06-12 18:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-10 18:20 [RFC] MIPS: Align vmlinuz load address to a page boundary Fredrik Noring
2018-06-12 18:19 ` Fredrik Noring [this message]
2018-07-02 13:11 ` Ralf Baechle
2018-07-02 18:24 ` Fredrik Noring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180612181900.GA2482@localhost.localdomain \
--to=noring@nocrew.org \
--cc=linux-mips@linux-mips.org \
--cc=macro@mips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.