本文是该系列文章驱动加载部分的第一篇,主要讲述ethernet device和driver的匹配和probe函数做了哪些工作。 2 ethernet driver和device的匹配 一款芯片中所有IP的描述与配置,在linux3.1之后都是用dts(device tree source)表示的,即linux设备(device)的信息描述在了dts中。本文我们关注dts中ethernet这个节点,它是网卡这个de...
驱动代码里边就可以通过上面函数来获取对应platform_device的resource,比如在module_init中我们会调用plarform_driver_register,这个会引用到platform_driver中的probe函数,而probe函数中则可以进行cdev的初始化及cdev_add的操作,在进行这些操作之前,可以通过get_resource来获取寄存器物理基地址,然后ioremap到kernel的虚拟空间...
@||| 72 platform_get_resource_byname add操作是在系统初始化时完成,因此在后续挂在platform虚拟总线上的设备在驱动模块insmod到系统时,驱动代码里边就可以通过上面函数来获取对应platform_device的resource,比如在module_init中我们会调用plarform_driver_register,这个会引用到platform_driver中的probe函数,而probe函数中...
(1)platform_device是在系统初始化时就已经注册到系统之中的。 (2)platform_driver是在驱动初始化的时候注册的,通过platform_driver_register来注册,该注册函数最终会调用到platform_driver中的probe函数。 可将cdev有关的一系列操作(前提是字符设备的驱动开发)放到platform_driver的probe函数中去实现,这样就把cdev挂到...