u-boot-2011.06在基于s3c2440开发板的移植之DM9000

发布者:心满愿望最新更新时间:2024-06-07 来源: elecfans关键字:u-boot  s3c2440开发板  移植  DM9000 手机看文章 扫描二维码
随时随地手机看文章

u-boot默认的网络芯片是CS8900,但开发板上的网络芯片是DM9000,所以为了使用网络功能,就必须进行移植。好在u-boot有DM9000的驱动程序,我们只需要把关于CS8900的部分换成DM9000的部分即可。

首先在include/configs/zhaocj2440.h文件内注释掉下列语句:

#define CONFIG_CS8900            /* we have a CS8900 on-board */

#define CONFIG_CS8900_BASE 0x19000300

#define CONFIG_CS8900_BUS16       /* the Linux driver does accesses asshorts */

再添加下列语句:

#define CONFIG_DRIVER_DM9000

#define CONFIG_DM9000_NO_SROM

#define CONFIG_DM9000_BASE       0x20000300

#define DM9000_IO      CONFIG_DM9000_BASE

#define DM9000_DATA (CONFIG_DM9000_BASE + 4)

然后定义缺省的环境变量,先添加MAC地址,再修改开发板以及宿主机的IP地址:

#define CONFIG_ETHADDR      00:01:02:03:04:05

#define CONFIG_IPADDR          192.168.1.126

#define CONFIG_SERVERIP      192.168.1.125

环境变量的设置也可以通过u-boot的setenv命令来完成。

最后修改board/sumsung/zhaocj/zhaocj2440.c文件中的board_eth_init函数:

int board_eth_init(bd_t *bis)

{

       intrc = 0;

#ifdef CONFIG_DRIVER_DM9000

       rc= dm8900_initialize(bis);

#endif

       returnrc;

}

完成上述步骤,开发板就能正常的使用网络功能了。

 

开机显示下面内容:

U-Boot 2011.06 (Dec 18 2011 - 20:23:37)

 

DRAM: 64 MiB

Flash: 2 MiB

NAND: 256 MiB

*** Warning - bad CRC, using defaultenvironment

 

In:   serial

Out:  serial

Err:  serial

Net:  dm9000

系统已经识别出DM9000,我们再来ping主机:

ZHAOCJ2440 # ping 192.168.1.125

dm9000 i/o: 0x20000300, id: 0x90000a46

DM9000: running in 16 bit mode

MAC: 00:01:02:03:04:05

could not establish link

Using dm9000 device

host 192.168.1.125 is alive

当看到最后一行“host192.168.1.125 is alive”时,说明网络功能已能正常使用。如果为了去掉“could not establish link”字样,并加快运行速度,可以注释掉drivers/net/dm9000x.c文件中的dm9000_init函数内的下面语句:

       i= 0;

       while(!(dm9000_phy_read(1) & 0x20)) {   /*autonegation complete bit */

              udelay(1000);

              i++;

              if(i == 10000) {

                     printf('couldnot establish linkn');

                     return0;

              }

       }

 

       /*see what we've got */

       lnk= dm9000_phy_read(17) >> 12;

       printf('operatingat ');

       switch(lnk) {

       case1:

              printf('10M half duplex ');

              break;

       case2:

              printf('10M full duplex ');

              break;

       case4:

              printf('100M half duplex ');

              break;

       case8:

              printf('100M full duplex ');

              break;

       default:

              printf('unknown:%d ', lnk);

              break;

       }


关键字:u-boot  s3c2440开发板  移植  DM9000 引用地址:u-boot-2011.06在基于s3c2440开发板的移植之DM9000

上一篇:u-boot-2011.06在基于s3c2440开发板的移植之nandflash启动
下一篇:S3C2440使用RAM来挂载jffs2文件系统

推荐阅读最新更新时间:2024-11-12 10:11

u-boot-2016.09移植(7)-nandflash
一、uboot中增加NANDFLASH 由第二节分析得知,硬件初始化在board_init_r中,我们到这里找到nand的初始化: u-boot-2016.09$ vim common/board_r.c 看这里知道首先我们需要定义宏CONFIG_CMD_NAND,屏蔽CONFIG_CMD_ONENAND,才可以调用nand的初始化函数,在include/conifgs/tq210.h中定义宏: #define CONFIG_CMD_NAND 编译,发现没有定义CONFIG_SYS_MAX_NAND_DEVICE,由于我们的板子上只有一个nandflash,所以在tq210.h中定义宏: #define C
[单片机]
u-boot-2016.09<font color='red'>移植</font>(7)-nandflash
移植Linux-5.4+内核到4412开发板
前言 ITOP-4412开发板被 Linux 官方支持,所以我们在4412上学习新的内核是非常方便的,本文作者是4412精英群8群一位技术高手,接下来,我们一起来欣赏下他的表演。 环境说明 OS版本 Ubuntu 20 LTS 交叉编译环境配置 ~$ sudo apt install gcc-arm-linux-gnueabihf ~$ sudo apt install flex ~$ sudo apt install bison ~$ sudo apt install u-boot-tools 目标开发板 CPU (Exynos4412,四核 Cortex -A9,主频为1.4GHz-1.6GHz) RAM (1GB 双通道
[单片机]
<font color='red'>移植</font>Linux-5.4+内核到4412<font color='red'>开发板</font>
mini2440uboot移植-基本操作指令
继续uboot移植的基础知识学习 1.首先学习下nandfalsh基本操作指令 nand info(显示可以使用的nand flash) nand device (显示或设定当前使用的nand flash) nand read addr off size (nand flash读取命令,从nand的off偏移地址处读取size字节的数据到SDRAM的addr地址) nand write addr off size (nand flash烧写命令,将SDRAM的addr地址处的size字节的数据烧写到nand flash的off偏移地址) nand write ] addr off size(烧写yaffs映
[单片机]
S3C6410移植日记系列
现在发布的是si版本,是以单片机模式运行的,S3C6410这样强劲的cpu,运行si版本,就作为高速单片机用了,所有地址都是按照物理地址一一对应映射。cpu的状态也没有区分内核态和用户态。 1、中断引擎最初的部分代码在IRQ态(还没决定是否使用FIQ)。 2、中断引擎的大部分以及用户ISR运行在SVC态。 3、所有其他代码运行在SYS态。 移植碰到的第一个问题就是烧录代码到flash的问题,由于廉价的jtag烧录器不支持arm11,我们不能要求用户必须拥有昂贵的仿真烧录工具才能够在idea6410上使用djyos,这样不利于用户使用。 我的第一个目标,就是弄清楚怎么下载程序的问题,也就是把一个最简单的闪灯程序运行起来,
[单片机]
将ASIC IP核移植到FPGA上——更新概念并推动改变以完成充满挑战的任务!
数字芯片设计验证经验分享: 将ASIC IP核移植到FPGA上——更新概念并推动改变以完成充满挑战的任务! 本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用预先定制功能即IP核的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素, 用八个重要主题详细分享了利用ASIC所用IP来在FPGA上开发原型验证系统设计时需要考量的因素 。 在上篇文章中,我们介绍了将ASIC IP移植到FPGA原型平台上的必要性,并对原型设计中各种考量因素进行了总体概述,分析开发A
[嵌入式]
将ASIC IP核<font color='red'>移植</font>到FPGA上——更新概念并推动改变以完成充满挑战的任务!
OK6410A 开发板 (三) 12 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 boot 详细解析1
url : git@github.com:lisider/u-boot.git branch : ok6410a commit id : e63a4077ad3aea53107495b0b68b95e720fe6033 config : ok6410a_mini_defconfig // 涉及的 .S .s .c 文件 有 223个 reset arch/arm/cpu/arm1176/start.S 39 lowlevel_init(108) board/samsung/ok6410a/lowlevel_init.S 72 _main(110) arch/arm/lib/crt0.S 91 board
[单片机]
基于s3c2410开发板的2.6.26.5内核移植
这是本人的一个课程总结,其中涉及几个驱动文件在最小内核编译时是不需要的。 kernel:2.6.26.5 gcc:arm-linux-gcc (gcc 3.4.1) cpu:s3c2410 编译设置 使用arm-linux-交叉编译工具链 修改根目录下Makefile ARCH ?= arm CROSS_COMPILE ?=arm-linux- 内核移植 nand分区 修改arch/arm/plat-s3c24xx/common-smdk.c,找到相关代码做如下修改 static struct mtd_partition smdk_default_nand_part = { /* = { .name = Boot
[单片机]
UCGUI在STM32平台移植经验(无操作系统)
ucgui 移植的前提是已经具备了LCD驱动函数,已经能够实现点亮LCD屏幕,并实现画点以及获取指定点颜色值的功能。一般的显示屏供应商会提供对应的驱动函数。主要有初始化函数void LCD_Init(),屏幕画点函数 Void LCD_DrawPoint(u16 x,u16 y,u16 color),以及获取指定点颜色值的U16 LCD_ReadPoint(u16 x,u16 y)函数。移植的关键在于把这三个函数与ucgui提供的接口函数匹配。 打开GUILCDDriver中的LCDDummy.c文件,找到int LCD_L0_Init(void)初始化函数,LCD_L0_SetPixelIndex(int x, int y,
[单片机]
UCGUI在STM32平台<font color='red'>移植</font>经验(无操作系统)
小广播
设计资源 培训 开发板 精华推荐

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

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

更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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