Hello Matthew,
 
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.
 
Could you please describe any details how you ran the kernel from u-boot on a 
non-0 cpu?
 
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). I'm trying to run 
2.6.34.6 kernel with some Freescale patches in SMP configuration with 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.
 
If I run "bootm go" after the script commands (thus running the kernel on cpu 
0), the kernel runs fine.
 
When I'm trying to run the SMP kernel with full device tree on cpu 1 using the 
following commands after the script:
  fdt boot 1
  cpu 1 release 0 1 c00000 -
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.
 
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:
  fdt boot 1
  cpu 1 release 0 0 c00000 -
  [Note the difference in the parameter to 'cpu 1 release' command,
    it should be a logical cpu number, which is different]
the result is almost the same, the kernel crashes too. The reasons are similar 
to the above, with more often "Unrecoverable FP Unavailable Exception".
 
Can you give any advise why can this happen, and what I could be doing wrong?
 
Thanks in advance,
 
Best regards,
Andrew
 
setenv kernel_base 00000000
setenv kernel_size 30000000
# Helper variables
setenv kernel_load_offset 01000000
setenv dtb_load_offset    00c00000
setexpr kernel_load_addr $kernel_base + $kernel_load_offset
setexpr dtb_load_addr    $kernel_base + $dtb_load_offset
tftp $kernel_load_addr $tftpdir/uImage-p4080ds.bin
tftp $dtb_load_addr    $tftpdir/uImage-p4080ds.dtb
setenv bootargs root=/dev/nfs rw 
nfsroot=$serverip:/tftpboot/$tftpdir/rootfs-4080ds ip=dhcp console=ttyS0,115200 
debug
setenv bootm_low  $kernel_base
setenv bootm_size $kernel_size
interrupts off
bootm start $kernel_load_addr - $dtb_load_addr
bootm loados
bootm fdt
fdt boardsetup
fdt chosen
bootm prep
# cpu 1 release $kernel_base - $dtb_load_addr -
 
 
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to