天嵌 ARM开发社区

 找回密码
 注册
查看: 4516|回复: 11

uboot移植+dm9000

[复制链接]
xinnuogu 发表于 2010-5-9 23:09:38 | 显示全部楼层 |阅读模式
在uboot移植中,遇到
--------------------------------------------------------------------
s3c2440 >> printenv                                                            
bootdelay=3                                                                     
baudrate=115200                                                                 
ethaddr=08:00:3e:26:0a:5b                                                      
ipaddr=10.0.0.110                                                               
serverip=10.0.0.1                                                               
netmask=255.255.255.0                                                           
stdin=serial                                                                    
stdout=serial                                                                  
stderr=serial                                                                  
ethact=dm9000                                                                  
                                                                                
Environment size: 167/131068 bytes                                             
s3c2440 >> ping 10.0.0.1                                                        
dm9000 i/o: 0x20000300, id: 0x90000a46                           
DM9000: running in 16 bit mode                                                  
MAC: 08:00:3e:26:0a:5b                                                         
operating at unknown: 0 mode                                                   
Using dm9000 device                                                            
ping failed; host 10.0.0.1 is not alive                                         
s3c2440 >>
--------------------------------------------------------------------
问题:operating at unknown: 0 mode    ?网络带宽需要设置吗 10 /100M? 在那设置?
U-boot-2009.8 + ubuntu9.10 + 交叉编译4.3.3
期待天嵌的Uboot移植手册
guminghai 发表于 2010-5-10 09:40:27 | 显示全部楼层
好像在make menuconfig 的Ethernet中设置~
亚瑟王 发表于 2010-5-10 16:56:21 | 显示全部楼层
MAC: 08:00:3e:26:0a:5b改成MAC: 80:00:3e:26:0a:5b试一下。
 楼主| xinnuogu 发表于 2010-5-11 21:38:24 | 显示全部楼层
测试过不行,dm9000的带宽是自动检测的,读取结果确总是出错......
--------------------------------------------------------------
        lnk = phy_read(17) >> 12;
        printf("operating at ");
        switch (lnk) {
        case 1:
                printf("10M half duplex ");
                break;
        case 2:
                printf("10M full duplex ");
                break;
        case 4:
                printf("100M half duplex ");
                break;
        case 8:
                printf("100M full duplex ");
                break;
        default:
                printf("unknown: %d ", lnk);
                break;
        }
------------------------------------------------------
亚瑟王 发表于 2010-5-13 18:01:25 | 显示全部楼层
你的dm9000是怎么移植的?我这里做了就能ping通啊。
 楼主| xinnuogu 发表于 2010-5-14 14:43:03 | 显示全部楼层
我的移植具体是参考http://blog.chinaunix.net/u3/101649/showart_2105215.html
//添加u-boot对DM9000X网卡的支持
s3c24400.h -------------------------------------------------------------------------
#define CONFIG_DRIVER_DM9000    1
#define CONFIG_NET_MULTI        1
#define CONFIG_DM9000_NO_SROM   1
#define CONFIG_DM9000_BASE      0x20000300                //网卡片选地址
#define DM9000_IO               CONFIG_DM9000_BASE
#define DM9000_DATA             (CONFIG_DM9000_BASE + 4)   //网卡数据地址
#define CONFIG_DM9000_NO_SROM                1

#define CONFIG_DM9000_USE_16BIT 1
/*注意:
u-boot-2009.08 可以自动检测DM9000网卡的位数,根据开发板原理图可知网卡的数据位为16位,并且网卡位于CPU的BANK4上,所以只需在 board/samsung/my2440/lowlevel_init.S中设置 #define B4_BWSCON (DW16) 即可,不需要此处的 #define CONFIG_DM9000_USE_16BIT 1
*/
//给u-boot加上ping命令,用来测试网络通不通
#define CONFIG_CMD_PING  
s3c2440.c-----------------------------------
#include <net.h>
#include <netdev.h>

#ifdef CONFIG_DRIVER_DM9000
int board_eth_init(bd_t *bis)
{   

    return dm9000_initialize(bis);
}
#endif
----------------------------------------------------------------------------------
 楼主| xinnuogu 发表于 2010-5-14 15:21:16 | 显示全部楼层
请问怎么上传文件,想把修改的文件贴上来 ,好帮我看看错那了?
谢谢 管理员!!!
亚瑟王 发表于 2010-5-14 16:25:00 | 显示全部楼层
上传附件就行了。
 楼主| xinnuogu 发表于 2010-5-15 13:42:14 | 显示全部楼层

RE: uboot移植+dm9000

本帖最后由 xinnuogu 于 2010-5-15 13:45 编辑

现在代码中的ip修改成出厂的ip:192.168.1.6 / 192.168.1.8
建立文件为:/board/samsung/s3c2440/
网线测试过没问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
renliyue 发表于 2010-5-16 14:09:54 | 显示全部楼层
学习学习一下
 楼主| xinnuogu 发表于 2010-5-16 14:47:53 | 显示全部楼层
在static int dm9000_init(struct eth_device *dev, bd_t *bd)中添加
------------------------------
    u16 phy_reg4 = 0x01e1, phy_reg0 = 0x1000;
    phy_write(4, phy_reg4);         /* Set PHY media mode */
          phy_write(0, phy_reg0);         /*  Tmp */

        DM9000_iow(DM9000_GPCR, 0x01);        /* Let GPIO0 output */
        DM9000_iow(DM9000_GPR, 0x00);        /* Enable PHY */
-------------------------------------
这段代码在uboot1.1.6中的,2009.08版没这段,添加之后显示
--------------------
s3c2440 # ping 192.168.1.8                                                      
dm9000 i/o: 0x20000300, id: 0x90000a46                                          
DM9000: running in 16 bit mode                                                  
MAC: 80:00:3e:26:0a:5b                                                         
operating at 10M half duplex mode                                               
DM9000_NSR refer datasheet 6.2 : 64                                             
Using dm9000 device                                                            
host 192.168.1.8 is alive
亚瑟王 发表于 2010-5-18 11:41:28 | 显示全部楼层
我移植2009.08的时候,dm9000.c基本上没有改动的啊。然后直接就能用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-6 08:30 , Processed in 1.034113 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表