【NVMEM子系统】二、NVMEM驱动框架
创始人
2024-05-26 08:37:51
0
img
个人主页:董哥聊技术
我是董哥,嵌入式领域新星创作者
创作理念:专注分享高质量嵌入式文章,让大家读有所得!
img

文章目录

    • 1、前言
    • 2、驱动框架
    • 3、源码目录结构
    • 4、用户空间下的目录结构

1、前言

NVMEM SUBSYSTEM,该子系统整体架构不算太大,还是比较容易去理解的,下面我们一起去一探究竟!

NVMEM(Non Volatile Memory),该子系统主要用于实现EEPROMEfuse等非易失存储器的统一管理。

在早期,像EEPROM驱动是存放于/drivers/misc目录下,由于没有做到好的抽象,每次需要去访问相应内存空间,都需要去复制几乎一样的代码,去注册sysfs,这是一个相当大的抽象泄露。

NVMEM子系统就是为了解决以往的抽象泄露问题。
 

2、驱动框架

该驱动框架较为简单,也适合初学者去熟悉基本的驱动框架。

image-20230210071204144

应用层:可以通过用户空间所提供的文件节点,来读取或者修改nvmem存储器的数据。

NVMEM 核心层:统一管理NVMEM设备,向上实现文件系统接口数据的传递,向下提供统一的注册,注销nvmem设备接口。

NVMEM 总线驱动:注册NVMEM总线,实现NVMEM控制器的底层代码实现。

TIP

nvmem子系统提供读写存储器的接口有两种,一种是通过文件系统读写,一种是在内核驱动直接读写。

对于EEPROM,其可以进行读写操作,而对于efuse,更多用于读取密钥信息,进而判断镜像是否被篡改,在用户空间是不允许被更改的。

这种是通过驱动提供的开放接口,直接获取指定位置的数据,详细的后面展开来说。
 

3、源码目录结构

ketnel
│   └── driver
│   │   └── nvmem
│   │   │   ├──	core.c					# NVMEM核心层
│   │   │   ├──	rockchip-efuse.c		# NVMEM总线驱动

 

4、用户空间下的目录结构

我们可以在用户空间去读取/写入数据,其所在的目录:/sys/bus/nvmem/devices/dev-name/nvmem

hexdump /sys/bus/nvmem/devices/qfprom0/nvmem0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00
0000000 0000 0000 0000 0000 0000 0000 0000 0000
...
*
0001000
img

点赞+关注,永远不迷路

img

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...