[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