在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 cast
drivers/mtd/nand/s3c2410_nand.c:59: error: dereferencing pointer to incomplete type
drivers/mtd/nand/s3c2410_nand.c:59: error: dereferencing pointer to incomplete type
drivers/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.o
COBJS-$(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 2014.10 (Nov 01 2018 - 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启动内核

转载于:https://www.cnblogs.com/hulig7/p/9902129.html

u-boot-2014.10移植(5)支持nand相关推荐

  1. mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)

    此篇文章是本人muge0913在上篇文章的基础上继续移植的,文章仅供技术交流请勿商用,转载请注明出处: http://blog.csdn.net/muge0913/article/details/71 ...

  2. mini6410移植全攻略(4)--uboot移植之支持nand flansh启动(中)

    四.修改有关的信息: 本文章由muge0913编写,仅供技术交流转载请注明出处: http://blog.csdn.net/muge0913/article/details/7168325 1. 串口 ...

  3. mini6410移植全攻略(5)--uboot移植之支持nand flansh启动(下)

    六.首先运行的程序 在这我也进行的大量的代码修改,进行了详细的注释,希望给大家一些帮助 本文章由muge0913编写,文章仅供技术交流,转载请注明出处: http://blog.csdn.net/mu ...

  4. uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)

    项目开源地址:https://github.com/Mculover666/uboot-jz2440 0. 教程完整目录 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理 01 ...

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

    硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 前面在移植nand fl ...

  6. 移植u-boot-2012.04.01到jz2440开发板之修改代码支持NAND启动

    上一篇文章我们已经修改了uboot源码使其能够正常打印输出了,但是输出停到了nand启动那里,所以这篇文章就来记录如何修改源码使uboot支持NAND启动. 原来的代码在链接时加了"-pie ...

  7. u-boot-2014.10移植第25天----nand flash启动(三)

    硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 在实现u-boot从na ...

  8. u-boot-2014.10移植第18天----添加DM9000网卡支持(二)

    硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 修改代码 一不小心把这篇 ...

  9. linux提高nand速度,linux-2.6.31.1内核支持Nand Flash

    linux-2.6.31.1支持Nand Flash 目的:使NandFlash驱动同时支持64M, 256M或更高容量的NandFlash 将linux内核解压在/opt目录下,修改内核源码文件,添 ...

  10. RK3399 系列 U-BOOT (U-Boot 2014.10)

    Rockchip U-Boot 基于U-Boot 2014.10官方版本开发 Board:Nanopi M4 2G 编译配置 [Toolchain] sudo tar -jxvf arm-6.4.ta ...

最新文章

  1. unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题
  2. Java泛型学习资料小汇
  3. Scala print语句格式打印
  4. 28335之SCI模块
  5. VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
  6. 光学字符识别 android,基于Android的光学字符识别研究与实现
  7. 面试薪资这样谈,让你的月薪加倍!
  8. 微型计算机原理偏移地址,微机原理试卷答案(B)
  9. mysql一直出错_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
  10. c语言生成一个大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
  11. ceph12.0.1的源码编译安装
  12. 爆肝100天,B站UP主开发会写高考作文的AI,内含17亿参数、2亿数据、1万行代码
  13. CNN Explainer
  14. 优课联盟 实境英语Test for Unit 2
  15. 软件工程毕设项目推荐
  16. MATLAB差影法的人体姿态识别
  17. scrapy框架讲解
  18. springboot入门-Eclipse
  19. 安卓使用http下载文件
  20. word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估

热门文章

  1. HDOJ--1596--find the safest road
  2. 菜单的无限极分类实现
  3. [算法导论]哈希表 @ Python
  4. Hadoop大数据之Debug
  5. 谈谈 Delphi 的类型与指针[2]
  6. Python脚本控制的WebDriver 常用操作 十八 获取测试对象的css属性
  7. c语言中变量的转换,C语言中,指针变量之间的类型转换
  8. 路由器和交换机的区别,太经典了
  9. 进程间通信无名管道 --- pipe 典型的生产者消费者模式
  10. VS code gopls requires a module at the root of your workspace