Multi-OS on P1022RDK Failing

Arshad, Farrukh Farrukh_Arshad at mentor.com
Thu Dec 8 01:57:18 EST 2011


Greetings All,

I am trying to boot multi-OS on P1022RDK platform. As per my understating I only need to partition peripherals in DTS file of both kernels and configure memory start address of the kernel and load each kernel from uboot. No specific kernel configuration is required or any specific patch is required for this.

Given is my configuration

Core0: Linux kernel 1
Core1: Linux kernel 2

I compiled two different kernels with following configuration (rest is default for P1022RDK comes in LTIB)

Core 0 kernel
CONFIG_LOWMEM_SIZE = 0x10000000
CONFIG_PHYSICAL_START = 0x00000000

Core 1 kernel
CONFIG_LOWMEM_SIZE = 0x10000000
CONFIG_PHYSICAL_START = 0x10000000

In the DTS file I have partitioned peripherals & cpu to each kernel. Cpu 0 to Core 0 kernel & cpu 1 to Core 1 kernel and compiled DTS file with -b 1 switch of Core 1 DTB. My DTS files are attached. Given is my Uboot script which I am using to boot both cores.

-------------- Uboot load script -----------------
# General environment setting
setenv consoledev0   ttyS0

# Set kernel loading environment
setenv core1kernelbase     0x00000000
setenv core0kernelbase     0x10000000
setenv kernelsize          0x10000000
setenv kerneloffset        0x1000000
setenv fdtoffset           0x00c00000

setexpr load0addr          $core0kernelbase + $kerneloffset
setexpr fdt0addr           $core0kernelbase + $fdtoffset
setexpr load1addr          $core1kernelbase + $kerneloffset
setexpr fdt1addr           $core1kernelbase + $fdtoffset

setenv core0kernel   uImage-custom-mel-p1022rdk-core0.bin
setenv core1kernel   uImage-custom-ltib-p1022rdk-core1.bin
setenv core0fdt      p1022rdk-core0.dtb
setenv core1fdt      p1022rdk-core1.dtb
setenv core0rootfs   /home/farshad/melfs/core0
setenv core1rootfs   /home/farshad/melfs/core1

# Boot from NFS
setenv core0nfsbootargs root=/dev/nfs nfsroot=$serverip:/$core0rootfs ip=<dev_ip>::<nfs_server_ip>:::eth0:off rw debug console=$consoledev0,$baudrate maxcpus=1
setenv core1nfsbootargs root=/dev/nfs nfsroot=$serverip:/$core1rootfs ip=<dev_ip_2>::<nfs_server_ip>:::eth0:off rw debug console=$consoledev0,$baudrate maxcpus=1

echo == Transfer images on board ==
tftp $load0addr $core0kernel
tftp $fdt0addr  $core0fdt
tftp $load1addr $core1kernel
tftp $fdt1addr  $core1fdt

echo == Start loading Core 1 with LTIB Kernel ==
setenv bootm_low $core1kernelbase
setenv bootm_size $kernelsize
setenv bootargs $core1nfsbootargs
interrupts off
bootm start $load1addr - $fdt1addr
bootm loados
bootm fdt
fdt boardsetup
fdt chosen
bootm prep
cpu 1 release $load1addr - $fdt1addr -

echo == Start loading Core 0 with MEL Kernel ==
setenv bootargs $core0nfsbootargs
setenv bootm_low $core0kernelbase
setenv bootm_size $kernelsize
bootm $load0addr - $fdt0addr
-------------- Uboot load script ends -----------------


My problem is Core 0 kernel is booting successfully but Core 1 kernel hangs after uncompressing kernel image, and after that I don't see anything on the console.

Any thoughts on what I am missing or doing incorrect?

Best Regards

Farrukh Arshad
Sr. Software Development Engineer
Mentor Graphics Pakistan
Ph:   +92 - 423 - 609 - 92 - 09
Cell: +92 - 303 - 444 - 77 - 05

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20111207/57a3dad1/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p1022rdk-core0.dts
Type: application/octet-stream
Size: 15610 bytes
Desc: p1022rdk-core0.dts
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20111207/57a3dad1/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p1022rdk-core1.dts
Type: application/octet-stream
Size: 15964 bytes
Desc: p1022rdk-core1.dts
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20111207/57a3dad1/attachment-0003.obj>


More information about the Linuxppc-dev mailing list