高速USB转以太网芯片CH397 UBOOT使用教程

简介

CH397 是一款高集成度、低功耗的 USB 网卡芯片,内置青稞 RISC-V 处理器、符合 USB2.1 协议规 范的高速 USB 控制器及收发器 PHY、以及符合 IEEE802.3 协议规范、支持 10M/100M 网络的以太网 MAC+PHY。已适配各类台式电脑、笔记本电脑、平板电脑、游戏机等的标准USB主机接口,用于通过 USB 扩展以太网接口,实现有线网络的稳定连接通讯。为消费电子类、工业类等产品使用USB扩展有线网提供一个外围电路精简、设计简单、容易使用的有线联网解决方案。

U-BOOT可看做是嵌入式Linux系统的bootload程序,当嵌入式Linux系统板处于uboot模式下时,可通过网络工具tftp实现内核镜像下载、设备树文件下载或者使用nfs进行文件系统挂载等功能。

U-Boot中移植CH397 USB网卡的驱动代码,流程如下:

操作流程

1、拷贝 CH397 UBOOT驱动源码 ch397.c 至 drivers/usb/eth 目录下

(发邮件到:tech@wch.cn 获取)

2、在 drivers/usb/eth/Makefile 文件中添加此驱动文件编译选项

obj-$(CONFIG_USB_ETHER_CH397) += ch397.o

3、修改 drivers/usb/eth/usb_ether.c,其 prob_dev 结构体中添加CH397驱动文件的相关API

#ifdef CONFIG_USB_ETHER_CH397

{

.before_probe = ch397_eth_before_probe,

.probe = ch397_eth_probe,

.get_info = ch397_eth_get_info,

},

#endif

4、在 include/usb_ether.h 添加CH397函数功能定义,此处为编译需要,必要添加

void ch397_eth_before_probe(void);

int ch397_eth_probe(struct usb_device *dev, unsigned int ifnum,

    struct ueth_data *ss);

int ch397_eth_get_info(struct usb_device *dev, struct ueth_data *ss,

       struct eth_device *eth);

5、编译生成 u-boot.bin 后烧录入开发板中启动,进入 uboot 界面,插入CH397,执行 usb start 可见如下信息:

=> usb start

starting USB...

USB0:   Port not available.

USB1:   USB EHCI 1.00

scanning bus 1 for devices... 3 USB Device(s) found

       scanning usb for storage devices... 0 Storage Device(s) found

       scanning usb for ethernet devices... 1 Ethernet Device(s) found

再执行usb tree或者usb info则可见CH397 USB相关信息,接下来即可正常使用。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值