do_initcalls-->module_init
setup_arch--> __unflatten_device_tree(翻译的工作)
bus的probe会调device和driver的probe
driver_register-->bus_add_type-->driver_attach-->bus_for_each_driver-->driver_attach:1.match:只要device tree里面定义和driver里面定义的,就可以过 2. probe(动态检测设备)
driver_bound 把driver绑定到device上去
__driver_attach-->> __driver_match_device|driver_probe_device-->bus_device_match
drv->of_match_table
of_match_node(来自driver,来自devicetree进行比较)
本文详细解析了Linux内核中设备驱动的加载过程,包括从do_initcalls开始的初始化调用,setup_arch中的设备树解析,以及bus的probe机制如何实现设备与驱动的匹配与绑定。特别关注driver_register注册过程及后续的设备探测步骤。
1214

被折叠的 条评论
为什么被折叠?



