From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] 8313erdb: Set guarded bit on BAT that covers the end of the address space.
Date: Tue, 17 Mar 2009 14:49:17 -0500 [thread overview]
Message-ID: <49BFFEBD.3050503@freescale.com> (raw)
In-Reply-To: <20090317174319.GA11078@oksana.dev.rtsoft.ru>
Anton Vorontsov wrote:
> On Tue, Mar 17, 2009 at 12:09:31PM -0500, Scott Wood wrote:
>> This board currently sets DBAT6 to cover all of the final 256MiB of
>> address space; however, not all of this space is covered by a device. In
>> particular, flash sits at 0xfe000000-0xfe7fffff, and nothing is mapped
>> at the far end of the address space.
>>
>> In zlib, there is a loop that references p[-1] if p is non-NULL. Under
>> some circumstances, this leads to the CPU speculatively loading from
>> 0xfffffff8 if p is NULL. This leads to a machine check.
>>
>> Signed-off-by: Scott Wood <scottwood@freescale.com>
>> ---
>> Note that there are likely other board with the same issue.
>
> Wow, I was actually chasing this (I think) bug for some time.
>
> The effect of this bug was quite weird: some kernels didn't
> boot, and the only difference in the kernel image was.. the build
> date (i.e. data in linux_banner and init_uts_ns symbols).
>
> I suspected the decompression code (what else could it be?), but I
> didn't manage to track it down to a failing instruction, as the
> failing kernel was booting *OK* with BDI-2000 attached. Heh.
>
> I wonder how you tracked it down to zlib code and a particular
> loop, please share the technique. ;-)
I changed the kernel's decompression address to 0x1000 so that the
exception vectors don't get overwritten, and looked at the machine check
dump. That pointed to the relevant part of the zlib code, at which
point I used print statements to figure out what was going on, combined
with arbiter registers after reboot which pointed out 0xfffffff8 as the
offending address.
-Scott
next prev parent reply other threads:[~2009-03-17 19:49 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 17:09 [U-Boot] [PATCH] 8313erdb: Set guarded bit on BAT that covers the end of the address space Scott Wood
2009-03-17 17:43 ` Anton Vorontsov
2009-03-17 19:49 ` Scott Wood [this message]
2009-03-17 20:12 ` Anton Vorontsov
2009-03-17 17:47 ` Mike Frysinger
2009-03-17 17:52 ` Scott Wood
2009-03-17 18:07 ` Mike Frysinger
2009-03-17 18:13 ` Kumar Gala
2009-03-17 18:38 ` Mike Frysinger
2009-03-17 18:18 ` Scott Wood
2009-03-17 18:46 ` Mike Frysinger
2009-03-17 19:11 ` Scott Wood
2009-03-18 12:53 ` Jerry Van Baren
2009-03-18 7:41 ` Norbert van Bolhuis
2009-03-23 9:51 ` Liu Dave-R63238
2009-03-30 22:56 ` Kim Phillips
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=49BFFEBD.3050503@freescale.com \
--to=scottwood@freescale.com \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox