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 3.x on DM814x

Hi,

Has anyone succeeded in getting Linux 3.x kernel to boot on DM814x? We have tried a 3.10 kernel with Aida Mynzhasova's patches (http://www.kernelhub.org/?msg=271207&p=2) and can now get past the power init stage, but now we see a clock init crash (see below).

U-Boot# setenv bootargs 'console=ttyO0,115200n8 rootwait root=/dev/mmcblk0p2 rw mem=256M earlyprintk noinitrd loglevel=8'
U-Boot# fatload mmc 0 0x80009000 uImage
reading uImage
2346472 bytes read in 293 ms (7.6 MiB/s)
U-Boot# bootm 0x80009000
## Booting kernel from Legacy Image at 80009000 ...
Image Name: Linux-3.10.25-aufs-rt23-tl4+
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2346408 Bytes = 2.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.10.25-aufs-rt23-tl4+ (root@TMDX8148-LINUXVM) (gcc version 4.7.3 (Gentoo 4.7.3-r1 p1.4, pie-0.5.5) ) #5 PREEMPT RT Thu Oct 23 09s
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: dm814x_evm
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] On node 0 totalpages: 65536
[ 0.000000] free_area_init_node: node 0, pgdat c046a230, node_mem_map c04b1000
[ 0.000000] Normal zone: 512 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 65536 pages, LIFO batch:15
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] DM814X ES2.1 (neon )
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
[ 0.000000] Kernel command line: console=ttyO0,115200n8 rootwait root=/dev/mmcblk0p2 rw mem=256M earlyprintk noinitrd loglevel=8
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 256MB = 256MB total
[ 0.000000] Memory: 255040k/255040k available, 7104k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc03fe854 (4059 kB)
[ 0.000000] .init : 0xc03ff000 - 0xc0429134 ( 169 kB)
[ 0.000000] .data : 0xc042a000 - 0xc046ada0 ( 260 kB)
[ 0.000000] .bss : 0xc046ada0 - 0xc04b0924 ( 279 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] GFGFGF : sdrc_ick
[ 0.000000] GFGFGF : init_clk = -2
[ 0.000000] Unable to handle kernel NULL pointer dereference at virtual address 0000002a
[ 0.000000] pgd = c0004000
[ 0.000000] [0000002a] *pgd=00000000
[ 0.000000] Internal error: Oops: 5 [#1] PREEMPT ARM
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.25-aufs-rt23-tl4+ #5
[ 0.000000] task: c0434548 ti: c042a000 task.ti: c042a000
[ 0.000000] PC is at __clk_prepare+0xc/0x7c
[ 0.000000] LR is at clk_prepare+0x14/0x24
[ 0.000000] pc : [<c024cfbc>] lr : [<c024d304>] psr: a0000193
[ 0.000000] sp : c042bf68 ip : 00000001 fp : 00000000
[ 0.000000] r10: 00000000 r9 : 413fc082 r8 : c06b2f40
[ 0.000000] r7 : c043c724 r6 : 00000001 r5 : fffffffe r4 : fffffffe
[ 0.000000] r3 : c0434548 r2 : 00000001 r1 : c0465204 r0 : fffffffe
[ 0.000000] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 0.000000] Control: 10c5387d Table: 80004019 DAC: 00000015
[ 0.000000] Process swapper (pid: 0, stack limit = 0xc042a230)
[ 0.000000] Stack: (0xc042bf68 to 0xc042c000)
[ 0.000000] bf60: c0434548 fffffffe fffffffe c024d304 00000003 c0027fbc
[ 0.000000] bf80: c046bb58 00000001 c046adc0 c0421260 ffffffff c040b574 00000000 00000000
[ 0.000000] bfa0: 00000000 00000001 c046adc0 c0421260 ffffffff c040792c c0407914 c0402184
[ 0.000000] bfc0: 00000000 c03ff8bc ffffffff ffffffff c03ff4f0 00000000 00000000 c0421260
[ 0.000000] bfe0: 10c53c7d c0432028 c042125c c043540c 80004059 80008070 00000000 00000000
[ 0.000000] [<c024cfbc>] (__clk_prepare+0xc/0x7c) from [<c024d304>] (clk_prepare+0x14/0x24)
[ 0.000000] [<c024d304>] (clk_prepare+0x14/0x24) from [<c0027fbc>] (omap2_clk_enable_init_clocks+0x48/0x80)
[ 0.000000] [<c0027fbc>] (omap2_clk_enable_init_clocks+0x48/0x80) from [<c040b574>] (omap3xxx_clk_init+0x214/0x39c)
[ 0.000000] [<c040b574>] (omap3xxx_clk_init+0x214/0x39c) from [<c040792c>] (omap3_sync32k_timer_init+0x18/0x64)
[ 0.000000] [<c040792c>] (omap3_sync32k_timer_init+0x18/0x64) from [<c0402184>] (time_init+0x1c/0x28)
[ 0.000000] [<c0402184>] (time_init+0x1c/0x28) from [<c03ff8bc>] (start_kernel+0x1a4/0x2f0)
[ 0.000000] [<c03ff8bc>] (start_kernel+0x1a4/0x2f0) from [<80008070>] (0x80008070)
[ 0.000000] Code: eafffd4c e92d4038 e2504000 0a000015 (e594302c)
[ 0.000000] ---[ end trace 0000000000000001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!

 

It would seem that the clock initialization stuff (i.e. clock814x_data) is yet to be updated for CONFIG_COMMON_CLK framework. Can anyone give any advice on the minimal porting effort required to get the kernel to boot?

Any help or pointers would be appreciated.

Thanks,

Grant