public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] U-Boot-NG ?
Date: Tue, 03 Jul 2007 15:19:33 -0400	[thread overview]
Message-ID: <468AA145.8090404@smiths-aerospace.com> (raw)
In-Reply-To: <fa686aa40707031117l7ba9226cu7a606b06d39f8e40@mail.gmail.com>

Grant Likely wrote:
> On 7/3/07, Rune Torgersen <runet@innovsys.com> wrote:
>>> I think it is a good idea to at least default to spitting out
>>> *something* on boot.  Just in case RAM is hooped.
>> Console output before RAM is initialized is EXTREMELY important. I thin
>> on our boards, 90% of the output on boot is before RAM is initalized.
>> And when you try to bring up a new board, you definetly need it.
> 
> Hmmm.... okay, so what does that output consist of?  I can be
> convinced that pre-RAM output is necessary, but why is it 90%?
> 
> g.

Maybe because the remaining 10% is really, really small?  ;-)

One technique I've used in the past that has worked well is to output 
successive characters at critical points in the code.  (It became known 
around here as "alphabet soup.")  If the board stopped spitting out 
characters prematurely, you have a clue what is wrong.

I also attempted to dump the registers on an error (test result 
information being held in the registers).  Depending on the error, this 
might not be successful, but if it is successful, you can glean quite a 
bit of information from the registers and what test was running at the 
time of the failure.

Advantages:
* Still helpful identifying problems
* Minimal start up delay (generally don't have to wait for the UART
     since you are throwing out single characters with tests in between)
* Only need a very simple character put routine (plus a slightly more
     elaborate register dump if supported).  In this concept, putchar()
     is good, puts() is acceptable, and printf() is evil.

Disadvantages:
* Cryptic - need a secret decoder ring to figure out what test
     was being run and what the registers are telling you.
* Depending on how cryptic the output is, it may be totally useless for
     certain classes of misconfigurations

I would assert, with no proof to back that assertion, that most of the 
current text output could be deferred to after RAM was initialized.  For 
instance, we don't really need to know what processor version and mask 
before RAM is initialize, do we?

 From Rune's email with my 0.02 cents interspersed ...

> U-Boot 1.1.4 (Apr 17 2007 - 13:30:37)
Defer to after RAM reloc

> MPC8260 Reset Status: External Soft, External Hard
Can be represented with a single character and a secret decoder ring

> MPC8260 Clock Configuration
>  - Bus-to-Core Mult 4.5x, VCO Div 2, 60x Bus Freq  22-65 , Core Freq
> 100-300
>  - dfbrg 0, corecnf 0x17, busdf 5, cpmdf 1, plldf 0, pllmf 5
>  - vco_out  597196800, scc_clk  149299200, brg_clk  149299200
>  - cpu_clk  447897600, cpm_clk  298598400, bus_clk   99532800
>  - pci_clk   49766400

One or two of these may be useful, but even that is debatable.
* Some of these, if wrong, will cause complete board failure and the
     above won't be printed anyway.
* Most can be deferred till after RAM reloc

> CPU:   MPC8280 (HiP7 Rev 14, Mask 1.0 1K49M) at 447.897 MHz
> Board: Innovative Systems AP2, CPU1
> Build: $SvnTreeRevision: 89 $
Defer till after RAM reloc

>        Watchdog enabled
Single character

> UPMs:  Configured
Single character

> FPGA:  (cfgaddr 0xff810000)............ Status = OK Altera ID: 0x110b
Single character

> I2C:   ready
Single character

> DRAM:  DIMM socket probe: Slot1 = 1, Slot2 =1
Single character

>         SDRAM configuration read from SPD
Single character

>         Size per side = 256MB
>         Organization: 4 sides, 4 banks, 10 Columns, 13 Rows, Width = 64
> bits
>         Refresh rate = 13, CAS latency = 2, Using Page Based interleave
> EAMUX = 0
>         Total size: 1024 MB

This is very useful information and where I would expect most 
misconfiguration failures to show up.

If RAM doesn't work and the "alphabet soup" identifies that RAM is where 
things stopped working, manufacturing typically debugs these types of 
problems by simply replacing the RAM DIMM regardless of how detailed 
your printed information is.  :-/

If RAM works enough (and it often does work enough), a summary could be 
printed before relocation to RAM and full information printed after 
relocation.

> !!! Skipping Memtest (SkipMemtest env varable set) !!!
Single character

> Now running in RAM - U-Boot at: 0ff97000

We are running!  Start spewing the detailed information!

Best regards,
gvb

  parent reply	other threads:[~2007-07-03 19:19 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-30  2:08 [U-Boot-Users] U-Boot-NG ? Wolfgang Denk
2007-06-30  9:40 ` Robert Schwebel
2007-06-30 22:42   ` Carsten Schlote
2007-07-01 15:39     ` Wolfgang Denk
2007-07-02  9:58       ` Carsten Schlote
2007-07-01 15:17   ` Wolfgang Denk
2007-07-02 11:47     ` Sascha Hauer
2007-07-02 13:34       ` Carsten Schlote
2007-07-02 16:47 ` Sascha Hauer
2007-07-02 17:22   ` Jerry Van Baren
2007-07-02 18:42     ` Sascha Hauer
2007-07-02 23:39       ` Wolfgang Denk
2007-07-03  0:09         ` Sascha Hauer
2007-07-03  1:46           ` Grant Likely
2007-07-03  9:44             ` Sascha Hauer
2007-07-03 15:36               ` Grant Likely
2007-07-03 20:40                 ` Wolfgang Denk
2007-07-04  8:35                 ` Robert Schwebel
2007-07-04 13:47                   ` Wolfgang Denk
2007-07-04 15:25                   ` Grant Likely
2007-07-03 22:58             ` Wolfgang Denk
2007-07-03  7:22           ` Wolfgang Denk
2007-07-03  9:02             ` Sascha Hauer
2007-07-06 11:53             ` [U-Boot-Users] 回复: " Songmao Tian
2007-07-02 18:25   ` Håvard Skinnemoen
2007-07-02 18:58     ` Sascha Hauer
2007-07-02 19:53       ` Håvard Skinnemoen
2007-07-02 19:02   ` Carsten Schlote
2007-07-02 19:26     ` Sascha Hauer
2007-07-02 20:37       ` Carsten Schlote
2007-07-02 21:56         ` Sascha Hauer
2007-07-02 19:54     ` Carsten Schlote
2007-07-03 11:02       ` Sascha Hauer
2007-07-03 15:35         ` Carsten Schlote
2007-07-03 16:52           ` Grant Likely
2007-07-03 17:18             ` Ulf Samuelsson
2007-07-03 18:01               ` Grant Likely
2007-07-03 17:58             ` Sascha Hauer
2007-07-03 18:05               ` Grant Likely
2007-07-03 18:09                 ` Rune Torgersen
2007-07-03 18:17                   ` Grant Likely
2007-07-03 18:43                     ` Rune Torgersen
2007-07-03 18:54                       ` Grant Likely
2007-07-03 19:12                         ` Rune Torgersen
2007-07-03 19:21                           ` Grant Likely
2007-07-03 19:27                             ` Rune Torgersen
2007-07-03 19:30                               ` Grant Likely
2007-07-03 19:40                                 ` Rune Torgersen
2007-07-03 19:59                             ` Wolfgang Grandegger
2007-07-03 21:14                               ` Wolfgang Denk
2007-07-03 21:13                             ` Wolfgang Denk
2007-07-03 22:59                               ` Grant Likely
2007-07-03 23:13                                 ` Wolfgang Denk
2007-07-04  5:22                                   ` Andrew Dyer
2007-07-04  5:34                                     ` Grant Likely
2007-07-04 13:38                                       ` Wolfgang Denk
2007-07-04 16:00                                       ` Andrew Dyer
2007-07-04 11:46                                   ` Sascha Hauer
2007-07-04 11:53                                     ` Stefan Roese
2007-07-04 12:01                                       ` Sascha Hauer
2007-07-04 13:53                                       ` Wolfgang Denk
2007-07-04 15:39                                         ` Grant Likely
2007-07-04 18:49                                           ` Wolfgang Denk
2007-07-04 13:51                                     ` Wolfgang Denk
2007-07-03 19:19                     ` Jerry Van Baren [this message]
2007-07-03 21:11                       ` Wolfgang Denk
2007-07-03 21:06                     ` Wolfgang Denk
2007-07-03 18:43                   ` Sascha Hauer
2007-07-03 20:55               ` Wolfgang Denk
2007-07-04  9:32                 ` Sascha Hauer
2007-07-04 10:06                   ` Stefan Roese
2007-07-04 11:28                     ` Sascha Hauer
2007-07-04 11:56                       ` Stefan Roese
2007-07-04 12:21                         ` Robert Schwebel
2007-07-04 12:49                           ` Stefan Roese
2007-07-04 14:02                           ` Wolfgang Denk
2007-07-04 18:43                             ` Robert Schwebel
2007-07-04 19:36                               ` Wolfgang Denk
2007-07-04 20:40                                 ` Robert Schwebel
2007-07-04 22:25                                 ` Ulf Samuelsson
2007-07-05  6:04                                   ` Stefan Roese
2007-07-05  7:01                                     ` Robert Schwebel
2007-07-05  7:54                                     ` Ulf Samuelsson
2007-07-04 12:26                         ` Sascha Hauer
2007-07-04 12:37                           ` Stefan Roese
2007-07-04 13:09                           ` Carsten Schlote
2007-07-04 14:06                           ` Wolfgang Denk
2007-07-04 14:37                             ` Stefan Roese
2007-07-04 13:58                         ` Wolfgang Denk
2007-07-04 15:34                         ` Grant Likely
2007-07-04 12:48                       ` [U-Boot-Users] U-Boot 2.0 - How to proceed...? (was RE: U-Boot-NG ?) Carsten Schlote
2007-07-04 14:17                         ` Wolfgang Denk
2007-07-04 13:34                   ` [U-Boot-Users] U-Boot-NG ? Wolfgang Denk
2007-07-04 14:11                     ` Sascha Hauer
2007-07-03 20:48             ` Wolfgang Denk
2007-07-03 22:31               ` Sascha Hauer
2007-07-03 22:55                 ` Wolfgang Denk
2007-07-03 23:09             ` Scott Wood
2007-07-04  9:37               ` Clemens Koller
2007-07-03 17:30           ` Sascha Hauer
2007-07-03 18:03             ` Grant Likely
2007-07-04 14:16   ` Wolfgang Denk
2007-07-04 14:43     ` Sascha Hauer
2007-07-04 14:56       ` Wolfgang Denk
2007-07-06  6:39   ` [U-Boot-Users] 回复: " Songmao Tian
2007-07-06 11:46     ` [U-Boot-Users] ????: " Sascha Hauer
2007-07-06 13:09       ` Songmao Tian
2007-07-06 13:27         ` Sascha Hauer
2007-07-06 14:32         ` Wolfgang Denk
2007-07-06 14:53           ` Songmao Tian

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=468AA145.8090404@smiths-aerospace.com \
    --to=gerald.vanbaren@smiths-aerospace.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