u-boot网络启动分析第一篇文章以调用流程为线索层层深入,本文作为网络分析的第二篇,将从数据的调用流向进一步分析u-boot网络协议及初始化流程。
在board_init_r中有一个跟板卡(主板)信息相关的数据结构 struct bd_info,在网络设备初始化时,该数据结构以参数的形式传入了eth_initialize中。但经过分析,该结构体及其信息并未在网络设备初始化是使用,所以我们不对其进行分析后续分析也会忽略。
在第一篇中已经说过,eth_initialize中初始化了两个类型为eth_device的指针,这两个指针指向了一个描述网络设备的双向链表,该链表会在网络设备注册调用eth_register时进行递增。我们看到了这里只是初始化了两个指针的指向,也就是说这里的并不代表真实的设备,它们只是两个指针而已。
代表真实设备的eth_device到底在哪里呢?其实是在tsec_initialize中定义的,我们再来看看tsec_initialize的代码: