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

2005-06-10 Thread Edward Hong
It looks like the BDI2000 debugger caused the problem. The kernel
boots fine after removing the debugger.

Thank you very much for all your replies!

Edward

On 6/6/05, Edward Hong edward.qin.hong at gmail.com wrote:
 On 6/6/05, Randy Vinson rvinson at mvista.com wrote:
 
  Hi Edward,
I've seen these symptoms before. The problem was traced to external
  interrupts being disabled (MSR[EE] not set). Without external
  interrupts, there is no decrementer interrupt (at least on 7xx
  processors). Without the decrementer, there in no system clock tick and
  without the clock tick, the scheduler won't run which means that the
  init task won't start. To verify that this is the problem, use mfmsr()
  to get the MSR and print it. I'd suggest that you add something like:
 
  printk(MSR = %x\n, mfmsr());
 
 I got  MSR = 9032 just before cpu_idle which means EE (the most
 significant bit) was enabled.
 
 Thank you!
 
 Edward




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

2005-06-06 Thread Edward Hong
On 6/4/05, Wolfgang Denk wd at denx.de wrote:
 
 With beginning of init you mean init() in init/main.c, right?
 So gets rest_init() called?
 Did you add a few printk's to start_kernel()?
 How far does it get?
 
Yes. rest_init() got called and executed kernel_thread(init,...) ...
and got into cpu_idle().
  Any suggestions for debugging?
 
 Attach a BDI2000 and start GDB...
 
I have a BDI2000. But I am not sure how to further debug in my
situation since I know the kernel execution was looping inside
idled().

Thank you!

Edward



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

2005-06-06 Thread Randy Vinson
Edward Hong wrote:
 
 Yes. rest_init() got called and executed kernel_thread(init,...) ...
 and got into cpu_idle().

Hi Edward,
   I've seen these symptoms before. The problem was traced to external 
interrupts being disabled (MSR[EE] not set). Without external 
interrupts, there is no decrementer interrupt (at least on 7xx 
processors). Without the decrementer, there in no system clock tick and 
without the clock tick, the scheduler won't run which means that the 
init task won't start. To verify that this is the problem, use mfmsr() 
to get the MSR and print it. I'd suggest that you add something like:

 printk(MSR = %x\n, mfmsr());

to rest_init just before call to cpu_idle. Or you can use:

 if (irqs_disabled()) printk(

if you don't want to decode the MSR yourself.


Randy Vinson



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

2005-06-06 Thread Edward Hong
On 6/6/05, Randy Vinson rvinson at mvista.com wrote:
 
 Hi Edward,
   I've seen these symptoms before. The problem was traced to external
 interrupts being disabled (MSR[EE] not set). Without external
 interrupts, there is no decrementer interrupt (at least on 7xx
 processors). Without the decrementer, there in no system clock tick and
 without the clock tick, the scheduler won't run which means that the
 init task won't start. To verify that this is the problem, use mfmsr()
 to get the MSR and print it. I'd suggest that you add something like:
 
 printk(MSR = %x\n, mfmsr());

I got  MSR = 9032 just before cpu_idle which means EE (the most
significant bit) was enabled.

Thank you!

Edward



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

2005-06-05 Thread Wolfgang Denk
In message 21fb73bc0506041640736e3020 at mail.gmail.com you wrote:

 My debug lines at the beginning of init never get printed on the
 console or in the log_buf.

With beginning of init you mean init() in init/main.c, right?
So gets rest_init() called?
Did you add a few printk's to start_kernel()?
How far does it get?

 Any suggestions for debugging?

Attach a BDI2000 and start GDB...

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If something is different, it's either better or worse,  and  usually
both.- Larry Wall



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

2005-06-04 Thread Wolfgang Denk
In message 21fb73bc05060316102325f94d at mail.gmail.com you wrote:
 I am trying to bring up Linux on a custom MPC870 Board using ELDK 3.0. 

Why are you using old (not to say ancient) tools?

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

How do you know that init didn't  run?  Runningthe  idle  loop  is  a
perfectly normal situation.

 Linux version 2.4.24-pre2 (ehong at 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/pp
 c_8xx 
 ip=10.15.2.101:10.15.10.170eth0:off panic=1
 Decrementer Frequency = 49500/60
 Calibrating delay loop... 131.48 BogoMIPS
 Memory: 63132k available (1204k kernel code, 360k data, 60k init, 0k highme
 m)
 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().) 

Are you sure that your kernel configuration is sensible? For example,
did you configure a console port that matches your hardware? Did  you
configure the serial ports (SMC / SCC) at all?

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I read part of it all the way through.



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

2005-06-04 Thread Edward Hong
On 6/3/05, Wolfgang Denk wd at denx.de wrote:
 In message 21fb73bc05060316102325f94d at mail.gmail.com you wrote:
  I am trying to bring up Linux on a custom MPC870 Board using ELDK 3.0.
 
 Why are you using old (not to say ancient) tools?
 
I had the tool ready for a while. After porting u-boot, I realized
that there had been several new tool releases.

  The ported kernel from ELDK 3.0 hangs (loops in idled()) and the 
  kernel_thread
  init never gets started!???
 
 How do you know that init didn't  run?  Runningthe  idle  loop  is  a
 perfectly normal situation.
 
My debug lines at the beginning of init never get printed on the
console or in the log_buf.

 
 Are you sure that your kernel configuration is sensible? For example,
 did you configure a console port that matches your hardware? Did  you
 configure the serial ports (SMC / SCC) at all?
 
I am positive about the kernel configuration. SMC1 was configured as my 
console.

Any suggestions for debugging?

 Best regards,
 
 Wolfgang Denk
 
 --
 Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
 Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
 I read part of it all the way through.
 

Thank you!

Edward



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

2005-06-03 Thread Edward Hong
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: 0x20
Loading: #
 #
 ##
done
Bytes transferred = 691764 (a8e34 hex)
## Booting image at 0020 ...
   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: 
   Entry Point:  
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.24-pre2 (ehong at 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.170eth0:off panic=1
Decrementer Frequency = 49500/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= 0x
memsize = 0x0400
flashstart  = 0xF000
flashsize   = 0x0400
flashoffset = 0x0001F100
sramstart   = 0x
sramsize= 0x
immr_base   = 0xFFF0
bootflags   = 0x0001
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