<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>