Linux kernel 设备树幻影十六进制到引用节点
是否可以从幻影中导出引用节点 例如,我的RPI 4具有以下功能:Linux kernel 设备树幻影十六进制到引用节点,linux-kernel,raspberry-pi4,device-tree,dts,Linux Kernel,Raspberry Pi4,Device Tree,Dts,是否可以从幻影中导出引用节点 例如,我的RPI 4具有以下功能: mmcnr@7e300000 { compatible = "brcm,bcm2835-mmc\0brcm,bcm2835-sdhci"; reg = <0x7e300000 0x100>; interrupts = <0x00 0x7e 0x04>; clocks = <0x07 0x1c>; dmas = <0x0b 0x0b
mmcnr@7e300000 {
compatible = "brcm,bcm2835-mmc\0brcm,bcm2835-sdhci";
reg = <0x7e300000 0x100>;
interrupts = <0x00 0x7e 0x04>;
clocks = <0x07 0x1c>;
dmas = <0x0b 0x0b>;
dma-names = "rx-tx";
brcm,overclock-50 = <0x00>;
non-removable;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x1f>;
bus-width = <0x04>;
phandle = <0x38>;
};
mmcnr@7e300000 {
compatible=“brcm,bcm2835 mmc\0brcm,bcm2835 sdhci”;
reg=;
中断=;
时钟=;
dmas=;
dma name=“rx tx”;
brcm,超频-50=;
不可移动;
status=“好”;
pinctrl names=“默认”;
pinctrl-0=;
总线宽度=;
幻影=;
};
如何知道节点0x38是什么?您可以使用of_find_all_nodes()遍历所有节点,首先将参数作为NULL传递给此函数。此函数用于返回设备\节点。。如果匹配,可以将返回的设备\u node->phandle与0x38进行比较。这是节点的好选项,但我需要在本地解析它,而不是在系统上。你推荐(在Linux上运行的)软件吗?否则,我的周末将充满欢乐的编程:DAlso,
device_node->phandle
是我的示例中mmcnr
节点中引用的phandle
吗?因此,我的mmcnr幻影
在device_节点结构中的phandle
可以与struct property*属性中的phandle属性
不同代码>,它的表示形式为phandle=
?是的,您所说的是正确的。请澄清,您不是试图从内核代码中查找实时设备树中的节点,而是试图从用户空间代码中查找dtb文件(或dtb文件的反编译版本)中的节点。是吗?@IanAbbott是的,我有一个dtb并将其反编译为dts。现在我想知道哪个节点是0x38。您可能需要使用libfdt库编写自己的代码。将整个dtb写入缓冲区后,此特定问题的有用函数是fdt_check_full
或fdt_check_header
用于健全性检查,fdt_node_offset_by_phandle
用于获取到具有指定phandle值的节点的偏移,和fdt_get_path
以获取导致节点偏移的路径。