u-boot 网络部分学习
来源:互联网 发布:sqlyog执行sql文件 编辑:程序博客网 时间:2024/05/14 01:25
u-boot这个东西,说白了只是加载内核的一个工具。
但是你要是去深入了解一下,u-boot还是非常强大的,简单的说,自成一系,有文件系统,有驱动,有网络等等。
工作中遇到一个奇怪的问题,板子->交换机->pc 网络正常,板子->pc直连,ping不通。所以就跑去看u-boot代码。
经测试,发现一个现象,boot在代码加载后,一开始对网络进行初始化只做了很小的一部分(board.c 中调用了接口eth_initialize(gd->bd);),这个接口中又调用了miiphy_init(); 而miiphy_init();只是将一个结构体的地址放到了一个链表中,后续就没有其他操作了。
board.c中对net的初始化工作到这里基本上就完成了,这就让我一头雾水了,那么boot中网络是如何正常工作的呢,继续往下跟进。。。
我们知道,boot中是可以输入各种命令的,这些命令的实现都放在common文件加下,以cmd_**.c的形式存在,那么网络相关的命令就是cmd_net.c。
进入cmd_net.c文件,可以看到各种命令 ping、tftp、dhcp、bootp等等
看过这个文件之后,就基本上明白了,这些所有的命令,在执行的时候都有调用一个接口NetLoop(proto_t protocol);这个接口里面会调用eth_init()初始化接口,对网络进行初始化,至此,就基本上说明了,u-boot在非进入命令行的时候,是不对网络进行初始化的---毕竟u-boot和内核都是烧写到flash中,u-boot在引导内核的时候,是不需要进行网络通信的,今天的学习就到这里,88.
PS:给老婆大人淘宝店铺打个小广告,各位仁兄如果要给贤内助一个惊喜的话,不妨去瞅一眼。
- u-boot 网络部分学习
- U-boot命令(部分)
- u-boot学习笔记四(C语言部分)
- U-Boot网络问题
- U-Boot网络控制台
- u-boot移植部分步骤
- u-boot分析:配置部分
- u-boot学习(一):u-boot概述
- U-boot学习
- u-boot学习
- U-BOOT学习
- U-Boot 学习
- u-boot学习-01
- U-BOOT.dls学习
- u-boot学习
- zynq u-boot网络配置
- u-boot整个过程时钟部分解析
- U-Boot常用命令和部分环境变量
- 书单:产品经理必备58本书籍整理
- 积累——SQLCommand命令
- 详解LMA(装载内存地址)与VMA(虚拟内存地址)
- 什么软件能够识别扫描文字
- VI编辑器之多文件多屏操作
- u-boot 网络部分学习
- 卷积的趣味解释
- 理解lua中Weak Table(附带垃圾回收GC通俗演义)
- MDI多文档框架下让主框架与子框架菜单栏一致的方法
- 单线程任务队列
- 常见排列组合问题公式总结
- MapReduce TotalOrderPartitioner 全局排序
- android wifi(三)
- 6.4 处理选项类型