From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] U-boot broken on e500v2 soc
Date: Tue, 1 Dec 2015 18:36:44 -0600 [thread overview]
Message-ID: <1449016604.29246.20.camel@freescale.com> (raw)
In-Reply-To: <565DE950.6070202@freescale.com>
On Tue, 2015-12-01 at 10:39 -0800, York Sun wrote:
>
> On 11/23/2015 03:19 PM, Scott Wood wrote:
> > On Fri, 2015-11-20 at 22:33 -0800, York Sun wrote:
> > > Valentin,
> > >
> > > Can you refresh my memory why you needed this
> > > commitac337168ad81a18e768e5e3cfff8d229adeb2b25 (patch
> > > http://patchwork.ozlabs.org/patch/455439)?
> > > Today I bisect an issue back to this commit.
> > >
> > > Scott,
> > >
> > > Can you help to examine this u-boot commit? Before this commit,
> > > 512x/5xxx/83xx/85xx do nothing on function invalidate_dcache_range() and
> > > flush_dcache_range(). With this patch, I found e500v2 is broken on Intel
> > > e1000
> > > card when testing v2016-rc1. I didn't catch this issue when testing this
> > > patch.
> > >
> > > I wonder if this code is not safe for e500v2, or because the cache line
> > > size
> > > should be determined by reading L1CFG0. Why didn't we see any issue with
> > > Linux
> > > with the same code.
> >
> > L1_CACHE_SIZE should be 5 as long as CONFIG_E500MC is not defined. I'm
> > not
> > sure what Linux has to do with this since it isn't the same code (in
> > particular, Linux knows that the I/O is coherent and doesn't flush on
> > e500).
> >
> > What happens if you comment out invalidate_cache_range() but leave
> > flush_cache_range()? We should never need to do the former on e500.
>
> If comment out the invalidate_cache_range(), this problem goes away. I can
> see
> several calls of this function in e1000 driver.
>
> Shall we keep this function only for CONFIG_4xx and CONFIG_MPC86xx? That's
> what
> we had before.
Maybe, though it would be good to know what the actual problem is... The
driver should not be invalidating anything that was not previously flushed.
> > > => ping $serverip
> > > Using e1000#0 device
> > > Bad trap at PC: 1ffc6f10, SR: 6049434, vector=e00
> > > NIP: 1FFC6F10 XER: 00000000 LR: 1FEF0B6C REGS: 1f8eda70 TRAP: 0e00 DAR:
> > > 20000000
> > > MSR: 06049434 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
> > >
> > > GPR00: 1FF457D4 1F8EDB60 1F8EDF14 20000000 00020000 0000001F 00000000
> > > 1F8EDAB8
> > > GPR08: A0003818 00004000 00000003 1F8EDB80 1FF457D4 EC662032 1FFC8D50
> > > 1FFC6F24
> > > GPR16: 1FFB0074 1FFB005C 1FF59701 1FF5971F 1FF49C37 1FFB0068 00000000
> > > 1FFC6F10
> > > GPR24: 1FFB00CC 1FF48D60 00000000 1F8F3D70 1FFC5600 00400000 1FF5C610
> > > 00400000
> > > Call backtrace:
> > > 1FF2F350 1FF457D4 1FF06888 1FF13AF8 1FEFA180 1FEFA7FC 1FEF9A90
> > > 1FEFA124 1FEFA7FC 1FEFAA1C 1FF12B54 1FEFB140 1FF3AA7C 1FEFB454
> > > 1FEF0F4C
> > > Exception in kernel pc 1ffc6f10 signal 0
> > > ### ERROR ### Please RESET the board ###
> >
> > 0xe00 is an instruction TLB error. Could you dump the TLB when this
> > happens?
> >
> > DAR of 0x20000000 looks like something that would actually cause a
> > problem,
> > but that's only relevant to data exceptions, not instruction.
> >
> > What is the instruction at 0x1ffc6f10?
> >
>
> It is not a valid instruction. The reloacaddr is 0x1FEF0000. Doing the math,
> the
> original instruction would be at 0xF0016F10 which is beyond the image. I
> think
> this is caused by wrongly invalidated data.
Is the LR valid, or the backtrace?
-Scott
prev parent reply other threads:[~2015-12-02 0:36 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-21 6:33 [U-Boot] U-boot broken on e500v2 soc York Sun
2015-11-23 11:49 ` Valentin Longchamp
2015-11-23 23:19 ` Scott Wood
2015-12-01 18:39 ` York Sun
2015-12-02 0:36 ` Scott Wood [this message]
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=1449016604.29246.20.camel@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 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.