
Hi Daniel,
From: Gupta, Pekon
Hi Daniel,
From: Daniel Mack [mailto:zonque@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
My apologies, sorry I'm unable to test this patch-set. But as I have already reviewed it. And apart from minor comments for rest of things Reviewed-by: Pekon Gupta pekon@ti.com
with regards, pekon