s3c2440 移值u-boot-2016.03 第4篇 支持NAND flash 识别

发布者:Qingliu2022最新更新时间:2023-09-04 来源: elecfans关键字:s3c2440  移值  u-boot  NAND  flash  识别 手机看文章 扫描二维码
随时随地手机看文章

1, /include/configs/smdk2440.h
中添加
#define CONFIG_CMD_NAND
编译
drivers/mtd/nand/built-in.o: In function `nand_init_chip':
/u-boot-2016.03/drivers/mtd/nand/nand.c:76: undefined reference to `board_nand_init'
发现是少了文件
/drivers/mtd/nand/s3c2410_nand.c 复制为
/drivers/mtd/nand/s3c2440_nand.c 打开 里面的 所有 2410 换为 2440

drivers/mtd/nand/Makefile
添加一行
obj-$(CONFIG_NAND_S3C2440) += s3c2440_nand.o

2, 重新编辑
编译通过了,应该是用不上,烧写试机
NAND: 0 MiB 虽然没有报错,但是未实别出来。

3, 修改代码支持 NAND FLASH
2410 和 2440 控制寄存器有些不同,可能是这些原因。
在 nand_scan() 中扫 NAND FLASH ,实别出来容量大小。
/drivers/mtd/nand/nand_base.c
ret = nand_scan_ident(mtd, maxchips, NULL);
if (!ret)
ret = nand_scan_tail(mtd);
return ret;

原理和 NOR FLASH 差不多,实别出来ID 比较就知道大小了

应该是对应 s3c2440_nand.c 里面的
int board_nand_init(struct nand_chip *nand)
{
初始化修改,尽量使用定义的方式,方便 后期修改
//cfg = S3C2440_NFCONF_EN; 取消 15位 用不上 2440 中是保留位

smdk2440.h 中添加定义
#define CONFIG_S3C24XX_CUSTOM_NAND_TIMING
#define CONFIG_S3C24XX_TACLS 1
#define CONFIG_S3C24XX_TWRPH0 2
#define CONFIG_S3C24XX_TWRPH1 1
去掉 硬件 ECC
#define CONFIG_SYS_S3C2440_NAND_HWECC

4, 添加 #define DEBUG 打开调试信息
NAND: board_nand_init()
end of nand_init
hwcontrol(): 0xff 0x83
hwcontrol(): 0xffffffff 0x81
dev_ready
hwcontrol(): 0x90 0x83
hwcontrol(): 0x00 0x85
hwcontrol(): 0xffffffff 0x81
dev_ready
hwcontrol(): 0x90 0x83
hwcontrol(): 0x00 0x85
hwcontrol(): 0xffffffff 0x81
dev_ready
hwcontrol(): 0x90 0x83
hwcontrol(): 0x40 0x85
hwcontrol(): 0xffffffff 0x81
dev_ready
hwcontrol(): 0xffffffff 0x80
0 MiB

0x81 最后一位是1表示选中
0x83 ..选中
0x85 ..选中
0x80 最后一位是0就是不选中

board_nand_init() 还应该是有问题的。
加上 启用 nfcont 控制器
/* 4 ECC
* 1 CE 先不选中,用的时候在选中
* 0 启动 flash controller
*/
writel(1<<4 | 1<<1 | 1, &nand_reg->nfcont);

修改选中 及 命令 地址 寄存器定义, 注意这里是 ! NCLE
s3c24x0_hwcontrol()
if (!(ctrl & NAND_CLE))
IO_ADDR_W |= S3C2440_ADDR_NCLE;
if (!(ctrl & NAND_ALE))
IO_ADDR_W |= S3C2440_ADDR_NALE;
对比 2410 和 2440 选中控制位不同,进行修改。
if (ctrl & NAND_NCE)
writel(readl(&nand->nfconf) & ~S3C2440_NFCONF_nFCE,
&nand->nfconf);
else
writel(readl(&nand->nfconf) | S3C2440_NFCONF_nFCE,
&nand->nfconf);

修改
#define S3C2440_NFCONF_nFCE (1<<1)
其它的也修改下 参照手册
#define S3C2440_NFCONF_EN (1<<15)
#define S3C2440_NFCONF_512BYTE (1<<14)
#define S3C2440_NFCONF_4STEP (1<<13)
#define S3C2440_NFCONF_INITECC (1<<12)
#define S3C2440_NFCONF_nFCE (1<<1)
#define S3C2440_NFCONF_TACLS(x) ((x)<<12)
#define S3C2440_NFCONF_TWRPH0(x) ((x)<<8)
#define S3C2440_NFCONF_TWRPH1(x) ((x)<<4)
#define S3C2440_ADDR_NALE 8
#define S3C2440_ADDR_NCLE 0xc



nane_base.c
这里看下,默认的 nand_base 中的 取消选中的功能
static void nand_select_chip(struct mtd_info *mtd, int chipnr)
{
struct nand_chip *chip = mtd->priv;

switch (chipnr) {
case -1:
chip->cmd_ctrl(mtd, NAND_CMD_NONE, 0 | NAND_CTRL_CHANGE);
break;
case 0:
break;

default:
BUG();
}

对应的 s3c2440_nand 中的就是 调用这里
writel(readl(&nand->nfcont) | S3C2440_NFCONF_nFCE, &nand->nfcont);

ps: 经过后期 试验,发现,不能 nand write ,改进方法,见 u-boot 最后一篇的 补丁。


关键字:s3c2440  移值  u-boot  NAND  flash  识别 引用地址:s3c2440 移值u-boot-2016.03 第4篇 支持NAND flash 识别

上一篇:s3c2440 移值u-boot-2016.03 第5篇 支持dm9000 识别
下一篇:s3c2440 移值u-boot-2016.03 第3篇 支持Nor flash 识别

推荐阅读最新更新时间:2024-11-17 16:46

uboot-2011.12移植到S3C2440(序四)—— uboot.lds分析与解析
OUTPUT_FORMAT( elf32-littlearm , elf32-littlearm , elf32-littlearm ) ;指定输出可执行文件是elf格式,32位ARM指令,小端 OUTPUT_ARCH(arm) ;指定输出可执行文件的平台为ARM ENTRY(_start) ;指定输出可执行文件的起始代码段为_start. SECTIONS { . = 0x00000000 ; 指明目标代码的起始地址从0x0位置开始, . 代表的是当前位置 . = ALIGN(4) ; 代码以4字节对齐 .text : ;指定代码段 { cpu/arm920t/start
[单片机]
非接触ID卡在自动识别系统中的应用
    摘要: 非接触ID卡具有数据读数速度快、抗干扰能力强、价格低等特点,在自动识别系统中有良好的应用前景。本文分析非接触ID卡的数据读取及数据校验的操作,并给出相应的源程序。     关键词: 非接触ID卡 自动识别 数据读取及校验 随着半导体芯片技术的不断发展,自动识别系统(如巡更系统、门禁系统、考勤系统、仓储管理系统、流水线生产自动化管理系统等)所采用的ID标识也在不断地更新,从条形码、磁卡到智能IC卡、非接触ID卡,都有各自的特点及适用场合,表1列出了几种ID标识的特性与区别。在实践应用过程中,用户可根据不同的使用环境及功能要求选择不同的ID标识。 非接触ID卡的数据读取具有非常接触的特性,即根据
[测试测量]
目前语音识别的技术现状如何?
目前,主流语音识别框架还是由 3 个部分组成:声学模型、语言模型和解码器,有些框架也包括前端处理和后处理。随着各种深度神经网络以及端到端技术的兴起,声学模型是近几年非常热门的方向,业界都纷纷发布自己新的声学模型结构,刷新各个数据库的识别记录。由于中文语音识别的复杂性,国内在声学模型的研究进展相对更快一些,主流方向是更深更复杂的神经网络技术融合端到端技术。 2018年,科大讯飞提出深度全序列卷积神经网络(DFCNN),DFCNN 使用大量的卷积直接对整句语音信号进行建模,主要借鉴了图像识别的网络配置,每个卷积层使用小卷积核,并在多个卷积层之后再加上池化层,通过累积非常多卷积池化层对,从而可以看到更多的历史信息。 2018年
[嵌入式]
目前语音<font color='red'>识别</font>的技术现状如何?
指纹识别要想在物联网大规模应用,安全等级需要提升一个等级
近几年来,指纹识别在智能手机上得到了大规模的应用,但随着市场竞争越来越激烈,不少指纹识别相关企业开始把目光转向物联网市场,比如智能门锁、智能家居、智能门禁等应用场景。 近几年来,指纹识别在智能手机上得到了大规模的应用,但随着市场竞争越来越激烈,不少指纹识别相关企业开始把目光转向物联网市场,比如智能门锁、智能家居、智能门禁等应用场景。不过,指纹识别要想在这些物联网市场大规模应用的话,其实还有不少问题需要解决,这首当其冲的便是安全问题。 一直以来,指纹识别技术就没有停止过破解与反破解的博弈,在了解了指纹识别产品的工作原理和识别算法后,总有人能找到一些破解方法。“一方面我们要先于恶意攻击者发现问题;另一方面我们要能够督促业界修复问题,避
[安防电子]
一种USB与DSP指纹识别系统的设计实现
  指纹的不变性和唯一性使指纹识别技术成为目前应用最广泛的身份验证。近年来随着最新信息处理技术的发展、算法理论的研究以及计算机硬件的高集成和低成本,指纹识别的可靠性不断提高,实用范围不断扩大。由于识别系统数据量较大且要求尽快传入上位机进行处理,所以合理设计数据传输通道成为设计的一个重点。   通用串行总线USB(Universal Serial Bus)是一种新型接口技术。它是由Intel、Microsoft等公司为解决日益增加的外设与有限的主板插槽与端口之间的矛盾而制定的一种串行通信标准。USB具有以下特点:(1)有较高的传输速率。USBl.1支持全速和低速两种方式,全速速率为12Mbps,低速速率为1.5Mbps;USB2.0除
[嵌入式]
三星64层NAND闪存宣布量产
三星电子 15 日宣布,最新 64 层 256GB V-NAND 闪存已进入量产,与此同时,三星还将扩展包含服务器、PC 与行动装置的储存解决方案。 64 层 V-NAND 闪存用称为第四代 V-NAND 芯片,南韩 ITtimes.com 报导指出,三星为稳固领先优势,打算于年底把第四代芯片占每月生产比重拉高至五成以上。 其实,三星今年 1 月已先为某关键客户,打造第一颗内含 64 层 V-NAND 芯片的固态硬盘(SSD),自此之后,三星持续朝行动与消费型储存市场开发新应用,务求与 IT 产业同步化。 三星 64 层 V-NAND 闪存传输速度达每秒 1Gb,市面上同类型内存产品中无人能出其右。 若与 48 层产品相比,64
[手机便携]
人机交互技术换代,如何搭上通往3D手势识别的直通车?
人机交互可以算是对电子产品的用户体验影响最直接的一个技术。当年苹果借由电容触控屏,将键盘、鼠标、轨迹球等一众技术拉下马的景象,相信很多人还记忆犹新。而今天,人机交互技术似乎又来到了升级换代的门槛上,诱惑着开发者和用户往里走的种种因素中,手势识别技术绝对算是最强的一股力量,特别是3D手势识别。毕竟,举手投足间就可以让电子设备对用户的 心思 做出响应,将是一件很酷的事情。 与触控技术在2D平面上的写写画画相比,3D手势识别加上了一个Z轴 深 度的测量,使其可以承载更多人机交互信息,可以实现非接触的感应和控制,给产品的设计带来更大的想象空间。3D手势识别最为知名的应用,恐怕要算是微软推出的体感游戏外设Kinect了。它让游戏玩家抛弃了
[嵌入式]
人机交互技术换代,如何搭上通往3D手势<font color='red'>识别</font>的直通车?
GD32的FLASH读、擦除、写操作
一,GD32的flash特征 1、在flash的前256K字节空间内,CPU执行指令零等待;在此范围外,CPU读取指令存在较长延时; 2、对于flash大于512KB(不包括等于512KB)的GD32F10x_CL和GD32F10x_XD,使用了两片闪存;前512KB容量在第一片闪存(bank0)中,后续的容量在第二片闪存(bank1)中; 3、对于flash容量小于等于512KB的GD32F10x_CL和GD32F10x_HD,只使用了bank0; 4、对 于 GD32F10x_MD , 闪 存 页 大 小 为 1KB 。GD32F10x_CL 和 GD32F10x_HD ,GD32F10x_XD,bank0的闪存页大小为2KB
[单片机]
GD32的<font color='red'>FLASH</font>读、擦除、写操作
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved