ssd 以太网设备驱动
本文涉及 SSD202 做为主处理器芯片。
1 硬件设计
拥有一路内置MAC+PHY电路的接口,P107-109,实现100M网口。
拥有一路内置MAC的接口,它与TTL-RGB接口复用,外接PHY芯片IP01GR。
理论上,该处理器可以实现基础2个网口功能。
2 内核设置
2.1 DTS配置
2.1.1 引脚配置
ETH0:arch\arm\boot\dts\infinity2m-ssc011a-s01a-padmux-display-doubleNet.dtsi
固定功能引脚,不复用。
//<PAD_ETH_RN >, // ETH: default not-GPIO
//<PAD_ETH_RP >, // ETH: default not-GPIO
//<PAD_ETH_TN >, // ETH: default not-GPIO
//<PAD_ETH_TP >, // ETH: default not-GPIO
ETH1: arch\arm\boot\dts\infinity2m-ssc011a-s01a-padmux-rgb565-rmii-doublenet.dtsi,注意:有其它文件使用PINMUX_FOR_ETH1_MODE_3不确定具体用哪个。
<PAD_GPIO0 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_GPIO1 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL16 PINMUX_FOR_GPIO_MODE MDRV_PUSE_EMAC1_PHY_RESET>,
<PAD_TTL17 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL18 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL19 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL20 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL21 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL22 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
<PAD_TTL23 PINMUX_FOR_ETH1_MODE_4 MDRV_PUSE_NA >,
通过上面定义处理器的网络相关引脚。
2.1.2 网络功能支持
参考自 : infinity2m-doublenet.dtsi
emac0: emac0 {compatible = "sstar-emac";interrupts = <GIC_SPI INT_IRQ_EMAC IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI INT_FIQ_LAN_ESD IRQ_TYPE_LEVEL_HIGH>;clocks = <&CLK_emac_ahb>,<&CLK_emac_tx>,<&CLK_emac_rx>;reg = <0x1F2A2000 0x800>, <0x1F343C00 0x600>, <0x1F006200 0x600>;pad = <0x1F203C38 0x0001 0x0000>; // pad selection from 0x0001phy-handle = <&phy0>;status = "ok";mdio-bus@emac0 {phy0: ethernet-phy@0 {phy-mode = "mii";};};};emac1: emac1 {compatible = "sstar-emac";interrupts = <GIC_SPI INT_IRQ_EMAC_1 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI INT_FIQ_LAN_ESD IRQ_TYPE_LEVEL_HIGH>;clocks = <&CLK_emac_ahb>,<&CLK_emac1_tx>,<&CLK_emac1_rx>,<&CLK_emac1_tx_ref>,<&CLK_emac1_rx_ref>;reg = <0x1F2A2800 0x800>, <0x1F344200 0x600>, <0x00000000 0x000>;pad = <0x1F203C38 0x0F00 0x0300>; // pad selection from 0x0100/0x0200/0x0300/0x0400/0x0500/0x0600/0x0700/0x0800/0x0900status = "ok";phy-handle = <&phy1>;mdio-bus@emac1 {phy1: ethernet-phy@1 {phy-mode = "rmii";};};};
2.2 内核配置
ETH0 芯片网卡驱动支持:
EMAC
SSTAR 10/100 PHYs
ETH1:
开启IP101的驱动支持 ICPlus PHYs
2 系统启动
网络相关的:
libphy.ko mii.ko of_mdio.ko kdrv_emac.ko
ETH0:
kdrv_emac.ko sstar_100_phy.ko
ETH1
icplus.ko*
kdrv_emac 30335 0 - Live 0xbf977000
sstar_100_phy 1890 1 - Live 0xbf89b000
of_mdio 5815 3 kdrv_emac, Live 0xbf972000
fixed_phy 2661 1 of_mdio, Live 0xbf897000
libphy 24566 5 kdrv_emac,sstar_100_phy,of_mdio,fixed_phy, Live 0xbf88c000
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:30:1B:BA:02:DB BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)Interrupt:35 eth1 Link encap:Ethernet HWaddr 00:30:1B:BA:02:DB BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)Interrupt:37 lo Link encap:Local Loopback LOOPBACK MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# ifconfig eth0 192.168.250.139 netmask 255.255.255.0 up
# ip route add default dev eth0
# ping 192.168.250.1
PING 192.168.250.1 (192.168.250.1): 56 data bytes
64 bytes from 192.168.250.1: seq=0 ttl=64 time=1.479 ms
64 bytes from 192.168.250.1: seq=1 ttl=64 time=0.308 ms
ssd 以太网设备驱动相关推荐
- linux设备驱动开发详解源码,linux设备驱动开发详解光盘源码.rar
压缩包 : linux设备驱动开发详解光盘源码.rar 列表 19/busybox源代码/busybox-1.2.1.tar.bz2 19/MTD工具/mtd-utils-1.0.0.tar.gz 1 ...
- 《Linux设备驱动开发详解 A》一一2.3 接口与总线
本节书摘来华章计算机出版社<Linux设备驱动开发详解 A>一书中的第2章,第2.3节,作者:宋宝华 更多章节内容可以访问云栖社区"华章计算机"公众号查看.1 2.3 ...
- Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用
关与设备树的概念,我们在Exynos4412 内核移植(六)-- 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(De ...
- linux块设备驱动编写,Linux内核学习笔记 -49 工程实践-编写块设备驱动的基础
块设备可以随机存储.字符设备,比如键盘,只能按照输入顺序存取,不可随机,打乱输入的字节流. 文件系统层,包括常见的文件系统,以及虚拟文件系统层VFS,字符设备可以直接用应用程序打开.块设备不会在应用程 ...
- Linux操作系统原理与应用09(完):设备驱动
目录 1. 设备驱动概述 1.1 万物皆文件 1.2 设备分类 1.2.1 块设备 1.2.2 字符设备 1.2.3 网络设备 1.3 设备驱动分层结构 1.3.1 驱动类型与驱动分层 1.3.1 块 ...
- 《linux设备驱动开发详解》笔记——14 linux网络设备驱动
14.1 网络设备驱动结构 网络协议接口层:硬件无关,标准收发函数dev_queue_xmit()和netif_rx(); 注意,netif_rx是将接收到的数据给上层,有时也在驱动收到数据以后调用 ...
- Linux设备驱动编程第三版-笔记
第1章 设备驱动简介 1.1 驱动程序的角色 机制:提供什么能力. 策略:如何使用这些能力. 1.2. 划分内核 内核的角色可以划分: 一:进程管理 二:内存管理 三:文件系统 四:设备控制 ...
- Linux 设备驱动
驱动编译要用到kernel的Makefile文件 - - 也就是源码树的编译系统.因此,源码需要被配置和编译,以ubuntu自带的源码为例: 编译外部模块(.ko)的编译命令是: make -C M= ...
- 十六、Linux驱动之块设备驱动
1. 基本概念 块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,块设备(blockdevice)是一种具有一定结构的随机存取设备,对这种设备的读写是按块(所以叫块设备) ...
最新文章
- Yarn已过时!Kubeflow实现机器学习调度平台才是未来
- 常用HTTP状态码趣(曲)解
- 连接myeclipse和mysql数据库,MyEclipse与Mysql数据库的连接
- Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
- 【Git笔记3】关于撤销、删除、恢复的那些事儿
- 深度解密Go语言之反射
- 蒙特卡洛方法学习(二)
- Oracle 数据定义
- 销货清单打印软件_地磅软件管理系统 大宗物资称重管理车运版
- 35款非常有创意的透明名片设计作品
- ES5_03_Object扩展
- gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确
- 火狐查看html的隐藏域,IE/火狐/Chrome操作display:none对象所遇问题解答
- python request.get_Python request.get_data方法代码示例
- Android Socket通信
- xmind怎样画流程图_【工作流程图】如何用xmind做流程图
- Common IO 使用小结
- ACM中关于Output Limit Exceeded和Time Limit Exceeded
- 苹果照片未删却不见了_手机删除的照片如何恢复?不得不说这方法好!
- PS 图片部分位置调亮
热门文章
- html dashed 属性,html2canvas实现dashed虚线边框的示例
- xp计算机退出家庭组,如何将Windows XP计算机加入Windows 7/8/10家庭组
- h3c服务器管理虚拟机,02-虚拟机配置
- ES 查询关键字(match, term, range,terms)、组合多查询(must, should, must_not,filter)、分页、排序sort、高亮highlight
- BlackBox:在不受信任的系统上保护容器安全
- apicloud 导入通讯录获取人名与电话 拨打电话
- 人脸识别基础知识、大规模人脸识别评测
- ASP网上贴吧系统的设计与实现
- beego 最新版本_优麒麟20.10版本发布--简而美,华而实
- 技术领导者如何提升心力?