请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMDS64EVM工具/软件:
您好:
我使用 GPMC 读取外部 NAND 存储器。
我的 dts 文件如下所示:
&gpmc0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mygpmc1_pins_default>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <2 0 0x00 0x50000000 0x1000000>; /* CS2 @addr 0x50000000, size 0x1000000 */
nand@2,0 {
compatible = "ti, am64-nand";
reg = <2 0 0x100>; //cs2
bank-width = <2>;
nand-bus-width = <16>;
gpmc,mux-add-data = <2>; // 2 for address-data multiplexing mode.
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <190>;
gpmc,cs-wr-off-ns = <190>;
gpmc,adv-on-ns = <0>;
gpmc,adv-rd-off-ns = <40>;
gpmc,adv-wr-off-ns = <40>;
gpmc,oe-on-ns = <80>;
gpmc,oe-off-ns = <190>;
gpmc,we-on-ns = <80>;
gpmc,we-off-ns = <170>;
gpmc,rd-cycle-ns = <190>;
gpmc,wr-cycle-ns = <190>;
gpmc,access-ns = <150>;
gpmc,page-burst-access-ns = <6>;
gpmc,bus-turnaround-ns = <12>;
gpmc,cycle2cycle-delay-ns = <20>;
gpmc,wr-data-mux-bus-ns = <90>;
gpmc,wr-access-ns = <190>;
gpmc,cycle2cycle-samecsen;
gpmc,cycle2cycle-diffcsen;
};
}
使用我的代码中的 memcpy 来读取存储器、此器件似乎可以正常工作。
我想知道如何实现 DMA 传输以加快存储器读取速度。
在 DTS 文件中添加以下行是否足够?
ti,nand-xfer-type = "prefetch-dma";
通过添加该线路、CPU 负载似乎相同、我希望此负载会随着 DMA 传输的使用而降低。
是否有任何 AM64 处理器在 GPMC 上实现 DMA 的示例?
此致、
Julien