1.1.6移植笔记(初级篇)(11)

/*__attribute__((__packed__))*/ S3C2410_NAND; 

/* NAND FLASH (see S3C2410 manual chapter 6) */ typedef struct { S3C24X0_REG32 NFCONF; S3C24X0_REG32 NFCMD; S3C24X0_REG32 NFADDR; S3C24X0_REG32 NFDATA; S3C24X0_REG32 NFSTAT; S3C24X0_REG32 NFECC; } /*__attribute__((__packed__))*/ S3C2410_NAND;

增添2440nand的结构体:

typedef struct { 

    S3C24X0_REG32   NFCONF; 

    S3C24X0_REG32   NFCONT; 

    S3C24X0_REG32   NFCMD; 

    S3C24X0_REG32   NFADDR; 

    S3C24X0_REG32   NFDATA; 

    S3C24X0_REG32   NFMECCD0; 

    S3C24X0_REG32   NFMECCD1; 

    S3C24X0_REG32   NFSECCD; 

    S3C24X0_REG32   NFSTAT; 

    S3C24X0_REG32   NFESTAT0; 

    S3C24X0_REG32   NFESTAT1; 

    S3C24X0_REG32   NFMECC0; 

    S3C24X0_REG32   NFMECC1; 

    S3C24X0_REG32   NFSECC; 

    S3C24X0_REG32   NFSBLK; 

    S3C24X0_REG32   NFEBLK; 

/*__attribute__((__packed__))*/ S3C2440_NAND; 

typedef struct { S3C24X0_REG32 NFCONF; S3C24X0_REG32 NFCONT; S3C24X0_REG32 NFCMD; S3C24X0_REG32 NFADDR; S3C24X0_REG32 NFDATA; S3C24X0_REG32 NFMECCD0; S3C24X0_REG32 NFMECCD1; S3C24X0_REG32 NFSECCD; S3C24X0_REG32 NFSTAT; S3C24X0_REG32 NFESTAT0; S3C24X0_REG32 NFESTAT1; S3C24X0_REG32 NFMECC0; S3C24X0_REG32 NFMECC1; S3C24X0_REG32 NFSECC; S3C24X0_REG32 NFSBLK; S3C24X0_REG32 NFEBLK; } /*__attribute__((__packed__))*/ S3C2440_NAND;

然后打开同目录下的s3c2410.h,找到

static inline S3C2410_NAND * const S3C2410_GetBase_NAND(void

    return (S3C2410_NAND * const)S3C2410_NAND_BASE; 

static inline S3C2410_NAND * const S3C2410_GetBase_NAND(void) { return (S3C2410_NAND * const)S3C2410_NAND_BASE; }

在其下面添加

static inline S3C2440_NAND * const S3C2440_GetBase_NAND(void

    return (S3C2440_NAND * const)S3C2410_NAND_BASE; 

static inline S3C2440_NAND * const S3C2440_GetBase_NAND(void) { return (S3C2440_NAND * const)S3C2410_NAND_BASE; }

最后将新建的nand_flash.c文件编入u-boot之中。打开 /cpu/arm920t/s3c24x0/Makefile ,在COBJS中增加nand_flash.o:

COBJS   = i2c.o interrupts.o serial.o speed.o \ 

      usb_ohci.o nand_flash.o 

COBJS = i2c.o interrupts.o serial.o speed.o \ usb_ohci.o nand_flash.o

编译,通过!下载至开发板运行,控制台打印出:NAND : 256MiB,输入命令nand info,打印信息:

NAND 256MiB 3.3V 8-bit, sector size 128 KiB 

NAND 256MiB 3.3V 8-bit, sector size 128 KiB

至此,NAND flash支持移植成功!

U-Boot源代码下载地址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5192f09a4a43c65b3eaf648136b55d4c.html