我刚刚开始阅读设备驱动程序并读取Start_kernal函数是与体系结构无关的代码的一部分,并且已经从依赖于体系结构的部分调用。我想知道在start_Kernal例程调用的意思是在引导内核之前发生了什么操作
我很想知道当newtork设备或USB设备与这个依赖于体系结构的代码交互时会发生什么(相信架构依赖是第一个软件与硬件交互)。
依赖于体系结构的代码是否负责获取附加到系统的硬件设备的mac地址,供应商ID等信息?
答案 0 :(得分:1)
早期的内核代码主要关注:
请注意,依赖于体系结构的初始化不会一次全部发生。在内核启动之后但在初始化驱动程序之前,可以调用板初始化函数。
newtork设备或USB设备与此体系结构相关的代码进行交互
网络和USB主机&小工具设备由设备驱动程序表示,这些驱动程序的初始化时间远早于早期内核代码。 “交互”是最小的,并且将符合已建立的内核驱动程序接口。应编写设备驱动程序以删除所有特定于板的依赖项,并将其替换为配置选项。如果没有,则该驱动程序代码应位于 platform 或 mach 源代码目录中,而不是 drivers 目录中。
依赖于体系结构的代码是否负责获取像......这样的信息。
MAC地址可以在内核命令行中传递,也可以由引导加载程序安装(供设备驱动程序检索)。
供应商ID,板ID和其他数据可以是与架构相关的代码。对于ARM,内核在ATAGs的内存缓冲区中接收此信息。