【发布时间】:2019-09-15 03:42:35
【问题描述】:
假设我有一个在 SoC 上运行的 Linux 系统(我的意思是连接到 FPGA 的 ARM CPU)。如果我用新的比特流重新编程 FPGA,连接到系统的设备现在已经改变。据我了解,此更改是使用设备树覆盖向操作系统发出的信号。
但是,对于设备型号,应用覆盖是否“做正确的事”?以下是应该发生的事情的简短列表:
- 应删除旧比特流的旧
struct device条目,并更新sysfs - 应停止旧设备的驱动程序
- 应注册新比特流的新
struct device条目,sysfs已更新 - 不知何故,这些新的
struct device条目需要与struct device_driver条目匹配(并且应该调用probe()函数)
我尝试快速查看device tree overlay source code 以查看这些事件是否发生,但我无法真正理解发生了什么。
回顾一下:应用设备树覆盖(在正在运行的系统上)是否会对设备模型进行所有适当的更改并触发驱动程序的适当卸载和探测?
【问题讨论】:
标签: linux-device-driver embedded-linux fpga device-driver