This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

L138 LCDK cannot boot with "mem=32M@0xc0000000 mem=64M@0xc4000000"

Hi,

My L138 LCDK can boot successfully with the following env:

setenv bootargs console=ttyS2,115200n8 rw noinitrd root=/dev/nfs nfsroot=192.168.0.103:/home/lcdkl138/arm9_FS,nolock rw mem=110M ip=dhcp earlyprintk rootdelay=2,rsize=1024,wsize=1024 ip=dhcp

but, it generates error when run syslink example projects.

Some help on line told me that use: mem=32M@0xc0000000 mem=64M@0xc4000000

but LCDK halts:

U-Boot > setenv bootargs mem=32@0xC0000000 mem=64@0xC4000000 console=ttyS2,115200n8 rw noinitrd root=/dev/nfs nfsroot=192.168.0.103:/home/lcdkl138/arm9_FS,nol
ock rw ip=dhcp
U-Boot > pri
autoload=no
baudrate=115200
bootargs=mem=32@0xC0000000 mem=64@0xC4000000 console=ttyS2,115200n8 rw noinitrd root=/dev/nfs nfsroot=192.168.0.103:/home/lcdkl138/arm9_FS,nolock rw ip=dhcp
bootcmd=dhcp;setenv serverip 192.168.0.103;tftpboot;bootm
bootdelay=3
bootfile=uImage-omapl138-lcdk.bin
dnsip=192.168.0.1
ethact=DaVinci-EMAC
ethaddr=00:00:a0:00:fb:c7
fileaddr=C0700000
filesize=1F221C
gatewayip=192.168.0.1
ip_method=dhcp
ipaddr=192.168.0.122
netargs=run bootargs
netmask=255.255.255.0
rl=tftp 0xc0700000 uImage; bootm
serverip=192.168.0.103
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2010.12 (May 07 2012 - 16:09:45)

Environment size: 674/65532 bytes
U-Boot > saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x0 -- 100% complete.
Writing to Nand... done
U-Boot > boot
BOOTP broadcast 1
DHCP client bound to address 192.168.0.108
Using DaVinci-EMAC device
TFTP from server 192.168.0.103; our IP address is 192.168.0.108
Filename 'uImage-omapl138-lcdk.bin'.
Load address: 0xc0700000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########
done
Bytes transferred = 2040368 (1f2230 hex)
## Booting kernel from Legacy Image at c0700000 ...
   Image Name:   Linux-3.1.10
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2040304 Bytes = 1.9 MiB
   Load Address: c0008000
   Entry Point:  c0008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

: Halt here

Now, I would like to know the reason to put two segments memory:

mem=32M@0xc0000000 mem=64M@0xc4000000

There are some reserve space and/or holes on the SDRAM? Why does it not work for mem=110 MB? I only remember that it needs to reserve memory space for swap and shared memory for some MB. 32+64=98 MB, which is less 12 MB than 110 MB. I don't think there are too much content over the memory. I do not run any program yet (only Linux load, it halts)

Could you explain it to me? Thanks,