Advertisement

Linux设备注册

阅读量:

许多linux内核开发者肯定开发过各种类型的驱动程序。通常流程首先是使用DTS工具配置设备的基本属性信息,并随后编写对应的driver代码块。这些driver代码将基于linux内核中的device-bus-driver架构运行,在匹配特定硬件时就会触发。一旦与特定driver匹配时就会触发该driver的probe函数以完成初始化工作。在分析一个项目的DTS文件时会发现大量独立设备节点的存在,在这种情况下我们不禁要问:它们是如何被系统分配到硬件上的?

下文以4.9内核版本,平台为arm64 为例来讲解具体的设备注册过程。

1. 根设备及其子设备的注册

复制代码
 路径:drivers/of/platform.c

    
 static int __init of_platform_default_populate_init(void)
    
 {
    
         struct device_node *node;
    
  
    
         if (!of_have_populated_dt())
    
                 return -ENODEV;
    
  
    
         /* * Handle ramoops explicitly, since it is inside /reserved-m

全部评论 (0)

还没有任何评论哟~