飞凌提供应用笔记和kernel源码来看,是将Nor Flash的设备s29lxxxs看做一个MTD设备,MTD(Memory Technology
Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架。采用的驱动总线是GPMC,是TI公司特用的总线,接触过STM32的同学应该了解FSMC,跟FSMC类似,也是一种内存控制器的总线,gpmc主要用于与nandflash,norflash,fpga进行通信。nCS【7:0】:gpmc的片寻信号线(低电平有效)nADV/ALE:gpmc的地址和数据信号使能引脚 (低电平地址有效)飞凌AM6254开发板与Nor Flash的地址线与数据线是复用的基地址与区域大小的配置选择见下图,其中配置的寄存器为GPMC0_CONFIG7,对应寄存器基地址为0x3b000000,范围为0x400,其他具体介绍,可以参考,飞凌提供的原厂资料:OK6254-C_linux5.10.87+Qt5.14.2_
用户资料_R1_20220707\原厂资料\AM62x.pdf 12.4.3章节有对GPMC详细的介绍:设备树文件:arch/arm64/boot/dts/ti/OK6254-C.dts其中gpmc中的nor flash 的基地址配置在下面函数中,配置的是128MB的大小,基地址是:0x02000000文件为:drivers/memory/omap-gpmc.c 为gpmc控制器的驱动。mtd的设备驱动文件在:drivers/mtd/gpmc_nor.c,下图的分别为注册MTD设备的读写方式。以及注册MTD设备GPMC的的单次读取周期为112ns,远高于采用传统spi接口驱动的nor flash,可见AM6254的处理器的GPMC接口驱动nor
flash更有利于快速读取写入nor flash。作者:W雷, 来源:面包板社区
链接:https://mbb.eet-china.com/forum/topic/128935_1_1.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
点击阅读原文,免费申请