首页 > 解决方案 > Linux的“时基频率”和“时钟频率”有什么区别

问题描述

我正在使用基于 arm 的 linux,并开始转向 risc-v,我经常在 dts 中看到类似以下的 CPU 节点:

    cpus {
            #address-cells = <0x1>;
            #size-cells = <0x0>;
            timebase-frequency = <0x989680>;

            cpu@0 {
                    device_type = "cpu";
                    reg = <0x0>;
                    status = "okay";
                    compatible = "riscv";
                    riscv,isa = "rv64imafdcsu";
                    mmu-type = "riscv,sv48";
                    clock-frequency = <0x3b9aca00>;

                    interrupt-controller {
                            #interrupt-cells = <0x1>;
                            interrupt-controller;
                            compatible = "riscv,cpu-intc";
                            linux,phandle = <0x1>;
                            phandle = <0x1>;
                    };
            };
    };

我想知道timebase-frequencyclock-frequency指的是什么,两者之间有什么不同?

标签: linux-kerneldevice-tree

解决方案


我最初以为您是在询问配置条目的含义;对于那些这样做的人,它们在Documentation/devicetree/booting-without-of.txt中进行了描述。

但是,由于您是在询问这个概念;

时基寄存器是以与实现相关的频率递增的寄存器 - 不一定每个时钟周期一次。它的目的是用作时钟源(与 jiffies 等相反)。PowerPC 经常遇到这种情况。


推荐阅读