NXP MCU 技术论坛
直播中

王彬

7年用户 1016经验值
私信 关注
[问答]

imx8mp时钟树问题求解

有两个在时钟方面表现不同的板(NXP-EVK 和我的开发板)。我使用相同的最新 NXP 内核 5.15.71 和几乎相同的设备树。devicetree 中的不同之处与时钟没有什么特别的关系。事实上,唯一的区别是在 eqos 网络接口上使用了另一个 phy。
查看 /sys/kernel/debug/clk/clk_summary 我看到 main_axi 的父时钟不同:
我的电路板:osc_24m,时钟频率仅为 12MHz。
evk 板:sys_pll_800 和 400MHz 的时钟。
另一个主要区别是 ahb_clock。它有相同的父级,但在我的板上只有 22MHz,而 evk 板在 66MHz。这当然对它所有的孩子都有影响。
还有更多的不同......
我想知道是什么原因,尽管内核完全相同并且设备树非常相似。特别是时钟控制器定义在同一个包括:imx8mp.dtsi
(其他区别是我这边的 hsio_axi 的 enet_phy_ref、enet_timer、enet_ref(都是 25MHz)。
坦率地说,我不明白我能做什么,甚至连 devicetree 文档我也不明白:
有 6 个时钟和 10 个指定时钟,7 个指定时钟父级和 10 个时钟速率(2 个为零!?!)。他们如何互动?谁控制它?

                        clk: clock-controller@30380000 {
                                compatible = "fsl,imx8mp-ccm";
                                reg = <0x30380000 0x10000>;
                                #clock-cells = <1>;
                                clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
                                         <&clk_ext3>, <&clk_ext4>;
                                clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
                                              "clk_ext3", "clk_ext4";
                                assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>,
                                                  <&clk IMX8MP_CLK_A53_CORE>,
                                                  <&clk IMX8MP_CLK_NOC>,
                                                  <&clk IMX8MP_CLK_NOC_IO>,
                                                  <&clk IMX8MP_CLK_GIC>,
                                                  <&clk IMX8MP_CLK_AUDIO_AHB>,
                                                  <&clk IMX8MP_CLK_AUDIO_AXI_SRC>,
                                                  <&clk IMX8MP_AUDIO_PLL1>,
                                                  <&clk IMX8MP_AUDIO_PLL2>,
                                                  <&clk IMX8MP_VIDEO_PLL1>;
                                assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_ARM_PLL_OUT>,
                                                         <&clk IMX8MP_SYS_PLL2_1000M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_SYS_PLL2_500M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>;
                                assigned-clock-rates = <0>, <0>,
                                                       <1000000000>,
                                                       <800000000>,
                                                       <500000000>,
                                                       <400000000>,
                                                       <800000000>,
                                                       <393216000>,
                                                       <361267200>,
                                                       <1039500000>;
                        };

更多回帖

发帖
×
20
完善资料,
赚取积分