在struct设备的定义中,定义了fwnode字段,
struct device {
...
struct fwnode_handle *fwnode; /* firmware device node */
...
}
相应的文件位于include/linux/fwnode.h中。
struct fwnode_reference_args {
struct fwnode_handle *fwnode;
unsigned int nargs;
unsigned int args[NR_FWNODE_REFERENCE_ARGS];
};
...
然后我在网站上搜索,但是找不到内核的这个部分(fwnode)的详细解释,所以这意味着什么?那它是做什么的?你能提供一份参考文件吗?
发布于 2020-06-02 02:04:28
fwnode引用一个固件节点,通常表示设备树或ACPI (通常是DSDT表)中的一个条目。设备树和ACPI是两种不同的方法来定义设备及其属性和它们之间的相互连接。它们都使用树结构对此信息进行编码。
给定struct device
上的fwnode成员是该设备相应固件表中的节点。ACPI在基于x86/UEFI的系统中很常见,而设备树在ARM系统中很常见。
fwnode可以与接受fwnode句柄的内核API一起使用。其中一个这样的API是V4l2 (VisualforLinux2) fwnode:https://www.kernel.org/doc/html/latest/media/kapi/v4l2-fwnode.html
一些好的参考文档:
DSDT中的
https://stackoverflow.com/questions/58577825
复制相似问题