microblazeアーキテクチャ用のcpufreqドライバー(ロード可能なカーネルモジュールとして)を開発しています。オンシステムクロックをスケーリングできるFPGAロジックがいくつかあり、非常にうまく機能します。の情報に従い、Documentation/cpu-freq/cpu-drivers.txt
blackfincpufreqドライバーのモデルを確認しました。
arch/microblaze/Kconfig
また、cpufreqオプションを(モジュールではなく)カーネルに組み込むために必要な変更を加えました。
私が最初にドライバーをロードしたとき、cpufreq_register_driver()
-ENODEVを返していました。これは、CPUが見つからなかったことを意味します。ドライバフラグをCPUFREQ_STICKYに設定し、モジュールを挿入できました。
しかし、この時点で、私はそれ/sys/devices/system/cpu/cpu0
が存在しないことに気づきました(存在し/sys/devices/system/cpu/cpufreq
ますが)。それで、それはなぜですか?カーネルコードのどの部分がそのディレクトリの作成を担当していますか?