
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.