Subject: kernel ported from ELDK 3.0 hangs (loops in idled()) on my custom MPC870 Board

From: Edward Hong <[email-masked]>
Date: Fri, 3 Jun 2005 17:10:51 -0600

I am trying to bring up Linux on a custom MPC870 Board using ELDK 3.0. 

The ported kernel from ELDK 3.0 hangs (loops in idled()) and the kernel_thread 
init never gets started!???

The board boots with the following messages:

U-Boot 1.0.2 (May 12 2005 - 15:05:46)

CPU:   MPC885ZPnn at 132 MHz: 8 kB I-Cache 8 kB D-Cache FEC present
Board: Custom MPC870
I2C:   ready
DRAM:  64 MB
FLASH: 64 MB
In:    serial
Out:   serial
Err:   serial
Net:   FEC ETHERNET, FEC2 ETHERNET

Hit any key to stop autoboot:  0 
=> run net_nfs
Using FEC ETHERNET device
TFTP from server 10.15.10.170; our IP address is 10.15.2.101
Filename 'vmlinux.UBoot'.
Load address: 0x200000
Loading: #################################################################
         #################################################################
         ######
done
Bytes transferred = 691764 (a8e34 hex)
## Booting image at 00200000 ...
   Image Name:   Linux-2.4.24-pre2
   Created:      2005-06-03  16:17:44 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    691700 Bytes = 675.5 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.24-pre2 (ehong@chico) (gcc version 3.2.2 20030217 (Yellow 
Dog Linux 3.0 3.2.2-2a_1)) #8 Fri Jun 3 10:13:10 MDT 2005 On node 0 
totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/nfs rw nfsroot=10.15.10.170:/opt/eldk/ppc_8xx 
ip=10.15.2.101:10.15.10.170::::eth0:off panic=1
Decrementer Frequency = 495000000/60
Calibrating delay loop... 131.48 BogoMIPS
Memory: 63132k available (1204k kernel code, 360k data, 60k init, 0k highmem)
Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
POSIX conformance testing by UNIFIX

(kernel loops in idled() after kernel_thread(init, ...) in rest_init().) 

Here is the board info printed under u-boot:
=> bdinfo
memstart    = 0x00000000
memsize     = 0x04000000
flashstart  = 0xF0000000
flashsize   = 0x04000000
flashoffset = 0x0001F100
sramstart   = 0x00000000
sramsize    = 0x00000000
immr_base   = 0xFFF00000
bootflags   = 0x00000001
intfreq     =    132 MHz
busfreq     =     66 MHz
ethaddr     = 00:D0:1C:01:02:00
IP addr     = 10.15.2.101
baudrate    =  38400 bps

The bd_info of kernel is copied from u-boot. The IMAP_ADDR of kernel uses 
the same value as the U-Boot CFG_IMMR. 

Thanks in advance for your help!

Edward