I am using a custom built T1042 based board. After I flash UBOOT, RCW, kernal,filesystem,FMAN code and dtb file, When I try to boot my board, kernal is crashing giving the following errors.
ata1: No Device OR PHYRDY change,Hstatus = 0x80000000
ata1: SATA link down (SStatus 10 SControl 300)
ata2: No Device OR PHYRDY change,Hstatus = 0x80000000
ata2: SATA link down (SStatus 10 SControl 300)
NET: Registered protocol family 17
NET: Registered protocol family 15
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
fsl_generic: FSL DPAA Generic Ethernet driver
rtc-ds1307 0-0068: setting system clock to 2000-01-01 00:00:49 UTC (946684849)
RAMDISK: gzip image found at block 0
Unable to handle kernel paging request for data at address 0x00000104
Faulting instruction address: 0xc00c99a8
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=8 CoreNet Generic
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.1.35-rt41 #2
task: e9047910 ti: e9048000 task.ti: e9048000
NIP: c00c99a8 LR: c00ca130 CTR: 00000000
REGS: e90499e0 TRAP: 0300 Not tainted (4.1.35-rt41)
MSR: 00021002 <CE,ME> CR: 42228e28 XER: 20000000
DEAR: 00000104 ESR: 00800000
GPR00: c00ca130 e9049a90 e9047910 c09a7cc0 00000000 00000002 eefcb4f4 00000001
GPR08: 00000100 c09a7d74 c09a7d64 eefcb4f4 c09a7d50 00000000 c085d258 00000002
GPR16: eef8eae8 2e626000 eeeeeeef c0963d3c ffffffff e9049b68 00000009 c085d2a8
GPR24: c09afdf0 00029002 00000002 c09a7cc0 00000000 ef513894 00000010 ef513880
NIP [c00c99a8] __rmqueue+0x68/0x3a0
LR [c00ca130] get_page_from_freelist+0x450/0x640
[e9049a90] [c00c8eec] free_hot_cold_page+0x2c/0x1b0 (unreliable)
[e9049ae0] [c00ca130] get_page_from_freelist+0x450/0x640
[e9049b60] [c00ca5a0] __alloc_pages_nodemask+0xf0/0x7a0
[e9049bf0] [c00c2c28] pagecache_get_page+0x88/0x220
[e9049c30] [c0144894] __getblk_slow+0x104/0x370
[e9049ca0] [c0145034] __bread_gfp+0x14/0x110
[e9049cb0] [c018d988] ext3_fill_super+0x218/0x1960
[e9049d30] [c0111a50] mount_bdev+0x1b0/0x1e0
[e9049d80] [c01126b0] mount_fs+0x20/0xa0
[e9049da0] [c012f324] vfs_kern_mount+0x54/0x140
[e9049dc0] [c0132d00] do_mount+0x190/0xc00
[e9049e20] [c0133b28] SyS_mount+0x78/0xe0
[e9049e50] [c0918ebc] mount_block_root+0x120/0x24c
[e9049ea0] [c0919220] mount_root+0x100/0x114
[e9049ee0] [c09193c0] prepare_namespace+0x18c/0x1d4
[e9049f00] [c0918bc0] kernel_init_freeable+0x1bc/0x1d0
[e9049f30] [c0002714] kernel_init+0x14/0x110
[e9049f40] [c000f198] ret_from_kernel_thread+0x5c/0x64
7d5b4a14 83aa0080 39290080 7f87e378 7d3b4a14 39480080 7f9d4840 7d5b5214
41de00e8 813d0004 3bfdffec 811d0000 <91280004> 91090000 39200100 913d0000
---[ end trace 294d4a41b05a2c4c ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Rebooting in 180 seconds..
What might the be the possible issue and solution to the problem ?
Probably there is DDR controller initialization problem. Have you used QCVS DDRv tool to connect to the target board to validate and optimize DDR controller configuration parameters? Then modify board/freescale/t104xrdb/ddr.h in u-boot source code according to the optimized DDR controller configuration parameters for you custom board.
You could use mtest utility provided in u-boot to do DDR memory test.
Please configure CONFIG_CMD_MEMTEST in include/configs/T104xRDB.h, then run the following command in u-boot prompt to test DDR memory.
mtest <start_address> <end_address>
Thanks YIPING WANG for your kind suggestion.
As per your suggestion I used QCVS DDRv tool to get optimized settings for my board and updated my UBOOT. Still the result was same and the board was giving the same error.
I have other boards also with the same design but they are not crashing kernal. However mtest results of this board and the working boards are failing.
Can you suggest something else ?
Did you use same images on both target boards?
Have you encountered Kernel crash problem at the same place?
Did you use reading from SPD method to create a QCVS DDR project?
Have you modified board/freescale/t104xrdb/ddr.h in u-boot according to the optimized parameters generated by DDRv tool?
In DDRv validation stage, after Centering the clock, read/write ODT and driver validation, have you also performed Operational DDR test.
You could use QCVS DDRv tool to connect to the problem board to do validation and testing, I suspect whether there is hardware problem on this board.
Yes I used the same imaged on both target boards.
In faulty board, kernel is always crashing at the same location, however in the other board, kernel did not crash.
I did not used reading from SPD method to create a QCVS DDR project since I had used discrete RAM chips in my board.
Yes I have used optimized parameters generated by DDRv Tool in my UBOOT.
No I have not performed operational DDR test.
You could use CodeWarrior to do DDR Hardware diagnostics on your problem board.
Please create a bareboard project for the demo board, then modify DDR controller configuration section in CodeWarrior initialization file according to your custom board, then connect CodeWarrior project to the target board.
Please refer to the section "11.3 Hardware diagnostics" in C:\Freescale\CW_PA_v10.5.1\PA\Help\PDF\Targeting_PA_Processors.pdf to do Memory Tests to let you perform three hardware tests, Walking Ones, Bus Noise, and Address.