首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux nand flash驱动编写

很长一段时间,nand flash都是嵌入式的标配产品。nand flash价格便宜,存储量大,适用于很多的场景。现在很普及的ssd,上面的存储模块其实也是由一块一块nand flash构成的。...对于linux嵌入式来说,开始uboot的加载是硬件完成的,中期的kernel加载是由uboot中的nand flash驱动完成的,而后期的rootfs加载,这就要靠kernel自己来完成了。...tests/ 2、nand在mtd下面,是作为一个单独目录保存的,这时应该查看nand下的Kconfig config MTD_NAND_S3C2410 tristate "NAND Flash...config MTD_NAND_S3C2410_DEBUG bool "Samsung S3C NAND driver debug" depends on MTD_NAND_S3C2410...module_platform_driver(s3c24xx_nand_driver); 5、继续分析s3c24xx_nand_probe函数 s3c2410_nand_init_chip(info,

2.8K42
您找到你想要的搜索结果了吗?
是的
没有找到

Linux SPI-NAND 驱动开发指南

文章目录 Linux SPI-NAND 驱动开发指南 1 概述 1.1 编写目的 1.2 适用范围 1.3 相关人员 3 流程设计 3.1 体系结构 3.2 源码结构 3.3 关键数据定义 3.3.1...1.3 相关人员 Nand 模块开发人员,及应用开发人员等 2 术语、缩略语及概念 MTD:(Memory Technology device)是用于访问存储设备的 linux 子系统。...nand 本身的物理性质导致在出厂和正常使用过程中都会产生坏块 3 流程设计 3.1 体系结构 NAND MTD/UBI 驱动主要包括 5 大组件,如下图: ​ 图 3-1: UBI 架构 说明:...BIT(0) #define HAS_EXT_ECC_STATUS BIT(1) enum ecc_status_shift ecc_status_shift; int EccFlag...byte 获取 ecc status,则配置 EccFlag = HAS_EXT_ECC_STATUS • EccType:设置 ecc 值对应的状态关系 • EccProtectedType:在 spare

3.8K50

Nand Flash驱动(实现初始化以及读操作)

本节来学习裸机下的Nand Flash驱动,本节学完后,再来学习Linux下如何使用Nand Flash驱动 Linux中的Nand Flash驱动,链接如下: (分析MTD层以及制作Nand Flash...            1个设备=2048块Block 1块Block=64页Pages 1页=(2K+64)B            (因为每个地址里都存放了一个字节,所以用B表示) 其中64B是存放ECC...的OOB地址,(ECC:存放判断位反转的校验码) ?...Nand Flash 缺点: 读数据容易位反转 可以通过ECC编码器值来判断读数据是否位反转,若位反转则重新读数据 过程: 写:写页数据,生成ECCECC写入到OBB页地址里 读:读出页数据,然后判断...OOB页地址里的ECC来比较是否出现位反转,是否重新读数据 读OOB方法: 读整个Nand Flash时,是读不出页里面的OBB地址,比如读2049这个地址数据时,是读的第二页上的第2个地址: ?

1.8K60

服务器内存之争:ECC与非ECC的较量

可靠性: 由于其纠正能力,ECC内存在服务器环境中非常可靠,可以减少因内存故障而导致的服务器停机时间。 成本: 由于其高级功能,ECC内存通常比非ECC内存更昂贵。...2.1 特点 性能: 由于不需要额外的校验计算,非ECC内存通常比ECC内存具有稍微更高的性能。 成本: 非ECC内存相对便宜,适用于预算有限的服务器。...2.3 缺点 与 ECC 内存相比,非 ECC 内存没有错误检测和修复的功能。这意味着如果数据发生错误,非 ECC 内存无法修复错误,也无法通知系统发生了错误。...然而,非 ECC 内存在某些方面是有优势的。 2.4 优点 首先,非 ECC 内存比 ECC 内存更便宜。因为 ECC 内存需要额外的硬件来生成和处理校验码,所以它们通常比非 ECC 内存更贵。...并非所有的服务器主板都支持 ECC 内存,所以在购买 ECC 内存之前,一定要检查你的硬件是否支持。 四、总结 ECC 内存和非 ECC 内存都有各自的优点和缺点。

1.6K40

Nand Flash驱动(实现初始化以及读操作)

本节来学习裸机下的Nand Flash驱动,本节学完后,再来学习Linux下如何使用Nand Flash驱动 Linux中的Nand Flash驱动,链接如下: (分析MTD层以及制作Nand Flash...            1个设备=2048块Block 1块Block=64页Pages 1页=(2K+64)B            (因为每个地址里都存放了一个字节,所以用B表示) 其中64B是存放ECC...的OOB地址,(ECC:存放判断位反转的校验码) Nand Flash 缺点: 读数据容易位反转 可以通过ECC编码器值来判断读数据是否位反转,若位反转则重新读数据 写过程: 1)写页数据 2)然后生成...ECC 3)将ECC写入到OBB页地址里(写数据是不会出现位反转) 读过程: 1)读出页数据,然后生成临时ECC(此时ECC可能有错) 2)然后读出OOB页地址里的ECC 3)比较两个ECC,判断是否出现位反转...NFCONT *((unsigend int *)0X4E000000); //控制寄存器(用来使能nandflash控制器以及ECC编码器,还有控制芯片使能CE脚) #define

1.1K40

NAND FLASH_NAND器件

(支持每512字节需要ECC位数小于或等于4位的NAND Flash)....在网络网络摄像机的应用中为了节约成本,有一些用户使用了NAND Flash启动方式.图1就是从上电到Linux启动的一个概要的流程图.首先RBL(ROM boot loader)从NAND上读取UBL(...DDR里面运行的U-Boot又从NAND Flash里面读取Linux内核代码,并且复制到DDR上,然后启动内核.这样DM365的系统就从上电到完成Linux内核启动,然后就可以运行相应的应用程序了....图1 NAND Flash启动流程 下面我们会一步一步的介绍从上电到Linux启动是如何实现的....表1 NAND UBL描述符 一旦用户需要的启动设置配置好,RBL就会从0x0020第地址开始把UBL搬移到ARM内存.在从NAND读取UBL的过程中中,RBL会使用4位的硬件ECCNAND Flash

63350

ECC(指令纠错) 内存

什么是ECC内存 对于大多数企业来说,消除数据损坏是一项关键任务——这正是 ECC(纠错码)内存的目的。...ECC 内存的工作原理 ECC 内存包含附加内存位和内存控制器,这些控制器用于控制模块上附加芯片中的附加位。...优势和劣势 在金融等行业以及科学界,ECC 内存对于维持数据完整性至关重要。 大多数服务器内存也是 ECC 内存。 ECC 内存进一步减少了数据崩溃情况,这对于多用户服务器应用程序非常重要。...与非 ECC 内存相比,ECC 内存通常更昂贵,速度可能稍慢。 其他系统组件(例如,CPU 和主板)也必须支持 ECC 内存。...如何看内存是否启用ECC 使用AIDA64 或Everest软件在内存,找到错误纠正,可以看到 ECC 是否启用或禁用。

4.5K10

ECC检验与纠错

引入ECC   ECC:Error Checking and Correction,是一种差错检测和修正的算法。   NAND闪存在生产和使用中都会有坏块产生,BBM就是坏块的管理机制。...(2)ECC的保存:ECC的签名一般来说都保存在NAND页后部的SA区域。 (3)数据从NAND读取时:ECC模块回去读取ECC签名,并对照相同与否来发现出现的错误。...上图是个4KB页的NAND闪存(SA区64字节) (1)每当一个page写入NAND闪存,数据会通过ECC引擎,创造独特的ECC签名。...(2)数据和对应的ECC签名存都存放在NAND闪存里,数据放在数据区,ECC签名放在SA区。 (3)当需要读取数据时,数据和ECC签名一起被送往主控制器,此时新的ECC签名被生成。...ECC评价        ECC的能力也影响到NAND 闪存的寿命和数据保存期。

3.1K10

Nand vs eMMC

可以看到 eMMC 其实是在 Nand flash 的基础上封装了一个 Flash Controller,然后和 Host Processor 连接,而 NAND flash 是直接和 Host Processor...的时候,并不是直接把数据写进去读出来这么简单,而是要通过一套叫做 FTL(全称 Flash translation layer) 的软件,对 Nand 进行管理,做坏块检测、ECC 校验,甚至读写速度优化...可以看到,直接使用 Nand flash 的工作量还是比较大的。...而单纯的 Nand,读写速度就慢了很多,只有几十 MB 甚至几 MB。 如何选型 ? ? 上面这两幅图分别来自东芝和三星官网,它们是比较专业的 Nand 和 eMMC 生产商。...另外一个选型依据就是软件复杂度,eMMC 由于不需要 FTL,软件会简单很多,开源的 U-Boot、Linux Kernel ,只要有对应的 MMC 控制器驱动,拿来就能直接用,而 Nand 除了控制器驱动外

2.9K10

国产软硬件龙芯系列迅为2K1000开发板配置 nand flash

pmon 支持俩种接口类型的 nand flash,一个是 nand 控制器接口,一个是 spi 接口。龙芯核心板上板载了一个 nand 控制器接口的 flash。...在 pmon 默认的 bsp 中,默认添加了代码 select nand,所以这里我们不必要在添加代码 select nand,而select 指定的是后面的参数 nand 被选中,选中了 nand 参数以后...ls2k_nand_init 函数定义的 sys/dev/nand/ls2k-nand.c 驱动文件,通过阅读代码我们可以找到对 mtd 结构初始化的驱动函数为 ls2k_nand_init_mtd,...通过访问 mtd 就可以访问 nand 控制器, 在 ls2k_nand_init_mtd 函数中,最关键的是对 ECC 的选择,在 pmon 中默认的 ECCNAND_ECC_SOFT 和 NAND_ECC_SOFT_BCH...BCH 校验比 ECC 校验有更强的纠错能力,龙芯 BSP 里面默认使用的是 ECC 校验,代码如下: 如果我们需要使用 BCH 校验,需要在在 Targets/LS2K/conf/ls2k 中定义

84420

yaffs_ecc.c

1.ECC可以纠正一个256字节的页数据的单个位错误,因此,这样的两个ECC块上纠正512字节的NAND页。...在Nand中使用3个字节存放校验结果,多余的两个Bit位置1。存放次序如下表所示: ? 以K9F1208为例,每个Page页包含512字节的数据区和16字节的OOB区。...ECC纠错算法 当往NAND Flash的page中写入数据的时候,每256字节我们生成一个ECC校验和,称之为原ECC校验和,保存到PAGE的OOB(out-of-band)数据区中。...当从NAND Flash中读取数据的时候,每256字节我们生成一个ECC校验和,称之为新ECC校验和。...假设ecc_code_raw[3] 保存原始的ECC校验码,ecc_code_new[3] 保存新计算出的ECC校验码,其格式如下表所示: 对ecc_code_raw[3] 和 ecc_code_new

74950

SD NAND介绍:高效可靠的存储解决方案

SD NAND是一种创新的存储芯片,可直接贴片,又名贴片式TF卡、贴片式T卡、贴片式SD卡、贴片式内存卡、SD Flash、Nand Flash等。...ECC(错误校正码):内置ECC功能,自动检测和纠正数据传输中的错误,提高数据的可靠性。...3.SD NAND与其他存储产品的对比SD NANDSPI NANDRaw NAND接口SD/SPISPI并口ecc有有部分有坏块管理有————磨损平均有————垃圾回收有————掉电保护有————封装...LGA-8/LGA-16WSON8TSOP48/BGA63SD NAND比TF卡更适合嵌入式系统,体积小,焊接稳定,不易脱落,内置坏块管理和ECC算法,减少CPU负荷,而TF卡更适用于消费电子设备。...与eMMC类似,内部完成ECC校验、坏块管理、磨损平均、掉电保护、垃圾回收等,能极大的提升开发效率,加速产品上市时间。

18410
领券