06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

时间:2022-04-12 17:13:36

一、支持nand读写

移植 uboot到S3C2440(移植过程一)新建单板+修改时钟+SDRAM+UART(←点击查看)过程中,为了避免当时编译出现的错误,我们屏蔽了

include/configs/smdk2440.h:

//#defineCONFIG_CMD_NAND

(1)取消#defineCONFIG_CMD_NAND的注释,编译出现如下错误:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

2)因为include/configs/smdk2440.h中:

CONFIG_S3C2410改为了CONFIG_S3C2440,所以下面的定义没了

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(3)分析下nand是如何发命令 数据 地址的。

CLE高:命令

ALE高:地址

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(4)把drivers\mtd\nand\s3c2410_nand.c复制为s3c2440_nand.c

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

修改同目录下makefile

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

修改smdk2440.h

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡


(5)

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

程序流程分析:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡


06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(6)替换函数名字

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡


06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(7)删除:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(8)初始化相关

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(9)更新编译

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡


06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

把nor上的uboot拷贝到nand上:
nand erase 0 80000

nand write 0 0 80000

nand read 30000000 0 80000

cmp.b 0 30000000 80000

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

zip -r -q -o u-boot-2012.04.01nand.zip /work/system/u-boot-2012.04.01 (压缩备份)

二、支持DM9000网卡

(1)uboot源码支持了DM9000,搜索dm9000:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
(2) 查看相关makefile
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
(3)定义了这个宏 才会被编译进内核,SO:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
(4) 编译:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
(5)因此修改:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
(6) 参数怎么设定:

2440有内存控制器,外部接有网卡。

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

Dm9000接在:

发出地址在范围内 就会选通芯片

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(7)修改内存对网卡的支持:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(8)下载启动

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(9)还是没打印出网卡信息

       eth_initialize

              board_eth_init

                     cs8900_initialize

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

(10)设置网络信息后,启动

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

*** ERROR: `ethaddr' not set

set ipaddr 192.168.1.17

set ethaddr 00:0c:29:4d:e4:f4

set serverip 192.168.1.111

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡

zip -r -q -o u-boot-2012.04.01dm9000.zip /work/system/u-boot-2012.04.01 (压缩备份)

到此,uboot支持了对nor nand的识别 及对网卡DM9000的支持,可以通过tftp来下载程序了