OK6410开发板上的DM9000网卡可以用啦

作者:小菜 更新时间:2025-03-13 点击数:
简介:OKeU-Boot 1.1.6 (Nov 5 2010 - 09:50:08) for SMDK6410CPU: S3C6410@532MHzFclk = 53

【菜科解读】

OKeU-Boot 1.1.6 (Nov 5 2010 - 09:50:08) for SMDK6410CPU: S3C6410@532MHzFclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)Board: SMDK6410DRAM: 128 MBFlash: 0 kBNAND: 1024 MB*** Warning - bad CRC or NAND, using default environmentIn: serialOut: serialErr: serialHit any key to stop autoboot: 0SMDK6410 # tftp c0008000 /Image_Nanddm9000 i/o: 0x18000000, id: 0x90000a46MAC: 00:40:5c:26:0a:5boperating at 100M full duplex modeTFTP from server 192.168.1.12; our IP address is 192.168.1.20Filename '/Image_Nand'.Load address: 0xc0008000Loading: T T TAbortSMDK6410 # ping 192.168.1.12dm9000 i/o: 0x18000000, id: 0x90000a46MAC: 00:40:5c:26:0a:5boperating at 100M full duplex modehost 192.168.1.12 is aliveSMDK6410 # tftp c0008000 /Image_Nanddm9000 i/o: 0x18000000, id: 0x90000a46MAC: 00:40:5c:26:0a:5boperating at 100M full duplex modeTFTP from server 192.168.1.12; our IP address is 192.168.1.20Filename '/Image_Nand'.Load address: 0xc0008000Loading: ######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################doneBytes transferred = 4040704 (3da800 hex)SMDK6410 #

这篇帖子是写在OK6410开发板的DM9000 10/100M网卡调试通过之后;上面的输出信息是通过网卡下载内核到mobile sdram的log。

板卡是飞凌设计的OK6410,默认带的u-boot居然不支持tftp,ping这些基本的东西。

下载个内核吭哧吭哧几十分钟,当然也可以用USB会快很多,但是作者爱瞎折腾,要把这个烂东西调通,DM9000AE,嗬,不知道这世界上还有没有人用这玩意。

修改smdk6410.h的以下代码:#ifdef CONFIG_DRIVER_SMC911X #undef CONFIG_DRIVER_CS8900 #define CONFIG_DRIVER_SMC911X_BASE 0x18800300#else#define CONFIG_DRIVER_CS8900 0 /* we have a CS8900 on-board */#define CS8900_BASE 0x18800300#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */#endif改为:#define CONFIG_DRIVER_DM9000 1#define CONFIG_DM9000_BASE 0x18000000/*XM0CSN1*/#define DM9000_DATA 0x18000004/*ADDR2*/#define DM9000_IO CONFIG_DM9000_BASE//#define CONFIG_DM9000_DEBUG 1#define CONFIG_DM9000_USE_16BIT 1一般的网卡甚至USB,蓝牙芯片都会外接预留的EEPROM,用来存储地址等配置信息;DM9000也不例外,默认驱动就是使用EEPROM存地址的,飞凌为了省钱,直接悬空,因此MAC地址需要从Nand Flash上面读出来,再写到DM9000寄存器里。

从Linux2.6.28内核中拷贝如下2个函数,后面判断空地址要用:/*** is_zero_ether_addr - Determine if give Ethernet address is all zeros.* @addr: Pointer to a six-byte array containing the Ethernet address** Return true if the address is all zeroes.*/static inline int is_zero_ether_addr(const u8 *addr){return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);}/*** is_multicast_ether_addr - Determine if the Ethernet address is a multicast.* @addr: Pointer to a six-byte array containing the Ethernet address** Return true if the address is a multicast address.* By definition the broadcast address is also a multicast address.*/static inline int is_multicast_ether_addr(const u8 *addr){return (0x01 & addr[0]);}

无数的先贤采用了以下代码来设置MAC地址,外加空判断,算是很排场了:/* Set Node address */#ifdef DM9000AE_ZENGJUN_SHAREif (is_zero_ether_addr(bd->bi_enetaddr) ||is_multicast_ether_addr(bd->bi_enetaddr)) {/* try reading from environment */u8 i;char *s, *e;s = getenv ("ethaddr");for (i = 0; i bi_enetaddr = s ?simple_strtoul (s, &e, 16) : 0;if (s)s = (*e) ? e + 1 : e;}}#elsefor (i = 0; i bi_enetaddr) = read_srom_word(i);#endif另外参考内核代码rx之前一定要读两次MRR,估计是芯片设计缺陷,没什么理由:#ifndef DM9000AE_ZENGJUN_SHAREDM9000_ior(DM9000_MRRH);DM9000_ior(DM9000_MRRL);#endif/* Check packet ready or not */DM9000_ior(DM9000_MRCMDX); /* Dummy read */

最后,注空eth_halt函数,一切OK;设置好网关,服务器,就能下载内核了。

默认的是CS8900,有这个CS8900的好处是,他把XM0CSN1所在的BANK1初始化了,省的我再去配时序,下面是飞凌默认设置时的u-boot输出:OKsU-Boot 1.1.6 (Nov 5 2010 - 10:29:09) for SMDK6410CPU: S3C6410@532MHzFclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)Board: SMDK6410DRAM: 128 MBFlash: 0 kBNAND: 1024 MB*** Warning - bad CRC or NAND, using default environmentIn: serialOut: serialErr: serialHit any key to stop autoboot: 0SMDK6410 # ping 192.168.1.10CS8900 Ethernet chip not found?!ping failed; host 192.168.1.10 is not aliveSMDK6410 # ping 192.168.1.10CS8900 Ethernet chip not found?!ping failed; host 192.168.1.10 is not aliveSMDK6410 # OK6410,开发,板,上,的,DM9000,网卡,可,以用

最佳平板电脑推荐

专业的在线重装系统软件 全新设计 / 全新代码编写 / 全新支持所有机型 全新支持Window 11 安装 简介:在如今的数字时代,平板电脑已经成为人们生活中不可或缺的工具之一。

然而,市面上琳琅满目的平板电脑品牌和型号,让人眼花缭乱。

那么,如何选择一款最佳的平板电脑呢?本文将为大家推荐几款性能出众、实用便捷的平板电脑。

工具原料:系统版本:iOS 14.5品牌型号:iPad Pro 2021软件版本:Adobe Photoshop 22.4.2一、轻薄便携,iPad Pro 20211、iPad Pro 2021是一款轻薄便携的平板电脑,重量仅为500克,厚度不到6毫米。

无论是在旅途中还是在办公室里,都能轻松携带。

同时,其强大的A14芯片和8核心GPU,使得处理速度更快,运行流畅。

2、搭载了最新的iOS 14.5系统,iPad Pro 2021支持多任务处理,可以同时打开多个应用程序,提高工作效率。

此外,其配备了Apple Pencil和Magic Keyboard,使得绘图和办公更加便捷。

二、高性能处理器,Samsung Galaxy Tab S7+1、Samsung Galaxy Tab S7+搭载了强大的骁龙865 Plus处理器,性能强劲。

无论是进行多任务处理还是运行大型应用程序,都能轻松应对。

2、配备了AMOLED显示屏,色彩鲜艳,画面清晰细腻。

同时,支持120Hz刷新率,让观看视频和玩游戏更加流畅。

三、多功能娱乐,Amazon Fire HD 101、Amazon Fire HD 10是一款性价比极高的平板电脑。

搭载了Fire OS 7操作系统,支持Alexa语音助手,可以通过语音控制进行操作。

2、其10.1英寸的全高清显示屏,适合观看电影和阅读。

同时,内置立体声扬声器,音质出色,让娱乐体验更加震撼。

总结:在选择平板电脑时,我们需要考虑轻薄便携性能、高性能处理器以及多功能娱乐等因素。

iPad Pro 2021、Samsung Galaxy Tab S7+和Amazon Fire HD 10都是值得推荐的平板电脑,它们在不同的方面都有出色的表现。

希望本文的推荐能够帮助大家选择到最适合自己的平板电脑。

Word2007 日历模板的简单技巧使用

Office2007提供了各式各样的模板,例如会议模板、简历表格模板等,下面就以常用的word2007日历模板为例,向大家展示一下模板的妙用。

怎样选择日历模板 鼠标左键单击Office徽标,在出现的下拉菜单中选择“新建”命令,在随后出现的“新建文档”提示栏内切换到“MicrosoftOfficeonline”下的“日历”模板类。

在这里可以看到各种各样的模板缩略图,究竟那一款日历模板才适合自己呢?笔者根据日历模板的功能大致做了如下分类。

只有一页日历的模板 比较适合公司职员,可以打印出来贴在墙上,标记一些重要的日子(比如工作完成日),这样可以对本年度的工作安排有个大体掌握,如2008简约日历。

没有双休日的日历模板 也适合办公人员,它没有双休日,扩大了周一到周五的记事空间,比如班主任可以将每周的教学任务事先安排好,方便科学工作;职工也可以将工作进度详细的记录在上面,如2007-2008学院日历。

周历模板 这个模板适合公司老板或白领安排每周行程之用,它以表格形式确定每天的工作日程,表头行显示日期、星期几和这一天在一年中是第几天等情况,表头列显示一天内的具体时间,行与列相交的单元格处填写具体的工作内容,如2008年周历。

添加了农历的日历模板 比较适合经常要查看农历的人员。

它将对应公历的农历情况写在对应位置的下边,并将新改动的假日情况,比如端午节等情况作了明显标明。

带照片的日历模板 如果想要将家庭或单位的纪念照做成日历,可以选择带有照片的日历模板。

定制需要的模板文件 选择好自己需要的日历模板,下载安装到电脑中。

在“我的模板”中选择要修改的模板文件,然后点击“确定”按钮,就可以进行个性化处理了。

实例一:添加LOGO 添加Logo有两种方法:使用页眉页脚或使用文本框,下面分别进行介绍。

当模板上(下)方比较空时,可以选择添加页眉(页脚)的方法。

在页眉处插入要添加的Logo图片,注意图片的文字环绕方式,最好选择能灵活控制的“四周环绕型”,即可把Logo放到合适的地方。

同样的,页眉那根碍眼的横线也影响美观,选中页眉,在“开始”选项卡的“样式”中将页眉设为“正文”,横线就不在了。

下面是笔者做的一个成品效果图。

从页眉(页脚)添加Logo始终有一定局限性,为了使Logo所处的位置更灵活,可以使用文本框。

插入一个简单的文本框,再在文本框中插入要添加的Logo,右击文本框,在右键菜单中选择“设置文本框格式”,在对话框的“颜色与线条”选项卡中设置文本框的“填充”和“线条”为“无颜色”,确定后,发现文本框消失了,只剩下Logo图标。

使用文本框的好处在于可以随意控制Logo的位置,就算模板占据了页眉(页脚)的位置,也可以将Logo拖到适当的地方。

不过拖动的时候要注意必须拖文本框才能让Logo跟着走。

实例二:标明日历的特有日期 很多公司都会给员工发一份电子日历,上面标明了各种计划安排:比如例会、年终总结、出差、会见客户的日期。

如果日程安排比较具体,单用一种格式来标明日期,反而不能清楚地显示出具体的计划。

这时,可以将不同任务的日期用不同的格式来标明,将它们很好地区分开来。

比如将“例会”设成红色加粗、将“会见客户”设置成红底白字加粗、将“出差”设置成斜体加粗。

通过不同的格式,每个月的任务就一目了然。

Word2007,日历,模板,的,简单,技巧,使用,Offi

加入收藏
               

OK6410开发板上的DM9000网卡可以用啦

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录