Hello Andy,

On Tuesday, December 20, 2011 2:56 AM You wrote:

> I recently brought in v 15 (and then v 17) of the CMA patches on
> tilt-tracking and backported to tilt-3.1 in order to support Panda
> onboard camera.
> 
> Without any highmem, stuff is working great, but with HIGHMEM, inclusion
> of either v15 and v17 CMA consistently blows chunks during DMA init like
> this -->
> 
> [    0.517761] Enabling ERRATA 751472
> [    0.521392] OMAP4: Map 0xafe00000 to 0xfe600000 for dram barrier
> [    0.529510] print_constraints: dummy:
> [    0.534973] NET: Registered protocol family 16
> [    0.550659] Unable to handle kernel NULL pointer dereference at
> virtual address 00000000
> [    0.559082] pgd = c0004000
> [    0.561950] [00000000] *pgd=00000000
> [    0.565734] Internal error: Oops: 805 [#1] PREEMPT SMP
> [    0.571136] Modules linked in:
> [    0.574371] CPU: 0    Tainted: G        W    (3.1.0-panda_tilt-3.1+ #2)
> [    0.581268] PC is at __memzero+0x24/0x80
> [    0.585388] LR is at 0x0
> [    0.588073] pc : [<c0298ea4>]    lr : [<00000000>]    psr: 20000013
> [    0.588104] sp : ef833f54  ip : 00000000  fp : 00000000
> [    0.600067] r10: c0838c80  r9 : 00000000  r8 : 00000000
> [    0.605560] r7 : ef833f84  r6 : c14ac000  r5 : 00040000  r4 : 00000000
> [    0.612335] r3 : 00000000  r2 : 00000000  r1 : 0003ffc0  r0 : 00000000
> [    0.619140] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
> Segment kernel
> [    0.626770] Control: 10c5387f  Table: 8000404a  DAC: 00000015
> [    0.632751] Process swapper (pid: 1, stack limit = 0xef8322f8)
> [    0.638854] Stack: (0xef833f54 to 0xef834000)
> [    0.643432] 3f40:
> c001df04 c0d3c000 00040000
> [    0.651947] 3f60: 00000647 c001dfa4 c08910a4 00040000 0000045f
> 00000000 00000000 c0838cc0
> [    0.660461] 3f80: 00000000 00000000 c08710cc c08ed640 ef832000
> c0008900 0000009f c009e3c8
> [    0.668975] 3fa0: 0000009f c0838c80 c00145ec 00393531 00000000
> c0140000 00000000 c08abcf4
> [    0.677459] 3fc0: 0000019a c08710cc c087186c c00145ec 00000013
> 00000000 00000000 00000000
> [    0.685974] 3fe0: 00000000 c0834874 00000000 00000000 c08347e8
> c00145ec 37a42f33 10139e95
> [    0.694488] Code: e52de004 e1a0c002 e1a0e002 e2511040 (a8a0500c)
> [    0.700866] ---[ end trace 1b75b31a2719ed1d ]---
> [    0.705749] Kernel panic - not syncing: Attempted to kill init!
> [    0.711944] CPU1: stopping
> [    0.714843] [<c001a524>] (unwind_backtrace+0x0/0xf8) from
> [<c000865c>] (do_IPI+0xf0/0x118)
> [    0.723449] [<c000865c>] (do_IPI+0xf0/0x118) from [<c05d8ff4>]
> (__irq_svc+0x34/0xd0)
> [    0.731506] Exception stack(0xef873f90 to 0xef873fd8)
> [    0.736785] 3f80:                                     ffffffed
> 00ce3000 ef873fd8 00000000
> [    0.745300] 3fa0: ef872000 c08ed704 c05e2a8c c0890754 c0890914
> 411fc092 00000000 00000000
> [    0.753814] 3fc0: 00000001 ef873fd8 c0014648 c001464c 60000113 ffffffff
> [    0.760742] [<c05d8ff4>] (__irq_svc+0x34/0xd0) from [<c001464c>]
> (default_idle+0x24/0x28)
> [    0.769256] [<c001464c>] (default_idle+0x24/0x28) from [<c001489c>]
> (cpu_idle+0xfc/0x11c)
> [    0.777770] [<c001489c>] (cpu_idle+0xfc/0x11c) from [<805d1954>]
> (0x805d1954)
> 
> Is it expected CMA and high memory should work OK?  I see there's a note
> in the CMA log about "implement support for contiguous memory areas
> placed in HIGHMEM zone", but it's ambiguous if it should be ignoring
> highmem or is expected to blow chunks.
> 
> If it's expected to blow chunks, is there a hack or workaround that will
> allow us to have both HIGHMEM and CMA on OMAP4?

I'm aware of this issue, I hope to post a fix ASAP I finish some of my urgent
bug fixing related to our project. In meantime I suggest using 2G/2G memory
split as a workaround (Kernel Features -> Memory split -> 2G/2G user/kernel
split). 

Best regards
-- 
Marek Szyprowski
Samsung Poland R&D Center



_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to