We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
We are encountering the core hang-up of unknown origin in our mass-produced board using TI's AM3352 and Linux Kernel 3.13.4.Regarding the reproducibility of the test, some units had the hang-up to take about 2000 hours after a system start, and others had about 24 hours at the earliest from a system start.And also the core hang-ups have occurred by 21 units out of 232 units.
Here is a trace log of ETB (Embedded Trace Buffer) acquired via JTAG (CoreSight).
0284.trace_log_20180104.zip
Trace log result summaryIt stops by just before the core hang-up with the following processing sequence.
1. Undefined instruction exception (VFP) 2. Processing of userland Process 3. Data abortion exception
The trace log is acquired by total of 5 times of core hang-up. It stops by the same processing in all trace log.
And from checking the last processing of all trace log; log_file, acquired at the hang-up, it is set the value in a system control register of CP15, and it seems to make the MPU hung state.Is there a possibility which will be in the MPU hung state by this processing?
ldr r0,0xC05E3420 ldr r0,[r0] mcr p15,0x0,r0,c1,c0,0x0; p15,0,r0,c1,c0,0 (system control)
And so, please advise us the effective way to investigate this hang-up.
Best reards,Takashi
Hello,About the problem of "AM3352 core hang-up", we find that CPU hang will occurif HIGHMEM of Linux kernel option is enabled from the verification result.[HIGHMEM verification result] (1) DRAM 1 GB HIGHMEM valid ---> CPU hang occurs (2) DRAM 1 GB HIGHMEM invalid ---> No occurrence (3) DRAM 512 MB ---> No occurrence Linux kernel version: 3.13.4When "DRAM 1GB" is implemented, the area exceeding 740MB(LOWMEM) becomes the HIGHMEM area,and the Linux memory management method differs from the LOWMEM area's method.In order to use this HIGHMEM area, if it enables the Linux kernel option HIGHMEM,the CPU hang occurs. However, if it disables HIGHMEM, the CPU hang does not occur.Also, in the case of DRAM 512 MB, it does not occur because the HIGHMEM area is not used.From this result, it seems that Linux memory management function including HIGHMEMis affecting the CPU hang issue.The result of the JTAG trace log at CPU hang is always found read or write instructionof the co-processor(CP15) register.It seems that there is a problem with the MMU and L1 / L2 cache of AM3352 Coretx-A8,and it affects the co-processor(CP15).-Cortex-A8 processor revision: r3p2 (0x413fc082)
[Question]If it assumes that the Linux kernel memory management function including HIGHMEM functionis causing CPU hang issue, could you tell us the possible causes for that?Best regards.Kimura