Hello,
we are working with an OMAP-L137 processor on a custom hardware similar to the OMAP L137 EVM evaluation board. We are using a Davinci Linux and SYSLINK for the communication between the ARM and DSP core. On different hardware prototypes we are using different versions of the OMAP processor. On some of them we are getting sporadic crashes of the Linux kernel, with error messages like this
Unable to handle kernel NULL pointer dereference at virtual address 00000005
pgd = c1fd0000
[00000005] *pgd=c1ff4031, *pte=00000000, *ppte=00000000
Internal error: Oops: 801 [#1] PREEMPT
last sysfs file: /sys/kernel/uevent_seqnum
Modules linked in: syslink
CPU: 0 Not tainted (2.6.33 #1)
PC is at get_page_from_freelist+0x250/0x51c
LR is at 0x41
pc : [<c0077328>] lr : [<00000041>] psr: 60000093
sp : c0fd7c50 ip : 00000000 fp : c0fd7cc4
r10: 00000000 r9 : c03c3f84 r8 : c03c3f60
r7 : 60000013 r6 : c03c3f60 r5 : c0fd6000 r4 : c03c3f78
r3 : 00200200 r2 : 00000001 r1 : c03c3f84 r0 : c03c3f78
Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: c1fd0000 DAC: 00000015
Process SlaveThread (pid: 894, stack limit = 0xc0fd6270)
Stack: (0xc0fd7c50 to 0xc0fd8000)
The address the NULL pointer is detected at can vary. When processing a simple memory test on the ARM core, like allocation of some MB RAM and writing, reading back and verifying the data, it fails sproradically, too. We can observe that this problem seems to be dependent on the ambient temperature and the temperature range of the OMAP. Especially when there is high activity on the external SDRAM and when the DSP and ARM core is running, the crashes are getting more frequently. In normal ambient temperatures, the problem exists on the OMAP L137BZKB3, which has a temperature range of 0°C to 90°C. When cooling this processor down to about 5°C ambient temperature it works properly. When using an OMAP L137BZKBA3, we can raise the ambient temperature a little higher. With an OMAP L137DZKBA3 we could not observe the problem up to an ambient temperature of about 80°C. Please notice, that these processors have a different processor version and a different tmeperature range.
At the moment we are assuming that we have a timing problem with the SDRAM interface or the processor itself, that increases on higher temperatures. We have no passive or active cooling for the processor. The ARM and DSP is running at 300 MHz clock. We are using the SDRAM timings of an older ARM UBL and have a SDRAM that is similar to the ISSI RAM located on our OMAP EVM board. We already tried to match the timing of the SDRAM interface better to our SDRAM, but with no success. The problem still exists.
Did anybody experience similar problems? Is this maybe a problem of an older version of the OMAP processor, e.g. the B version, we received as samples? At the moment we have one newer OMAP, the D version, on a prototype that seems to work properly.
Thanks in advance!
Best regards!
Dom