public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] lpc32xx: move common SLC NAND defines to arch/config.h
@ 2015-08-11 16:57 Vladimir Zapolskiy
  2015-08-11 20:16 ` LEMIEUX, SYLVAIN
  2015-08-18 17:53 ` [U-Boot] " Tom Rini
  0 siblings, 2 replies; 5+ messages in thread
From: Vladimir Zapolskiy @ 2015-08-11 16:57 UTC (permalink / raw)
  To: u-boot

A number of LPC32xx SLC NAND defines is dictated by controller
hardware limits and OOB layout is defined by operating system, the
definitions are common for all users. Since those macro are used
in out of NAND SLC driver code (simple NAND SPL framework), they can
not be placed into the driver, therefore move them from board config
files to arch/config.h

The change also adds OOB layout details specific to small page NAND
devices taken from Linux kernel.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
---
The change is based on
* https://patchwork.ozlabs.org/patch/497298/
* https://patchwork.ozlabs.org/patch/497299/

 arch/arm/include/asm/arch-lpc32xx/config.h | 29 +++++++++++++++++++++++++++++
 include/configs/devkit3250.h               | 14 +++-----------
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/arch/arm/include/asm/arch-lpc32xx/config.h b/arch/arm/include/asm/arch-lpc32xx/config.h
index d57bc48..d161ad2 100644
--- a/arch/arm/include/asm/arch-lpc32xx/config.h
+++ b/arch/arm/include/asm/arch-lpc32xx/config.h
@@ -55,6 +55,35 @@
 /* Ethernet */
 #define LPC32XX_ETH_BASE ETHERNET_BASE
 
+/* NAND */
+#if defined(CONFIG_NAND_LPC32XX_SLC)
+#define NAND_LARGE_BLOCK_PAGE_SIZE	0x800
+#define NAND_SMALL_BLOCK_PAGE_SIZE	0x200
+
+#if !defined(CONFIG_SYS_NAND_PAGE_SIZE)
+#define CONFIG_SYS_NAND_PAGE_SIZE	NAND_LARGE_BLOCK_PAGE_SIZE
+#endif
+
+#if (CONFIG_SYS_NAND_PAGE_SIZE == NAND_LARGE_BLOCK_PAGE_SIZE)
+#define CONFIG_SYS_NAND_OOBSIZE		64
+#define CONFIG_SYS_NAND_ECCPOS		{ 40, 41, 42, 43, 44, 45, 46, 47, \
+					  48, 49, 50, 51, 52, 53, 54, 55, \
+					  56, 57, 58, 59, 60, 61, 62, 63, }
+#define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
+#elif (CONFIG_SYS_NAND_PAGE_SIZE == NAND_SMALL_BLOCK_PAGE_SIZE)
+#define CONFIG_SYS_NAND_OOBSIZE		16
+#define CONFIG_SYS_NAND_ECCPOS		{ 10, 11, 12, 13, 14, 15, }
+#define CONFIG_SYS_NAND_BAD_BLOCK_POS	0
+#else
+#error "CONFIG_SYS_NAND_PAGE_SIZE set to an invalid value"
+#endif
+
+#define CONFIG_SYS_NAND_ECCSIZE		0x100
+#define CONFIG_SYS_NAND_ECCBYTES	3
+#define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \
+						CONFIG_SYS_NAND_PAGE_SIZE)
+#endif	/* CONFIG_NAND_LPC32XX_SLC */
+
 /* NOR Flash */
 #if defined(CONFIG_SYS_FLASH_CFI)
 #define CONFIG_FLASH_CFI_DRIVER
diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h
index cc6a53e..d3b7620 100644
--- a/include/configs/devkit3250.h
+++ b/include/configs/devkit3250.h
@@ -111,7 +111,10 @@
 #define CONFIG_LPC32XX_NAND_SLC_RHOLD		200000000
 #define CONFIG_LPC32XX_NAND_SLC_RSETUP		50000000
 
+#define CONFIG_SYS_NAND_BLOCK_SIZE		0x20000
+#define CONFIG_SYS_NAND_PAGE_SIZE		NAND_LARGE_BLOCK_PAGE_SIZE
 #define CONFIG_SYS_NAND_USE_FLASH_BBT
+
 #define CONFIG_CMD_NAND
 
 /*
@@ -199,17 +202,6 @@
 #define CONFIG_SPL_NAND_SUPPORT
 #define CONFIG_SPL_NAND_DRIVERS
 
-#define CONFIG_SYS_NAND_BLOCK_SIZE	0x20000
-#define CONFIG_SYS_NAND_PAGE_SIZE	0x800
-#define CONFIG_SYS_NAND_ECCSIZE		0x100
-#define CONFIG_SYS_NAND_OOBSIZE		64
-#define CONFIG_SYS_NAND_ECCPOS		{ 40, 41, 42, 43, 44, 45, 46, 47, \
-					  48, 49, 50, 51, 52, 53, 54, 55, \
-					  56, 57, 58, 59, 60, 61, 62, 63, }
-#define CONFIG_SYS_NAND_ECCBYTES	3
-#define CONFIG_SYS_NAND_PAGE_COUNT	64
-#define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
-
 #define CONFIG_SPL_NAND_ECC
 #define CONFIG_SPL_NAND_SOFTECC
 
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-08-18 17:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-11 16:57 [U-Boot] [PATCH] lpc32xx: move common SLC NAND defines to arch/config.h Vladimir Zapolskiy
2015-08-11 20:16 ` LEMIEUX, SYLVAIN
2015-08-11 22:09   ` Vladimir Zapolskiy
2015-08-12 19:31     ` LEMIEUX, SYLVAIN
2015-08-18 17:53 ` [U-Boot] " Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox