[U-Boot-Users] EP852 : Kernel not booting ( Hangs after uncompressing)

gautam borad gautam at eisodus.com
Fri Oct 28 11:22:02 CEST 2005


Hi,
    I'm trying to port u-boot-1.1.3 to EP852 board with mpc852T 
processor.The kernel im
using is linuxppc 2.4.21.  
The board is working fine with u-boot , the problem is that kernel is 
not starting.
I've made sure that the bd_info structure is same in kernel and u-boot.
The clocks_in_mhz variable is not set and the IMMR value in kernel and 
u-boot
matches. I run the test_burst program in u-boot and it worked fine.( so 
no prob with RAM)
What else am i doing wrong??

The dump is :

U-Boot 1.1.3 (Oct 28 2005 - 12:54:07) EP852

CPU:   MPC852TxxZPnn at 50 MHz [25.0...125.0 MHz]
       4 kB I-Cache 4 kB D-Cache FEC present

Board: EP852 (Rev. e4).   CPLD Rev: 00   DIP Switch: 1111
DRAM:  16 MB
Top of RAM usable for U-Boot at: 01000000
Reserving 354k for U-Boot at: 00fa7000
Reserving 128k for malloc() at: 00f87000
Reserving 60 Bytes for Board Info at: 00f86fc4
Reserving 56 Bytes for Global Data at: 00f86f8c
Stack Pointer at: 00f86f68
New Stack Pointer is: 00f86f68
Now running in RAM - U-Boot at: 00fa7000
FLASH: Flash addr:ff800000
 AMD_ID_LV320B selected.
before print_size 8 MB
In:    serial
Out:   serial
Err:   serial
U-Boot relocated to 00fa7000
Net: FEC ETHERNET
### main_loop entered: bootdelay=8
### main_loop: bootcmd="<UNDEFINED>"
=> printenv bootargs
bootargs=console=ttyS0,9600 root=/dev/ram
=> tftp 0x00200000 pImage
Using FEC ETHERNET device
TFTP from server 10.129.87.5; our IP address is 10.129.87.250
Filename 'pImage'.
Load address: 0x200000
Loading: #################################################################
         ###########################################################
done
Bytes transferred = 631143 (9a167 hex)
=> bootm 0x00200000
## Booting image at 00200000 ...
   Image Name:   Linux-2.4.21
   Created:      2005-10-27  13:15:01 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    631079 Bytes = 616.3 kB
   Load Address: 00100000
   Entry Point:  00100000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
before do_bootm_linux() argv = 16722772 addr = 16282928
## Current stack ends at 0x00F86CA8 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF20
No initrd
## Transferring control to Linux (at address 00100000) ...
bi_memstart = 0
 bi_memsize = 16777216
 bi_flashstart = 4286578688
 bi_flashsize = 8388608
 bi_flashoffset = 343040
 bi_sramstart = 0
 bi_sramsize = 0
 bi_immr_base = 4196401152
 bi_bootflags = 1
 bi_ip_addr = 176248826
 bi_enetaddr[6] =
 bi_ethspeed = 114
 bi_intfreq = 50000000
 bi_busfreq = 50000000
 bi_baudrate = 38400                           // see the problem below

The image was created with the following in arc/ppc/boot/Makefile :
$(MKIMAGE) -A ppc -O linux -T kernel -C gzip -a 0x00100000 -e 0x00100000 \
    -n 'Linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)' \
    -d $< images/vmlinux.PPCBoot
    ln -sf vmlinux.PPCBoot images/pImage

The same kernel was working fine before with the epbootloader. the 
partitions i made in kernel MTD are:
ff80_0000 ------- ff82_0000             ->          boot
ff82_0000 ------- ff8c_0000             ->          zImage
ff8c_0000 ------- ff2c_0000             ->          ramdisk
ff2c_0000 ------- ffff_ffff                 ->           UserFS (JFFS2)

Some of the #defines in EP852 configs are :

#define CFG_SDRAM_SIZE                 (16 * MB)
#define CFG_FLASH_BASE                 0xFF800000
#define CFG_FLASH_SIZE                   (8 * MB)
#define CFG_BSCR_BASE                  0xFA400000
#define CFG_IMMR                              0xFA200000
#define CFG_JFFS2_FIRST_SECTOR  56                 what should i give here?
#define CFG_PRELIM_OR_AM             0xFF800000
#define CFG_OR0_PRELIM                  (CFG_PRELIM_OR_AM | 
CFG_OR_TIMING_FLASH)
#define CFG_BR0_PRELIM                   0xFF800001
#define CFG_OR1_PRELIM                   0xFF000600
#define CFG_BR1_PRELIM                   ((CFG_SDRAM_BASE & BR_BA_MSK) | 
BR_MS_UPMA | BR_V )
#define CFG_BR3_PRELIM                   0xFA400001      /* BCSR */
#define CFG_OR3_PRELIM                   0xFF7F8970
#define CFG_BR4_PRELIM                   0xFA000401      /* NVRAM&SRAM */
#define CFG_OR4_PRELIM                   0xFFF80970

There is other minor(??) problem. When i set the value of CFG_SCCR to
SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00  | SCCR_DFNL000 | 
SCCR_DFNH000  | SCCR_DFLCD000 | SCCR_DFALCD00  u-boot works at
CONFIG_BAUDRATE / 4 speed i.e if CONFIG_BAUDRATE = 9600 i've to
set minicom/kermit to 2400 . Now when i set CFG_SCCR to 0x03020800 ( the
value given by embedded planet config file) the baud rate works fine but 
the FEC
doesnt work properly. It works __VERY__ slowly, i get errors in 
fec_recv() ( enabling ET_DEBUG)
How do I make both ( FEC and baudrate ) work fine and also is this 
related to
kernel not booting?

Thanks in advance.

-----------
We would change the world.....
But GOD wont give the source code.




More information about the U-Boot mailing list