summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorJohannes Zink <j.zink@pengutronix.de>2022-09-30 14:15:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2022-10-05 09:26:47 +0200
commita9154b44b1ed9533357520cdfcc27173596d129e (patch)
treeb602e213c96179e0ed477a1007b3a6079e655726 /common
parent9d5c18259a3f98ff0dd222e9541db4374451390d (diff)
downloadbarebox-a9154b44b1ed9533357520cdfcc27173596d129e.tar.gz
barebox-a9154b44b1ed9533357520cdfcc27173596d129e.tar.xz
imx-bbu-nand-fcb: isolate i.MX28 specific parts
imx28_fcb_create() reads back some parameters from the BCH and GPMI unlike imx6_fcb_create() which has same parameters hardcoded. For i.MX7, we will need a mixture of both: Some values are hardcoded (albeit differently than i.MX6), while some others need be read from the BCH. In preparation for adding i.MX7 support, move common defines out of the #ifdef CONFIG_ARCH_IMX28 and prefix constants that are not applicable to i.MX6 and later with an IMX28_ prefix. No such constants are currently in use. Signed-off-by: Johannes Zink <j.zink@pengutronix.de> Tested-by: Johannes Zink <j.zink@pengutronix.de> # innocomm S810 Link: https://lore.barebox.org/20220930121553.335796-5-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r--common/imx-bbu-nand-fcb.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/common/imx-bbu-nand-fcb.c b/common/imx-bbu-nand-fcb.c
index bde0b227f8..f268503f38 100644
--- a/common/imx-bbu-nand-fcb.c
+++ b/common/imx-bbu-nand-fcb.c
@@ -1393,9 +1393,6 @@ int imx6_bbu_nand_register_handler(const char *name, unsigned long flags)
return ret;
}
-#ifdef CONFIG_ARCH_IMX28
-#include <mach/imx28-regs.h>
-
#define GPMI_TIMING0 0x00000070
#define GPMI_TIMING0_ADDRESS_SETUP_MASK (0xff << 16)
#define GPMI_TIMING0_ADDRESS_SETUP_OFFSET 16
@@ -1413,19 +1410,28 @@ int imx6_bbu_nand_register_handler(const char *name, unsigned long flags)
#define BCH_FLASHLAYOUT0_NBLOCKS_OFFSET 24
#define BCH_FLASHLAYOUT0_META_SIZE_MASK (0xff << 16)
#define BCH_FLASHLAYOUT0_META_SIZE_OFFSET 16
-#define BCH_FLASHLAYOUT0_ECC0_MASK (0xf << 12)
-#define BCH_FLASHLAYOUT0_ECC0_OFFSET 12
-#define BCH_FLASHLAYOUT0_DATA0_SIZE_MASK 0xfff
+#define MX28_BCH_FLASHLAYOUT0_ECC0_MASK (0xf << 12)
+#define MX28_BCH_FLASHLAYOUT0_ECC0_OFFSET 12
+#define BCH_FLASHLAYOUT0_ECC0_MASK (0x1f << 11)
+#define BCH_FLASHLAYOUT0_ECC0_OFFSET 11
+#define BCH_FLASHLAYOUT0_DATA0_SIZE_MASK 0x3ff
+#define MX28_BCH_FLASHLAYOUT0_DATA0_SIZE_MASK 0xfff
#define BCH_FLASHLAYOUT0_DATA0_SIZE_OFFSET 0
#define BCH_FLASH0LAYOUT1 0x00000090
#define BCH_FLASHLAYOUT1_PAGE_SIZE_MASK (0xffff << 16)
#define BCH_FLASHLAYOUT1_PAGE_SIZE_OFFSET 16
-#define BCH_FLASHLAYOUT1_ECCN_MASK (0xf << 12)
-#define BCH_FLASHLAYOUT1_ECCN_OFFSET 12
-#define BCH_FLASHLAYOUT1_DATAN_SIZE_MASK 0xfff
+#define BCH_FLASHLAYOUT1_ECCN_MASK (0x1f << 11)
+#define BCH_FLASHLAYOUT1_ECCN_OFFSET 11
+#define MX28_BCH_FLASHLAYOUT1_ECCN_MASK (0xf << 12)
+#define MX28_BCH_FLASHLAYOUT1_ECCN_OFFSET 12
+#define BCH_FLASHLAYOUT1_DATAN_SIZE_MASK 0x3ff
+#define MX28_BCH_FLASHLAYOUT1_DATAN_SIZE_MASK 0xfff
#define BCH_FLASHLAYOUT1_DATAN_SIZE_OFFSET 0
+#ifdef CONFIG_ARCH_IMX28
+#include <mach/imx28-regs.h>
+
static void imx28_fcb_create(struct imx_nand_fcb_bbu_handler *imx_handler,
struct fcb_block *fcb, struct mtd_info *mtd)
{