我刚刚开始阅读设备驱动程序并阅读 Start_kernal 函数是与体系结构无关的代码的一部分,并且已从与体系结构相关的部分调用。我想知道在此 start_Kernal 例程调用内核启动时的意思之前实际发生了什么。
我很想知道当 newtork 设备或 USB 设备与这个依赖于架构的代码交互时会发生什么(相信架构依赖是第一个与硬件交互的软件)。
与体系结构相关的代码是否负责获取附加到系统的硬件设备的 MAC 地址、供应商 ID 等信息?
我刚刚开始阅读设备驱动程序并阅读 Start_kernal 函数是与体系结构无关的代码的一部分,并且已从与体系结构相关的部分调用。我想知道在此 start_Kernal 例程调用内核启动时的意思之前实际发生了什么。
我很想知道当 newtork 设备或 USB 设备与这个依赖于架构的代码交互时会发生什么(相信架构依赖是第一个与硬件交互的软件)。
与体系结构相关的代码是否负责获取附加到系统的硬件设备的 MAC 地址、供应商 ID 等信息?
早期的内核代码专注于:
请注意,与体系结构相关的初始化不会一下子发生。可以在内核启动之后但在驱动程序初始化之前调用板初始化函数。
newtork 设备或 USB 设备与此体系结构相关的代码进行交互
网络和 USB 主机和小工具设备由比早期内核代码更晚初始化的设备驱动程序表示。“交互”是最小的,并且符合已建立的内核驱动程序接口。应编写设备驱动程序以删除所有特定于板的依赖项,并用配置选项替换它们。如果不是,那么该驱动程序代码应该在平台或mach源代码目录中,而不是在驱动程序目录中。
依赖于架构的代码是否负责获取诸如...之类的信息
MAC 地址可以在内核命令行中传递,或者由引导加载程序安装(供设备驱动程序检索)。
Vendor ID、board ID 和其他数据可以是架构相关的代码。对于 ARM,内核在带有ATAG的内存缓冲区中接收此信息。