OK6410A 开发板 (八) 1 linux-5.11 OK6410A ethernet dm9000 移植

代码 		: https://github.com/lisider/linux/tree/ok6410a-linux-5.11
提交id 		: 4459e78a4d845f08286623b98546bcefbb45ddb9
defconfig	: arch/arm/configs/ok6410A_sdboot_mini_net_defconfig

  • 配置
CONFIG_DM9000=y
  • driver
drivers/net/ethernet/davicom/dm9000.c
  • device
$ 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,
 };
 
+/* Ethernet */
+#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 //#ifdef CONFIG_DM9000
+
 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
+
+       //&smdk6410_smsc911x,
        &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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值