对于 Linux,'timebase-frequency' 和 'clock-frequency' 有什么区别

What's the difference between 'timebase-frequency' and 'clock-frequency' for 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 指的是什么,两者有什么区别?

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

中进行了描述

但是既然你问的是概念,

时基寄存器是以依赖于实现的频率递增的寄存器——不一定每个时钟周期递增一次。它的目的是用作时钟源(与 jiffies 相反)。在 PowerPC 中经常遇到。