x210ii DM9000驱动调试成功-基于x210ii/s5pv210开发板
//----------------------------------------------------------------------------------------------------------------------------
// 作者: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开发板相关推荐
- 基于易灵思开发板RiscV的调试流程
基于易灵思开发板RiscV的调试流程 一.相关环境准备 1.软件Install 2.硬件Device 二.硬件环境搭建 1.开发板连接 2.下载代码到开发板 三.软件环境搭建 1.启动Eclipse软 ...
- 基于STM32战舰开发板的USMART调试组件的使用
基于STM32战舰开发板的USMART调试组件的使用 USMART调试组件是什么? USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具.具体工作过程是通过串 ...
- 三星官方smdkv210 uboot移植到我的s5pv210开发板
北京 2020-7-26 19:44 周日 昨天外面闷热 今日凉快.空调一开啥事没有!O(∩_∩)O 用了差不多两个周末蹲家里移植的.进度比较慢,算是把uboot相关的一些东西基本了解了. uboot ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- 基于MSP430G2553官方开发板的音乐播放器
基于MSP430G2553官方开发板的音乐播放器 实现目标 硬件资源 芯片资源使用情况 外接硬件 程序实现 开发环境配置 各部分硬件驱动 主循环功能实现 实现目标 实现以蜂鸣器为播放设备,能够对简谱乐 ...
- 基于Arduino Uno开发板的红外遥控开发
基于Arduino Uno开发板的红外遥控开发 1 准备 1.1 硬件与软件 1.2 走线 2 代码 2.1 ReceiveDump 2.2 SendRawDemo 1 准备 1.1 硬件与软件 单片 ...
- 基于ShineBlink物联网开发板和机智云平台开发的“针对短期内宠物无人照顾的智能宠物屋”系统
正式介绍作品前先说明一下,我是湖南文理学院计算机与电气工程学院的一名大三学生,我叫陈海涛.作品全部内容均为个人创意.个人设计并手工制作,后期会考虑写论文投期刊,So!!严禁抄袭!抄袭必究! 该作品是用 ...
- 基于stm32物联网开发板(1)
基于stm32物联网开发板(1) 本开发板采用了STM32F103RET6作为核心CPU,72MHZ工作频率,512KB flash,64KB Sram.本开发平台外设模块有ESP8266 WIF ...
- 基于stm32物联网开发板(2)--LCD屏幕
基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...
最新文章
- golang编译错误 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 解决方法
- 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )
- 了解C++类的大小和类变量的字节对齐
- Spring cloud集成Rabbitmq
- 微信公众账号开发文档
- 如何在Marketing Cloud Launchpad里创建新的tile
- HTML5 本地存储 Web Storage
- 盘点 | 2017 年关于 Python 的 12 件大事
- python rpc调用_从0到1:全面理解 RPC 远程调用
- 微信小程序横向(scroll x)滚动 scroll view
- myeclipse下使用Junit4进行单元测试
- perl的bareword
- 好教程推荐系列:《计算机视觉--算法与应用》和《机器视觉算法与应用》等等
- IP防护等级标准及规定
- #Android Studio# 模拟器开发者模式
- ai面试的优缺点_淘汰你的不一定是HR,有可能是AI面试官
- 手把手教你打造一个VIM-IDE
- 深圳市补贴政策在线查询平台,2021年最新深圳企业补贴项目
- 计算机网络笔试面试常考
- deepin启动黑屏
热门文章
- [海豹海边爆]文远知行杯第16届E题
- JAVA多线程设计模式篇 7、Read-Write Lock 模式——霸气侧漏的写,唯唯诺诺的读
- 考研路上的那些一战二战三战成功与失败的故事系列之十一
- Sqlite清空表数据
- axture动画原型制作_冰雪奇缘:小彩蛋探秘,雪宝原来是戏精,艾莎老爸原型超威武...
- [数分笔记]Dedekind切割定理的证明
- 数字图像处理(入门篇)一 图像的数字化与表示
- 【Matlab三维视图】画出如下图所示类似漏斗的图形(下孔半径为0.1,上口半径为1)。提示:采用cylinder函数。
- 有哪些入门级蓝牙耳机推荐?2022年平价蓝牙耳机分享
- 怎么像编辑提供wb原图_WB图片处理-教你利用Photoshop做出符合杂志要求的WB图片!...