[U-Boot] Problem with old MPC8548 board and newer u-boots
Alex Dubov
oakad at yahoo.com
Mon Jul 27 09:33:54 CEST 2009
I've got an old STx AMC8548 board. It came with u-boot-1.1.4 which works.
I upgraded it to stock u-boot-1.3.4 which also works. However, nothing
newer will, despite a lot of effort I spent in a last couple of days.
The crux of the problem: cpu gets a weird "program error" exception
out of nowhere and gets stuck indefinitely.
It seems to always break down after relocation to RAM. The last print-out
before "relocate_code" is always printed, the first print-out in
"board_init_r" only on random occasions. With single stepping the odds of
reaching past the first print-out in "board_init_r" improve, but not by
much. Sometimes, print-outs are passed by but nothing is written to the
serial port.
I tried running DDR memory tests - all ok. Manual inspection through
debugger (I've got BDI3000) shows no apparent problems (all is set up
in RAM correctly).
Writing to serial port through debugger works, even after CPU halt.
May be somebody has any idea what can it be?
Here's typical printout for u-boot-2009.06 (2009.03 behaves exactly the
same), with partial debug enabled:
U-Boot 2009.06 (Jul 24 2009 - 19:33:07)
CPU: 8548E, Version: 1.1, (0x80390011)
Core: E500, Version: 1.0, (0x80210010)
Clock Configuration:
CPU0:660 MHz,
CCB:264 MHz,
DDR:132 MHz (264 MT/s data rate), LBC:16.500 MHz
L1: D-cache 32 kB enabled
I-cache 32 kB enabled
Board: STX AMC8548
I2C: ready
DRAM: Initializing
starting at step 1 (STEP_GET_SPD)
DDR: DDR II rank density = 0xe4013c72
mclk_ps = 7580
i=0, x = 0, lowest_tCKmin_found = 0
i=1, x = 5000, lowest_tCKmin_found = 0
i=2, x = 3750, lowest_tCKmin_found = 5000
i=3, x = 3000, lowest_tCKmin_found = 5000
i=4, x = 2500, lowest_tCKmin_found = 5000
lowest_tCKmin_CL = 3
Computing lowest common DIMM parameters for memctl=0
using mclk_ps = 7580
checking common caslat = 5
CL = 5 ok on DIMM 0 at tCK=7580 ps with its tCKmin_X_ps of 3750
checking common caslat = 4
CL = 4 ok on DIMM 0 at tCK=7580 ps with its tCKmin_X_minus_1_ps of 3750
checking common caslat = 3
CL = 3 ok on DIMM 0 at tCK=7580 ps with its tCKmin_X_minus_2_ps of 5000
lowest common SPD-defined CAS latency = 3
highest common dereated CAS latency = 3
Warning: not all DIMMs ECC capable, cant enable ECC
setting additive_latency to 2 because it was greater than tRCD_ps
Error: invalid additive latency exceeds tRCD(min).
Reloading memory controller configuration options for memctl=0
mclk_ps = 7580 ps
FSL Memory ctrl cg register computation
FSLDDR: cs[0]_bnds = 0x0000000f
FSLDDR: cs[0]_config = 0x80010102
FSLDDR: cs[0]_config_2 = 0x00000000
FSLDDR: cs[1]_bnds = 0x0010001f
FSLDDR: cs[1]_config = 0x80010102
FSLDDR: cs[1]_config_2 = 0x00000000
FSLDDR: timing_cfg_0 = 0x00220802
FSLDDR: timing_cfg_3 = 0x00000000
FSLDDR: timing_cfg_1 = 0x26256222
FSLDDR: timing_cfg_2 = 0x05104d05
FSLDDR: ddr_sdram_cfg = 0xc3000000
DDR: ddr_data_init = 0xdeadbeef
FSLDDR: ddr_sdram_cfg_2 = 0x24401010
FSLDDR: ddr_sdram_mode = 0x00440232
FSLDDR: ddr_sdram_mode_2 = 0x00000000
FSLDDR: ddr_sdram_interval = 0x04060100
FSLDDR: timing_cfg_4 = 0x00000000
FSLDDR: timing_cfg_5 = 0x00000000
Programming controller 0
total_memory = 536870912
DDR: 512 MB
SDRAM test range 1ff00000 - 20000000
SDRAM test phase 1:
SDRAM test phase 2:
SDRAM test passed.
Top of RAM usable for U-Boot at: 20000000
Reserving 245k for U-Boot at: 1ffc0000
Reserving 128k for malloc() at: 1ffa0000
Reserving 80 Bytes for Board Info at: 1ff9ffb0
Reserving 68 Bytes for Global Data at: 1ff9ff6c
Stack Pointer at: 1ff9ff48
New Stack Pointer is: 1ff9ff48
--- cpu halted ---
More information about the U-Boot
mailing list