对于 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-frequency
和 clock-frequency
指的是什么,两者有什么区别?
我最初以为您是在询问配置条目的含义;对于那些这样做的人,他们在 Documentation/devicetree/booting-without-of.txt.
中进行了描述
但是既然你问的是概念,
时基寄存器是以依赖于实现的频率递增的寄存器——不一定每个时钟周期递增一次。它的目的是用作时钟源(与 jiffies 相反)。在 PowerPC 中经常遇到。
我正在使用基于 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-frequency
和 clock-frequency
指的是什么,两者有什么区别?
我最初以为您是在询问配置条目的含义;对于那些这样做的人,他们在 Documentation/devicetree/booting-without-of.txt.
中进行了描述但是既然你问的是概念,
时基寄存器是以依赖于实现的频率递增的寄存器——不一定每个时钟周期递增一次。它的目的是用作时钟源(与 jiffies 相反)。在 PowerPC 中经常遇到。