procise 时钟的坑

error

1.procise设置800M,uboot中是720M

了解到整个过程是,当procise配置后,通过FSBL中的ps_init.c反应出来

    // ARM_PLL_FDIV = 48
    // [22:16]
    EMIT_MASKWRITE(SLCR_REG_BASE + 0x100, 0x007f0000U, 0x00300000U),
    // ARM_PLL_CLKOUT0_DIVISOR = 2
    // [6:0]
    EMIT_MASKWRITE(SLCR_REG_BASE + 0x104, 0x0000007fU, 0x00000002U),

 

因为在procise中设置的输入频率为33.3333M

33.3333/2*48=799.999

 

为什么在uboot中 clk dump得到的是720M呢

因为虽然procise中设置了,但是我fmsh_nb1708_defconfig中使用的是fmsh-ql7010.dts

fmsh-ql7010.dts又包含了fmsh-psoc.dtsi

fmsh-psoc.dtsi中重新将clk设置为30000000

        slcr: slcr@e0026000 {
            u-boot,dm-pre-reloc;
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "fmsh,psoc-slcr", "syscon"

你可能感兴趣的:(procise 时钟的坑)