Re: [BUG BISECT] arm64: clk: rockchip: rk3399 board does not find it's clocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jerome,

Am 27.02.20 um 11:39 schrieb Jerome Brunet:

On Thu 27 Feb 2020 at 11:05, Markus Reichl <m.reichl@xxxxxxxxxxxxx> wrote:

Hi Stephen,

on recent linux-next (from 20200214 on)my rk3399-roc-pc board refuses to boot.
(s. below dmesg) with __clk_core_init: Failed to get phase for clk 'sdmmc_drv'

Git bisecting points to the following commit:

Hi Markus,

I think you mentioned earlier that you already had Maxime's fixup [0]
but it is not clear it with this report. Could you please clarify ?

I did not know about this fixup yet, thanks for pointing me.
I tried it now on -next of today but it does not fix booting for me.
I get same error log.

Anyway, it looks to me that the problem is coming from
drivers/clk/rockchip/clk-mmc-phase.c:55

This HW has both a coarse phase setting and a fine delay-based
setting.

Delay based phase cannot be computed if the rate is zero (if the clock
is orphaned for ex)

However, I think it is still valid for CCF to call .get_phase() and
except an answer, even the rate of the clock is zero.

IOW, if the rate is 0, I think .get_phase() should not return -EINVAL.
It should return 0 (0Hz => constant signal => no phase shift).

Thanks for explanation.

Gruß,
--
Markus Reichl

[0]: https://lkml.kernel.org/r/20200225134248.919889-1-maxime@xxxxxxxxxx


2760878662a290ac57cff8a5a8d8bda8f4dddc37 is the first bad commit
commit 2760878662a290ac57cff8a5a8d8bda8f4dddc37
Author: Stephen Boyd <sboyd@xxxxxxxxxx>
Date:   Wed Feb 5 15:28:02 2020 -0800

    clk: Bail out when calculating phase fails during clk registration
      Bail out of clk registration if we fail to get the phase for a clk
that
    has a clk_ops::get_phase() callback. Print a warning too so that driver
    authors can easily figure out that some clk is unable to read back phase
    information at boot.
      Cc: Douglas Anderson <dianders@xxxxxxxxxxxx>
    Cc: Heiko Stuebner <heiko@xxxxxxxxx>
    Suggested-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx>
    Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
    Link: https://lkml.kernel.org/r/20200205232802.29184-5-sboyd@xxxxxxxxxx
    Acked-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx>

 drivers/clk/clk.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.6.0-rc3-next-20200226 (root@roc) (gcc version 9.2.1 20200220 (Debian 9.2.1-29)) #16 SMP PREEMPT Wed Feb 26 10:10:05 CET 2020
[    0.000000] Machine model: Firefly ROC-RK3399-PC Mezzanine Board
[    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff1a0000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 32 MiB at 0x00000000f6000000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xf3ffe100-0xf3ffffff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000f7ffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 22 pages/cpu s49624 r8192 d32296 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: kernel page table isolation forced OFF by mitigations=off
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 console=tty1 console=ttyS2,1500000 swiotlb=1 root=/dev/nvme0n1p1 rootwait rw rootfstype=ext4 init=/sbin/init mitigations=off
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x3ffbf000-0x3ffff000] (0MB)
[    0.000000] Memory: 3910884K/4061184K available (6908K kernel code, 512K rwdata, 2680K rodata, 1728K init, 355K bss, 117532K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=6.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: no VLPI support, no direct LPI support, no RVPEID support
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[    0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @f3480000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000f3440000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000f3450000
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] random: get_random_bytes called from start_kernel+0x538/0x6bc with crng_init=0
[    0.000000] __clk_core_init: Failed to get phase for clk 'sdmmc_drv'
[    0.000000] rockchip_clk_register_branches: failed to register clock sdmmc_drv: -22
[    0.000000] rockchip_clk_register_branches: failed to register clock sdmmc_sample: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock sdio_drv: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock sdio_sample: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_pcie_pm: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_pciephy_ref100m: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_pciephy_ref: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_pcie_core_cru: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_pcie_core: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_emmc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock cpll_aclk_emmc_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock gpll_aclk_emmc_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_emmc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_emmccore: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_emmc_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_emmcgrf: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock cpll_aclk_perilp0_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock gpll_aclk_perilp0_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_perilp0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_perilp0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_perilp0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_intmem: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_tzma: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem3: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem4: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_intmem5: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_dcf: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_dmac0_perilp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_dmac1_perilp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_perilp0_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_rom: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_m_crypto0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_s_crypto0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_m_crypto1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_s_crypto1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_perilp0_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_dcf: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_crypto0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_crypto1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock cpll_fclk_cm0s_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock gpll_fclk_cm0s_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock fclk_cm0s: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock sclk_m0_perilp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_m0_perilp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock dclk_m0_perilp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_m0_perilp_dec: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_m0_perilp_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock cpll_hclk_perilp1_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock gpll_hclk_perilp1_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_perilp1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_perilp1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_perilp1_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_sdio_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_i2s0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_i2s1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_i2s2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_spdif: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_sdio: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_spi5: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_sdioaudio_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_uart0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_uart1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_uart2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_uart3: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c7: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c5: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c6: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_rki2c3: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_mailbox0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_saradc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_tsadc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_efuse1024ns: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_efuse1024s: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_spi0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_spi1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_spi2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_spi4: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_perilp_sgrf: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_perilp1_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_saradc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_tsadc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_testout1_pll_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_testout1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_testout2_pll_src: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_testout2: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_vio: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_vio: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_vio_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_mipi_dsi0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_mipi_dsi1: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_vio_grf: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_hdcp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_hdcp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_hdcp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_hdcp_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_hdcp22: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_hdcp_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_hdcp22: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_hdcp_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_hdmi_ctrl: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_dp_ctrl: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_hdcp22: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_gasket: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_dp_core: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_edp: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_edp_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock pclk_edp_ctrl: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_hdmi_sfr: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock clk_hdmi_cec: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_vop0_pre: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_vop0_pre: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_vop0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock aclk_vop0_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_vop0: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock hclk_vop0_noc: -17
[    0.000000] rockchip_clk_register_branches: failed to register clock dclk_vop0_div: -17
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000004
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000004
[    0.000000]   CM = 0, WnR = 0
[    0.000000] [0000000000000000] user address but active_mm is swapper
[    0.000000] Internal error: Oops: 96000004 [#1] PREEMPT SMP
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.6.0-rc3-next-20200226 #16
[    0.000000] Hardware name: Firefly ROC-RK3399-PC Mezzanine Board (DT)
[    0.000000] pstate: 40000085 (nZcv daIf -PAN -UAO)
[    0.000000] pc : __pi_strcmp+0x18/0x154
[    0.000000] lr : __clk_lookup_subtree+0x20/0x78
[    0.000000] sp : ffff800010ba3b40
[    0.000000] x29: ffff800010ba3b40 x28: ffff0000f356e528
[    0.000000] x27: 0000000000000001 x26: 0000000000000000
[    0.000000] x25: 0000000000000000 x24: ffff800010be9508
[    0.000000] x23: ffff0000f356e500 x22: ffff0000f356d600
[    0.000000] x21: ffff800010c68000 x20: ffff80001091dff8
[    0.000000] x19: ffff0000f356d500 x18: 0000000000000010
[    0.000000] x17: 0000000000000000 x16: 000000007081244d
[    0.000000] x15: ffff800010bb19a8 x14: 6f765f6b6c636420
[    0.000000] x13: 6b636f6c63207265 x12: 747369676572206f
[    0.000000] x11: 0000000000000005 x10: 0101010101010101
[    0.000000] x9 : 0000000000000000 x8 : 7f7f7f7f7f7f7f7f
[    0.000000] x7 : 0000000000000000 x6 : 070f07342c12021d
[    0.000000] x5 : 1d02122c34070f07 x4 : 0000000000000000
[    0.000000] x3 : 8c6d8d6beecdee00 x2 : 000000000000006d
[    0.000000] x1 : ffff80001091dff8 x0 : 0000000000000000
[    0.000000] Call trace:
[    0.000000]  __pi_strcmp+0x18/0x154
[    0.000000]  __clk_lookup_subtree+0x40/0x78
[    0.000000]  __clk_lookup_subtree+0x40/0x78
[    0.000000]  clk_core_lookup+0x38/0x98
[    0.000000]  __clk_register+0x120/0x798
[    0.000000]  clk_hw_register+0x1c/0x58
[    0.000000]  __clk_hw_register_composite+0x1e0/0x2c0
[    0.000000]  clk_register_composite+0x40/0x58
[    0.000000]  rockchip_clk_register_branches+0x388/0x908
[    0.000000]  rk3399_clk_init+0xb0/0x150
[    0.000000]  of_clk_init+0x1e8/0x284
[    0.000000]  time_init+0x10/0x44
[    0.000000]  start_kernel+0x558/0x6bc
[    0.000000] Code: f24008ff 540002e1 f2400807 54000141 (f8408402)
[    0.000000] ---[ end trace 8ad2f94645b7db99 ]---
[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---


Gruß,
--
Markus Reichl

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-rockchip




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux