300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > u-boot-.10移植(5)支持nand

u-boot-.10移植(5)支持nand

时间:2023-07-17 07:23:18

相关推荐

u-boot-.10移植(5)支持nand

在smdk2440.h里面加上NAND的配置选项

#define CONFIG_CMD_NAND

编译出错

drivers/mtd/nand/s3c2410_nand.c: In function 's3c2410_hwcontrol':drivers/mtd/nand/s3c2410_nand.c:44: warning: implicit declaration of function 's3c2410_get_base_nand'drivers/mtd/nand/s3c2410_nand.c:44: warning: initialization makes pointer from integer without a castdrivers/mtd/nand/s3c2410_nand.c:59: error: dereferencing pointer to incomplete typedrivers/mtd/nand/s3c2410_nand.c:59: error: dereferencing pointer to incomplete typedrivers/mtd/nand/s3c2410_nand.c:62: error: dereferencing pointer to incomplete type

cp drivers/mtd/nand/s3c2410_nand.c drivers/mtd/nand/s3c2440_nand.c

在drivers/mtd/nand/Makefile添加

COBJS-$(CONFIG_NAND_S3C2410) += s3c2410_nand.oCOBJS-$(CONFIG_NAND_S3C2440) += s3c2440_nand.o

同时需要修改配置文件smdk2440.h

/** NAND configuration*/#ifdef CONFIG_CMD_NAND#define CONFIG_NAND_S3C2410 == >#define CONFIG_NAND_S3C2440 #define CONFIG_SYS_S3C2410_NAND_HWECC ==>#define CONFIG_SYS_S3C2440_NAND_HWECC

在drivers/mtd/nand/s3c2440_nand.c

nt board_nand_init(struct nand_chip *nand)#if 0cfg = S3C2440_NFCONF_EN;cfg |= S3C2440_NFCONF_TACLS(tacls - 1);cfg |= S3C2440_NFCONF_TWRPH0(twrph0 - 1);cfg |= S3C2440_NFCONF_TWRPH1(twrph1 - 1);#endifcfg = ((tacls-1)<<12)|((twrph0-1)<<8)|((twrph1-1)<<4);writel(cfg, &nand_reg->nfconf);writel((1<<4)|(1<<1)|(1<<0),&nand_reg->nfcont);。。。nand->select_chip = s3c2440_nand_select;

添加

static void s3c2440_nand_select(struct mtd_info *mtd, int chipnr){struct s3c2440_nand *nand = s3c2440_get_base_nand();switch (chipnr) {case -1:nand->nfcont |= (1<<1);break;case 0:nand->nfcont &= ~(1<<1);break;default:BUG();}}

重写

static void s3c2440_hwcontrol(struct mtd_info *mtd, int dat, unsigned int ctrl){struct s3c2440_nand *nand = s3c2440_get_base_nand();if (ctrl & NAND_CLE){writeb(dat, &nand->nfcmd);}else if(ctrl & NAND_ALE){writeb(dat, &nand->nfaddr);}}

重写编译烧录

U-Boot .10 (Nov 01 - 14:26:34)CPUID: 32440001FCLK:400 MHzHCLK:100 MHzPCLK: 50 MHzDRAM: 64 MiBWARNING: Caches not enabledFlash: 2 MiBNAND: 256 MiB*** Warning - bad CRC, using default environmentIn: serialOut: serialErr: serialNet: dm9000Warning: dm9000 MAC addresses don't match:Address in SROM is ff:ff:ff:ff:ff:ffAddress in environment is 00:0c:29:45:c4:c3

增加启动参数

在smdk2440.h里面添加宏

#define CONFIG_BOOTCOMMAND "nand read.jffs2 0x30007FC0 0x60000 0x200000; bootm 0x30007FC0"

如果以前烧写过内核到0x60000的位置,那么现在可以顺利从nor flash启动内核

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。