2012年7月

本次网卡移植参考国嵌实验

在include/configs/tq2440.h中

58行左右 / modified by ptz , for tq2440, dm9000 /

define CONFIG_DRIVER_CS8900 1 / we have a CS8900 on-board /

//#define NETWORK_DRIVER_CS8900 1

define NETWORK_DRIVER_DM9000 1

if defined (NETWORK_DRIVER_CS8900)

define CS8900_BASE 0x19000300

define CS8900_BUS16 1 / the Linux driver does accesses as shorts /

elif defined (NETWORK_DRIVER_DM9000)

define CONFIG_DRIVER_DM9000 1

define CONFIG_DM9000_USE_16BIT 1

define CONFIG_DM9000_BASE 0x20000300

define DM9000_IO 0x20000300

define DM9000_DATA 0x20000304

endif

112行左右 / add by ptz, for tq2440, PING CMD/

define CONFIG_CMD_PING

119行左右 / modified by ptz , for tq2440, dm9000 /

define CONFIG_IPADDR 192.168.1.105

define CONFIG_SERVERIP 192.168.1.103

define CONFIG_ETHADDR 00.01.02.03.04.05

在打开 driver/net/dm9000x.c 吧MII接口的注释掉 388行左右 / delete by ptz, for tq2440, for dm9000 /

if 0

i = 0; while (!(phy_read(1) & 0x20)) { / autonegation complete bit / udelay(1000); i++; if (i == 10000) { printf("could not establish link\n"); return 0; } } / see what we've got / 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; } printf("mode\n");

endif

这样就修改好了

打开 u-boot 主上目录下的 Makefile , 找到 smdk2410_config, 在其下 , 加入 smdk2410_config : unconfig @(MKCONFIG)(@:_config=) arm arm920t smdk2410 NULL s3c24x0 tq2440_config : unconfig @(MKCONFIG)(@:_config=) arm arm920t tq2440 ptz s3c24x0

根据需要配置CROSS_COMPILE

在 board 子目录下建立自己的开发板 ptz/tq2440 目录,然后,将 smdk2410 目录下的文件拷入此目录中,然后,将 tq2440 目录下的 smdk2410.c 改 为tq2440.c ,同时还得修改 board/ptz/tq2440/Makefile 文件。 COBJS :=tq2440.o flash.o

在 include/configs/ 下建立 tq2440.h 配置头文件,把smdk2410 的相应头文件复制一份在相同目录下,并改名为 tq2440.h

编译测试一下是否能够通过 [...]# make distclean [...]# make tq2440_config Configuring for tq2440 board... [...]# make CROSS_COMPILE=arm-linux-

如果没有错误出现,就可以进行下一步的修改了。