[U-Boot] [PATCH v2 0/2] OMAP/GPMC: speed up NAND read access

Gupta, Pekon pekon at ti.com
Thu Jun 26 08:08:31 CEST 2014


Hi Daniel,

>From: Daniel Mack [mailto:zonque at gmail.com]
>
>Resending this since I got no replies on the first version.
>I also fixed up the commit log of #1.
>
I plan to test this, but there is still a long pending list of patches which
for me to test in kernel and u-boot. So it might take bit time.
But really thanks much for this feature addition.

Just a minor feedback, if you like it...
GPMC controller support various transfer modes
- POLLED: <default mode>
- PREFETCH_POLLED : <as added in this patch>
- PREFETCH_IRQ: <not implemented/required>
- PREFETCH_DMA: <not implemented/required>

(1) Will it be okay to use following config names, this would be synonymous
to the xfer-modes DT binding used in kernel ?
CONFIG_NAND_OMAP_XFER_MODE_POLLED
CONFIG_NAND_OMAP_XFER_MODE_PREFETCH_POLLED

(2) It would be good if you can make "PREFETCH_POLLED" mode as "default"
And instead make "POLLED" mode selectable.
#ifdef CONFIG_NAND_OMAP_XFER_MODE_POLLED
	/* old behavior */
#else  /* 
	/* default PREFETCH_POLLED mode */
#endif

However, let me first test your patch, and these minor nit-picks
(if required) can be done later.

Thanks..
with regards, pekon
>------------
>
>I spent some time looking into boot times of AM335x platforms. One big
>improvement I made came with adding support for GPMC prefetch mode,
>which gave a speed-up of NAND reads of roughly factor 2.
>This is what patch #1 does.
>
>Note that this is currently limited to read operations in 8-bit mode, but
>I believe it could be easily extended to 16-bit operations if anyone has
>hardware to test it on. Using the engine for write mode speed
>improvements should also be doable, but I didn't spend time on it yet.
>That can be added as a separate patch later.
>
>Patch #2 decreases the GPMC memory map window size from 256MiB to 16MiB.
>Admittedly, I'm not quite sure about the reason, but a read from
>offset 0 in this memory area will freeze U-Boot instantly if the size
>is configured to 256MiB. As contents of the FIFO are accessed in a
>pseudo-mode from offset 0 anyway, it doesn't really matter.
>
>What I also did to further speed up my boot was to tweak the GPMC
>parameters for the NAND chip on our boards, but that's not part of this
>patch set, and probably deserves a little more cleanup.
>
>Test results and feedback very welcome.
>
>Thanks,
>Daniel
>
>
>Daniel Mack (2):
>  mtd: OMAP: Enable GPMC prefetch mode
>  ARM: omap-common: gpmp: decrease memory region size to 16MiB
>
> arch/arm/cpu/armv7/omap-common/mem-common.c |   2 +-
> doc/README.nand                             |   5 ++
> drivers/mtd/nand/omap_gpmc.c                | 115 +++++++++++++++++++++++++++-
> include/linux/mtd/omap_gpmc.h               |   6 +-
> 4 files changed, 124 insertions(+), 4 deletions(-)
>
>--
>1.9.3



More information about the U-Boot mailing list