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