public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: David Hawkins <dwh@ovro.caltech.edu>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] RFQ: disable flash writes until after relocation?
Date: Mon, 21 Jul 2008 10:36:41 -0700	[thread overview]
Message-ID: <4884C929.7090608@ovro.caltech.edu> (raw)
In-Reply-To: <488479EA.2080508@ge.com>

Hi Jerry,

>> The fix will also not expose the accidental introduction
>> of flash writes in the future, it'll just stop those
>> writes from having any effect.
> 
> IOW, it simply hides the bug.  :-(

Yeah, I didn't like that as a solution either.

>> It would be nicer to generate an exception if a write to
>> flash occurs during the period before relocation, at least
>> that way the introduction of an accidental flash write
>> would be detected immediately. I could have a look at
>> the 83xx MMU settings during that time and see if there
>> was an alternative solution using that.
> 
> Using the MMU that early is going to be some work and has risks of other 
> mysterious lockups when done wrong.  MMUs are different for different 
> processors and, often, within different branches of the same family of 
> processors.  This will add to the complexity.
> 
> MMU == complexity == risk.  :-(

Yep, I agree.

The 440EP solution to generate an exception looked a bit
nicer, but its not portable either.

> Most processors available today have debug registers.  If the processor 
> used on a given target has a debug register set and the registers can be 
> set to trigger on a write to a range, that would give you an exception. 
> You would not necessarily have to handle the exception "properly", 
> simply enter a spin loop so that the processor stops in a known state 
> with enough information to identify the root cause.

Haven't seen that type of register on the MPC8349EA, it might
exist, I just didn't look :)

> Pros:
> * Get an exception identifying a bad bug occurrence rather than silent 
> pass (mostly) or failure (mysteriously).
> 
> Cons:
> * More complexity == risk
> * Debug capabilities, like the MMU, are different for different 
> processors and families.  This could be complex and could turn into an 
> ifdefhell.
> * It may be easier and better to use a debugger (e.g. BDI-3000) to 
> control the hardware breakpoint registers.  A debugger may get unhappy 
> or may simply undo our doings if we directly control the hardware 
> breakpoint registers.

Yep, a repeatable bug can be traced using a debugger. The
hard part is making the bug repeatable.

> It would be nice to have a technique to trap these pre-relocation bugs. 
> They don't happen often, but they *do* happen and they are hard to find 
> (until they bite you and then they are hard to identify).
> 
> What are the capabilities of your debugger?  Can you set a hardware 
> breakpoint range on your flash and have it trigger on start up?  If so, 
> we should add it to our FAQ and add the technique to our toolbox.

Its a BDI2000.

I don't recall seeing a trap on range feature.

This is a tricky one to put in the FAQ, as it really shouldn't
happen :)

We managed to get pretty far with the debugger; we eventually
found the address at which things died, however, the debugger
wasn't able to give us an explanation. It was the logic analyzer
on the flash/local-bus that showed the reason. So perhaps thats
something that can be added to the FAQ. Let me know if you
want something coherent, and I can write a 'logic analyzer tricks
and tips' section for the FAQ.

Cheers,
Dave

  reply	other threads:[~2008-07-21 17:36 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-16 22:28 [U-Boot-Users] Freescale MPC8349EMDS hang on boot Ira Snyder
2008-07-17 21:54 ` Kim Phillips
2008-07-17 22:50   ` Ira Snyder
2008-07-18 11:59     ` Jerry Van Baren
2008-07-18 17:28       ` Ira Snyder
2008-07-18 18:17         ` Jerry Van Baren
2008-07-18 19:24           ` Ira Snyder
2008-07-18 19:57             ` Jerry Van Baren
2008-07-19  1:52               ` David Hawkins
2008-07-19  5:32                 ` Timur Tabi
2008-07-19 17:17                   ` David Hawkins
2008-07-19 17:49                   ` [U-Boot-Users] RFQ: disable flash writes until after relocation? David Hawkins
2008-07-20 20:07                     ` Wolfgang Denk
2008-07-21 15:48                       ` Timur Tabi
2008-07-21 17:46                         ` David Hawkins
2008-07-21 18:43                           ` Timur Tabi
2008-07-21 18:33                         ` Wolfgang Denk
2008-07-21 17:22                       ` David Hawkins
2008-07-21 11:58                     ` Jerry Van Baren
2008-07-21 17:36                       ` David Hawkins [this message]
2008-07-21 17:56                         ` Jerry Van Baren
2008-07-21 18:45                           ` David Hawkins
2008-07-22 23:14                   ` [U-Boot-Users] Freescale MPC8349EMDS BCSR corruption David Hawkins
2008-07-23  6:16                     ` Dave Liu
2008-07-23  6:34                       ` Dave Liu
2008-07-23 17:25                       ` Ira Snyder
2008-07-29  1:36                       ` David Hawkins
2008-07-29  3:42                         ` David Hawkins
2008-10-08  3:50                           ` [U-Boot] " David Hawkins
2008-10-09  5:46                             ` Liu Dave-R63238
2008-07-17 23:18   ` [U-Boot-Users] Freescale MPC8349EMDS hang on boot Ira Snyder

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=4884C929.7090608@ovro.caltech.edu \
    --to=dwh@ovro.caltech.edu \
    --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