我正在为 microblaze 架构开发一个 cpufreq 驱动程序(作为可加载的内核模块)。我有一些能够扩展系统时钟的 FPGA 逻辑,它工作得很好。我已经按照信息Documentation/cpu-freq/cpu-drivers.txt
查看了 blackfin cpufreq 驱动程序中的模型。
arch/microblaze/Kconfig
为了将 cpufreq 选项内置到内核(不是模块)中,我还进行了必要的更改。
当我第一次加载驱动程序时,cpufreq_register_driver()
返回 -ENODEV,这意味着它找不到 CPU。我将驱动程序标志设置为 CPUFREQ_STICKY 并能够插入模块。
但是,此时我意识到/sys/devices/system/cpu/cpu0
不存在(尽管/sys/devices/system/cpu/cpufreq
存在)。那么,这是为什么呢?内核代码的哪一部分负责创建该目录?