//----------------------------------------------------------------------------------------------------------------------------

// 作者:armeasy

// 版权:www.9tripod.com

// 平台:九鼎创展x210ii/s5pv210开发板

// 发布日期:2012-04-20

// 最后修改:2012-04-20

// 论坛:http://bbs.9tripod.com

//-----------------------------------------------------------------------------------------------------------------------------

一、硬件接口[s5pv210+dm9000cep]

1、采用16bit模式;

2、INT接到S5PV210的IRQ_LAV/EINT10,INT脚为低时为有效中断信号,中断线为EINT10;

3、CS接到S5PV210的CSn1,CMD连接到V210的地址总线ADDR[2],故INDEX和DATA[15:0]的端口地址分别为0x88000000和0x88000004。

二、软件修改:
1、android_gingerbread_v10/android/kernel/arch/arm/mach-s5pv210/include/mach/map.h文件
//#define S5PV210_PA_DM9000       (0xA8000000)
//#define S5P_PA_DM9000           S5PV210_PA_DM9000
//lqm changed.
#define S5PV210_PA_DM9000 (0x88000000)
#define S5P_PA_DM9000 S5PV210_PA_DM9000 + 0x300

2、android_gingerbread_v10/android/kernel/arch/arm/plat-s5p/devs.c文件
/* DM9000 registrations */
#ifdef CONFIG_DM9000
static struct resource s5p_dm9000_resources[] = {
[0] = {
.start = S5P_PA_DM9000,
.end   = S5P_PA_DM9000 + 3, //为什么要加3?
.flags = IORESOURCE_MEM,
},
[1] = {
#if defined(CONFIG_DM9000_16BIT)
.start = S5P_PA_DM9000 + 4, //为什么要加4?
.end   = S5P_PA_DM9000 + 7, //为什么要加7?
.flags = IORESOURCE_MEM,
#else
.start = S5P_PA_DM9000 + 1,
.end   = S5P_PA_DM9000 + 1,
.flags = IORESOURCE_MEM,
#endif
},
[2] = {
.start = IRQ_EINT10,
.end   = IRQ_EINT10,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,//注意,这时为高电平产生中断,具体因硬件接法而定
}
};

static struct dm9000_plat_data s5p_dm9000_platdata = {
#if defined(CONFIG_DM9000_16BIT)
.flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
#else
.flags = DM9000_PLATF_8BITONLY | DM9000_PLATF_NO_EEPROM,
#endif
.dev_addr = {0x00,0x09,0xc0,0xff,0xec,0x48},
};

struct platform_device s5p_device_dm9000 = {
.name = "dm9000",
.id =  0,
.num_resources = ARRAY_SIZE(s5p_dm9000_resources),
.resource = s5p_dm9000_resources,
.dev = {
.platform_data = &s5p_dm9000_platdata,
}
};

3、android_gingerbread_v10/android/kernel/arch/arm/mach-s5pv210/mach-x210.c
#ifdef CONFIG_DM9000
static void __init smdkc110_dm9000_set(void)
{
unsigned int tmp;

/* initial dm9000 interrupt */
// lqm added.
int ret;
/* Input mode */
s3c_gpio_cfgpin(S5PV210_GPH1(2), S3C_GPIO_INPUT);
s3c_gpio_setpull(S5PV210_GPH1(2), S3C_GPIO_PULL_NONE);

ret = gpio_request(S5PV210_GPH1(2), "GPH1");
if(ret)
printk("mach-x210: request gpio GPH1(2) fail");
else
{
s3c_gpio_cfgpin(S5PV210_GPH1(2), 0xf);
s3c_gpio_setpull(S5PV210_GPH1(2), S3C_GPIO_PULL_NONE);
}

tmp = ((0<<28)|(0<<24)|(5<<16)|(0<<12)|(0<<8)|(0<<4)|(0<<0));
//CS1
__raw_writel(tmp, S5P_SROM_BC1);

tmp = __raw_readl(S5P_SROM_BW);
//CS1
tmp &= ~(0xf << 4);
tmp |= (1<<7) | (1<<6) | (1<<5) | (1<<4); // dm9000 16bit
__raw_writel(tmp, S5P_SROM_BW);

tmp = __raw_readl(S5PV210_MP01CON);
tmp &= ~(0xf << 4);
tmp |= (2 << 4);

__raw_writel(tmp, S5PV210_MP01CON);
}
#endif

4、make menuconfig选上DM9000和16bit的模式:
-*-   Generic Media Independent Interface device support                                                              │ │  
  │ │                                                < >   ASIX AX88796 NE2000 clone support                                                                               │ │  
  │ │                                                < >   SMC 91C9x/91C1xxx support                                                                                       │ │  
  │ │                                                <*>   DM9000 support                                                                                                  │ │  
  │ │                                                [*]     DM9000 16-bit                                                                                                 │ │  
  │ │                                                (4)     DM9000 maximum debug level                                                                                    │ │  
  │ │                                                [ ]     Force simple NSR based PHY polling

5、确保dm9000.c驱动能正常工作:
android_gingerbread_v10/android/kernel/drivers/net/dm9000.c
如不能确认,请进我们论坛下载最新驱动,支持DM9000CEP。
下载地址:
http://xboot.org/forum.php?mod=viewthread&tid=3588&extra=

再./mk -k生成映像文件zImage-android

6、更新内核后,插好网线,输入如下指令:
ifconfig eth0 192.168.1.5 up
注意,IP地址一定要设置在自己的局域网内。
这时应该就能PING通路由了。
/ # ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.494 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.236 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.242 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.217 ms
^C
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.217/0.297/0.494/0.114 ms
/ # 
但是这时还无法PING外网,输入如下指令:
busybox ip route add default via 192.168.1.1
setprop net.dns1 192.168.1.1
PING新浪网址:
/ # ping www.sina.com
PING gacrux.sina.com.cn (58.63.236.236) 56(84) bytes of data.
64 bytes from 58.63.236.236: icmp_seq=1 ttl=56 time=22.1 ms
64 bytes from 58.63.236.236: icmp_seq=2 ttl=56 time=21.2 ms
64 bytes from 58.63.236.236: icmp_seq=3 ttl=56 time=21.7 ms
^C
--- gacrux.sina.com.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 21.213/21.698/22.173/0.410 ms
/ # 
可见,已经能够正常PING通。点击浏览器,会弹出没有连接网络的提示,不用管它,应该能浏览网页了。

7、以上虽然能正常上网,但是每次都需手动设置IP和网关,比较麻烦,修改
android_gingerbread_v10/android/device/samsung/smdkv210目录下的init.smdkv210.rc
文件,修改dns为自己通用的DNS,我这里为192.168.1.1
on boot
    mount debugfs /sys/kernel/debug /sys/kernel/debug

setprop ro.build.product smdkv210
    setprop ro.product.device smdkv210
    setprop ro.radio.noril no

setprop net.dns1 192.168.1.1
    setprop net.dns2 192.168.1.1
修改android_gingerbread_v10/android/device/samsung/init.rc文件,在最末添加如下内容:
service eth_ifconfig /system/bin/ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up
    oneshot

service eth_route /system/bin/route add default gw 192.168.1.1 dev eth0 
    oneshot
再./mk -s,生成新的x210-uramdisk.img文件,使用fastboot更新,重启开发板,就能上网了。

注:init.rc和init.smdkv210.rc文件都保存在x210-uramdisk.img中,更新内核,文件系统都没有效果。
平时调试时,如果需要修改这些文件,没必要重新编译整个文件系统,可以直接把x210-uramdisk.img文件解压后
再修改,完了之后再打包即可。具体解压和打包的方法见x210ii源码包的脚本文件ramdisk.sh

x210ii DM9000驱动调试成功-基于x210ii/s5pv210开发板相关推荐

  1. 基于易灵思开发板RiscV的调试流程

    基于易灵思开发板RiscV的调试流程 一.相关环境准备 1.软件Install 2.硬件Device 二.硬件环境搭建 1.开发板连接 2.下载代码到开发板 三.软件环境搭建 1.启动Eclipse软 ...

  2. 基于STM32战舰开发板的USMART调试组件的使用

    基于STM32战舰开发板的USMART调试组件的使用 USMART调试组件是什么? USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具.具体工作过程是通过串 ...

  3. 三星官方smdkv210 uboot移植到我的s5pv210开发板

    北京 2020-7-26 19:44 周日 昨天外面闷热 今日凉快.空调一开啥事没有!O(∩_∩)O 用了差不多两个周末蹲家里移植的.进度比较慢,算是把uboot相关的一些东西基本了解了. uboot ...

  4. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  5. 基于MSP430G2553官方开发板的音乐播放器

    基于MSP430G2553官方开发板的音乐播放器 实现目标 硬件资源 芯片资源使用情况 外接硬件 程序实现 开发环境配置 各部分硬件驱动 主循环功能实现 实现目标 实现以蜂鸣器为播放设备,能够对简谱乐 ...

  6. 基于Arduino Uno开发板的红外遥控开发

    基于Arduino Uno开发板的红外遥控开发 1 准备 1.1 硬件与软件 1.2 走线 2 代码 2.1 ReceiveDump 2.2 SendRawDemo 1 准备 1.1 硬件与软件 单片 ...

  7. 基于ShineBlink物联网开发板和机智云平台开发的“针对短期内宠物无人照顾的智能宠物屋”系统

    正式介绍作品前先说明一下,我是湖南文理学院计算机与电气工程学院的一名大三学生,我叫陈海涛.作品全部内容均为个人创意.个人设计并手工制作,后期会考虑写论文投期刊,So!!严禁抄袭!抄袭必究! 该作品是用 ...

  8. 基于stm32物联网开发板(1)

    基于stm32物联网开发板(1)   本开发板采用了STM32F103RET6作为核心CPU,72MHZ工作频率,512KB flash,64KB Sram.本开发平台外设模块有ESP8266 WIF ...

  9. 基于stm32物联网开发板(2)--LCD屏幕

    基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...

最新文章

  1. golang编译错误 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 解决方法
  2. 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )
  3. 了解C++类的大小和类变量的字节对齐
  4. Spring cloud集成Rabbitmq
  5. 微信公众账号开发文档
  6. 如何在Marketing Cloud Launchpad里创建新的tile
  7. HTML5 本地存储 Web Storage
  8. 盘点 | 2017 年关于 Python 的 12 件大事
  9. python rpc调用_从0到1:全面理解 RPC 远程调用
  10. 微信小程序横向(scroll x)滚动 scroll view
  11. myeclipse下使用Junit4进行单元测试
  12. perl的bareword
  13. 好教程推荐系列:《计算机视觉--算法与应用》和《机器视觉算法与应用》等等
  14. IP防护等级标准及规定
  15. #Android Studio# 模拟器开发者模式
  16. ai面试的优缺点_淘汰你的不一定是HR,有可能是AI面试官
  17. 手把手教你打造一个VIM-IDE
  18. 深圳市补贴政策在线查询平台,2021年最新深圳企业补贴项目
  19. 计算机网络笔试面试常考
  20. deepin启动黑屏

热门文章

  1. [海豹海边爆]文远知行杯第16届E题
  2. JAVA多线程设计模式篇 7、Read-Write Lock 模式——霸气侧漏的写,唯唯诺诺的读
  3. 考研路上的那些一战二战三战成功与失败的故事系列之十一
  4. Sqlite清空表数据
  5. axture动画原型制作_冰雪奇缘:小彩蛋探秘,雪宝原来是戏精,艾莎老爸原型超威武...
  6. [数分笔记]Dedekind切割定理的证明
  7. 数字图像处理(入门篇)一 图像的数字化与表示
  8. 【Matlab三维视图】画出如下图所示类似漏斗的图形(下孔半径为0.1,上口半径为1)。提示:采用cylinder函数。
  9. 有哪些入门级蓝牙耳机推荐?2022年平价蓝牙耳机分享
  10. 怎么像编辑提供wb原图_WB图片处理-教你利用Photoshop做出符合杂志要求的WB图片!...