This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/TCI6630K2L: Linux panic while loading firmware

Part Number: TCI6630K2L

Tool/software: Linux

Hi All!

We have a custom board with TCI6630K2L. It is connected to SPI flash through FPGA.

I've compiled U-Boot and Linux kernel with default configuration and low level debug/early printk options.

Then I've compiled ubifs image using mkfs.ubi and ubinize. So the SPI is partitioned this way:

=> mtdparts

device nor0 <spi0.0>, # parts = 4
 #: name                size            offset          mask_flags
 0: u-boot-spl          0x00010000      0x00000000      1
 1: u-boot-img          0x000e0000      0x00010000      1
 2: u-boot-env          0x00010000      0x000f0000      0
 3: ubifs               0x00f00000      0x00100000      0

active partition: nor0,0 - (u-boot-spl) 0x00010000 @ 0x00000000

defaults:
mtdids  : nor0=spi0.0
mtdparts: mtdparts=spi0.0:64k(u-boot-spl)ro,896k(u-boot-img)ro,64k(u-boot-env),-(ubifs)

---

UBI partition selection and ubifsmount/ubifsls/ubifsload commands run fine.

There are only /boot and /lib/firmware folders in ubi0:rootfs volume:

=> ubifsls /boot
            32832  Thu Nov 15 13:05:45 2018  skern-k2l.bin
            34147  Fri Nov 16 16:20:24 2018  keystone-k2l-evm.dtb
          3912192  Fri Nov 16 16:20:12 2018  zImage
            65890  Thu Nov 15 13:05:56 2018  k2-fw-initrd.cpio.gz
=> ubifsls /lib/firmware
             5720  Mon Nov 19 09:24:39 2018  ks2_pa_post_pdsp0.bin
             4036  Mon Nov 19 09:24:39 2018  ks2_pa_post_pdsp1.bin
             3952  Mon Nov 19 09:24:39 2018  ks2_qmss_pdsp_qos.bin
             7012  Mon Nov 19 09:24:39 2018  ks2_pa_eg2_pdsp0.bin
             2856  Mon Nov 19 09:24:39 2018  ks2_xgbe_serdes.bin
             2840  Mon Nov 19 09:24:39 2018  ks2_pcie_serdes.bin
             6024  Mon Nov 19 09:24:39 2018  ks2_pa_eg1_pdsp0.bin
             7624  Mon Nov 19 09:24:39 2018  ks2_pa_in4_pdsp0.bin
             5156  Mon Nov 19 09:24:39 2018  ks2_pa_in4_pdsp1.bin
             4396  Mon Nov 19 09:24:39 2018  ks2_pa_eg0_pdsp0.bin
             8540  Mon Nov 19 09:24:39 2018  ks2_pa_eg0_pdsp1.bin
             7904  Mon Nov 19 09:24:39 2018  ks2_pa_eg0_pdsp2.bin
             7136  Mon Nov 19 09:24:39 2018  ks2_pa_in3_pdsp0.bin
             5708  Mon Nov 19 09:24:39 2018  ks2_pa_in2_pdsp0.bin
             7664  Mon Nov 19 09:24:39 2018  ks2_pa_in1_pdsp0.bin
             5868  Mon Nov 19 09:24:39 2018  ks2_pa_in1_pdsp1.bin
             7484  Mon Nov 19 09:24:39 2018  ks2_pa_in0_pdsp0.bin
             8704  Mon Nov 19 09:24:39 2018  ks2_pa_in0_pdsp1.bin
             2488  Mon Nov 19 09:24:39 2018  ks2_gbe_serdes.bin
           104200  Mon Nov 19 09:24:39 2018  ks2_xgbe_serdes_mcu_fw.bin
             1764  Mon Nov 19 09:24:39 2018  ks2_qmss_pdsp_acc48.bin


---

This is my environment:

addr_load_sec_bm=0x0c08c000
addr_mon=0x87000000
addr_non_sec_mon=0x0c087fc0
addr_secdb_key=0xc000000
addr_ubi=0x82000000
arch=arm
args_all=setenv bootargs console=ttyS0,115200n8 rootwait=1 earlyprintk no_post=1
args_ubi=setenv bootargs ${bootargs} rootfstype=ubifs root=ubi0:rootfs rootflags=sync rw ubi.mtd=ubifs,4096
baudrate=115200
boot=ubi
boot_fdt=try
bootcmd=run init_${boot}; run get_mon_${boot} run_mon; run get_kern_${boot}; run init_fw_rd_${boot}; run get_fdt_${boot}; run run_kern
bootdelay=2
bootdir=/boot
bootm_size=0x10000000
cpu=armv7
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtcontroladdr=fdf8c560
get_fdt_ubi=ubifsload ${fdtaddr} ${bootdir}/${name_fdt}
get_kern_ubi=ubifsload ${loadaddr} ${bootdir}/${name_kern}
get_mon_ubi=ubifsload ${addr_mon} ${bootdir}/${name_mon}
init_fw_rd_ubi=ubifsload ${rdaddr} ${bootdir}/${name_fw_rd}; run set_rd_spec
init_ubi=sf probe; run args_all args_ubi; ubi part ubifs; ubifsmount ubi:rootfs;
kernel_addr_r=0x82000000
loadaddr=0x82000000
mem_lpae=1
mtddevname=u-boot-spl
mtddevnum=0
mtdids=nor0=spi0.0
mtdparts=mtdparts=spi0.0:64k(u-boot-spl)ro,896k(u-boot-img)ro,64k(u-boot-env),-(ubifs)
name_fdt=keystone-k2l-evm.dtb
name_fw_rd=k2-fw-initrd.cpio.gz
name_kern=zImage
name_mon=skern-k2l.bin
partition=nor0,0
pxefile_addr_r=0x80100000
ramdisk_addr_r=0x88080000
rdaddr=0x88080000
run_kern=bootz ${loadaddr} ${rd_spec} ${fdtaddr}
run_mon=mon_install ${addr_mon}
run_mon_hs=mon_install ${addr_non_sec_mon} ${addr_load_sec_bm}
scriptaddr=0x80000000
set_rd_spec=setenv rd_spec ${rdaddr}:${filesize}
soc=keystone
stderr=serial@02530c00
stdin=serial@02530c00
stdout=serial@02530c00



---

This is output from run bootcmd:

SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total 16 MiB
ubi0: attaching mtd2
ubi0: scanning is finished
ubi0: attached mtd2 (name "mtd=3", size 15 MiB)
ubi0: PEB size: 65536 bytes (64 KiB), LEB size: 65408 bytes
ubi0: min./max. I/O unit sizes: 1/256, sub-page size 1
ubi0: VID header offset: 64 (aligned 64), data offset: 128
ubi0: good PEBs: 240, bad PEBs: 0, corrupted PEBs: 0
ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 2135265253
ubi0: available PEBs: 0, total reserved PEBs: 240, PEBs reserved for bad PEB handling: 0
Loading file '/boot/skern-k2l.bin' to addr 0x87000000...
Done
K2_BM_15.07-53-ge1f885a SoC:k2l built:03:07:15, Oct  6 2018

## installed monitor @ 0xc1f8000, freq [200000000], status 203390976
Loading file '/boot/zImage' to addr 0x82000000...
Done
Loading file '/boot/k2-fw-initrd.cpio.gz' to addr 0x88080000...
Done
Loading file '/boot/keystone-k2l-dtb.dtb' to addr 0x88000000...
Done
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8ffef000, end 8ffff162 ... OK
   Loading Device Tree to 8ffe3000, end 8ffee562 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.67-gd315a9bb00 (monakov@monakov-y) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #1 SMP PREEMPT Fri Nov 16 19:19:41 MSK 2018
[    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Texas Instruments Keystone 2 Lamarr EVM
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Switching physical address space to 0x800000000
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, size 8 MiB
[    0.000000] OF: reserved mem: initialized node dsp-common-memory@81f800000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 24 MiB at 0x000000087e400000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 15 pages/cpu @de5ba000 s31308 r8192 d21940 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 359296
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootwait=1 earlyprintk no_post=1 rootfstype=ubifs root=ubi0:rootfs rootflags=sync rw ubi.mtd=ubifs,4096
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 1380624K/1441792K available (8192K kernel code, 293K rwdata, 2488K rodata, 2048K init, 297K bss, 28400K reserved, 32768K cma-reserved, 892928K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
[    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
[    0.000000]       .data : 0xc1000000 - 0xc10494a8   ( 294 kB)
[    0.000000]        .bss : 0xc104b000 - 0xc109553c   ( 298 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[    0.000000]  Tasks RCU enabled.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] of_psc_clk_init: error registering clk clkpcie1
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008174] Switching to timer-based delay loop, resolution 5ns
[    0.014396] keystone timer clock @245760000 Hz
[    0.019185] Console: colour dummy device 80x30
[    0.023775] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=2000000)
[    0.034506] pid_max: default: 32768 minimum: 301
[    0.039344] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.046122] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.053776] CPU: Testing write buffer coherency: ok
[    0.059016] /cpus/cpu@0 missing clock-frequency property
[    0.064482] /cpus/cpu@1 missing clock-frequency property
[    0.069951] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.110028] Setting up static identity map for 0x80200000 - 0x80200138
[    0.116791] Hierarchical SRCU implementation.
[    0.141454] EFI services will not be available.
[    0.161341] smp: Bringing up secondary CPUs ...
[    0.212765] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.212888] smp: Brought up 1 node, 2 CPUs
[    0.222945] SMP: Total of 2 processors activated (800.00 BogoMIPS).
[    0.229358] CPU: All CPU(s) started in HYP mode.
[    0.234117] CPU: Virtualization extensions available.
[    0.239712] devtmpfs: initialized
[    0.248296] random: get_random_u32 called from bucket_table_alloc+0x104/0x22c with crng_init=0
[    0.257317] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.265290] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.275325] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.282216] pinctrl core: initialized pinctrl subsystem
[    0.287936] DMI not present or invalid.
[    0.292105] NET: Registered protocol family 16
[    0.297587] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.305262] cpuidle: using governor ladder
[    0.309518] cpuidle: using governor menu
[    0.313660] No ATAGs?
[    0.313716] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.324272] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.352623] media: Linux media interface: v0.10
[    0.357352] Linux video capture interface: v2.00
[    0.362158] pps_core: LinuxPPS API ver. 1 registered
[    0.367255] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.376609] PTP clock support registered
[    0.380669] EDAC MC: Ver: 3.0.0
[    0.384145] dmi: Firmware registration failed.
[    0.388868] Advanced Linux Sound Architecture Driver Initialized.
[    0.395739] clocksource: Switched to clocksource arch_sys_counter
[    0.408581] NET: Registered protocol family 2
[    0.413466] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.420722] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.427375] TCP: Hash tables configured (established 4096 bind 4096)
[    0.433932] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.439937] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.446453] NET: Registered protocol family 1
[    0.451270] RPC: Registered named UNIX socket transport module.
[    0.457355] RPC: Registered udp transport module.
[    0.462188] RPC: Registered tcp transport module.
[    0.467034] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.473770] Trying to unpack rootfs image as initramfs...
[    0.483310] Freeing initrd memory: 68K
[    0.487466] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    0.494936] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.503877] platform alarmtimer: set dma_pfn_offset00780000
[    0.510207] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    0.520300] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.526778] NFS: Registering the id_resolver key type
[    0.531978] Key type id_resolver registered
[    0.536331] Key type id_legacy registered
[    0.540492] ntfs: driver 2.1.32 [Flags: R/O].
[    0.545744] NOHZ: local_softirq_pending 80
[    0.550523] bounce: pool size: 64 pages
[    0.554512] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.562084] io scheduler noop registered
[    0.566142] io scheduler deadline registered
[    0.570662] io scheduler cfq registered (default)
[    0.575497] io scheduler mq-deadline registered
[    0.580173] io scheduler kyber registered
[    0.584582] keystone_irq soc:keystone_irq@26202a0: irqchip registered, nr_irqs 28
[    0.592878] ti,keystone-serdes 232a000.phy: init fw ks2_gbe_serdes.bin: version 3.3.0.2c
[    0.605199] keystone-navigator-qmss soc:qmss@2a40000: qmgr start queue 0, number of queues 8192
[    0.614247] keystone-navigator-qmss soc:qmss@2a40000: added qmgr start queue 0, num of queues 8192, reg_peek e0940000, reg_status e0939000, reg_config e093b000, reg_region e093d000, reg_push e0ba0000, reg_pop e0be0000
[    0.634001] keystone-navigator-qmss soc:qmss@2a40000: firmware file ks2_qmss_pdsp_acc48.bin downloaded for PDSP
[    0.646591] Unhandled fault: asynchronous external abort (0x211) at 0x00000000
[    0.653971] pgd = c0003000
[    0.656786] [00000000] *pgd=80000800004003, *pmd=00000000
[    0.662332] Internal error: : 211 [#1] PREEMPT SMP ARM
[    0.667603] Modules linked in:
[    0.670775] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.67-gd315a9bb00 #1
[    0.677978] Hardware name: Keystone
[    0.681582] task: dec58000 task.stack: dec4a000
[    0.686246] PC is at knav_dma_hw_init+0x48/0xb8
[    0.690905] LR is at knav_dma_hw_init+0x1c/0xb8
[    0.695563] pc : [<c0577bac>]    lr : [<c0577b80>]    psr: 60000013
[    0.701975] sp : dec4bd40  ip : dec4bd40  fp : dec4bd54
[    0.707334] r10: c1082c24  r9 : 014080c0  r8 : 00000002
[    0.712693] r7 : 00000095  r6 : dedeab00  r5 : dedeab08  r4 : dedeaa90
[    0.719368] r3 : 0000445c  r2 : e096f000  r1 : 00000000  r0 : dedeab08
[    0.726045] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    0.733335] Control: 30c5387d  Table: 00003000  DAC: fffffffd
[    0.739222] Process swapper/0 (pid: 1, stack limit = 0xdec4a210)
[    0.745371] Stack: (0xdec4bd40 to 0xdec4c000)
[    0.749855] bd40: dedeaa90 00000080 dec4bdcc dec4bd58 c0578b34 c0577b70 00000000 dee93300
[    0.758200] bd60: dee93240 ded5e480 c0bd1660 ded6bc10 c0bd16dc c0bd16cc 0000005b dedeaad4
[    0.766544] bd80: dedeaaf8 c0bd161c de5ee154 de5ee338 00000008 0000445c 00001000 00000000
[    0.774888] bda0: fffffdfb ded6bc10 ffffffef c101a620 fffffdfb c101a620 00000000 00000000
[    0.783233] bdc0: dec4bdec dec4bdd0 c0637b90 c05785f8 ded6bc10 c1087eb0 c1087eb4 00000000
[    0.791577] bde0: dec4be1c dec4bdf0 c06360b0 c0637b44 00000000 ded6bc10 c101a620 ded6bc44
[    0.799921] be00: 00000000 c0e43834 000000cd c104b000 dec4be3c dec4be20 c0636228 c0635ea4
[    0.808265] be20: 00000000 c101a620 c063617c 00000000 dec4be64 dec4be40 c0634410 c0636188
[    0.816609] be40: dec33658 ded5a534 dec3366c c101a620 deea8480 c1025770 dec4be74 dec4be68
[    0.824953] be60: c0635a54 c06343c8 dec4be9c dec4be78 c0635568 c0635a3c c0bd178c dec4be88
[    0.833297] be80: c101a620 00000000 c0e1e1a0 c104b000 dec4beb4 dec4bea0 c0636b98 c06353e4
[    0.841641] bea0: c1025770 00000000 dec4becc dec4beb8 c0637ae8 c0636b24 ffffe000 00000000
[    0.849985] bec0: dec4bedc dec4bed0 c0e1e1bc c0637aac dec4bf4c dec4bee0 c0201a20 c0e1e1ac
[    0.858329] bee0: dec4bf4c dec4bef0 c023a900 c023a87c c0b9f964 c0b9f944 c0b9f990 c0baa908
[    0.866673] bf00: 00000000 c0b9f91c 00000006 00000006 c0bf2900 c0c6c534 df7ffc2c df7ffc34
[    0.875017] bf20: 00000000 c0c6c534 00000007 c0c6c534 c0e52d00 00000007 c104b000 c0e43834
[    0.883361] bf40: dec4bf94 dec4bf50 c0e00f80 c02019e0 00000006 00000006 00000000 c0e00618
[    0.891704] bf60: 00000000 c0e00618 00000000 00000000 c091d870 00000000 00000000 00000000
[    0.900048] bf80: 00000000 00000000 dec4bfac dec4bf98 c091d880 c0e00db4 00000000 c091d870
[    0.908392] bfa0: 00000000 dec4bfb0 c0207d98 c091d87c 00000000 00000000 00000000 00000000
[    0.916735] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    0.925079] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    0.933420] Backtrace:
[    0.935983] [<c0577b64>] (knav_dma_hw_init) from [<c0578b34>] (knav_dma_probe+0x548/0x67c)
[    0.944414]  r5:00000080 r4:dedeaa90
[    0.948113] [<c05785ec>] (knav_dma_probe) from [<c0637b90>] (platform_drv_probe+0x58/0xb4)
[    0.956546]  r10:00000000 r9:00000000 r8:c101a620 r7:fffffdfb r6:c101a620 r5:ffffffef
[    0.964536]  r4:ded6bc10
[    0.967181] [<c0637b38>] (platform_drv_probe) from [<c06360b0>] (driver_probe_device+0x218/0x2e4)
[    0.976227]  r7:00000000 r6:c1087eb4 r5:c1087eb0 r4:ded6bc10
[    0.982030] [<c0635e98>] (driver_probe_device) from [<c0636228>] (__driver_attach+0xac/0xb0)
[    0.990638]  r10:c104b000 r9:000000cd r8:c0e43834 r7:00000000 r6:ded6bc44 r5:c101a620
[    0.998630]  r4:ded6bc10 r3:00000000
[    1.002327] [<c063617c>] (__driver_attach) from [<c0634410>] (bus_for_each_dev+0x54/0xa4)
[    1.010670]  r7:00000000 r6:c063617c r5:c101a620 r4:00000000
[    1.016473] [<c06343bc>] (bus_for_each_dev) from [<c0635a54>] (driver_attach+0x24/0x28)
[    1.024640]  r6:c1025770 r5:deea8480 r4:c101a620
[    1.029390] [<c0635a30>] (driver_attach) from [<c0635568>] (bus_add_driver+0x190/0x214)
[    1.037560] [<c06353d8>] (bus_add_driver) from [<c0636b98>] (driver_register+0x80/0xfc)
[    1.045729]  r7:c104b000 r6:c0e1e1a0 r5:00000000 r4:c101a620
[    1.051529] [<c0636b18>] (driver_register) from [<c0637ae8>] (__platform_driver_register+0x48/0x50)
[    1.060749]  r5:00000000 r4:c1025770
[    1.064447] [<c0637aa0>] (__platform_driver_register) from [<c0e1e1bc>] (knav_dma_driver_init+0x1c/0x20)
[    1.074105]  r5:00000000 r4:ffffe000
[    1.077802] [<c0e1e1a0>] (knav_dma_driver_init) from [<c0201a20>] (do_one_initcall+0x4c/0x170)
[    1.086588] [<c02019d4>] (do_one_initcall) from [<c0e00f80>] (kernel_init_freeable+0x1d8/0x274)
[    1.095458]  r8:c0e43834 r7:c104b000 r6:00000007 r5:c0e52d00 r4:c0c6c534
[    1.102314] [<c0e00da8>] (kernel_init_freeable) from [<c091d880>] (kernel_init+0x10/0x114)
[    1.110746]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c091d870
[    1.118737]  r4:00000000
[    1.121379] [<c091d870>] (kernel_init) from [<c0207d98>] (ret_from_fork+0x14/0x3c)
[    1.129108]  r5:c091d870 r4:00000000
[    1.132802] Code: e594300c e7f03053 e1833001 e5823004 (e5941008)
[    1.139051] ---[ end trace 41d7a3d09bb4364c ]---
[    1.143828] note: swapper/0[1] exited with preempt_count 1
[    1.149481] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.149481]
[    1.158888] CPU1: stopping
[    1.161706] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D         4.14.67-gd315a9bb00 #1
[    1.170136] Hardware name: Keystone
[    1.173740] Backtrace:
[    1.176301] [<c020b5f8>] (dump_backtrace) from [<c020b8dc>] (show_stack+0x18/0x1c)
[    1.184031]  r7:e0802000 r6:20000193 r5:00000000 r4:c10462d0
[    1.189834] [<c020b8c4>] (show_stack) from [<c090a844>] (dump_stack+0x90/0xa4)
[    1.197215] [<c090a7b4>] (dump_stack) from [<c020ebb8>] (handle_IPI+0x1b8/0x1cc)
[    1.204770]  r7:e0802000 r6:00000001 r5:00000000 r4:c0e5aafc
[    1.210571] [<c020ea00>] (handle_IPI) from [<c0201414>] (gic_handle_irq+0x7c/0x80)
[    1.218300]  r6:dec77f20 r5:e080200c r4:c1004014
[    1.223048] [<c0201398>] (gic_handle_irq) from [<c020c4b8>] (__irq_svc+0x58/0x8c)
[    1.230688] Exception stack(0xdec77f20 to 0xdec77f68)
[    1.235874] 7f20: 00000001 00000000 00000000 c0219a80 ffffe000 c1003cdc c1003c7c 00000000
[    1.244218] 7f40: 00000000 c0e5a3b8 c1003ce8 dec77f7c dec77f80 dec77f70 c0208858 c020885c
[    1.252560] 7f60: 60000013 ffffffff
[    1.256165]  r9:dec76000 r8:00000000 r7:dec77f54 r6:ffffffff r5:60000013 r4:c020885c
[    1.264078] [<c020881c>] (arch_cpu_idle) from [<c0923014>] (default_idle_call+0x28/0x34)
[    1.272339] [<c0922fec>] (default_idle_call) from [<c025dc14>] (do_idle+0x194/0x224)
[    1.280246] [<c025da80>] (do_idle) from [<c025df68>] (cpu_startup_entry+0x20/0x24)
[    1.287976]  r10:00000000 r9:412fc0f4 r8:00003000 r7:c104b3d0 r6:00000001 r5:dec76000
[    1.295966]  r4:00000084
[    1.298609] [<c025df48>] (cpu_startup_entry) from [<c020e77c>] (secondary_start_kernel+0x170/0x17c)
[    1.307832] [<c020e60c>] (secondary_start_kernel) from [<8020172c>] (0x8020172c)
[    1.315386]  r7:c104b3d0 r6:30c0387d r5:00000008 r4:1ec1fbc0
[    1.321192] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.321192]

So the kernel panics at loading pdsp firmware. Is it right?

Also I've noticed thad rd_spec environment variable get incorrect file size. When I run ubifsls /boot/k2-fw-initrd.cpio.gz I get 65890 bytes.

But when I run ubifsload ${rdaddr} /boot/k2-fw-initrd.cpio.gz; echo ${filesize} I get this outlut:

Loading file '/boot/k2-fw-initrd.cpio.gz' to addr 0x88080000...
Done
10162

What can be root cause of this behavior?

Yurii

  • I'm sorry, filesize is correct because it is given in hex.
  • I think that problem is not in firmware loading. Because it successfully loads ks2_gbe_serdes.bin and ks2_qmss_pdsp_acc48.bin.

    I've added some printk calls in knav_dma_hw_init and it shows that unhandled fault happens somewhere after line #282 in drivers/soc/ti/knav_dma.c. In fact, stack trace now shows that it crashes somewhere inside printk call.

    Could it be DDR3 setup issue?

    Yurii

    PS. My board has 4GB of DDR3 memory (five x16 IS43TR16512AL-125KBLI chips, targeting SoC's ECC support). And I'm able to test all ranges of memory from U-Boot except high addresses starting from high addresses starting from 0xFFFFFC00. When I start ddr test from 0xFFFFFC00 ddr test hangs indefinetely.

  • Further investigation of this issue showed that this is not DDR3 setup problem. DDR3 works perfectly in all ranges from 0x80000000 to 0xFFFFFFFF.
    Root cause of previous problems with DDR3 was that u-boot itself relocates to high addresses of SDRAM. And mtest/ddr test corrupted vital memory ranges of u-boot.

    What else can lead to this kind of crash? I've read this posts with similar problems (crash in knav_dma_hw_init):
    e2e.ti.com/.../2052357
    e2e.ti.com/.../557531

    But these problems are related to missing firmware. In my case the kernel locates firmware correctly (from my point of view).
    Any help would be really appreciated.

    Yurii
  • Finally I've located source of my problems. When network support is removed from u-boot, it does not handle some NetCP initialization which is very important to further kernel boot process.

    So, after adding network support and commands (even if I don't use them at all) allowed Linux kernel to move on.
    Now it panics in another place, but it will be a subject for the new story.

    Yurii