在vi include/configs/mini2440.h 中添加
显然是没有定义DATA的宏,参考别的板子定义如下
向上观察代码,感觉是因为没有定义#define CONFIG_NET_MULTI
的缘故
查找原因,原来是网卡没有初始化,在board/samsung/mini2440/mini2440.c
#define
CONFIG_DRIVER_DM9000
/* we have a DM9000 on-board */
然后编译,出现如下错误
#define
CONFIG_DM9000_BASE
0x20000000
#define
DM9000_IO
CONFIG_DM9000_BASE
#define
DM9000_DATA
(CONFIG_DM9000_BASE + 4)
再次编译
定义后编译成功
下载到内存,出现问题着不到网卡
中初始化的网卡是cs8900,修改为
#ifdef CONFIG_CMD_NET
int board_eth_init(bd_t *bis)
{
int rc = 0;
#ifdef CONFIG_DRIVER_DM9000
rc = dm9000_initialize(bis);
#endif
return rc;
}
#endif
并添加#define CONFIG_CMD_NET
还是没找到网卡
在board/samsung/mini2440/mini2440.c 加上#error123456789
竟然没编译到这个文件
察看该文件夹下Makefile发现
COBJS
:= smdk2410.o flash.o居然没修改
之前一直没用到这个文件
修改之后,再次编译成功
下到内存,识别出DM9000
打印环境变量print
MINI2440 # print
bootdelay=3
baudrate=115200
ipaddr=10.0.0.110
serverip=10.0.0.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
ethact=dm9000
修改环境变量vi include/configs/mini2440.h
#define CONFIG_ETHADDR
00:E0:0C:BC:E5:60
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR
192.168.1.199
#define CONFIG_SERVERIP
192.168.1.110
#define CONFIG_BOOTFILE
"u-boot.bin"
并添加#define CONFIG_CMD_PING
插上网线看看是否能ping通
MINI2440 # ping 192.168.1.1
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:e0:0c:bc:e5:60
could not establish link
Using dm9000 device
host 192.168.1.1 is alive