tiny4412学习(三)之移植linux-4.x驱动(1)支持网卡驱动

发布者:心灵舞动最新更新时间:2022-01-13 来源: eefocus关键字:tiny4412  网卡驱动 手机看文章 扫描二维码
随时随地手机看文章

一、思路

上一节我们通过DNW将内核、文件系统、设备树文件烧入到内存中,并使用bootm启动内核:bootm0x40600000  0x41000000  0x42000000。因为此时内核并没有SD卡驱动,和EMMC驱动,我们只能直接将系统拷贝至内存中然后启动。当时我们进入文件系统后,并无法挂载外面的网络文件系统,对开发带来很多不便,所以这一节,我们移植网卡,让系统启动后可以挂接虚拟机中的网络文件系统,或者直接挂载虚拟机中的网络文件系统。


实验参考摩斯电码的博客:http://www.cnblogs.com/pengdonglin137/p/5153794.html

 

tiny4412网卡跟DM9000差别很大,DM9000是内存接口,移植容易, tiny4412使用的网卡芯片是DM9621,是usb接口的,而且并没有直接连接到exynos4412上,中间通过一个hub芯片usb4640,然后usb4640通过HSIC接口(XhsicSTROBE0和XhsicDATA0)连接到exynos4412上。


DM9621的驱动在Linux4.4中在driver/net/usb/dm9601.c中实现了,我们需要在内核配置中将DM9601的驱动编译进内核。


make menuconfig

 

  1. Device Drivers  --->  

  2.     Network device support  --->  

  3.         USB Network Adapters  --->  

  4.              Davicom DM96xx based USB 10/100ethernet devices  

 

此外,最关键的是要在设备树中将用到的片内外设使能:如hsi、ehci、ohci、otg等等。执行完这些操作后,板子上的三个usb口(USBH1/USBH2/USBH3)都可以识别了,即可以插入U盘等设备了。


二、内核修改的地方主要如下:

(1)arch/arm/boot/dts/exynos4412-tiny4412.dts

(2)drivers/net/usb/dm9601.c

(3)drivers/usb/misc/Kconfig

(4)drivers/usb/misc/Makefile

(5)drivers/usb/misc/usb4640.c(新建)

(6)include/dt-bindings/usb4640/usb4640.h(新建)

(7)include/Linux/platform_data/usb4640.h(新建)


三、测试

对内核做如上修改后,编译并下载

1、编译

 

  1. make mrproper  

  2. cp tiny4412_defconfig .config  

  3. make uImage  LOADADDR=0x40008000  -j2  

  4. make  dtbs  

 

2、下载

下载内核、文件系统、设备树文件

#u-boot:dnw  0x40600000

dnw  arch/arm/boot/uImage.

#u-boot:dnw  0x41000000 

dnw  ramdisk.img

#u-boot:dnw  0x42000000

dnw   arch/arm/boot/dts/exynos4412-tiny4412.dtb

启动内核使用bootm启动内核:

bootm  0x40600000  0x41000000  0x42000000


3、测试

ifconfig eth0 192.168.1.125

ping 192.168.1.123

mount -t nfs -o nolock192.168.1.123:/work/nfs/filesystem  /mnt

4、从网络文件系统启动

 

#u-boot:

setenv bootargs  'root=/dev/nfs  rw  nfsroot=192.168.1.123:/work/nfs/filesystem ethmac=1C:6F:65:34:51:7E  ip=192.168.1.125:192.168.1.123:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200  init=/linuxrc'

#u-boot:save

#u-boot:dnw 0x40600000

dnw arch/arm/boot/uImage

#u-boot:dnw 0x42000000

dnw  arch/arm/boot/dts/exynos4412-tiny4412.dtb

bootm 0x40600000 - 0x42000000

 

四、源码下载

Git clone https://github.com/fengyuwuzu0519/linux4_forTiny4412.git

git clone https://github.com/fengyuwuzu0519/rootfs_forTiny4412

文件系统git下了少东西,则创建如下:

(mkdir dev  proc  sys  tmp  var    mknod  dev/console  c  5  1)

git clone https://github.com/fengyuwuzu0519/u-boot_forTiny4412

 

make distclean

make tiny4412_config

make

内核修改的代码下载链接:

http://download.csdn.net/detail/fengyuwuzu0519/9887164


关键字:tiny4412  网卡驱动 引用地址:tiny4412学习(三)之移植linux-4.x驱动(1)支持网卡驱动

上一篇:分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc
下一篇:tiny4412学习(四)之移植linux-设备树(1)设备树基础知识及中断

推荐阅读最新更新时间:2024-11-17 16:35

基于51单片机RTL8019AS的网卡驱动程序
   SNMP网管板使用了RTL8019AS 10M ISA网卡芯片接入以太网。选它的好处是:NE2000兼容,软件移植性好;接口简单不用转换芯片如PCI-ISA桥;价格便宜2.1$/片(我的购入价为22元RMB/片);带宽充裕(针对51);较长一段时间内不会停产。8019有3种配置模式:跳线方式、即插即用P&P方式、串行Flash配置方式。为了节省成本,我去掉了9346而使用X5045作为闪盘存储MAC地址和其他可配置信息。P&P模式用在PC机中,这里用不上。只剩下跳线配置模式可用,它的电路设计参考REALTEK提供的DEMO板图纸。一天时间就可以完成,相对来说硬件设计比较简单。   与这部分硬件相对应的软件是网卡驱动。所
[单片机]
基于51单片机RTL8019AS的<font color='red'>网卡</font><font color='red'>驱动</font>程序
第六章、Tiny4412 U-BOOT移植六 Nand Flash源码分析
一、U-Boot参考源码 NandFlash的初始化代码我们放在board/samsung/tiny4412/lowlevel_init.S ,这一段代码是三星SMDK4212中没有提供的,所以我们需要自己写。我们在里面增加一个函数叫nand_asm_init。当然,由于 Nand Flash 的操作是有一定的规律的,所以,我们可以去别的地方找一段写好的NandFlash源码,然后根据自己的电路原理图进行移植即可。 二、代码分析 1、初始化Nand Flash 打开原理图,参看原理图配置各个功能引脚----状态引脚R/nB,读使能引用脚nRE,片选信号nCE,命令使能引脚CLE,地址使能引脚ALE,写使能引脚nWE。
[单片机]
第六章、<font color='red'>Tiny4412</font> U-BOOT<font color='red'>移植</font>六 Nand Flash源码分析
基于tiny4412的Linux内核移植(支持device tree)(二)
平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) 步骤 继续上文。 由于Linux-4.4.0对tiny4412已经有了很好的支持,所以留给我
[单片机]
STM32F7网卡驱动和LwIP协议栈
LAN8720 PHY物理层: 规定网络接插件的机械尺寸、形状,引脚的数量和分布、传输线的材料种类等。 规定传输电路的电子电气特性,例如导线的阻抗导纳。 定义传输信号的电压、电流幅值和频率,时序定义。 进行信号的调制和解调,例如曼彻斯特编码和解码。 STM32F7 数据链路层: 包含逻辑链路控制LLC和媒介访问控制MAC LLC是为了屏蔽不同底层差异的,MAC主要实现将上层数据转化为以太网帧,将以太网帧转化成上层数据,它还负责帧边界错误检测。 STM32F7 FIFO缓冲区: MAC收到的数据数据按照预定规则存储在FIFO,然后由DMA传输到内存缓冲区 STM32F7 网卡驱动程序: 将lwip发送的以太网帧数据传输至缓
[单片机]
Tiny4412之按键驱动
  一:按键驱动   按键驱动跟之前的LED,蜂鸣器的方法类似;通过底板,核心板我们可以看到按键的电路图:    通过电路图我们可以看出,当按键按下去为低电平,松开为高电平;所以我们要检测XEINT26的状态,通过芯片手册找到GPX3_2的说明; 有芯片手册可知:GPX3CON为0为检测,GPAC3DAT为1是高电平下面贴出代码:按键KEY1,KEY2,KEY3分别控制输出字符串,KEY4控制退出: #define GPX3CON (*(volatile unsigned long *)0x11000c60) #define GPX3DAT (*(volatile unsigned long *)0x11000c6
[单片机]
<font color='red'>Tiny4412</font>之按键<font color='red'>驱动</font>

推荐帖子

关于光耦点击屏幕遇到的问题
自制一个吃鸡神器,模拟人手点击,用一个NE555方波发生器,可调频率,带动光耦,光耦发射极连接铝箔纸,贴到屏幕,集电极可以用手触摸,也可以用5v电源正极代替人手点击。但是遇到个问题,我用手机充电器头做5v电源(5v1a5v2a),电路正常都可工作,但是用3.7v锂电池升压到5v1a,5v电源正极代替人手点击,屏幕无反应,求助个解决办法。关于光耦点击屏幕遇到的问题猜测是你的锂电池以及升压电路对大地的分布电容比较人体对地分布电容要小。可以试试在Vcc端拖根长线,感应空间电磁干扰。
zg2600 DIY/开源硬件专区
电池使用时间计算
公式BLT=电池额定容量/负载电流*0.70中,,为什么最后要*0.7电池使用时间计算因为电池在放电过程中是有损耗的,比如标1000mAH,实际在用在电路中的好像只有七八百mAH。这个是经验公式,没有标准规范约束电池的充电时间是由电池容量和充电电流决定的 比如,最早的邮电部行业标准YD/T998-1999规定,0.01C为充电结束电流,不管电池容量多大,国标规定的0.01C有助于充电更饱满。国标规定充电时间不超过8h,即使还没有达到0.01C,8小
GuthrieLi 模拟电子
用C#如何封装函数生成dll文件
ARM的程序基本写完了,现在要跟上位机通讯,需要封装一个dll文件,供上位机调用,用网口连接的!没做过,不会写啊,请高手赐教!感激不尽!本人QQ:656691002,会的加我,教教我吧!谢谢了!用C#如何封装函数生成dll文件没用过这个C#,顶一下吧。回复楼主amy_shen的帖子在项目-》属性里面,应用程序-输出类型,选择类库回复楼主amy_shen的帖子原帖由qinshi1208于2012-5-1411:01发表在项目-》属性里面,应
amy_shen 微控制器 MCU
一个关于 NIOS II processor 的问题
while(1) { mask=IORD_ALTERA_AVALON_PIO_DATA(PIO_BUTTON_BASE); switch(mask) { case0x01:led=clBlu;break; case0x02:led=clRed;break; case0x04:led=clGre;break;
cnic 嵌入式系统
现在学习AVR是不上已经过时了?
现在学习AVR是不上已经过时了?现在学习AVR是不上已经过时了?课本上的8051是不是早就过时了?能用到就永远不过时不晚。如果是作为学习的话还不错,如果做产品的话要慎重打好基础后,具体用什么芯片只用看看它的手册即可。在学知识时,有管什么芯片,学会就行,一能百通。技术室没有止境的。什么叫过时。就算过时大致原来还是原来那里出来的。对于掌握嵌入式系统开发而言,所有MCU是相通的,自然谈不上什么“过时”的问题。不过,比纯粹的“嵌入式开发”更重要的是基础电路的设计、理解能力,包括基本模拟和数
stonewxd Microchip MCU
转一篇文章:卷积神经网络CNN完全指南。写的蛮好的。
转自:https://www.toutiao.com/article/71491300338386048341】导论先来说一写题外话...研究生入学后就被导师逼着学习神经网络,一开始非常盲目,先是在网上搜了一大堆的资料,各种什么一文读懂卷积神经纹网络,叫你三分钟搭建属于自己的神经网络框架,五分钟速读神经网络全解,之类的文章层出不穷。看了太多导致的结果是,学了很久都没能真正意义上地入门。而后自己艰辛摸索才慢慢了解了卷积神经网络的真谛。(好官方啊哈哈哈哈哈哈)
freebsder 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved