<div dir="ltr"><div><div><div><div><div><div>Hello,<br><br>i am currently working on a GE PPC9A board which has a MPC8641D processor.<br><br></div><div>My work on this board is currently based on the yocto project (where i also put this issue on the mailinglist) but the issue affects mainly the kernel's SMP feature so i want to share this issue here as well and see if anybody can help:<br>
</div><div><br></div>i created a BSP for this board and yocto generates a fully working 3.14 kernel and rootfs as well as devicetree.<br>
<br>the only thing which is causing problems is SMP. i included the following kernel options:<br><br>CONFIG_SMP=y<br>CONFIG_SCHED_SMT=y<br>CONFIG_NR_CPUS=64<br><br></div>Unfortunately, only one CPU is brought up during boot:<br>
<br>...<br>PID hash table entries: 4096 (order: 2, 16384 bytes)<br>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)<br>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)<br>Sorting __ex_table...<br>
Memory: 2066916K/2097152K available (4312K kernel code, 188K rwdata,
952K rodata, 200K init, 131K bss, 30236K reserved, 1310716K highmem)<br>Kernel virtual memory layout:<br> * 0xffbdf000..0xfffff000 : fixmap<br> * 0xff400000..0xff800000 : highmem PTEs<br>
* 0xff3dd000..0xff400000 : early ioremap<br> * 0xf1000000..0xff3dd000 : vmalloc & ioremap<br>Preemptible hierarchical RCU implementation.<br> Dump stacks of tasks blocking RCU-preempt GP.<br> RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=2.<br>
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2<br>NR_IRQS:512 nr_irqs:512 16<br>mpic: Setting up MPIC " MPIC " version 1.2 at fef40000, max 2 CPUs<br>mpic: ISU size: 256, shift: 8, mask: ff<br>
mpic: Initializing for 256 sources<br>clocksource: timebase mult[7800001] shift[24] registered<br>Console: colour dummy device 80x25<br>pid_max: default: 32768 minimum: 301<br>Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)<br>
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)<br>mpic: requesting IPIs...<br>ProcePID hash table entries: 4096 (order: 12, 16384 bytes)<br>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)<br>
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)<br>Memory: 2044396k/2097152k available (4464k kernel code, 51632k reserved, 148k data, 145k bss, 196k init)<br>Kernel virtual memory layout:<br> * 0xfffe0000..0xfffff000 : fixmap<br>
* 0xff800000..0xffc00000 : highmem PTEs<br> * 0xff3db000..0xff800000 : early ioremap<br> * 0xf1000000..0xff3db000 : vmalloc & ioremap<br>NR_IRQS:512<br>mpic: Setting up MPIC " MPIC " version 1.2 at fef40000, max 2 CPUs<br>
mpic: ISU size: 256, shift: 8, mask: ff<br>mpic: Initializing for 256 sources<br>clocksource: timebase mult[1e00000] shift[22] registered<br>Console: colour dummy device 80x25<br>Mount-cache hash table entries: 512<br>smp_prepare_cpus<br>
mpic: requesting IPIs ... <br>smp: kicking cpu 1<br>Processor 1 is stuck.<br>Brought up 1 CPUs<br>NET: Registered protocol family 16<br>...<br><br></div>GE had also released a kernel for this board (2009 2.6 kernel), SMP seems to fail there as well:<br>
<br>...<br>Kernel virtual memory layout:<br> * 0xfffe0000..0xfffff000 : fixmap<br> * 0xff800000..0xffc00000 : highmem PTEs<br> * 0xff3db000..0xff800000 : early ioremap<br> * 0xf1000000..0xff3db000 : vmalloc & ioremap<br>
NR_IRQS:512<br>mpic: Setting up MPIC " MPIC " version 1.2 at fef40000, max 2 CPUs<br>mpic: ISU size: 256, shift: 8, mask: ff<br>mpic: Initializing for 256 sources<br>clocksource: timebase mult[1e00000] shift[22] registered<br>
Console: colour dummy device 80x25<br>Mount-cache hash table entries: 512<br>smp_prepare_cpus<br>mpic: requesting IPIs ... <br>smp: kicking cpu 1<br>Processor 1 is stuck.<br>Brought up 1 CPUs<br>...<br><br></div>Does anybody have an idea what might cause this problem?<br>
<br></div>Kind regards,<br></div>Chris</div>