• procixx 时钟的坑


    error

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

    了解到整个过程是,当procixx配置后,通过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),

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

    33.3333/2*48=799.999

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

    因为虽然procixx中设置了,但是我fmxx_nb1708_defconfig中使用的是fmxx-ql7010.dts

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

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

            slcr: slcr@e0026000 {
                u-boot,dm-pre-reloc;
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "fmxx,psoc-slcr", "syscon", "simple-mfd";
                reg = <0xE0026000 0x1000>;
                ranges;

                clkc: clkc@100 {
                    u-boot,dm-pre-reloc;
                    compatible = "fmxx,psoc-clkc";
                    reg = <0x100 0x100>;
                    #clock-cells = <1>;
                    ps-clk-frequency = <30000000>; 

    30/2*48=720

    解决办法就是,使用fmxx-ql7010-ai.dts,里面有对ps-clk-frequency的定义

    &clkc {
        ps-clk-frequency = <33333333>;
    };

    另/home/zhangyi/work/psoc_linux/u-boot-2018.07-fmxx-idyll/board/fmxx/fmql/Makefile

    obj-y    += board.o
    #obj-y    += ps_init_zb1.o
    #obj-y    += ps_init_zb2.o
    #obj-y    += ps_init_zb3.o
    #obj-y    += ps_init_zb4.o
    #obj-y    += ps_init_ai_demo.o
    如果将全部都注释掉,那么在board.c中需要将ps_init();注释掉,因为其定义在ps_init_zbx中。

    int board_early_init_f(void)
    {
        //ps_init();
    #ifdef CONFIG_DEBUG_UART
        debug_uart_init();
    #endif

        clocks_init();
        return 0;
    }

    是为记。

  • 相关阅读:
    信息化基础建设 ORM 常见错误
    信息化基础建设 消息引擎
    Enterprise Library:日志的两种需求
    DDD:将概念显式化 之 验证规约
    技术人生:与其鸟宿檐下,不如击翅风雨
    DDD:传统三层架构向DDD的转换
    设计原则:意图导向编程的优点
    Entity Framework:数据库初始化的三种机制
    技术人生:使用价值观、原则和模式来理性的做设计和编程
    技术人生:人的差别在于业余时间
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/11244201.html
Copyright © 2020-2023  润新知