代码 : https://github.com/lisider/linux/tree/ok6410a-linux-5.11
提交id : 4459e78a4d845f08286623b98546bcefbb45ddb9
defconfig : arch/arm/configs/ok6410A_sdboot_mini_net_defconfig
CONFIG_DM9000=y
drivers/net/ethernet/davicom/dm9000.c
$ git diff arch/arm/mach-s3c/mach-smdk6410.c
diff --git a/arch/arm/mach-s3c/mach-smdk6410.c b/arch/arm/mach-s3c/mach-smdk6410.c
index ae18c13..924bcf0 100644
--- a/arch/arm/mach-s3c/mach-smdk6410.c
+++ b/arch/arm/mach-s3c/mach-smdk6410.c
@@ -70,6 +70,8 @@
#include "regs-srom-s3c64xx.h"
#include "regs-sys-s3c64xx.h"
+#include <linux/dm9000.h>
+
#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
@@ -254,6 +256,46 @@ static struct samsung_keypad_platdata smdk6410_keypad_data __initdata = {
.cols = 8,
};
+
+#ifdef CONFIG_DM9000
+#define S3C64XX_PA_DM9000 (0x18000000)
+#define S3C64XX_SZ_DM9000 SZ_1M
+#define S3C64XX_VA_DM9000 S3C_ADDR(0x03b00300)
+
+static struct resource dm9000_resources[] = {
+ [0] = {
+ .start = S3C64XX_PA_DM9000,
+ .end = S3C64XX_PA_DM9000 + 3,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = S3C64XX_PA_DM9000 + 4,
+ .end = S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+ .start = IRQ_EINT(7),
+ .end = IRQ_EINT(7),
+ .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
+ },
+};
+
+static struct dm9000_plat_data dm9000_setup = {
+ .flags = DM9000_PLATF_16BITONLY,
+ .dev_addr = { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },
+};
+
+static struct platform_device s3c_device_dm9000 = {
+ .name = "dm9000",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(dm9000_resources),
+ .resource = dm9000_resources,
+ .dev = {
+ .platform_data = &dm9000_setup,
+ }
+};
+#endif
+
static struct map_desc smdk6410_iodesc[] = {};
static struct platform_device *smdk6410_devices[] __initdata = {
@@ -277,7 +319,11 @@ static struct platform_device *smdk6410_devices[] __initdata = {
#endif
&smdk6410_lcd_powerdev,
- &smdk6410_smsc911x,
+#ifdef CONFIG_DM9000
+ &s3c_device_dm9000,
+#endif
+
+
&s3c_device_adc,
&s3c_device_cfcon,
&s3c_device_rtc,
$ cat arch/arm/configs/ok6410A_sdboot_mini_defconfig
CONFIG_ARCH_MULTI_V6=y
CONFIG_ARCH_S3C64XX=y
CONFIG_MACH_SMDK6410=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_S3C=y
CONFIG_EXT3_FS=y
#### add for mount: mdev: unknown user/group 'root:root' on line 11
CONFIG_TMPFS=y
#### net driver dm9000
CONFIG_NET=y
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_DM9000=y
#### root nfs
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
设置
ifconfig eth0 10.10.11.120 netmask 255.255.255.0 up && route add default gw 10.10.11.254
ping 10.10.11.59
ping 8.8.8.8