Raspbian是否支持通用时钟框架?

时间:2016-08-09 15:56:32

标签: linux linux-kernel linux-device-driver

我正在尝试创建一个通用的时钟框架设备驱动程序。我的测试环境是一个Raspberry Pi 3连接到eval板上,其上有时钟芯片(通过I2C)。现在我只是想了解设备树并找出如何修改它以包含现有时钟的驱动程序(即使该时钟实际上没有连接)。特别是,我计划只将Si570芯片添加到设备树中,看看我是否可以在启动时查看日志是否正确加载(来自drivers / clk / clk-si570.c)。

我已经成功构建了一个新的Raspbian内核并进行了部署(4.4.16-v7)。 (我非常非常新,顺便说一句。这是我第一次编译内核)。现在我尝试使用" make menuconfig"启用公共时钟框架,但我没有看到该选项。

从在线观看,似乎在Raspbian上支持CCF。不过,我并不积极。我用/在menuconfig中搜索COMMON_CLK。它有一个"选择"线,而不是取决于。该线太长而无法放在屏幕上,因此会被切断。它有" X86_INTEL_QUARK [= n]&& X86_32 [= n]&& X86_EXTENDED_PLATFORM [= y]&& X86_PLATFORM_DEVICES [= y] ......"由于我在PI / ARM上,我不确定如何解释该行。

此外,Raspbian内核版本的.config文件似乎甚至没有CONFIG_COMMON_CLK = n; COMMON_CLK不会出现在文件的任何位置。

所以我真的有两个问题:

  1. 是否在Raspbian上支持CCF?

  2. 我还可以使用哪些其他技巧来确定驱动程序>的原因Common Clock Framework没有出现在menuconfig中?

  3. 更新 公共时钟框架可以在Raspberry Pi上运行。请在此处查看我的其他帖子:

    Hello World for Common Clock Framework on Raspberry PI

1 个答案:

答案 0 :(得分:1)

答案

首先,使用make menuconfig是个好主意。不要担心线路太长 - 只需使用键盘上的右箭头向右滚动即可。但是,你真的不需要那个,因为最重要的一行是:

Symbol: COMMON_CLK [=y]

如果显示“=y”,则表示已启用。如果你使用bcm2709_defconfig(你应该使用RaspberryPi 3),那么默认情况下此选项设置为 y

更多细节

取决于

选择的vs

你这两个人很困惑。顾名思义,Depends on描述了此选项的依赖关系。这意味着必须满足所有这些依赖项,否则根本无法设置此选项。 COMMON_CLK没有任何依赖关系。

另一方面,

Selected by表示如果满足条件,则此选项将自动选中。在COMMON_CLK的情况下,条件非常复杂,但它由许多ORed表达式组成。我们必须找到对我们感兴趣的表达方式。你从左到右走,很快就会发现:

ARCH_BCM2709 [=y] && <choice>

(以及RPi0 / 1的类似ARCH_BCM2708变体)。因此,这意味着如果设置了ARCH_BCM2709,则会自动选择我们的选项(=y表明它确实是)。这里有一个奇怪的&& <choice>实际上是由于ARCH_BCM2709位于未命名的choice块内部而导致的工件,这意味着只能选择一个架构。

为什么不能在menuconfig中找到公共时钟

并非所有选项都在menuconfig中可见(或任何其他“gui”用于内核配置)。选项可能不可见的一个原因是其依赖性未得到满足。另一个,COMMON_CLK的情况是该选项不是用户可设计的,因此它没有“提示值”。在这种情况下,只有在满足“选择者:”表达式时才能选择该选项。

X86_INTEL_QUARK混淆

您在此处粘贴的“已选择”行表明您没有正确使用“make menuconfig”。由于您尝试为非默认体系结构(即X86)配置和构建内核,因此应使用ARCH=arm来表示。只是以这种方式运行:

make ARCH=arm menuconfig