I recently migrated from the ES2.1 w/ 128 ddr to ES3.1 w/ 256 ddr on my OMAP35x Mistral EVM.

As described on the davincidsp wiki, I changed my bootargs to create a memory hole from 100MB-128MB and give Linux the rest of the place.

This works well with NFS and tftpboot, with the following bootargs:

setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=158.218.63.217:/home/uday/development/workdir/filesys,nolock mem=99M@0x80000000 mem=128M@0x88000000 mpurate=600 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y

However, when I move to SD card, I see a kernel panic with the following bootargs:

setenv bootargs_sd mem=99M@0x80000000 mem=128M@0x88000000 console=ttyS0,115200n8 root=/dev/mmcblk0p2 quiet lpj=741376 rw rootdelay=1 ip=off mpurate=600 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y video=omap24xxfb:rotation=90

If I remove the memory hole i.e. just give mem=99M in the bootargs above for the SD card, it boots fine.

Also, when I set bootargs_sd for the SD card to anything greater than 128MB, I see the same kernel panic issue.

The uImage I'm using in both cases is the same. The u-boot is also the same, except in the case of the SD card I read the environment variables from a text file env_demo.txt .

Would really appreciate some help with this. Thanks!

Here's the log:

U-Boot 2008.10 (Oct 20 2009 - 14:35:52)

OMAP35X-Family-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 EVM board + LPDDR/NAND
In:    serial
Out:   serial
Err:   serial
reading env_demo.txt
Demo Found
reading uImage
Hit any key to stop autoboot:  0
reading uImage

2128128 bytes read
## Booting kernel from Legacy Image at 80000000 ...
   Image Name:   Linux-2.6.29-rc3-omap1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2128064 Bytes =  2 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux........................................................................................................................................... done, booting the kernel.
<5>Linux version 2.6.29-rc3-omap1 (uday@LTA0132923-LINUX) (gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126)) #1 Thu Sep 24 23:45:18 CDT 2009
CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 EVM
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 58112
<7>free_area_init_node: node 0, pgdat c0440c24, node_mem_map c0465000
<7>  Normal zone: 512 pages used for memmap
<7>  Normal zone: 0 pages reserved
<7>  Normal zone: 57600 pages, LIFO batch:15
<6>OMAP3530 ES3.1 (full speed SGX, IVA2)
<6>SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 57600
<5>Kernel command line: mem=99M@0x80000000 mem=128M@0x88000000 console=ttyS0,115200n8 root=/dev/mmcblk0p2 quiet lpj=741376 rw rootdelay=1 ip=off mpurate=600 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y video=omap24xxfb:rotation=90
<6>Clocking rate (Crystal/DPLL/MPU core): 26.0/332/500 MHz
<6>IVA2 clocking rate: 360 MHz
<6>Reprogramming SDRC
<6>GPMC revision 5.0
<6>IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
<6>Total of 96 interrupts on 1 active controller
<6>OMAP34xx GPIO hardware version 2.5
PID hash table entries: 1024 (order: 10, 4096 bytes)
<6>OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
<6>Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Memory: 99MB 128MB = 227MB total
<5>Memory: 225664KB available (3928K code, 370K data, 156K init)
<1>Unhandled fault: external abort on non-linefetch (0x1008) at 0xcf00000c
Internal error: : 1008 [#1]
Modules linked in:
CPU: 0    Not tainted  (2.6.29-rc3-omap1 #1)
PC is at cache_alloc_refill+0x414/0x518
LR is at 0xc0440c24
pc : [<c00ab3a4>]    lr : [<c0440c24>]    psr: 80000153
sp : c0407ef0  ip : 000000c0  fp : c0407f2c
r10: 000000d0  r9 : 00000010  r8 : c041c9fc
r7 : c0029a68  r6 : 00000000  r5 : cf000000  r4 : cf000000
r3 : 00000028  r2 : 00000000  r1 : 00000000  r0 : c0645020
Flags: Nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387f  Table: 80004019  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc04062e0)
Stack: (0xc0407ef0 to 0xc0408000)
7ee0:                                     c0407f3c 000080d0 00000000 00000020
7f00: 60000153 60000153 c041c9e0 c041c9fc 000080d0 00000020 411fc083 00000008
7f20: c0407f4c c0407f30 c00aaf58 c00aaf9c 00000000 c041c9e0 00000020 00042000
7f40: c0407f94 c0407f50 c00ac024 c00aaf00 c0407f9c c0407f60 c03acc4d 00000003
7f60: c0441d70 c0028e6b c0407f94 c0029a68 00000000 c041ca54 c041c9e0 c041ca54
7f80: 411fc083 00000000 c0407fcc c0407f98 c0017a98 c00abe38 00000000 c041ca18
7fa0: c03a2ebc 00000040 c0028eac c04417e8 c0028ea8 c0409cb8 80026bd4 0000001f
7fc0: c0407ff4 c0407fd0 c0008afc c001794c c0008520 00000000 00000000 c0028eac
7fe0: 10c5387d c0441d18 00000000 c0407ff8 80008034 c0008930 00000000 00000000
Backtrace:
[<c00aaf90>] (cache_alloc_refill+0x0/0x518) from [<c00aaf58>] (kmem_cache_alloc+0x64/0x9c)
[<c00aaef4>] (kmem_cache_alloc+0x0/0x9c) from [<c00ac024>] (kmem_cache_create+0x1f8/0x444)
 r7:00042000 r6:00000020 r5:c041c9e0 r4:00000000
[<c00abe2c>] (kmem_cache_create+0x0/0x444) from [<c0017a98>] (kmem_cache_init+0x158/0x320)
[<c0017940>] (kmem_cache_init+0x0/0x320) from [<c0008afc>] (start_kernel+0x1d8/0x28c)
[<c0008924>] (start_kernel+0x0/0x28c) from [<80008034>] (0x80008034)
 r5:c0441d18 r4:10c5387d
Code: e1a06003 e1a05004 ea000009 e598203c (e594100c)
<4>---[ end trace 1b75b31a2719ed1c ]---
<0>Kernel panic - not syncing: Attempted to kill the idle task!