From: Moses Christopher <bollavarapumoses.christop...@in.bosch.com>

  - Add mem-guardian.h derived from am33xx/mem.h

    * Add GPMC config values optimized for Bosch Guardian Board
    * NAND Chip used by Bosch Guardian Board is Micron MT29F4G08ABBFA

Signed-off-by: Moses Christopher <bollavarapumoses.christop...@in.bosch.com>
---
On 06/01/21 9:01 pm, gireesh.hirem...@in.bosch.com wrote:
> From: Moses Christopher <bollavarapumoses.christop...@in.bosch.com>
> 
>   - Add mem-guardian.h derived from am33xx/mem.h
> 
>     * Add GPMC config values optimized for Bosch Guardian Board
>     * NAND Chip used by Bosch Guardian Board is Micron MT29F4G08ABBFA
> 
> Signed-off-by: Moses Christopher 
> <bollavarapumoses.christop...@in.bosch.com>

Just wondering, Isn't NAND framework moved to Driver model and
Device-tree model? In that case, these values should be obtained from DT.

Thanks and regards,
Lokesh


Hi Lokesh

NAND framework doesn't seems moved to driver model
so we obtained values in mem-guardian.h

Thanks and regards,
Gireesh Hiremath

 .../include/asm/arch-am33xx/mem-guardian.h    | 63 +++++++++++++++++++
 arch/arm/mach-omap2/am33xx/board.c            |  4 ++
 arch/arm/mach-omap2/mem-common.c              |  4 ++
 board/bosch/guardian/board.c                  |  2 +-
 4 files changed, 72 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/include/asm/arch-am33xx/mem-guardian.h

diff --git a/arch/arm/include/asm/arch-am33xx/mem-guardian.h 
b/arch/arm/include/asm/arch-am33xx/mem-guardian.h
new file mode 100644
index 0000000000..e864a0fd36
--- /dev/null
+++ b/arch/arm/include/asm/arch-am33xx/mem-guardian.h
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2006-2008
+ * Texas Instruments, <www.ti.com>
+ *
+ * (C) Copyright 2020
+ * Robert Bosch Power Tools GmbH
+ *
+ * Author
+ *             Moses Christopher <bollavarapumoses.christop...@in.bosch.com>
+ *
+ * Copied from:
+ *             arch/arm/include/asm/arch-am33xx/mem.h
+ *
+ * Initial Code from:
+ *             Mansoor Ahamed <mansoor.aha...@ti.com>
+ *             Richard Woodruff <r-woodru...@ti.com>
+ */
+
+#ifndef _MEM_GUARDIAN_H_
+#define _MEM_GUARDIAN_H_
+
+/*
+ * GPMC settings -
+ * Definitions is as per the following format
+ * #define <PART>_GPMC_CONFIG<x> <value>
+ * Where:
+ * PART is the part name e.g. M_NAND - Micron Nand Flash
+ * x is GPMC config registers from 1 to 7 (there will be 7 macros)
+ * Value is corresponding value
+ *
+ * For every valid PRCM configuration there should be only one definition of
+ * the same.
+ *
+ * The following values are optimized for improving the NAND Read speed
+ * They are applicable and tested for Bosch Guardian Board.
+ * Read Speeds rose from 1.5MiBs to over 7.6MiBs
+ *
+ * Currently valid part Names are (PART):
+ * M_NAND - Micron NAND
+ */
+#define GPMC_SIZE_256M         0x0
+#define GPMC_SIZE_128M         0x8
+#define GPMC_SIZE_64M          0xC
+#define GPMC_SIZE_32M          0xE
+#define GPMC_SIZE_16M          0xF
+
+#define M_NAND_GPMC_CONFIG1    0x00000800
+#define M_NAND_GPMC_CONFIG2    0x00030300
+#define M_NAND_GPMC_CONFIG3    0x00030300
+#define M_NAND_GPMC_CONFIG4    0x02000201
+#define M_NAND_GPMC_CONFIG5    0x00030303
+#define M_NAND_GPMC_CONFIG6    0x000000C0
+#define M_NAND_GPMC_CONFIG7    0x00000008
+
+/* max number of GPMC Chip Selects */
+#define GPMC_MAX_CS            8
+/* max number of GPMC regs */
+#define GPMC_MAX_REG           7
+
+#define DBG_MPDB               6
+
+#endif /* endif _MEM_GUARDIAN_H_ */
diff --git a/arch/arm/mach-omap2/am33xx/board.c 
b/arch/arm/mach-omap2/am33xx/board.c
index 62178f1e70..4bf0535e3c 100644
--- a/arch/arm/mach-omap2/am33xx/board.c
+++ b/arch/arm/mach-omap2/am33xx/board.c
@@ -23,7 +23,11 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/i2c.h>
+#if IS_ENABLED(CONFIG_TARGET_AM335X_GUARDIAN)
+#include <asm/arch/mem-guardian.h>
+#else
 #include <asm/arch/mem.h>
+#endif
 #include <asm/arch/mmc_host_def.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/global_data.h>
diff --git a/arch/arm/mach-omap2/mem-common.c b/arch/arm/mach-omap2/mem-common.c
index 50d5f3e9eb..2dcf0cf9c3 100644
--- a/arch/arm/mach-omap2/mem-common.c
+++ b/arch/arm/mach-omap2/mem-common.c
@@ -15,7 +15,11 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
+#if IS_ENABLED(CONFIG_TARGET_AM335X_GUARDIAN)
+#include <asm/arch/mem-guardian.h>
+#else
 #include <asm/arch/mem.h>
+#endif
 #include <asm/arch/sys_proto.h>
 #include <command.h>
 #include <linux/mtd/omap_gpmc.h>
diff --git a/board/bosch/guardian/board.c b/board/bosch/guardian/board.c
index 113838f8b7..9429454a74 100644
--- a/board/bosch/guardian/board.c
+++ b/board/bosch/guardian/board.c
@@ -29,7 +29,7 @@
 #include <asm/arch/ddr_defs.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/hardware.h>
-#include <asm/arch/mem.h>
+#include <asm/arch/mem-guardian.h>
 #include <asm/arch/mmc_host_def.h>
 #include <asm/arch/omap.h>
 #include <asm/arch/sys_proto.h>
-- 
2.20.1

Reply via email to