From: Stephen Boyd <sboyd@codeaurora.org>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Nicolas Pitre <nicolas.pitre@linaro.org>,
Brian Swetland <swetland@google.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH] ARM: avoid mis-detecting some V7 cores in the decompressor
Date: Mon, 03 Jun 2013 15:37:39 -0700 [thread overview]
Message-ID: <51AD1AB3.9050908@codeaurora.org> (raw)
In-Reply-To: <20130603222321.GP18614@n2100.arm.linux.org.uk>
On 06/03/13 15:23, Russell King - ARM Linux wrote:
> On Mon, Jun 03, 2013 at 02:13:39PM -0700, Stephen Boyd wrote:
>> We
>> can't get any information about why the decompression failed if
>> we have debug_ll enabled. I had to patch the error() routine to
>> not while loop forever to get that print after do_decompress to
>> be useful.)
> Maybe your implementation of puts() for the decompressor is faulty then?
> Because it works for me - when something goes wrong with the decompression,
> I get a message such as:
>
> Decompressing kernel...
>
> CRC error
>
> -- System halted
>
I was expecting to see
Decompressing kernel...
CRC error
decompressor returned an error
but since we loop forever this code in arch/arm/boot/compressed/misc.c
doesn't do anything:
if (ret)
error("decompressor returned an error");
I guess that is desired though because you say we shouldn't do something
stupid.
>>> I see a few solutions.
>>>
>>> 1) Relocate with caches off and then turn on caches after we're
>>> running in a location where we won't overwrite ourselves.
>>>
>>> 2) Have temporary page tables for the relocation phase that live
>>> just below the location we're going to relocate to.
>>>
>>> 3) Force bootloaders loading these types of images to load the
>>> zImage at least as high as the TEXT_OFFSET is compiled to.
>>>
>>> I don't think we can convince everyone that #3 is ok to do. I'm
>>> leaning towards #2 since we get all the benefits of the cache
>>> during the relocation phase but #1 is the obviously simple fix.
> (3) is what we've always required in the past. We already have code
> to relocate the compressed image, so we _might_ be able to do (1).
>
> The easy solution is to continue saying "minimum of RAM start + 32K"
> as we've always had in the past though.
In my case I'm booting a kernel with textoffset = 0x208000 but RAM
starts at 0x0. Does "minimum of RAM start" mean 0x0 or 0x200000?
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: avoid mis-detecting some V7 cores in the decompressor
Date: Mon, 03 Jun 2013 15:37:39 -0700 [thread overview]
Message-ID: <51AD1AB3.9050908@codeaurora.org> (raw)
In-Reply-To: <20130603222321.GP18614@n2100.arm.linux.org.uk>
On 06/03/13 15:23, Russell King - ARM Linux wrote:
> On Mon, Jun 03, 2013 at 02:13:39PM -0700, Stephen Boyd wrote:
>> We
>> can't get any information about why the decompression failed if
>> we have debug_ll enabled. I had to patch the error() routine to
>> not while loop forever to get that print after do_decompress to
>> be useful.)
> Maybe your implementation of puts() for the decompressor is faulty then?
> Because it works for me - when something goes wrong with the decompression,
> I get a message such as:
>
> Decompressing kernel...
>
> CRC error
>
> -- System halted
>
I was expecting to see
Decompressing kernel...
CRC error
decompressor returned an error
but since we loop forever this code in arch/arm/boot/compressed/misc.c
doesn't do anything:
if (ret)
error("decompressor returned an error");
I guess that is desired though because you say we shouldn't do something
stupid.
>>> I see a few solutions.
>>>
>>> 1) Relocate with caches off and then turn on caches after we're
>>> running in a location where we won't overwrite ourselves.
>>>
>>> 2) Have temporary page tables for the relocation phase that live
>>> just below the location we're going to relocate to.
>>>
>>> 3) Force bootloaders loading these types of images to load the
>>> zImage at least as high as the TEXT_OFFSET is compiled to.
>>>
>>> I don't think we can convince everyone that #3 is ok to do. I'm
>>> leaning towards #2 since we get all the benefits of the cache
>>> during the relocation phase but #1 is the obviously simple fix.
> (3) is what we've always required in the past. We already have code
> to relocate the compressed image, so we _might_ be able to do (1).
>
> The easy solution is to continue saying "minimum of RAM start + 32K"
> as we've always had in the past though.
In my case I'm booting a kernel with textoffset = 0x208000 but RAM
starts at 0x0. Does "minimum of RAM start" mean 0x0 or 0x200000?
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2013-06-03 22:37 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-08 21:47 [PATCH] ARM: avoid mis-detecting some V7 cores in the decompressor Stephen Boyd
2013-05-08 21:47 ` Stephen Boyd
2013-05-08 21:50 ` Stephen Boyd
2013-05-08 21:50 ` Stephen Boyd
2013-05-15 19:38 ` Stephen Boyd
2013-05-15 19:38 ` Stephen Boyd
2013-05-23 17:54 ` Stephen Boyd
2013-05-23 17:54 ` Stephen Boyd
2013-05-23 23:15 ` Russell King - ARM Linux
2013-05-23 23:15 ` Russell King - ARM Linux
2013-05-24 22:05 ` Stephen Boyd
2013-05-24 22:05 ` Stephen Boyd
2013-06-03 21:13 ` Stephen Boyd
2013-06-03 21:13 ` Stephen Boyd
2013-06-03 21:33 ` Nicolas Pitre
2013-06-03 21:33 ` Nicolas Pitre
2013-06-03 22:38 ` Russell King - ARM Linux
2013-06-03 22:38 ` Russell King - ARM Linux
2013-06-03 22:23 ` Russell King - ARM Linux
2013-06-03 22:23 ` Russell King - ARM Linux
2013-06-03 22:37 ` Stephen Boyd [this message]
2013-06-03 22:37 ` Stephen Boyd
2013-06-03 22:45 ` Russell King - ARM Linux
2013-06-03 22:45 ` Russell King - ARM Linux
2013-06-03 22:59 ` Stephen Boyd
2013-06-03 22:59 ` Stephen Boyd
2013-06-04 5:27 ` Nicolas Pitre
2013-06-04 5:27 ` Nicolas Pitre
2013-06-04 19:47 ` Stephen Boyd
2013-06-04 19:47 ` Stephen Boyd
2013-06-04 21:13 ` Nicolas Pitre
2013-06-04 21:13 ` Nicolas Pitre
2013-06-04 21:45 ` Stephen Boyd
2013-06-04 21:45 ` Stephen Boyd
2013-06-05 2:23 ` Nicolas Pitre
2013-06-05 2:23 ` Nicolas Pitre
2013-06-06 1:29 ` Stephen Boyd
2013-06-06 1:29 ` Stephen Boyd
2013-06-06 4:21 ` Nicolas Pitre
2013-06-06 4:21 ` Nicolas Pitre
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=51AD1AB3.9050908@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nicolas.pitre@linaro.org \
--cc=swetland@google.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.