Linux boot failure on custom board based on i.MX7DSABRE

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linux boot failure on custom board based on i.MX7DSABRE

1,544 Views
vijayhs
Contributor I

Hi,

I have a custom board based on i.MX7DSABRE. I am able to boot u-boot successfully (u-boot, linux and rfs are on SD card). But, when I try to boot linux, it fails with errors shown below (the error messages are different for every linux boot). I did run the Stress test on the DDR memory (over night) and it passed. I am attaching the DDR3 register settings that I did. Kindly, help me out to solve this issue.

=> setenv loadaddr 0x80800000
=> setenv fdt_addr 0x83000000
=> setenv fdt_high 0xffffffff
=> setenv bootargs 'fdt_addr=0x83000000 fdt_high=0xffffffff earlyprintk=serial console=ttymxc0,115200n81'
=> fatload mmc 0 0x83000000 imx7d-sdb.dtb
reading imx7d-sdb.dtb
47041 bytes read in 21 ms (2.1 MiB/s)
=> fatload mmc 0 0x80800000 zImage
reading zImage
4437248 bytes read in 213 ms (19.9 MiB/s)
=> bootz 80800000 - 83000000
Kernel image @ 0x80800000 [ 0x000000 - 0x43b500 ]
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 83000000, end 8300e7c0

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
6Booting Linux on physical CPU 0x0
5Linux version 4.1.15 (user@user) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #63 SMP PREEMPT Mon May 29 20:35:17 IST 2017
6CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
6CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
6Machine model: Freescale i.MX7D SabreSD Board
Booting Linux on physical CPU 0x0
Linux version 4.1.15 (user@user) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #63 SMP PREEMPT Mon May 29 20:35:17 IST 2017
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Freescale i.MX7D SabreSD Board
6bootconsole [earlycon0] enabled
bootconsole [earlycon0] enabled
6Reserved memory: created CMA memory pool at 0xac000000, size 320 MiB
Reserved memory: created CMA memory pool at 0xac000000, size 320 MiB
6Reserved memory: initialized node linux,cma, compatible id shared-dma-pool
Reserved memory: initialized node linux,cma, compatible id shared-dma-pool
6Memory policy: Data cache writealloc
Memory policy: Data cache writealloc
7On node 0 totalpages: 262144
7free_area_init_node: node 0, pgdat 80798740, node_mem_map ab758000
7  Normal zone: 2048 pages used for memmap
7  Normal zone: 0 pages reserved
7  Normal zone: 262144 pages, LIFO batch:31
6PERCPU: Embedded 11 pages/cpu @ab71d000 s12864 r8192 d24000 u45056
PERCPU: Embedded 11 pages/cpu @ab71d000 s12864 r8192 d24000 u45056
7pcpu-alloc: s12864 r8192 d24000 u45056 alloc=11*4096
7pcpu-alloc: [0] 0 [0] 1
6Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096
5Kernel command line: fdt_addr=0x83000000 fdt_high=0xffffffff earlyprintk=serial console=ttymxc0,115200n81
Kernel command line: fdt_addr=0x83000000 fdt_high=0xffffffff earlyprintk=serial console=ttymxc0,115200n81
6PIDIhash table entries: 4096 (order: 2, 16384 bytes)
PIDIhash table entries: 4096 (order: 2, 16384 bytes)
6Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
6Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
6Memory: 702792K/1048576K available (5595K kernel code, 206K rwdata, 1680K rodata, 264K init, 401K bss, 18104K reserved, 327680K cma-reserved)
Memory: 702792K/1048576K available (5595K kernel code, 206K rwdata, 1680K rodata, 264K init, 401K bss, 18104K reserved, 327680K cma-reserved, )
5Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xc0800000 - 0xff000000   (1000 MB)
    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .text : 0x80008000 - 0x80723058   (7277 kB)
      .init : 0x80724000 - 0x80766000   ( 264 kB)
      .data : 0x80766000 - 0x80799880   ( 207 kB)
       .bss : 0x8079c000 - 0x808007e8   ( 402 kB)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xc0800000 - 0xff000000   (1000 MB)
    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .text : 0x80008000 - 0x80723058   (7277 kB)
      .init : 0x80724000 - 0x80766000   ( 264 kB)
      .data : 0x80766000 - 0x80799880   ( 207 kB)
       .bss : 0x8079c000 - 0x808007e8   ( 402 kB
6SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
6Preemptible hierarchical RCU implementation.
Preemptible hierarchical RCU implementation.
6      Additional per-CPU info printed with stalls.
        Additional per-CPU info printed with stalls.
6      RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
6RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
6NR_IRQS:16 nr_irqs:16 16
NR_IRQS:16 nr_irqs:16 16
6Architected cp15 timer(s) running at 8.00MHz (phys).
Architected cp15 timer(s) running at 8.00MHz (phys).
6clocksource arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
clocksource arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
6sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
6Switching to timer-based delay loop, resolution 125ns
Switching to timer-based delay loop, resolution 125ns
6mxc_clocksource_init 3000000
mxc_clocksource_init 3000000
6Ignoring duplicate/late registration of read_current_timer delay
Ignoring duplicate/late registration of read_current_timer delay
6clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
6Console: :olour dummy deviceConsole: :olour dummy devicee0x30
6Calibrating delay loop (skipped), value calculated using timer frequency.. Calibrating delay loop (skipped), value calculated using timer fr)
16.00 BogoMIPS (lpj=80000)
6pid_max: default: 32768 minimum: 301
pid_max: default: 32768 minimum: 301
6Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
6Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
1Unable to handle kernel paging request at virtual address 100b7a20
Unable to handle kernel paging request at virtual address 100b7a20
1pgd = 80004000
pgd = 80004000
1[100b7a20] *pgd=00000000[100b7a20] *pgd=00000000

0Internal error: Oops: 80000005 [#1] PREEMPT SMP ARM
Internal error: Oops: 80000005 [#1] PREEMPT SMP ARM
dModules linked in:Modules linked in:

dCPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.15 #63
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.15 #63
dHardware name: Freescale i.MX7 Dual (Device Tree)
Hardware name: Freescale i.MX7 Dual (Device Tree)
dtask: 8076b330 ti: 80766000 task.ti: 80766000
task: 8076b330 ti: 80766000 task.ti: 80766000
PC is at 0x100b7a20
PC is at 0x100b7a20
LR is at alloc_inode+0x1c/0xa0
LR is at alloc_inode+0x1c/0xa0
pc : [<100b7a20>]    lr : [<800f9c34>]    psr: 20000153
sp : 80767e70  ip : 00200000  fp : 00000000
pc : [<100b7a20>]    lr : [<800f9c34>]    psr: 20000153
sp : 80767e70  ip : 00200000  fp : 00000000
r10: abfffa40  r9 : 00000000  r8 : a8008c00
r10: abfffa40  r9 : 00000000  r8 : a8008c00
r7 : 00000000  r6 : 000043ff  r5 : a8008c00  r4 : a802de00
r7 : 00000000  r6 : 000043ff  r5 : a8008c00  r4 : a802de00
r3 : 100b7a20  r2 : 000043ff  r1 : 00000000  r0 : a8008c00
r3 : 100b7a20  r2 : 000043ff  r1 : 00000000  r0 : a8008c00
Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 8000406a  DAC: 00000015
Control: 10c53c7d  Table: 8000406a  DAC: 00000015
0Process swapper/0 (pid: 0, stack limit = 0x80766210)
Process swapper/0 (pid: 0, stack limit = 0x80766210)
0Stack: (0x80767e70 to 0x80768000)
Stack: (0x80767e70 to 0x80768000)
07e60:                                     a802de00 00000000 000043ff 800fb764
7e60:                                     a802de00 00000000 000043ff 800fb764
07e80: a802de00 00000000 000043ff 800fb7b0 a802de00 800b80c0 00000000 80557d88
7e80: a802de00 00000000 000043ff 800fb7b0 a802de00 800b80c0 00000000 80557d88
07ea0: 00000000 a802de00 a8008c00 00000000 0000000c 00001000 8075b430 800b83b0
7ea0: 00000000 a802de00 a8008c00 00000000 0000000c 00001000 8075b430 800b83b0
07ec0: 00200000 807e3120 a8008c00 00400000 800b8220 00000000 80772d40 800e4fec
7ec0: 00200000 807e3120 a8008c00 00400000 800b8220 00000000 80772d40 800e4fec
07ee0: 00000000 8069f6cc 80768748 800b8988 8069f6cc 00400000 80772d40 800e5db8
7ee0: 00000000 8069f6cc 80768748 800b8988 8069f6cc 00400000 80772d40 800e5db8
07f00: 8069f6cc 00400000 a8003f00 8069f6cc 00400000 80772d40 00000000 800fde3c
7f00: 8069f6cc 00400000 a8003f00 8069f6cc 00400000 80772d40 00000000 800fde3c
07f20: 807e311c 00000000 8075c4f4 ffffffff 8079c000 800fdef8 807e311c 8073af64
7f20: 807e311c 00000000 8075c4f4 ffffffff 8079c000 800fdef8 807e311c 8073af64
07f40: 800b8998 800fd570 80768748 80768748 00000000 80725020 80768748 8073e728
7f40: 800b8998 800fd570 80768748 80768748 00000000 80725020 80768748 8073e728
07f60: 00000000 80768748 80768750 00000000 00000000 8076871c 0002adf2 8073e060
7f60: 00000000 80768748 80768750 00000000 00000000 8076871c 0002adf2 8073e060
07f80: 00000000 8076871c 0002adf2 8073e2a8 00000000 abfffa40 00000000 80740e18
7f80: 00000000 8076871c 0002adf2 8073e2a8 00000000 abfffa40 00000000 80740e18
07fa0: 00000000 8079c000 8076eac4 8079c04c 8079c000 807684c0 ffffffff 80724c4c
7fa0: 00000000 8079c000 8076eac4 8079c04c 8079c000 807684c0 ffffffff 80724c4c
07fc0: ffffffff ffffffff 80724680 00000000 00000000 8075b430 8079c294 80768540
7fc0: ffffffff ffffffff 80724680 00000000 00000000 8075b430 8079c294 80768540
07fe0: 8075b42c 8076c434 8000406a 410fc075 00000000 8000807c 00000000 00000000
7fe0: 8075b42c 8076c434 8000406a 410fc075 00000000 8000807c 00000000 00000000
[<800f9c34>] (alloc_inode) from [<800fb764>] (new_inode_pseudo+0x8/0x40)
[<800f9c34>] (alloc_inode) from [<800fb764>] (new_inode_pseudo+0x8/0x40)
[<800fb764>] (new_inode_pseudo) from [<800fb7b0>] (new_inode+0x14/0x28)
[<800fb764>] (new_inode_pseudo) from [<800fb7b0>] (new_inode+0x14/0x28)
[<800fb7b0>] (new_inode) from [<800b80c0>] (shmem_get_inode+0x30/0x190)
[<800fb7b0>] (new_inode) from [<800b80c0>] (shmem_get_inode+0x30/0x190)
[<800b80c0>] (shmem_get_inode) from [<800b83b0>] (shmem_fill_super+0x190/0x1dc)
[<800b80c0>] (shmem_get_inode) from [<800b83b0>] (shmem_fill_super+0x190/0x1dc)
[<800b83b0>] (shmem_fill_super) from [<800e4fec>] (mount_nodev+0x44/0x9c)
[<800b83b0>] (shmem_fill_super) from [<800e4fec>] (mount_nodev+0x44/0x9c)
[<800e4fec>] (mount_nodev) from [<800e5db8>] (mount_fs+0x14/0xa4)
[<800e4fec>] (mount_nodev) from [<800e5db8>] (mount_fs+0x14/0xa4)
[<800e5db8>] (mount_fs) from [<800fde3c>] (vfs_kern_mount+0x4c/0xf4)
[<800e5db8>] (mount_fs) from [<800fde3c>] (vfs_kern_mount+0x4c/0xf4)
[<800fde3c>] (vfs_kern_mount) from [<800fdef8>] (kern_mount_data+0x14/0x24)
[<800fde3c>] (vfs_kern_mount) from [<800fdef8>] (kern_mount_data+0x14/0x24)
[<800fdef8>] (kern_mount_data) from [<8073af64>] (shmem_init+0x74/0xb4)
[<800fdef8>] (kern_mount_data) from [<8073af64>] (shmem_init+0x74/0xb4)
[<8073af64>] (shmem_init) from [<80725020>] (init_rootfs+0x4c/0x90)
[<8073af64>] (shmem_init) from [<80725020>] (init_rootfs+0x4c/0x90)
[<80725020>] (init_rootfs) from [<8073e728>] (mnt_init+0x15c/0x250)
[<80725020>] (init_rootfs) from [<8073e728>] (mnt_init+0x15c/0x250)
[<8073e728>] (mnt_init) from [<8073e2a8>] (vfs_caches_init+0xac/0x120)
[<8073e728>] (mnt_init) from [<8073e2a8>] (vfs_caches_init+0xac/0x120)
[<8073e2a8>] (vfs_caches_init) from [<80724c4c>] (start_kernel+0x378/0x3a0)
[<8073e2a8>] (vfs_caches_init) from [<80724c4c>] (start_kernel+0x378/0x3a0)
[<80724c4c>] (start_kernel) from [<8000807c>] (0x8000807c)
[<80724c4c>] (start_kernel) from [<8000807c>] (0x8000807c)
0Code: bad PC value
Code: bad PC value
4---[ end trace cb88537fdc8fa200 ]---
---[ end trace cb88537fdc8fa200 ]---
0Kernel panic - not syncing: Attempted to kill the idle task!
Kernel panic - not syncing: Attempted to kill the idle task!
0---[ end Kernel panic - not syncing: Attempted to kill the idle task!
---[ end Kernel panic - not syncing: Attempted to kill the idle task!

Thanks & Regards

Vijay H.S

Labels (1)
0 Kudos
7 Replies

1,077 Views
igorpadykov
NXP Employee
NXP Employee

Hi Vijay

one can find place where exception happens using

AN4553 Using Open Source Debugging Tools for Linux on i.MX Processors
http://www.nxp.com/assets/documents/data/en/application-notes/AN4553.pdf

In general random failures happen due to ddr errors, power supply, unstable clocks issues.

One can recheck clocks, supply requirements (like voltage ripple, e.t.c.) using

i.MX6 System Development User’s Guide

http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,077 Views
vijayhs
Contributor I

Hi Igor,

Thank you very much for the information. Actually, we have not connected SNVS_TAMPER[0:9] (which comes from VDD_SNVS_1P8_CAP and VDD_SNVS_1P8_CAP is being generated in our custom board) to the imx7D processor in our custom board. Is this causing any issue?

Thanks & Regards

Vijay H.S

0 Kudos

1,077 Views
igorpadykov
NXP Employee
NXP Employee

Hi Vijay

no, SNVS_TAMPER[0:9] should not cause failures.

Had you checked power supplies with oscilloscope, tried to run minimal image.

Best regards
igor

0 Kudos

1,077 Views
vijayhs
Contributor I

Hi Igor,

I will check the power supplies. And, I am already running minimal image with some of the drivers disabled (like Bluetooth, USB, Video etc) in defconfig.

Regards

Vijay H.S

0 Kudos

1,077 Views
vijayhs
Contributor I

Hi Igor,

From where can I download Pre-built zImage for iMX7DSABRE board?

Thanks & Regards

Vijay H.S

0 Kudos

1,077 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos

1,077 Views
vijayhs
Contributor I

Hi Igor,

Thank you very much for the link. Also, can you please let me know from where to download u-boot source code for iMX7DSABRE board.

Thanks & Regards

Vijay H.S

0 Kudos