[PATCH v2 02/18] am335x, guardian: mem: Add board dependent mem values

Gireesh.Hiremath at in.bosch.com Gireesh.Hiremath at in.bosch.com
Thu Apr 22 15:31:36 CEST 2021


From: Moses Christopher <BollavarapuMoses.Christopher at 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.Christopher at in.bosch.com>
---
On 06/01/21 9:01 pm, Gireesh.Hiremath at in.bosch.com wrote:
> From: Moses Christopher <BollavarapuMoses.Christopher at 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.Christopher at 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.Christopher at in.bosch.com>
+ *
+ * Copied from:
+ *		arch/arm/include/asm/arch-am33xx/mem.h
+ *
+ * Initial Code from:
+ *		Mansoor Ahamed <mansoor.ahamed at ti.com>
+ *		Richard Woodruff <r-woodruff2 at 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



More information about the U-Boot mailing list