we are using a curstem board base on IMX6Q SABRE SD. we have run linux and ubuntu on our board, and it is stable. These days we port it to Android 4.4.3( linux kernel is 3.10.52), which is from freescale(now NXP).
we use hdmi as our display port, however the kernel alway hangs and reset without any log message or sometimes like this :------------------------------------------------------------------------------------------------
GPU[0]: AXI BUS ERROR, AQAxiStatus=0x1
Unable to handle kernel paging request at virtual address ffffffff
pgd = 80004000
[ffffffff] *pgd=4ff3e821, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP ARM
Modules linked in: 8188eu cfg80211
CPU: 0 PID: 107 Comm: galcore daemon Not tainted 3.10.53-88100-ge7b64eb-dirty #29
task: bc0b7700 ti: bc744000 task.ti: bc744000
PC is at search_module_extables+0x30/0xc0
LR is at search_module_extables+0x14/0xc0
pc : [<8007bf5c>] lr : [<8007bf40>] psr: 000f0193
sp : bc745b18 ip : 802ee470 fp : 00000029
r10: 0000001d r9 : 00000001 r8 : 00000000
r7 : bc0b7700 r6 : 802ee474 r5 : 80ef6844 r4 : ffffffff
r3 : 80ef6844 r2 : 00000002 r1 : 00000000 r0 : 00000003
Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 4cb8404a DAC: 00000015
----------------------------------------------------------------------------------------------------------
or like this :
CPU: 0 PID: 111 Comm: galcore daemon Tainted: G W 3.10.53-88100-ge7b64eb-dirty #29
[<80014be8>] (unwind_backtrace+0x0/0xf8) from [<800118cc>] (show_stack+0x10/0x14)
[<800118cc>] (show_stack+0x10/0x14) from [<807d6d0c>] (__schedule_bug+0x44/0x5c)
[<807d6d0c>] (__schedule_bug+0x44/0x5c) from [<807dd940>] (__schedule+0x678/0x720)
[<807dd940>] (__schedule+0x678/0x720) from [<807dbd4c>] (schedule_timeout+0x144/0x1b0)
[<807dbd4c>] (schedule_timeout+0x144/0x1b0) from [<807dcdbc>] (__down_interruptible+0x74/0xd8)
[<807dcdbc>] (__down_interruptible+0x74/0xd8) from [<80050a78>] (down_interruptible+0x4c/0x58)
[<80050a78>] (down_interruptible+0x4c/0x58) from [<80582608>] (threadRoutine+0x24/0x70)
[<80582608>] (threadRoutine+0x24/0x70) from [<8004bcec>] (kthread+0xa4/0xb0)
[<8004bcec>] (kthread+0xa4/0xb0) from [<8000e158>] (ret_from_fork+0x14/0x3c)
BUG: scheduling while atomic: galcore daemon /111/0x00000002
here is the bootargs in uboot
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
it will crash very soon, if we operate the android ui.
if we change resolution to 640*480, it will more stable than the 1920*1080 resolution:
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,640x480M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
anyone have met this problem or could help us analysis this problem
B.R
Geliter
Hi igor
we are using android 4.4.3 version. but when i try to apply the patch to kernel_imx directory, it has the following errors:
[imx6 11:14:12 kernel_imx_new]$ patch -p0 < imx6_gpu_patch.patch
(Stripping trailing CRs from patch.)
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
|index 00dcab7..7c4bb1e 100644
|--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
|+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
--------------------------
File to patch:
I am a newer to android, so do you have any idea about how to apply the patch to our kernel?
Thanks
Hi Igor
We have run linux and ubuntu based the same board, it is stable . So i think it is not the problem of DDR errors. We also have done the DDR test from the begining of our board design, there is no problem.
Is there patches that could fix the gpu bugs in our kernel. If possible, we do not want to change the android version.
Best regards
geliter
according to link
https://lists.yoctoproject.org/pipermail/meta-freescale/2015-April/013234.html
starting with 3.10.53 there is support via kernel loadable modules to support both 3.10.53 and 3.14.28 kernels,
so one can try to use newer gpu drivers.
Also one can consider arm errata, check attached patch, they were fixed in last releases.
~igor
Hi Geliter
issue may be caused by ddr errors, so one can rerun ddr test
https://community.freescale.com/docs/DOC-105652
or gpu bugs, many of them were fixed on later Android releases, so
just for test one can try L5.x or L6.x
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------