[U-Boot-Users] 85xx running in RAM problems

robert lazarski robertlazarski at gmail.com
Thu Oct 18 20:35:25 CEST 2007


Hi all,

On my custom 8548 board I'm getting two different results - with a BDI
[INIT] config, and without. With the BDI [INIT] config, I can get
farther by setting the DDR2 ram size to be 256MB instead of what I
have, 1GB. I have no other SDRAM besides DDR2. Sorry for the long
post. I can set in the BDI the following:

 ;# CS0_BNDS
;# bit 8-15 - starting address
;# bit 24-31 - ending address, configured for 256MB
WM32    0xE0002000 0x0000000f ; DDR CS0

;# CS0_CONFIG
WM32    0xE0002080 0x80000102

;# TIMING_CFG_0
WM32    0xE0002104 0x00260802

;# TIMING_CFG_1
WM32    0xE0002108 0x38355322

And by doing so, I can get U-boot running in ram:

U-Boot 1.3.0-rc1-g67c31036-dirty (Oct 18 2007 - 11:43:18)

CPU:   8548_E, Version: 2.0, (0x80390020)
Core:  E500, Version: 2.0, (0x80210020)
Clock Configuration:
       CPU: 888 MHz, CCB: 355 MHz,
       DDR: 177 MHz, LBC:  22 MHz
L1:    D-cache 32 kB enabled
       I-cache 32 kB enabled
Board: MPC8548ATUM
I2C:   ready
DRAM:  Initializing
spd_sdram
 cs0 already configured, bnds=f
       Reusing current 256MB configuration
DDR: MAS0=0x10080000
DDR: MAS1=0xc0000900
DDR: MAS2=0x00000000
DDR: MAS3=0x00000015
DDR: LAWBAR1=0x00000000
DDR: LARAR1=0x80f0001b
    DDR: 256 MB
Top of RAM usable for U-Boot at: 10000000
Reserving 207k for U-Boot at: 0ffc0000
Reserving 136k for malloc() at: 0ff9e000
Reserving 80 Bytes for Board Info at: 0ff9dfb0
Reserving 48 Bytes for Global Data at: 0ff9df80
Stack Pointer at: 0ff9df68
New Stack Pointer is: 0ff9df68
Now running in RAM - U-Boot at: 0ffc0000
FLASH: flash detect cfi
fwc addr f8000000 cmd 0 0 8bit x 8 bit
fwc addr f8000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr f8000010 is= ff 51
fwc addr f8000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr f8000010 is= ff 51
fwc addr f8000000 cmd 0 0000 16bit x 8 bit
fwc addr f80000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr f8000020 is= 0051 5151
fwc addr f8000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr f8000020 is= 0051 5151
fwc addr f8000000 cmd 0 0000 16bit x 16 bit
fwc addr f80000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr f8000020 is= 0051 0051
is= cmd 52(R) addr f8000022 is= 0052 0052
is= cmd 59(Y) addr f8000024 is= 0059 0059
ushort addr is at f8000050 info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x2
addr[2] = 0x0
addr[3] = 0x0
retval = 0x2
device interface is 2
found port 2 chip 2 port 16 bits chip 16 bits
ushort addr is at f8000026 info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x2
addr[2] = 0x0
addr[3] = 0x0
retval = 0x2
fwc addr f8000000 cmd f0 00f0 16bit x 16 bit
fwc addr f8000aaa cmd aa 00aa 16bit x 16 bit
fwc addr f8000554 cmd 55 0055 16bit x 16 bit
fwc addr f8000aaa cmd 90 0090 16bit x 16 bit
fwc addr f8000000 cmd f0 00f0 16bit x 16 bit
fwc addr f80000aa cmd 98 0098 16bit x 16 bit
ushort addr is at f800002a info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x40
addr[2] = 0x0
addr[3] = 0x0
retval = 0x40
f8000020 : 00 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00  .Q.R.Y..... at ....
f8000030 : 00 00 00 00 00 00 00 27 00 36 00 00 00 00 00 06  .......'.6......
f8000040 : 00 06 00 09 00 13 00 03 00 05 00 03 00 02 00 1b  ................
f8000050 : 00 02 00 00 00 06 00 00 00 01 00 ff 00 03 00 00  ................
f8000060 : 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
f8000070 : 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff  ................
f8000080 : 00 50 00 52 00 49 00 31 00 33 00 14 00 02 00 01  .P.R.I.1.3......
f8000090 : 00 00 00 08 00 00 00 00 00 02 00 b5 00 c5 00 05  ................
manufacturer is 2
manufacturer id is 0x1
device id is 0x7e
device id2 is 0x2801
cfi version is 0x3133
size_ratio 1 port 16 bits chip 16 bits
found 1 erase regions
long addr is at f800005a info->portwidth = 2
addr[0] = 0x0
addr[1] = 0xff
addr[2] = 0x0
addr[3] = 0x3
addr[4] = 0x0
addr[5] = 0x0
addr[6] = 0x0
addr[7] = 0x2
erase_region_count = 1024 erase_region_size = 131072
ushort addr is at f8000054 info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x6
addr[2] = 0x0
addr[3] = 0x0
retval = 0x6
fwc addr f8000000 cmd f0 00f0 16bit x 16 bit
flash_protect ON: from 0xFFF80000 to 0xFFFAD4FF
protect on 1020
protect on 1021
flash_protect ON: from 0xFFFC0000 to 0xFFFFFFFF
protect on 1022
protect on 1023
128 MB
L2 cache 512KB: already enabled.
*** Warning - bad CRC, using default environment

   pci_init_board: devdisr=700c0001, io_sel=6, host_agent=7
    PCIE1: disabled

    PCI1: 32 bit, 33 MHz, sync, host, arbiter (base address e0008000)
               Scanning PCI bus 00
PCI1 on bus 00 - 00
    PCI2: disabled
In:    serial
Out:   serial
Err:   serial
U-Boot relocated to 0ffc0000
iivpr1 at e005

Where it hangs after setting IVPR - another problem I'll tackle after
my DDR2 issues. Note the above "cs0 already configured, bnds=f" from
spd_sdram() . If I set bnds=3f (1GB) via the BDI - or run with any BDI
INIT and just rely on spd_sdram() , it hangs here:

Stack Pointer at: 3ff9df68
New Stack Pointer is: 3ff9df68

The only place I'm setting up DDR2 besides calling spd_sdram() is here:

.long  (LAWAR_TRGT_DDR | (LAWAR_SIZE & LAWAR_SIZE_1G)) & ~LAWAR_EN

And here:

#define CFG_DDR_SDRAM_BASE      0x00000000      /* DDR is system memory*/

Any ideas?
Robert




More information about the U-Boot mailing list