This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux启动时间优化之二:优化NAND FLASH的读写速度

有部分客户反映,NAND FLASH的读写速度偏低,只有2~3MB/s。

对于该部分,本节将给出优化的具体建议。

1. 概述

从AM335X的TRM中,可以知道, AM335X对NAND flash的支持:

  • 支持8-bit 和16-bit的NAND FLASH;
  • 可使用BCH码(t=4,8或16)或Hamming码最高支持16-bit的ECC校验。

从文档中,我们可以支持,AM335X对NAND FLASH的支持,是通过GPMC(General Purpose Memory Controller)来实现的。其为外部总线接口,支持同步模式

和异步模式。对于NAND flash的支持,可以通过配置GPMC在异步模式下产生与对应NAND FLASH匹配的访问时序来进行。同时GPMC模块中带有ECC校验模块,用于对NAND FLASH 的操作进行ECC校验。Prefetch and Write-posting engine用于加速NAND 的读写速度。

2. 优化方法

从上一章节,我们可以了解到,对于NAND flash的读写速度的优化,会涉及到两个方面:

  • 优化GPMC的配置参数,以匹配所使用的NAND flash的具体读写时序要求;
  • 使能prefetch and write-posting engine。

(1)优化GPMC的配置参数

以Samsung 的K9F1G08U0D为例, 其NAND flash的基本信息如下:

  • 128Mx8bit
  • page size: (2K+64) Byte
  • Block size: (128K+4K) Byte