From: joelf@ti.com (Joel Fernandes)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] QEMU: ARM: boot: Load kernel at an Image friendly address
Date: Tue, 25 Mar 2014 08:46:40 -0500 [thread overview]
Message-ID: <533188C0.9090902@ti.com> (raw)
In-Reply-To: <CAFEAcA8dSvW8rBvxgquj6fnd7YsNKFUc5+SWrGt1PVEQP0S9ag@mail.gmail.com>
On 03/25/2014 08:13 AM, Peter Maydell wrote:
> On 25 March 2014 03:34, Joel Fernandes <joelf@ti.com> wrote:
>> Loading kernel at offset 0x10000 works only for zImage, but not for Image,
>> because the kernel expect the start of decompressed kernel (.head.text) to be
>> at an address that's a distance that's 16MB aligned from PAGE_OFFSET +
>> TEXT_OFFSET (see vmlinux.lds.S). This check is enfornced in __fixup_pv_table in
>> arch/arm/kernel/head.S TEXT_OFFSET is 0x00008000, so a 16MB alignment needs to
>> have a "0x8000" in the lower 16 bits so that they cancel out. Currently the
>> offset Qemu loads it at is 0x10000.
>>
>> With zImage, this need is met because zImage loads the uncompressed Image
>> correctly, however when loading an Image and executing directly Qemu is
>> required it to load it at the correct location. Doing so, doesn't break Qemu's
>> zImage loading. With this patch, both zImage and Image work correctly.
>>
>> Signed-off-by: Joel Fernandes <joelf@ti.com>
>> ---
>> hw/arm/boot.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
>> index dc62918..566b5c2 100644
>> --- a/hw/arm/boot.c
>> +++ b/hw/arm/boot.c
>> @@ -23,7 +23,7 @@
>> * They have different preferred image load offsets from system RAM base.
>> */
>> #define KERNEL_ARGS_ADDR 0x100
>> -#define KERNEL_LOAD_ADDR 0x00010000
>> +#define KERNEL_LOAD_ADDR 0x00008000
>> #define KERNEL64_LOAD_ADDR 0x00080000
>
> The patch and rationale seem plausible, but I'm a bit
> reluctant to apply this this close to 2.0 release, because
> QEMU has loaded images at this address for 8 years without
> anybody complaining, and I worry that we might accidentally
> break some other use case somehow.
I understand.
FWIW, I also tested with a15-vexpress and zImage.
thanks,
-Joel
WARNING: multiple messages have this Message-ID (diff)
From: Joel Fernandes <joelf@ti.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>,
Linux ARM Kernel List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [Qemu-devel] [PATCH] QEMU: ARM: boot: Load kernel at an Image friendly address
Date: Tue, 25 Mar 2014 08:46:40 -0500 [thread overview]
Message-ID: <533188C0.9090902@ti.com> (raw)
In-Reply-To: <CAFEAcA8dSvW8rBvxgquj6fnd7YsNKFUc5+SWrGt1PVEQP0S9ag@mail.gmail.com>
On 03/25/2014 08:13 AM, Peter Maydell wrote:
> On 25 March 2014 03:34, Joel Fernandes <joelf@ti.com> wrote:
>> Loading kernel at offset 0x10000 works only for zImage, but not for Image,
>> because the kernel expect the start of decompressed kernel (.head.text) to be
>> at an address that's a distance that's 16MB aligned from PAGE_OFFSET +
>> TEXT_OFFSET (see vmlinux.lds.S). This check is enfornced in __fixup_pv_table in
>> arch/arm/kernel/head.S TEXT_OFFSET is 0x00008000, so a 16MB alignment needs to
>> have a "0x8000" in the lower 16 bits so that they cancel out. Currently the
>> offset Qemu loads it at is 0x10000.
>>
>> With zImage, this need is met because zImage loads the uncompressed Image
>> correctly, however when loading an Image and executing directly Qemu is
>> required it to load it at the correct location. Doing so, doesn't break Qemu's
>> zImage loading. With this patch, both zImage and Image work correctly.
>>
>> Signed-off-by: Joel Fernandes <joelf@ti.com>
>> ---
>> hw/arm/boot.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
>> index dc62918..566b5c2 100644
>> --- a/hw/arm/boot.c
>> +++ b/hw/arm/boot.c
>> @@ -23,7 +23,7 @@
>> * They have different preferred image load offsets from system RAM base.
>> */
>> #define KERNEL_ARGS_ADDR 0x100
>> -#define KERNEL_LOAD_ADDR 0x00010000
>> +#define KERNEL_LOAD_ADDR 0x00008000
>> #define KERNEL64_LOAD_ADDR 0x00080000
>
> The patch and rationale seem plausible, but I'm a bit
> reluctant to apply this this close to 2.0 release, because
> QEMU has loaded images at this address for 8 years without
> anybody complaining, and I worry that we might accidentally
> break some other use case somehow.
I understand.
FWIW, I also tested with a15-vexpress and zImage.
thanks,
-Joel
next prev parent reply other threads:[~2014-03-25 13:46 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-25 3:34 [PATCH] QEMU: ARM: boot: Load kernel at an Image friendly address Joel Fernandes
2014-03-25 3:34 ` [Qemu-devel] " Joel Fernandes
2014-03-25 12:29 ` Christopher Covington
2014-03-25 12:29 ` Christopher Covington
2014-03-25 13:43 ` Joel Fernandes
2014-03-25 13:43 ` Joel Fernandes
2014-03-25 13:13 ` Peter Maydell
2014-03-25 13:13 ` [Qemu-devel] " Peter Maydell
2014-03-25 13:46 ` Joel Fernandes [this message]
2014-03-25 13:46 ` Joel Fernandes
2014-04-01 17:10 ` Peter Maydell
2014-04-01 17:10 ` [Qemu-devel] " Peter Maydell
2014-04-02 12:11 ` Peter Crosthwaite
2014-04-02 12:11 ` Peter Crosthwaite
2014-04-02 12:47 ` Peter Maydell
2014-04-02 12:47 ` Peter Maydell
2014-04-02 12:58 ` Peter Crosthwaite
2014-04-02 12:58 ` Peter Crosthwaite
2014-04-02 15:04 ` Christopher Covington
2014-04-02 15:04 ` Christopher Covington
2014-04-02 16:06 ` Joel Fernandes
2014-04-02 16:06 ` Joel Fernandes
2014-04-17 10:02 ` Peter Maydell
2014-04-17 13:34 ` Christopher Covington
2014-04-17 16:53 ` Joel Fernandes
2014-04-23 2:20 ` Peter Crosthwaite
2014-04-23 2:47 ` 答复: " lig.fnst at cn.fujitsu.com
2014-04-17 16:58 ` Rob Herring
2014-04-17 19:26 ` Peter Maydell
2014-04-23 2:07 ` Peter Crosthwaite
2014-04-28 16:19 ` Uwe Kleine-König
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=533188C0.9090902@ti.com \
--to=joelf@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.