u-boot-2014.10移植第17天----添加DM9000网卡支持(一)

很多读者的2440的板子应该都有DM9000网卡。在移植之前看看这几篇文档:

DM9000中文手册(详细)

这篇文章告诉我们DM9000的一些硬件知识。

DM9000和MINI2440深入理解

这篇文章告诉我们2440是如何实现对DM9000的访问。

2440 dm9000 到底咋确定地址

这篇文章告诉我们如何确定地址端口的地址和数据端口的地址。

DM9000 datasheet

datasheet上说dm9000有4K Dword(就是4K双字,即16Kbytes)。

DM9000网卡驱动位于drivers/net/dm9000x.c,在drivers/net/Makefile文件中可以看到:

obj-$(CONFIG_DRIVER_DM9000) += dm9000x.o

CONFIG_DRIVER_DM9000这个是一个宏定义,如果它有定义就会编译该文件,所以我们在include/configs/tq2440.h文件中定义该宏:

#define NONE_FLAG 0
#if NONE_FLAG
#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 */
#else
#define CONFIG_DRIVER_DM9000
#endif

tq2440底板原理图上DM9000的片选信号线接的是2440上的nGCS4,在2440datasheet上的5. Memory Controller一章中,nGCS4的基地址是0x2000 0000。

明天继续!

时间: 2025-01-14 10:33:54

u-boot-2014.10移植第17天----添加DM9000网卡支持(一)的相关文章

u-boot-2014.10移植第21天----添加nand flash命令支持(三)

硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 虽说nand flash读写操作是可以了,但是我使用nand markbad命令将一个块标记为坏块时,再用nand scrub命令恢复出厂设置时,却出现了下面的错误: nand0: MTD Erase failure: -5 说明我们的nand flash移植是不完全正确的. 下面查找原因 在文件drivers/mtd/n

u-boot-2014.10移植第19天----添加nand flash命令支持(一)

今天继续移植nand flash,对于很多情况而言,u-boot从nand flash启动是一个至关重要的功能,毕竟NOR flash成本太高,不是所有开发板都会添加NOR flash. u-boot中的SMDK2410模板是没有支持从nand flash启动的功能的,但是却有支持操作nand_flash的操作命令,2410和2440在nand flash支持上的区别有: 1.2410仅支持小块nandflash,2440则同时支持大块nandflash:2.为支持大块nandflash,244

u-boot-2014.10移植第20天----添加nand flash命令支持(二)

继前一天移植的情况,运行后发现: Flash: 2 MiBNAND:  0 MiB 说明Nand flash没有移植成功,在文件drivers/mtd/nand/s3c2440_nand.c 中发现board_nand_init函数中: nand->select_chip = NULL 选择芯片函数为NULL,我们在board_nand_init函数上面加上s3c2440_nand_select函数,代码如下: static void s3c2440_nand_select(struct mtd

u-boot-2014.10移植第22天----添加nand flash命令支持(四)

解决问题: nand0: MTD Erase failure: -5 drivers/mtd/nand/nand_bbt.c文件中初始化bbt /* * Allocate memory (2bit per block) and clear the memory bad block * table. */ this->bbt = kzalloc(len, GFP_KERNEL); if (!this->bbt) return -ENOMEM; 每个block用2个比特表示是否为坏块. nand_

u-boot-2014.10移植(8)重定位,支持NAND启动

前面链接地址都是0x0,可以从nor正常启动内核和文件系统.现在把链接地址改成0x33f00000 一旦更改了链接地址, u-boot从nor flash加载时,串口没有任何输出 添加文件boot_init.c #define NFCONF (*((volatile unsigned long *)0x4E000000)) #define NFCONT (*((volatile unsigned long *)0x4E000004)) #define NFCMMD (*((volatile un

u-boot-2014.10移植(4)识别dm9000

在smdk2440.h里面注释掉CS8900相关的 #if 0 #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ #define CS8900_BASE 0x19000300 #define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ #endif #if !defined(CONFIG_DRIVER_CS8900) #define CONF

FL2440移植LINUX-3.4.2(五)-- 添加DM9000的支持

1.参考mini2440拷贝:linux-3.4.2\arch\arm\mach-s3c24xx\mach-mini2440.c里的/* DM9000AEP 10/100 ethernet controller */ 1 /* DM9000AEP 10/100 ethernet controller */ 2 3 static struct resource mini2440_dm9k_resource[] = { 4 [0] = { 5 .start = MACH_MINI2440_DM9K_

u-boot-2014.10移植第29天----nand flash的SPL启动(一)

硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 前面在移植nand flash启动时做了很多探索性的工作,但是后来发现在relocate.S文件中调用的函数中有调用大部分的库函数,牵扯到的文件较多,很难将它们一一包含到前面4K空间中去.正在想其他方法时,突然意识到SPL功能.我初步了解了一下SPL的功能,简而言之是一个将u-boot从nand flash拷贝到SDRAM

u-boot-2014.10移植第14天----在SDRAM中运行

昨天遇到编译错误,我们从错误提示中寻找解决方法: 信息1:CHK     include/config.h /* Automatically generated - do not edit */ #define CONFIG_BOARDDIR board/samsung/tq2440 #include <config_defaults.h> #include <configs/tq2440.h> #include <asm/config.h> #include <