Am 03.03.2017 um 18:05 schrieb Tony Lindgren tony@atomide.com:
- Michael Mrozek EvilDragon@openpandora.org [170303 08:31]:
Am Fri, 3 Mar 2017 08:19:58 -0800 hat Tony Lindgren tony@atomide.com geschrieben:
Interesting find. Could that have something to do with the weird hangs while booting? Depending on the power usage of the SD Card, it could be that the SD Card you're booting from simply freezes because it doesn't get enough power... so instability might be caused by that. Is that something we need to fix with software or does the hardware need to be changed as well.
Are you seeing hangs during boot on omap5-uevm also or just on pyra?
Right now, Matthijs is mostly the one working on the current-gen Pyra and we haven't tested it extensively before shipping it to him. So the instability could be a faulty hardware. I'll ship out more prototype units next week (also a new one to Matthijs), so maybe it's just that.
OK
However, we have some weird behaviour with reboots and resets where some settings are being remembered, some aren't, etc., and we're currently investigating that.
OK recall seeing igepv5 reboot not always work or the omap5-uevm reboot always not work depending on the u-boot version. Not sure if that is still happening but that hints to something not being properly re-initialized by the kernel for clocks.
I have just tried and my EVM seems now to properly "reboot" (with Linux-4.10.0 and SPL/U-Boot-2016.11) while I still remember this problem existed earlier.
Pyra using the same kernel binary, but different DTB and different SPL/U-Boot binaries now "restarts" as well, but I have the impression that it takes longer after "Starting kernel ..."
And then I get:
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.10.0-letux+ (hns@iMac.local) (gcc version 4.9.2 (GCC) ) #851 SMP PREEMPT Fri Mar 3 18:21:44 CET 2017 [ 0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=10c5387d [ 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: Pyra-Handheld-V5.1 [ 0.000000] debug: ignoring loglevel setting. [ 0.000000] cma: Reserved 16 MiB at 0xfd800000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] OMAP4: Map 0xfee00000 to fe600000 for dram barrier [ 0.000000] On node 0 totalpages: 519680 [ 0.000000] free_area_init_node: node 0, pgdat c0ca3f80, node_mem_map ef019000 [ 0.000000] Normal zone: 1536 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 196608 pages, LIFO batch:31 [ 0.000000] HighMem zone: 323072 pages, LIFO batch:31 [ 0.000000] OMAP5432 ES2.0 [ 0.000000] percpu: Embedded 15 pages/cpu @eefb5000 s31680 r8192 d21568 u61440 [ 0.000000] pcpu-alloc: s31680 r8192 d21568 u61440 alloc=15*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 518144 [ 0.000000] Kernel command line: console= root=PARTUUID=00000000-02 rw rootfstype=ext4 rootwait console=ttyO2,115200n8 vram=12M omapfb.vram=0:8M,1:4M omapfb.rotate_type=0 omapdss.def_disp=lcd rootwait twl4030_charger.allow_usb=1 musb_hdrc.preserve_vbus=1 log_buf_len=8M ignore_loglevel earlyprintk [ 0.000000] log_buf_len: 8388608 bytes [ 0.000000] early log buf free: 63860(97%) [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 2016588K/2078720K available (7168K kernel code, 679K rwdata, 2204K rodata, 1024K init, 8060K bss, 45748K reserved, 16384K cma-reserved, 1275904K highmem) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc0800000 (8160 kB) [ 0.000000] .init : 0xc0b00000 - 0xc0c00000 (1024 kB) [ 0.000000] .data : 0xc0c00000 - 0xc0ca9ef8 ( 680 kB) [ 0.000000] .bss : 0xc0ca9ef8 - 0xc1488f1c (8061 kB) [ 0.000000] Running RCU self tests [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] RCU lockdep checking is enabled. [ 0.000000] Build-time adjustment of leaf fanout to 32. [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] clock: dpll_abe_ck failed transition to 'locked' [ 0.000000] OMAP clockevent source: timer1 at 32768 Hz [ 0.000000] arm_arch_timer: Architected cp15 timer(s) running at 6.14MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16ac02862, max_idle_ns: 440795202218 ns [ 0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511085ns [ 0.000016] Switching to timer-based delay loop, resolution 162ns [ 0.000366] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns [ 0.000375] OMAP clocksource: 32k_counter at 32768 Hz [ 0.001482] Console: colour dummy device 80x30 [ 0.001505] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [ 0.001513] ... MAX_LOCKDEP_SUBCLASSES: 8 [ 0.001519] ... MAX_LOCK_DEPTH: 48 [ 0.001526] ... MAX_LOCKDEP_KEYS: 8191 [ 0.001532] ... CLASSHASH_SIZE: 4096 [ 0.001537] ... MAX_LOCKDEP_ENTRIES: 32768 [ 0.001543] ... MAX_LOCKDEP_CHAINS: 65536 [ 0.001549] ... CHAINHASH_SIZE: 32768 [ 0.001555] memory used by lock dependency info: 5167 kB [ 0.001561] per task-struct memory footprint: 1536 bytes [ 0.001582] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.28 BogoMIPS (lpj=61440) [ 0.001597] pid_max: default: 32768 minimum: 301 [ 0.001830] Security Framework initialized [ 0.001917] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.001930] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.004366] CPU: Testing write buffer coherency: ok [ 0.005653] /cpus/cpu@0 missing clock-frequency property [ 0.005676] /cpus/cpu@1 missing clock-frequency property [ 0.005688] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.030191] Setting up static identity map for 0x80100000 - 0x80100058 [ 0.100410] smp: Bringing up secondary CPUs ... [ 0.171431] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.171939] smp: Brought up 1 node, 2 CPUs [ 0.171953] SMP: Total of 2 processors activated (24.57 BogoMIPS). [ 0.171961] CPU: All CPU(s) started in HYP mode. [ 0.171967] CPU: Virtualization extensions available. [ 0.174659] devtmpfs: initialized [ 0.234205] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0 [ 0.331721] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.331758] futex hash table entries: 512 (order: 3, 32768 bytes) [ 0.332912] pinctrl core: initialized pinctrl subsystem [ 0.334597] _regulator_do_enable regulator-dummy [ 0.336940] NET: Registered protocol family 16 [ 0.342193] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.344036] omap_hwmod: l3_main_3 using broken dt data from ocp [ 0.345812] omap_hwmod: l3_main_2 using broken dt data from ocp [ 1.748394] clock: dpll_abe_ck failed transition to 'locked' [ 3.047550] clock: dpll_abe_ck failed transition to 'locked' [ 4.346752] clock: dpll_abe_ck failed transition to 'locked' [ 5.645936] clock: dpll_abe_ck failed transition to 'locked' [ 5.648581] ------------[ cut here ]------------ [ 5.648604] WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:594 clk_core_disable_lock+0x18/0x24 [ 5.648611] Modules linked in: [ 5.648625] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.10.0-letux+ #851 [ 5.648632] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 5.648652] [<c010f368>] (unwind_backtrace) from [<c010b914>] (show_stack+0x10/0x14) [ 5.648669] [<c010b914>] (show_stack) from [<c042ec60>] (dump_stack+0x98/0xd0) [ 5.648683] [<c042ec60>] (dump_stack) from [<c012f844>] (__warn+0xd0/0x100) [ 5.648694] [<c012f844>] (__warn) from [<c012f918>] (warn_slowpath_null+0x1c/0x24) [ 5.648707] [<c012f918>] (warn_slowpath_null) from [<c0486594>] (clk_core_disable_lock+0x18/0x24) [ 5.648722] [<c0486594>] (clk_core_disable_lock) from [<c011ca9c>] (_disable_clocks+0x18/0x70) [ 5.648735] [<c011ca9c>] (_disable_clocks) from [<c011d0f4>] (_enable+0x1e0/0x224) [ 5.648748] [<c011d0f4>] (_enable) from [<c0b0c690>] (_setup+0xc4/0x3ec) [ 5.648760] [<c0b0c690>] (_setup) from [<c011d5a0>] (omap_hwmod_for_each+0x3c/0x64) [ 5.648772] [<c011d5a0>] (omap_hwmod_for_each) from [<c0b0ccec>] (__omap_hwmod_setup_all+0x30/0x40) [ 5.648784] [<c0b0ccec>] (__omap_hwmod_setup_all) from [<c0101938>] (do_one_initcall+0xa8/0x150) [ 5.648797] [<c0101938>] (do_one_initcall) from [<c0b00d88>] (kernel_init_freeable+0x124/0x1f0) [ 5.648810] [<c0b00d88>] (kernel_init_freeable) from [<c073a994>] (kernel_init+0x8/0x110) [ 5.648822] [<c073a994>] (kernel_init) from [<c01070d0>] (ret_from_fork+0x14/0x24) [ 5.648856] ---[ end trace 158d0428f201436f ]--- [ 5.648866] omap_hwmod: dmic: _wait_target_ready failed: -16 [ 5.648878] omap_hwmod: dmic: cannot be enabled for reset (3) [ 6.974755] clock: dpll_abe_ck failed transition to 'locked' [ 8.273895] clock: dpll_abe_ck failed transition to 'locked' [ 8.276541] ------------[ cut here ]------------ [ 8.276556] WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:594 clk_core_disable_lock+0x18/0x24 [ 8.276562] Modules linked in: [ 8.276575] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 4.10.0-letux+ #851 [ 8.276582] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 8.276595] [<c010f368>] (unwind_backtrace) from [<c010b914>] (show_stack+0x10/0x14) [ 8.276609] [<c010b914>] (show_stack) from [<c042ec60>] (dump_stack+0x98/0xd0) [ 8.276621] [<c042ec60>] (dump_stack) from [<c012f844>] (__warn+0xd0/0x100) [ 8.276631] [<c012f844>] (__warn) from [<c012f918>] (warn_slowpath_null+0x1c/0x24) [ 8.276644] [<c012f918>] (warn_slowpath_null) from [<c0486594>] (clk_core_disable_lock+0x18/0x24) ... later the kernel hangs after initializing several peripherals incl. twl6040.
So to me it looks as if some ABE clocks are not reset/restarted/locked. And this blocks logging for the first seconds (you notice the big delays for each attempt with dpll_abe_ck).
I wonder how this can be different from the OMAP5-EVM.
BR, Nikolaus