前言
板载硬件支持
iTop4412 开发板SOC采用Exynos4412,是一款比较成熟,性能很强的SOC。核心板板载USB3503,引出高性能HSIC,实现2路USB HOST输出。本专题主要是在Uboot中驱动USB Device - DM9621 (Davicom DM96xx USB 10/100 Ethernet),下面会简单介绍下硬件背景,怎么去初始化芯片。
说明
既然DM9621为USB转以太网的芯片,那么少不了会涉及到USB总线的相关操作,也会涉及到以太网协议的相关操作,这里需要先去阅读下相关的资料,博主就不在这里班门弄斧了,直接贴出写的比较好的博客文章。如侵权,请联系删除。
原理图分析
Exynos4412 (USB 2.0 Host Controller)
Exynos4412 SOC内部集成了USB 2.0的主机控制器,默认Uboot是不支持USB功能的,主机驱动都是三星官方提供的,只需要我们做一定配置,编译进去便可支持。下面为功能块图,详细细节请查阅手册。
USB3503 (USB HUB)
核心板板载一个USB HUB IC,也就是USB3503,与SOC和DM9621直接相连。因其使用和配置简单,我们只需要将其CTL pin
进行相应的IO操作,便可使其正常工作,连接起SOC和下端的DM9621,主要的原理图如下。
DM9621 (USB Device)
最后是Davicom DM9621 USB转Ethernet网卡芯片,控制与数据传输都是通过USB总线。这里需要操作CTL pin
去使能该芯片,再做相应的寄存器配置,便可正常驱动该芯片。通过USB总线与SOC进行通信,Uboot有封装完善的USB接口,非常方便。移植成功后,便可以使用Uboot的网络工具,如tftpboot, 进行相应的网络通信,下面为其主要的原理图。
移植步骤
看到这里,大家应该知道接下来的步骤了吧~ 步骤如下:
- 移植USB Host Controller驱动
- 使能USB3503 Hub
- 移植DM9621驱动
- 测试验证功能性
说明
由于前两项我们要编写的代码并不多,主机控制器驱动三星官方早已合并到Uboot主线中去了。接下来先简单的介绍一下DM_ETH模型吧,先把所需的知识体系搭建好,移植起来就非常的快。虽然博主一开始不是这么来的,那是因为没有人曾经这么详细的记录过~我就来做第一人吧,高手勿喷。。