<HTML dir=ltr><HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.2900.2838" name=GENERATOR></HEAD>
<BODY>
<DIV id=idOWAReplyText76845 dir=ltr>
<DIV dir=ltr><FONT face=Calibri>Hello Matthew,</FONT></DIV>
<DIV dir=ltr><FONT face=Calibri></FONT> </DIV>
<DIV dir=ltr><FONT face=Calibri>You have made a patch "powerpc/fsl_booke: Add support to boot from core other than 0" some time ago, so you probably worked with booting the kernel on a cpu subset, particularly on the core other than 0.</FONT></DIV>
<DIV dir=ltr><FONT face=Calibri></FONT> </DIV>
<DIV dir=ltr><FONT face=Calibri>Could you please describe any details how you ran the kernel from u-boot on a non-0 cpu?</FONT></DIV>
<DIV dir=ltr><FONT face=Calibri></FONT> </DIV>
<DIV dir=ltr><FONT face=Calibri>I have a problem trying to boot linux on p4080ds platform on any non-0 cpu (as a first step to running AMP or mixed AMP/SMP configuration). </FONT><FONT face=Calibri>I'm trying to run 2.6.34.6 kernel with some Freescale patches in SMP configuration with</FONT><FONT face=Calibri> full original device tree and device tree with some cpu nodes removed. I'm using the u-boot script, shown at the bottom of this message.</FONT></DIV></DIV>
<DIV dir=ltr>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>If I run "bootm go" after the script commands (thus running the kernel on cpu 0), the kernel runs fine.</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>When I'm trying to run the SMP kernel with full device tree on cpu 1 using the following commands after the script:</FONT></DIV>
<DIV><FONT face=Calibri>  fdt boot 1</FONT></DIV>
<DIV><FONT face=Calibri>  cpu 1 release 0 1 c00000 -</FONT></DIV>
<DIV><FONT face=Calibri>the kernel begins to run, but soon crashes. Possible reasons are: "Unrecoverable FP Unavailable Exception", at nearly random place; memory allocation errors somewhere in DPAA code and then segmentation fault (sig 11); unknown exception (sig 4). Sometimes it doesn't even show anything on the console (too early exception?), but sometimes it boots successfully up to the shell prompt.</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>When I'm trying to run the SMP kernel with the device tree with cpu 0 stripped out (commented out the whole cpu0 node and all properties referring to it with &cpu0), using the following commands after the script:</FONT></DIV>
<DIV><FONT face=Calibri>  fdt boot 1</FONT></DIV>
<DIV><FONT face=Calibri>  cpu 1 release 0 0 c00000 -</FONT></DIV>
<DIV><FONT face=Calibri>  [Note the difference in the parameter to 'cpu 1 release' command,</FONT></DIV>
<DIV><FONT face=Calibri>    it should be a logical cpu number, which is different]</FONT></DIV>
<DIV><FONT face=Calibri>the result is almost the same, the kernel crashes too. The reasons are similar to the above, with more often "Unrecoverable FP Unavailable Exception".</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>Can you give any advise why can this happen, and what I could be doing wrong?</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>Thanks in advance,</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face=Calibri>Best regards,</FONT></DIV>
<DIV><FONT face=Calibri>Andrew</FONT></DIV>
<DIV><FONT face=Calibri></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>setenv kernel_base 00000000<BR>setenv kernel_size 30000000</FONT></DIV>
<DIV><FONT face="Courier New" size=2># Helper variables<BR>setenv kernel_load_offset 01000000<BR>setenv dtb_load_offset    00c00000</FONT></DIV>
<DIV><FONT face="Courier New" size=2>setexpr kernel_load_addr $kernel_base + $kernel_load_offset<BR>setexpr dtb_load_addr    $kernel_base + $dtb_load_offset</FONT></DIV>
<DIV><FONT face="Courier New" size=2>tftp $kernel_load_addr $tftpdir/uImage-p4080ds.bin<BR>tftp $dtb_load_addr    $tftpdir/uImage-p4080ds.dtb</FONT></DIV>
<DIV><FONT face="Courier New" size=2>setenv bootargs root=/dev/nfs rw nfsroot=$serverip:/tftpboot/$tftpdir/rootfs-4080ds ip=dhcp console=ttyS0,115200 debug<BR>setenv bootm_low  $kernel_base<BR>setenv bootm_size $kernel_size<BR>interrupts off<BR>bootm start $kernel_load_addr - $dtb_load_addr<BR>bootm loados<BR>bootm fdt<BR>fdt boardsetup<BR>fdt chosen<BR>bootm prep</FONT></DIV>
<DIV><FONT face="Courier New" size=2># cpu 1 release $kernel_base - $dtb_load_addr -</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face=Calibri></FONT> </DIV></DIV></BODY></HTML>