(一)移植u-boot支持DM9000网卡
1、修改include/configs/smdk2440.h
diff -urN u-boot-2016.11/include/configs/smdk2440.h u-boot-2016.11_s3c2440/include/configs/smdk2440.h
--- u-boot-2016.11/include/configs/smdk2440.h 2018-06-15 18:30:38.719161976 +0800
+++ u-boot-2016.11_s3c2440/include/configs/smdk2440.h 2018-06-15 20:51:50.004896000 +0800
@@ -35,9 +35,10 @@
/*
* Hardware drivers
*/
-#define CONFIG_CS8900 /* we have a CS8900 on-board */
-#define CONFIG_CS8900_BASE 0x19000300
-#define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */
+#define CONFIG_DRIVER_DM9000
+#define CONFIG_DM9000_BASE 0x20000000
+#define DM9000_IO CONFIG_DM9000_BASE
+#define DM9000_DATA (CONFIG_DM9000_BASE + 4)
/*
* select serial console configuration
@@ -84,8 +85,9 @@
#define CONFIG_RESET_TO_RETRY
#define CONFIG_NETMASK 255.255.255.0
-#define CONFIG_IPADDR 10.0.0.110
-#define CONFIG_SERVERIP 10.0.0.1
+#define CONFIG_IPADDR 172.16.122.99
+#define CONFIG_SERVERIP 172.16.122.88
+#define CONFIG_ETHADDR 00:0c:29:d4:e4:4f
#if defined(CONFIG_CMD_KGDB)
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */
2、修改include/env_default.h
diff -urN u-boot-2016.11/include/env_default.h u-boot-2016.11_s3c2440/include/env_default.h
--- u-boot-2016.11/include/env_default.h 2016-11-15 00:27:11.000000000 +0800
+++ u-boot-2016.11_s3c2440/include/env_default.h 2018-06-15 20:50:17.902868000 +0800
@@ -58,6 +58,9 @@
#ifdef CONFIG_SERVERIP
"serverip=" __stringify(CONFIG_SERVERIP) "\0"
#endif
+#ifdef CONFIG_ETHADDR
+ "ethaddr=" __stringify(CONFIG_ETHADDR) "\0"
+#endif
#ifdef CONFIG_SYS_AUTOLOAD
"autoload=" CONFIG_SYS_AUTOLOAD "\0"
#endif
3、修改board/samsung/smdk2440/smdk2440.c
diff -urN u-boot-2016.11/board/samsung/smdk2440/smdk2440.c u-boot-2016.11_s3c2440/board/samsung/smdk2440/smdk2440.c
--- u-boot-2016.11/board/samsung/smdk2440/smdk2440.c 2018-06-14 19:56:40.565213154 +0800
+++ u-boot-2016.11_s3c2440/board/samsung/smdk2440/smdk2440.c 2018-06-15 20:50:43.931876000 +0800
@@ -122,6 +122,9 @@
#ifdef CONFIG_CS8900
rc = cs8900_initialize(0, CONFIG_CS8900_BASE);
#endif
+#ifdef CONFIG_DRIVER_DM9000
+ rc = dm9000_initialize(bis);
+#endif
return rc;
}
#endif
4、修改scripts/config_whitelist.txt
diff -urN u-boot-2016.11/scripts/config_whitelist.txt u-boot-2016.11_s3c2440/scripts/config_whitelist.txt
--- u-boot-2016.11/scripts/config_whitelist.txt 2018-06-15 18:28:58.111161976 +0800
+++ u-boot-2016.11_s3c2440/scripts/config_whitelist.txt 2018-06-15 20:47:29.586752193 +0800
@@ -861,6 +861,7 @@
CONFIG_DISPLAY_CPUINFO
CONFIG_DLVISION
CONFIG_DLVISION_10G
+CONFIG_CMD_NET
CONFIG_DM9000_BASE
CONFIG_DM9000_BYTE_SWAPPED
CONFIG_DM9000_DEBUG
5、烧写u-boot.bin到Nor Flash上测试
book@ubuntu:~/u-boot-2016.11$ ./auto_run.sh
通过测试tftp看网卡是否ok,如果不能用请认真查看自己环境变量是否设置正确,尤其是ipaddr、serverip、netwask、ethaddr