Subject: Re: Multi-OS on P1022RDK Failing

From: Scott Wood <[email-masked]>
Date: Wed, 7 Dec 2011 15:24:26 -0600

On 12/07/2011 08:57 AM, Arshad, Farrukh wrote:
> Core 0 kernel
> 
> CONFIG_LOWMEM_SIZE = 0x10000000
> 
> CONFIG_PHYSICAL_START = 0x00000000
> 
>  
> 
> Core 1 kernel
> 
> CONFIG_LOWMEM_SIZE = 0x10000000
> 
> CONFIG_PHYSICAL_START = 0x10000000

Why are you messing with CONFIG_LOWMEM_SIZE?  That adjusts the
lowmem/highmem split, not the total amount of memory that this instance
of Linux will use (though you may get that behavior as a side effect if
highmem is disabled).  U-boot should set the memory node in the device
tree based on the bootm_low/bootm_size environment variables.

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

maxcpus should be unnecessary -- there will only be one cpu in the
device tree for each partition.

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

The "cpu 1 release" command should be using the address of the
decompressed kernel (should be $bootm_low), not where the uImage was loaded.

Also, the two serial ports you're using share an interrupt -- this
shouldn't stop kernel message output, but it's going to be a problem for
userspace usage of the port.  You should remove the interrupts property
from the serial node in both partitions, so Linux will poll instead.

-Scott