主题中讨论的其他器件: DA8XX
工具/软件:Linux
我正在为基于 OMAP L-138的平台实施器件树。 我使用的是 Linux、最近刚推出 了最新的达芬奇 Git。 我意识到这棵树从主线中拉出、目前正在拉进 RC、但我觉得这可能是一个问题、已经存在一段时间了、或者从未得到完全支持。
下面是我的问题的说明:
- 编译和加载内核
- U-Boot 启动内核并传递到设备树 blob 中
- 内核解压缩、然后停止打印任何其它内容
我已经确定这是因为所有
平台串行探针的说明
调用失败、使内核没有有效的控制台。 以下是导致探测器失败的调用链:
- 平台串行探针的说明
- 说明
- devm_clk_get
- CLK_Get
- devm_clk_get
- 说明
看一下这个混乱的情况,我看到了
_of _clk_get_By_name
由 clk_get 调用编译(从 CCS 中拉出):
E2503000副本 R3、R0、#0x0 01A00003 MOVeq R0、R3 0A000002 BEQ 0xC018F9DC E593002C LDR R0、[R3、#0x2C] E3500000 CMP R0、#0x0 05930008 LDREQ R0、[R3、#0x8] EAFFFBF B CLK_GET_sys
这意味着 clk_get_sys 在 DEV_id ="1d0c000.serial"或类似地址时被调用。 但是、文件 da850/c 为 UART 时钟设置器件 ID、如下所示:
静态结构 clk_lookup da850_clks[]={
...
CLK ("serial8250.0"、 null、 uart0_clk)、
CLK ("serial8250.1"、 null、 uart1_clk)、
CLK ("serial8250.2"、 null、 uart2_clk)、
...
};
这会导致时钟查找、从而导致探测器失败。
我认为这是因为 CONFIG_common_CLK 未设置、从而导致了这种情况
_of _clk_get_By_name
无效。 在浏览 menuconfig 时、我没有清楚地看到启用此功能的任何方法。
我在这里是否缺少一些东西来使器件树时钟查找在我的平台上正常工作? 我实际上应该能够启用此选项吗? 或者、是否有其他解决方案可以在不修改8250/clk 内核代码的情况下使其正常工作?
作为一种变通办法、我可以将所有时钟 dev_id 重命名为"da850/c 中的 address.device"、但这似乎是对我的问题的错误解决方案。