我正在开发一个运行 Linux 的主板,它有两个 NOR 闪存设备。它们在设备树中进行了描述,因此一堆 MTD 显示在 /dev/ 下。
但是,我想隐藏其中一个 NOR 闪存设备中的 MTD,直到真正需要它们(在升级期间)。
我发现我可以在启动后将驱动程序从 NOR-flash 中解除绑定,然后在需要时重新绑定。但是,我更希望系统可以在没有绑定的情况下启动。我尝试编辑设备树并设置状态=“已禁用”并删除兼容的字段,但这两种方法显然都无法将驱动程序绑定到 NOR 闪存。(没有驱动程序覆盖节点。)
有什么方法可以让系统允许我决定何时绑定驱动程序或显示 MTD?
答案1
该compatible
属性将驱动程序与设备(NOR 闪存控制器)关联,并影响status
设备。
您尝试的方法没有达到预期结果是有道理的。
如果 MTD 分区定义在 DT 中,那么为什么不能简单地注释掉您不想看到的分区?
有没有什么方法可以让系统让我决定何时绑定驱动程序?
是的,这就是设备树的功能。
但对于你的情况,你应该处理分区,而不是设备(因为一个控制器上连接了两个芯片)!
请参阅https://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
如果 MTD 分区没有定义,那么显然无法为其创建设备节点,/dev。