From: Jagan Teki <jagan@openedev.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 03/15] imx: Use IMX6_BMODE_* macros instead of numericals
Date: Fri, 24 Feb 2017 15:45:14 +0530 [thread overview]
Message-ID: <1487931326-10199-4-git-send-email-jagan@openedev.com> (raw)
In-Reply-To: <1487931326-10199-1-git-send-email-jagan@openedev.com>
Use meaningful macros IMX6_BMODE_*, instead of numerical
number in boot mode detection code.
Cc: Tim Harvey <tharvey@gateworks.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
Changes for v4:
- Add IMX6_BMODE_UART macro for uart bootmode
- Remove value assignment in enum, since all enum list is order
Changes for v3:
- Update IMX6_BMODE_* shift macros with real number instead of bitops
- %s/IMX6_BMODE_SERIAL/IMX6_BMODE_SERIAL_ROM
- Assign enums with numbers so-that it can easy to see same in RM
arch/arm/imx-common/spl.c | 40 ++++++++++++++++++-----------
arch/arm/include/asm/imx-common/sys_proto.h | 35 +++++++++++++++++++++++++
2 files changed, 60 insertions(+), 15 deletions(-)
diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
index 81fc0ca..614e05c 100644
--- a/arch/arm/imx-common/spl.c
+++ b/arch/arm/imx-common/spl.c
@@ -29,42 +29,52 @@ u32 spl_boot_device(void)
*/
if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */
return BOOT_DEVICE_UART;
+
/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
- switch ((reg & 0x000000FF) >> 4) {
+ switch ((reg & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) {
/* EIM: See 8.5.1, Table 8-9 */
- case 0x0:
+ case IMX6_BMODE_EMI:
/* BOOT_CFG1[3]: NOR/OneNAND Selection */
- if ((reg & 0x00000008) >> 3)
+ switch ((reg & IMX6_BMODE_EMI_MASK) >> IMX6_BMODE_EMI_SHIFT) {
+ case IMX6_BMODE_ONENAND:
return BOOT_DEVICE_ONENAND;
- else
+ case IMX6_BMODE_NOR:
return BOOT_DEVICE_NOR;
break;
+ }
/* Reserved: Used to force Serial Downloader */
- case 0x1:
+ case IMX6_BMODE_UART:
return BOOT_DEVICE_UART;
/* SATA: See 8.5.4, Table 8-20 */
- case 0x2:
+ case IMX6_BMODE_SATA:
return BOOT_DEVICE_SATA;
/* Serial ROM: See 8.5.5.1, Table 8-22 */
- case 0x3:
+ case IMX6_BMODE_SERIAL_ROM:
/* BOOT_CFG4[2:0] */
- switch ((reg & 0x07000000) >> 24) {
- case 0x0 ... 0x4:
+ switch ((reg & IMX6_BMODE_SERIAL_ROM_MASK) >>
+ IMX6_BMODE_SERIAL_ROM_SHIFT) {
+ case IMX6_BMODE_ECSPI1:
+ case IMX6_BMODE_ECSPI2:
+ case IMX6_BMODE_ECSPI3:
+ case IMX6_BMODE_ECSPI4:
+ case IMX6_BMODE_ECSPI5:
return BOOT_DEVICE_SPI;
- case 0x5 ... 0x7:
+ case IMX6_BMODE_I2C1:
+ case IMX6_BMODE_I2C2:
+ case IMX6_BMODE_I2C3:
return BOOT_DEVICE_I2C;
}
break;
/* SD/eSD: 8.5.3, Table 8-15 */
- case 0x4:
- case 0x5:
+ case IMX6_BMODE_SD:
+ case IMX6_BMODE_ESD:
return BOOT_DEVICE_MMC1;
/* MMC/eMMC: 8.5.3 */
- case 0x6:
- case 0x7:
+ case IMX6_BMODE_MMC:
+ case IMX6_BMODE_EMMC:
return BOOT_DEVICE_MMC1;
/* NAND Flash: 8.5.2, Table 8-10 */
- case 0x8:
+ case IMX6_BMODE_NAND:
return BOOT_DEVICE_NAND;
}
return BOOT_DEVICE_NONE;
diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h
index 99e3869..e09caeb 100644
--- a/arch/arm/include/asm/imx-common/sys_proto.h
+++ b/arch/arm/include/asm/imx-common/sys_proto.h
@@ -42,6 +42,41 @@
#ifdef CONFIG_MX6
#define IMX6_SRC_GPR10_BMODE BIT(28)
+#define IMX6_BMODE_MASK GENMASK(7, 0)
+#define IMX6_BMODE_SHIFT 4
+#define IMX6_BMODE_EMI_MASK BIT(3)
+#define IMX6_BMODE_EMI_SHIFT 3
+#define IMX6_BMODE_SERIAL_ROM_MASK GENMASK(26, 24)
+#define IMX6_BMODE_SERIAL_ROM_SHIFT 24
+
+enum imx6_bmode_serial_rom {
+ IMX6_BMODE_ECSPI1,
+ IMX6_BMODE_ECSPI2,
+ IMX6_BMODE_ECSPI3,
+ IMX6_BMODE_ECSPI4,
+ IMX6_BMODE_ECSPI5,
+ IMX6_BMODE_I2C1,
+ IMX6_BMODE_I2C2,
+ IMX6_BMODE_I2C3,
+};
+
+enum imx6_bmode_emi {
+ IMX6_BMODE_ONENAND,
+ IMX6_BMODE_NOR,
+};
+
+enum imx6_bmode {
+ IMX6_BMODE_EMI,
+ IMX6_BMODE_UART,
+ IMX6_BMODE_SATA,
+ IMX6_BMODE_SERIAL_ROM,
+ IMX6_BMODE_SD,
+ IMX6_BMODE_ESD,
+ IMX6_BMODE_MMC,
+ IMX6_BMODE_EMMC,
+ IMX6_BMODE_NAND,
+};
+
static inline u8 imx6_is_bmode_from_gpr9(void)
{
struct src *psrc = (struct src *)SRC_BASE_ADDR;
--
1.9.1
next prev parent reply other threads:[~2017-02-24 10:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-24 10:15 [U-Boot] [PATCH v4 00/15] i.MX6: Engicam i.CoreM6/Is.IoT eMMC boot support Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 01/15] imx6: Add imx6_src_get_boot_mode Jagan Teki
2017-02-26 11:31 ` Stefano Babic
2017-02-24 10:15 ` [U-Boot] [PATCH v4 02/15] imx: spl: Update NAND bootmode detection bit Jagan Teki
2017-02-24 10:15 ` Jagan Teki [this message]
2017-02-24 10:15 ` [U-Boot] [PATCH v4 04/15] imx6: Add src_base structure define macro Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 05/15] imx6: isiotmx6ul: Update SPL board boot order for eMMC Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 06/15] i.MX6UL: isiot: Add eMMC boot support Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 07/15] i.MX6UL: isiot: Add modeboot env via board_late_init Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 08/15] i.MX6UL: isiot: Add mmc_late_init Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 09/15] i.MX6UL: isiot: Switch the mmc env based on devno Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 10/15] arm: dts: imx6qdl-icore-rqs: Add eMMC node Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 11/15] imx6: icorem6_rqs: Update SPL board boot order for eMMC Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 12/15] imx6: icorem6_rqs: Add eMMC boot support Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 13/15] i.MX6Q: icorem6_rqs: Add modeboot env via board_late_init Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 14/15] i.MX6Q: icorem6_rqs: Add mmc_late_init Jagan Teki
2017-02-24 10:15 ` [U-Boot] [PATCH v4 15/15] i.MX6Q: isiot: Switch the mmc env based on devno Jagan Teki
2017-02-26 11:54 ` [U-Boot] [PATCH v4 00/15] i.MX6: Engicam i.CoreM6/Is.IoT eMMC boot support Stefano Babic
2017-02-27 14:28 ` Sébastien Szymanski
2017-02-27 14:38 ` Jagan Teki
2017-02-27 14:52 ` Sébastien Szymanski
2017-02-27 15:07 ` Jagan Teki
2017-02-27 14:41 ` Stefano Babic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1487931326-10199-4-git-send-email-jagan@openedev.com \
--to=jagan@openedev.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.