u-boot-2014.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 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相关推荐
- mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)
此篇文章是本人muge0913在上篇文章的基础上继续移植的,文章仅供技术交流请勿商用,转载请注明出处: http://blog.csdn.net/muge0913/article/details/71 ...
- mini6410移植全攻略(4)--uboot移植之支持nand flansh启动(中)
四.修改有关的信息: 本文章由muge0913编写,仅供技术交流转载请注明出处: http://blog.csdn.net/muge0913/article/details/7168325 1. 串口 ...
- mini6410移植全攻略(5)--uboot移植之支持nand flansh启动(下)
六.首先运行的程序 在这我也进行的大量的代码修改,进行了详细的注释,希望给大家一些帮助 本文章由muge0913编写,文章仅供技术交流,转载请注明出处: http://blog.csdn.net/mu ...
- uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)
项目开源地址:https://github.com/Mculover666/uboot-jz2440 0. 教程完整目录 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理 01 ...
- u-boot-2014.10移植第29天----nand flash的SPL启动(一)
硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 前面在移植nand fl ...
- 移植u-boot-2012.04.01到jz2440开发板之修改代码支持NAND启动
上一篇文章我们已经修改了uboot源码使其能够正常打印输出了,但是输出停到了nand启动那里,所以这篇文章就来记录如何修改源码使uboot支持NAND启动. 原来的代码在链接时加了"-pie ...
- u-boot-2014.10移植第25天----nand flash启动(三)
硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 在实现u-boot从na ...
- u-boot-2014.10移植第18天----添加DM9000网卡支持(二)
硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 修改代码 一不小心把这篇 ...
- linux提高nand速度,linux-2.6.31.1内核支持Nand Flash
linux-2.6.31.1支持Nand Flash 目的:使NandFlash驱动同时支持64M, 256M或更高容量的NandFlash 将linux内核解压在/opt目录下,修改内核源码文件,添 ...
- 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 ...
最新文章
- unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题
- Java泛型学习资料小汇
- Scala print语句格式打印
- 28335之SCI模块
- VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
- 光学字符识别 android,基于Android的光学字符识别研究与实现
- 面试薪资这样谈,让你的月薪加倍!
- 微型计算机原理偏移地址,微机原理试卷答案(B)
- mysql一直出错_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
- c语言生成一个大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
- ceph12.0.1的源码编译安装
- 爆肝100天,B站UP主开发会写高考作文的AI,内含17亿参数、2亿数据、1万行代码
- CNN Explainer
- 优课联盟 实境英语Test for Unit 2
- 软件工程毕设项目推荐
- MATLAB差影法的人体姿态识别
- scrapy框架讲解
- springboot入门-Eclipse
- 安卓使用http下载文件
- word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估
热门文章
- HDOJ--1596--find the safest road
- 菜单的无限极分类实现
- [算法导论]哈希表 @ Python
- Hadoop大数据之Debug
- 谈谈 Delphi 的类型与指针[2]
- Python脚本控制的WebDriver 常用操作 十八 获取测试对象的css属性
- c语言中变量的转换,C语言中,指针变量之间的类型转换
- 路由器和交换机的区别,太经典了
- 进程间通信无名管道 --- pipe 典型的生产者消费者模式
- VS code gopls requires a module at the root of your workspace