飛凌提供應用筆記和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
版權聲明:本文為博主原創,未經本人允許,禁止轉載!
點擊閱讀原文,免費申請