dm9000

NFS服务器配置

青春壹個敷衍的年華 提交于 2020-01-01 01:58:58
一、移植环境: 1、 Ubuntu 10.10发行版 2、 u-boot.bin 3、 目标机:FS_S5PC100平台 4、 交叉编译器 arm-cortex_a8-linux-gnueabi-gcc --------------------------------------------------------------------- 二、移植步骤 1、平台代码修改 $ vim arch/arm/mach-s5pc100/mach-smdkc100.c 添加需要的头文件 #if defined(CONFIG_DM9000) #include <linux/dm9000.h> #include <linux/irq.h> #endif 平台设备的添加 /** DM9000 Support **/ #if defined(CONFIG_DM9000) static struct resource dm9000_resources[] = { [0] = { .start = 0x88000000, .end = 0x88000000 + 0x3, .flags = IORESOURCE_MEM, }, [1] = { .start = 0x88000000 + 0x4, .end = 0x88000000 + 0x4 + 0x3, .flags = IORESOURCE_MEM,

zynq基础-->LINUX 设备树

喜夏-厌秋 提交于 2019-12-24 03:53:37
1.概念 linux设备树是用于描述硬件及部分启动指令的文件,由bootloader传递给内核(U-boot需要在config文件中加入" #define CONFIG_OF_LIBFDT "), 内核分析此文件而对硬件使用不同的参数。 比如两块开发板仅仅是内存容量不一样,那么就只需要修改设备树中对内存容量的描述即可, 而不需要重新编译内核。 与设备树相关的文件有如下几种: DTS(device tree source) .dts文件,就是ASCII字符串形式的文本文件,直接由开发人员修改。 对于ARM架构而言,这些文件位于:arch/arm/boot/dts 目录下。 DTSI(device tree source include) .dtsi文件,用于被.dts文件所包含。并且.dtsi文件也可以包含.dtsi文件。与c/c++ 包含头文件一个道理。 此文件包含了很多设备下所共有的许多配置。 在.dts文件下,使用" #include "file.dtsi" " 或" /include/ "file.dtsi" "来包含。 DTB(device tree blob) 通过工具提前将DTS文件编译为.dtb二进制文件,bootloader传递此文件给内核,这样内核的解析速度才快。 DTC(device tree compiler) 将.dts文件编译为.dtb的工具

Linux DM9000网卡驱动程序完全分析

我是研究僧i 提交于 2019-12-23 09:27:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 天猫爆款 联想 ibm ThinkPad E320 129862C 代替55C 笔记本 包邮 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。 本文分成以下几个部分: 一、Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系。 二、两个重要的结构体介绍:sk_buff和net_device 三、具体代码分析 一、Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系 Mini2440开发板上DM9000与S3C2440的连接关系如下: 其中片选信号AEN使用了nGCS4,所以网卡的内存区域在BANK4,也就是从地址0x20000000开始。DM9000的TXD[2:0]作 为strap pin在电路图中是空接的,所以IO base是300H。中断使用了EINT7。这些内容在Mach文件中有如下体现: [c-sharp] view plain copy #define S3C2410

S3C6410和DM9000驱动

本秂侑毒 提交于 2019-12-23 09:21:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 添加DM9000驱动 Linux 内核下的 drivers/net/dm9000.c 实现了与体系结构无关的 DM9000 网卡驱动,只需要在 BSP 的板文件(arch/arm/mach-s3c6410/smdk-6410.c)中定义相关的 platform 设备和数据: 1、 添加引脚宏定义 在arch/arm/mach-s3c6400/include/mach/map.h文件中添加宏定义 #define S3C64XX_PA_DM9000 (0x18000000) 2、 添加platform数据 在arch/arm/mach-s3c6410/smdk-6410.c文件中 2.1、添加头文件#include <linux/dm9000.h> 2.2、定义platform 设备和数据 static struct resource s3c_dm9000_resources[] = { [0] = { .start = S3C64XX_PA_DM9000, .end = S3C64XX_PA_DM9000 + 0x3, .flags = IORESOURCE_MEM, }, [1] = { .start = S3C64XX_PA_DM9000 + 0x4, .end = S3C64XX_PA_DM9000 +

mini2440基于uboot的TFTP下载教程

这一生的挚爱 提交于 2019-12-05 09:45:52
由于mini2440在WIN7上下载,USB驱动无法兼容,总是出现蓝屏重启的现象,导致不得不想其他方式来下载,首先就考虑了使用U-Boot来下载,因为它支持多种下载方式: 1. 使用串口下载,它支持kermit/xmodem/ymodem等模式,但是下载速度比较慢。 2. 使用U盘/SD卡加载程序,需要先将程序拷贝到U盘/SD卡中,然后再通过相应的命令读取到内存中。 3. 使用TFTP/NFS网络服务加载程序,配置好终端和服务器,使用起来比较方便,而且速度很快。 在这里我讲一下TFTP方式的配置过程,以及使用方式。首先需要将U-boot下载到Nand Flash中,但是由于友善之臂提供的USB驱动在WIN7及其不稳定,所以我费了九牛二虎之力才将其使用DNW下载进去。使用的是由 Tekkaman Ninja 移植的U-boot,可以通过git来下载源代码,下载方式是:git clone https://github.com/tekkamanninja/u-boot-2010.03-tekkaman.git 。关于GIT的用法,参考 http://www.arm9home.net/read.php?tid-5266.html 。下载完成之后需要重新编译,编译步骤如下: $cd u-boot-2010.03-tekkaman $export PATH=$PATH:/opt

Linux设备树语法详解

匿名 (未验证) 提交于 2019-12-02 21:59:42
Linux内核从3.x开始引入设备树的概念,用于实现 驱动代码与设备信息相分离 。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARM Linux内,一个 .dts(device tree source)文件 对应一个ARM的machine,一般放置在内核的 "arch/arm/boot/dts/" 目录内,比如exynos4412参考板的板级设备树文件就是 "arch/arm/boot/dts/exynos4412-origen.dts" 。这个文件可以通过 $make dtbs 命令 编译成二进制的 .dtb文件 供内核驱动使用。 基于同样的软件分层设计的思想,由于一个SoC可能对应多个machine,如果每个machine的设备树都写成一个完全独立的 .dts文件 ,那么势必相当一些 .dts 文件有重复的部分,为了解决这个问题,Linux设备树目录把一个SoC公用的部分或者多个machine共同的部分提炼为相应的 .dtsi文件 。这样每个 .dts 就只有自己差异的部分,公有的部分只需要 "include"相应的.dtsi文件

FL2440移植Linux2.6.33.7内核

点点圈 提交于 2019-11-26 14:59:36
kernel version:2.6.33.7 /linux-2.6.33.7 OS:CentOS 6.4 cross-compilation chain:arm-linux-4.3.2 /usr/local/arm/4.3.2/bin 第一步:修改配置 (1)选择合适的内核代码,作为硬件参考目标平台 arch/arm/mach-s3c2440 内核版本支持s3c2440,所以不需要作修改。 (2)修改顶层Makefile 设置体系架构:line193:ARCH?=$(SUBARCH)改为ARCH=arm 设置编译工具:line194:CROSS_COMPILE?=改为CROSS_COMPILE=arm-linux- (3)修改输入时钟 修改arch/arm/mach-s3c2440/mach-smdk2440.c中line163:s3c24xx_init_clocks(12000000) 第二步:给内核打支持yaffs2文件系统的补丁 (1)下载:git clone git://www.aleph1.co.uk/yaffs2 (2)解压到/root,执行 ./patch-ker.sh c m /linux-2.6.33.7 第三步:配置内核 (1)选择参考配置文件 选择arch/arm/configs/s3c2440_defconfig作为配置参考。复制s3c2440