NOR FLASH (mx25u12835f) lock/unlock功能及linux对其支持
修改记录:v1.0,完成于2020-2-9
1 NOR FLASH (mx25u12835f) lock/unlock功能介绍
Lock/unlock功能表示对FLASH某些区域或全部进行数据保护,即在数据保护区域不允许进行Program/Erase操作。根据数据手册介绍,NOR FLASH(mx25u12835f)有两种模式的数据保护模式:BP保护模式和单块保护模式。这两种方式由Secure Register中WPSEL位决定。
- 1 单块保护模式
当Secure Register中WPSEL=1时表示单块保护模式。在此模式下FLASH内存分为256个64KB块,其中第0个块和第255个块中每4KB由SRAM中一个bit保护,其它每个64KB块由一个bit保护。如下图所示:
每个块(无论4KB块还是64KB块)可通过SBLK/SBULK命令进行lock/unlock。当设置为1时为保护状态,不允许此块进行Program/Erase操作。当设置为0时可以正常进行Program/Erase操作。
命令GBLK/GBULK可以对整个FLASH区域进行保护。
- 2 BP保护模式
当Secure Register中WPSEL=0时表示BP保护模式。在该模式下由Status Register中BP0~3决定被保护区域范围。整个FLASH同样也分成256个64KB块,BP0~3=[0000]表示不进行任何保护,BP0~3=[0001]表示第0块被保护,BP0~3=[0010] 表示第0-1块被保护,BP0~3=[0011] 表示第0-3块被保护…BP0~3=[0111] 表示第0-63块被保护,BP0~3=[1000] 表示第0-255块被保护,BP0~3=[1XXX]表示整个255块被保护。其中Configuration Register中TB位表示是从上到下还是从下到上进行保护。
当TB=0时,保护区域如下所示:
当TB=1时,保护区域如下所示:
2 Linux对lock/unlock功能的支持分析
当前Linux代码(5.2-rc3)中SPI-NOR代码框架并不支持对单块保护模式,而对BP模式的支持仅支持3BIT模式即BP0~2。同时对于3BIT BP模式仅部分厂商的FLASH支持。
2.1 SPI-NOR代码中支持lock/unlock的FLASH类型
对于每种类型的FLASH支持的属性由flash_info->flags决定,相关属性定义如下所示:
其中lock/unlock功能由SPI_NOR_HAS_LOCK决定,如下图所示表示型号s25fl512s支持lock/unlock功能。
2.2 SPI-NOR代码lock/unlock分析
SPI-NOR代码框架中有三个与之相关的API接口:spi_nor_lock()/spi_nor_unlock()/spi_nor_is_locked()。Spi_nor_lock()用于对某区域进行保护操作;spi_nor_unlock()用于对某区域进行解保护操作;spi_nor_is_locked()用于查询某区域是否已保护。
2.2.1函数spi_nor_lock()
对于在FLASH属性中设置了SPI_NOR_HAS_LOCK标志位的FLASH,支持LOCK功能,它最终会调用函数spi_nor_lock()。流程如下所示:
其中关键步骤为:
- 读取Status Register确定当前保护的BP值;
- 确定新的BP值;
- 重新设置Status Register进行新的区域保护;
2.2.2函数spi_nor_unlock()
对于在FLASH属性中设置了SPI_NOR_HAS_LOCK标志位的FLASH,支持UNLOCK功能,它最终会调用函数spi_nor_unlock()。流程如下所示:
其中关键步骤为:
- 读取Status Register确定当前保护的BP值;
- 确定新的BP值;
- 重新设置Status Register进行新的区域保护;
2.2.3函数spi_nor_is_locked()
对于在FLASH属性中设置了SPI_NOR_HAS_LOCK标志位的FLASH,支持查询lock状态的功能,它最终会调用函数spi_nor_is_locked()。流程如下所示:
其中关键步骤为:
- 读取Status Register确定当前保护的BP值;
- 检查查询的区域是否在BP值保护范围内;
2.3 macronix类型FLASH支持lock/unlock遗留问题
虽然SPI-NOR代码框架对部分FLASH支持lock/unlock功能,但对于型号mx25u12835f的FLASH,SPI-NOR代码仍存在问题。从代码分析上来看,当前存在三个问题:
- 当前SPI-NOR代码仅支持3BIT BP,而型号mx25u12835f的FLASH上则是支持4BIT BP;
- 当前SPI-NOR代码中对查询Program/Erase完成状态在FSR寄存器中确定,而型号mx25u12835f的FLASH并没有FSR寄存器,而是在Configuration Register中定义,因此若要支持mx25u12835f,需要查询CR寄存器来确定是否完成;
- 另外TB状态,一般都定义在SR寄存器中,而号mx25u12835f的FLASH上则定义在CR寄存器;
NOR FLASH (mx25u12835f) lock/unlock功能及linux对其支持相关推荐
- Lock/Unlock Account - Active Directory
根据IsAccountLocked属性来判断Account是否Lock/Unlock,因为LDAP provider不支持IsAccountLocked属性,这里采用WinNT Provider:(注 ...
- 为什么await()后会执行lock.unlock,await()时不就释放锁了吗
为什么await()后会执行lock.unlock,await()时不就释放锁了吗 1 是的,释放锁是为了别的线程获得,是为了线程间的通信,是临时释放的,真正满足继续向下执行条件后,被唤醒后获得了锁, ...
- uboot通过u盘烧写linux内核,向Flash中烧写uboot和linux操作系统
向Flash中烧写uboot和linux操作系统 2011年03月28日 向Flash中烧写uboot和linux操作系统 ====================================== ...
- linux flash文件读取,一种基于Linux的flash文件系统存储策略
摘要:随着嵌入式系统的广泛应用,嵌入式系统中的数据存储和数据管理显得日益重要.本文主要介绍flash存储器的存储特点,Linux文件系统的两类存储策略:块式存储和线性存储,并在此基础上提出了一种改进的 ...
- dx9 lock unlock效率太低_synchronized的缺陷,Lock的诞生
一.前言 二.synchronized局限性 + Lock锁机制的引入 2.1 synchronized局限性 第一,使用synchronized,其他线程只能等待直到持有锁的线程执行完释放锁(syn ...
- linux 加速播放软件,VirtualBox 6.1首次推出Linux 5.4支持,加速的视频播放及更多功能...
VirtualBox 6.1首次推出Linux 5.4支持,加速的视频播放及更多功能 Mark Do 2019年12月14日 暂无评论 阅读 7,329 次 现在可以下载VirtualBox的主要更新 ...
- 痞子衡嵌入式:深扒i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合...
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合. 在串行 NOR Flash 热启动过程 ...
- PDPS软件虚拟仿真:Lock TCPF功能介绍与使用方法
目录 概述 使用方法 操作展示 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 概述 在使用PDPS软件进行虚拟仿真时,最重要的步骤就是对机器人位置和姿态 ...
- oracle 查询unlock,oracle account lock/unlock
oracle account lock/unlock 2016-02-01 密码错误时候仍然不断的尝试登陆oracle,在登陆10次时会被告知test用户被锁. 1.用dba角色的用户登陆,进行解锁, ...
最新文章
- Object类的用法(三)
- JS如何捆绑TypeScript声明文件
- oracle13c迁移,Oracle数据库迁移
- 驰为hi10u盘启动linux,驰为Hi10 Plus二合一平板电脑:双系统更有玩头
- [转]Java中Set的深入研究
- 前端学习(902):this指向问题
- 浅谈Normalize.css
- 图解 CSS (2): border - 边框
- rsyslog官方文档
- Centos7搭建coreseek
- Solidity 教程
- 软著的代码怎么写?软件著作权提交源代码文件有什么要求?
- 安卓电视盒子上 安装 Ubuntu 20.04 并安装 certbot 获取证书
- 一卡通管理系统需求分析
- 铺铜需要把agnd和dgnd分开_AGNDDGND 分析
- html浏览器pc端禁止缩放,如何禁止pc端浏览器缩放
- 复杂 Excel 表格导入导出的最简方法
- Win10 卸载 Cortana
- 设计模式(二):设计原则
- Nebula Graph|信息图谱在携程酒店的应用