前言
目前讯为官方的开发板提供的BSP里面,uboot并不支持网卡功能,所以uboot的网络相关命令也都没有办法使用,只能使用官方的定制fastboot命令来达到加载内核启动的功能。fastboot是基于USB数据线的,还有各种驱动要安装,使用起来其实还是诸多不便的。前段时间心血来潮,那就把网卡移植上去,经查阅很多优秀的资料过后,觉得这条路走得通,所以才有了今天的这篇博客专题。我会尽量详细的把移植过程中遇到的问题和解决办法与思路都详细的记录下来,希望阅读完本专题后,能给大家带来一定的收获。
技术前言
目前比较新的主线uboot,融合了很多linux的模型思想进去,本次移植基于主线的uboot-2017-11,基本功能基于讯为官方的Uboot 2017-11版本,在其上加入了USB Host和DM9621支持。网卡支持也基于uboot最新的DM模型来移植的,具体的是DM_USB和DM_ETH模型,基于该模型,只需要提供几个关键的结构体和ops即可,是不是和linux的设备驱动模型很像呢?
开发环境
- 开发机:Ubuntu 18.04 LTS
- 目标机: 讯为iTop4412精英版(核心板与底板)
- 交叉编译工具链:arm-linux-gnueabihf-gcc (v7.4, 安装方法: sudo apt install gcc-arm-linux-gnueabihf)
- Uboot版本: 2017-11
- github仓库: https://github.com/jason416/uboot-2017-11
专题目录
- USB和Ethernet协议了解与原理图分析
- DM_USB和DM_ETH模型简介
- Uboot DM9621网卡移植之路
- Uboot 网络加载并启动Linux - 基于移植好的网络功能
- Uboot 网卡移植遇到的问题与解决方法
参考资料
- USB协议详解
- Ethernet(以太网)之一 详解 MAC、MII、PHY
- 讯为iTop4412官方核心板与底板原理图
- Exynos4412 用户手册
- DM9621NP芯片手册
- uboot (番外篇)uboot 驱动模型
- X-010 FriendlyARM tiny4412 uboot移植之移植网卡驱动TFTP用起来
致谢
这里感谢讯为官方和大佬们的博客支持,没有这些技术分享,这个专题也不会有。欢迎大家一起学习,交流,共同进步!
备注
本专题已经更新完毕,读者有啥问题可以在评论区留言,或者上GitHub仓库留言。因博主技术水平有限,高手勿喷,谢谢!