本文涉及 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 以太网设备驱动相关推荐

  1. linux设备驱动开发详解源码,linux设备驱动开发详解光盘源码.rar

    压缩包 : linux设备驱动开发详解光盘源码.rar 列表 19/busybox源代码/busybox-1.2.1.tar.bz2 19/MTD工具/mtd-utils-1.0.0.tar.gz 1 ...

  2. 《Linux设备驱动开发详解 A》一一2.3 接口与总线

    本节书摘来华章计算机出版社<Linux设备驱动开发详解 A>一书中的第2章,第2.3节,作者:宋宝华 更多章节内容可以访问云栖社区"华章计算机"公众号查看.1 2.3 ...

  3. Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用

    关与设备树的概念,我们在Exynos4412 内核移植(六)-- 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(De ...

  4. linux块设备驱动编写,Linux内核学习笔记 -49 工程实践-编写块设备驱动的基础

    块设备可以随机存储.字符设备,比如键盘,只能按照输入顺序存取,不可随机,打乱输入的字节流. 文件系统层,包括常见的文件系统,以及虚拟文件系统层VFS,字符设备可以直接用应用程序打开.块设备不会在应用程 ...

  5. Linux操作系统原理与应用09(完):设备驱动

    目录 1. 设备驱动概述 1.1 万物皆文件 1.2 设备分类 1.2.1 块设备 1.2.2 字符设备 1.2.3 网络设备 1.3 设备驱动分层结构 1.3.1 驱动类型与驱动分层 1.3.1 块 ...

  6. 《linux设备驱动开发详解》笔记——14 linux网络设备驱动

    14.1 网络设备驱动结构 网络协议接口层:硬件无关,标准收发函数dev_queue_xmit()和netif_rx();  注意,netif_rx是将接收到的数据给上层,有时也在驱动收到数据以后调用 ...

  7. Linux设备驱动编程第三版-笔记

    第1章 设备驱动简介 1.1 驱动程序的角色 机制:提供什么能力. 策略:如何使用这些能力. 1.2. 划分内核 内核的角色可以划分:     一:进程管理 二:内存管理 三:文件系统 四:设备控制 ...

  8. Linux 设备驱动

    驱动编译要用到kernel的Makefile文件 - - 也就是源码树的编译系统.因此,源码需要被配置和编译,以ubuntu自带的源码为例: 编译外部模块(.ko)的编译命令是: make -C M= ...

  9. 十六、Linux驱动之块设备驱动

    1. 基本概念 块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,块设备(blockdevice)是一种具有一定结构的随机存取设备,对这种设备的读写是按块(所以叫块设备) ...

最新文章

  1. Yarn已过时!Kubeflow实现机器学习调度平台才是未来
  2. 常用HTTP状态码趣(曲)解
  3. 连接myeclipse和mysql数据库,MyEclipse与Mysql数据库的连接
  4. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
  5. 【Git笔记3】关于撤销、删除、恢复的那些事儿
  6. 深度解密Go语言之反射
  7. 蒙特卡洛方法学习(二)
  8. Oracle 数据定义
  9. 销货清单打印软件_地磅软件管理系统 大宗物资称重管理车运版
  10. 35款非常有创意的透明名片设计作品
  11. ES5_03_Object扩展
  12. gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确
  13. 火狐查看html的隐藏域,IE/火狐/Chrome操作display:none对象所遇问题解答
  14. python request.get_Python request.get_data方法代码示例
  15. Android Socket通信
  16. xmind怎样画流程图_【工作流程图】如何用xmind做流程图
  17. Common IO 使用小结
  18. ACM中关于Output Limit Exceeded和Time Limit Exceeded
  19. 苹果照片未删却不见了_手机删除的照片如何恢复?不得不说这方法好!
  20. PS 图片部分位置调亮

热门文章

  1. html dashed 属性,html2canvas实现dashed虚线边框的示例
  2. xp计算机退出家庭组,如何将Windows XP计算机加入Windows 7/8/10家庭组
  3. h3c服务器管理虚拟机,02-虚拟机配置
  4. ES 查询关键字(match, term, range,terms)、组合多查询(must, should, must_not,filter)、分页、排序sort、高亮highlight
  5. BlackBox:在不受信任的系统上保护容器安全
  6. apicloud 导入通讯录获取人名与电话 拨打电话
  7. 人脸识别基础知识、大规模人脸识别评测
  8. ASP网上贴吧系统的设计与实现
  9. beego 最新版本_优麒麟20.10版本发布--简而美,华而实
  10. 技术领导者如何提升心力?