* [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function
@ 2018-01-27 21:55 Lukasz Majewski
2018-01-27 22:01 ` Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Lukasz Majewski @ 2018-01-27 21:55 UTC (permalink / raw)
To: u-boot
The goal of this patch is to clean up the code related to choosing spl
MMC boot mode.
The spl_boot_mode() now is called only in spl_mmc_load_image() function,
which is only compiled in if CONFIG_SPL_MMC_SUPPORT is enabled.
To achieve the goal, all per mach/arch implementations eligible for
unification has been replaced with one __weak implementation.
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
Comments regarding cleanup (to help maintainers assessment if those changes
break anything):
Implementations necessary to stay as is:
----------------------------------------
- SW fix for broken ROM boot code
arch/arm/mach-uniphier/mmc-boot-mode.c
- Omap specific adjustments:
arch/arm/mach-omap2/boot-common.c
Below archs had a bit off-standard approach, but were eligible for using
the __weak function:
--------------------
- at91 -> check if proper configs flags in the weak function are set:
arch/arm/mach-at91/spl.c
- zyncmp -> the BOOT_DEVICE_RAM return of spl_boot_mode seems like an error
(will hang in spl_mmc_load_image() anyway)
arch/arm/cpu/armv8/zynqmp/spl.c
- fsl -> here we had a return of BOOT_DEVICE_NAND, but the spl_boot_mode is
eMMC/SD card specific
(will hang in spl_mmc_load_image() anyway)
arch/arm/cpu/armv8/fsl-layerscape/spl.c
arch/arm/cpu/armv7/ls102xa/spl.c
arch/arm/cpu/arm1136/mx35/generic.c
Test HW:
iMX6Q - display5 board
---
arch/arm/cpu/arm1136/mx35/generic.c | 21 ---------------------
arch/arm/cpu/armv7/ls102xa/spl.c | 17 -----------------
arch/arm/cpu/armv8/fsl-layerscape/spl.c | 17 -----------------
arch/arm/cpu/armv8/zynqmp/spl.c | 14 --------------
arch/arm/mach-at91/spl.c | 15 ---------------
arch/arm/mach-davinci/spl.c | 5 -----
arch/arm/mach-imx/spl.c | 23 -----------------------
arch/arm/mach-mvebu/spl.c | 7 -------
arch/arm/mach-rockchip/rk3188-board-spl.c | 5 -----
arch/arm/mach-rockchip/rk3288-board-spl.c | 5 -----
arch/arm/mach-rockchip/rk3368-board-spl.c | 5 -----
arch/arm/mach-rockchip/rk3399-board-spl.c | 5 -----
arch/arm/mach-socfpga/spl.c | 11 -----------
arch/arm/mach-sunxi/board.c | 6 ------
arch/arm/mach-zynq/spl.c | 7 -------
common/spl/spl_mmc.c | 11 +++++++++++
16 files changed, 11 insertions(+), 163 deletions(-)
diff --git a/arch/arm/cpu/arm1136/mx35/generic.c b/arch/arm/cpu/arm1136/mx35/generic.c
index 5297d62d00..4dcfc72656 100644
--- a/arch/arm/cpu/arm1136/mx35/generic.c
+++ b/arch/arm/cpu/arm1136/mx35/generic.c
@@ -524,24 +524,3 @@ u32 spl_boot_device(void)
return BOOT_DEVICE_NONE;
}
-
-#ifdef CONFIG_SPL_BUILD
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (spl_boot_device()) {
- case BOOT_DEVICE_MMC1:
-#ifdef CONFIG_SPL_FAT_SUPPORT
- return MMCSD_MODE_FS;
-#else
- return MMCSD_MODE_RAW;
-#endif
- break;
- case BOOT_DEVICE_NAND:
- return 0;
- break;
- default:
- puts("spl: ERROR: unsupported device\n");
- hang();
- }
-}
-#endif
diff --git a/arch/arm/cpu/armv7/ls102xa/spl.c b/arch/arm/cpu/armv7/ls102xa/spl.c
index 1246eed2ca..1e4a1641cb 100644
--- a/arch/arm/cpu/armv7/ls102xa/spl.c
+++ b/arch/arm/cpu/armv7/ls102xa/spl.c
@@ -14,20 +14,3 @@ u32 spl_boot_device(void)
#endif
return BOOT_DEVICE_NAND;
}
-
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (spl_boot_device()) {
- case BOOT_DEVICE_MMC1:
-#ifdef CONFIG_SPL_FAT_SUPPORT
- return MMCSD_MODE_FS;
-#else
- return MMCSD_MODE_RAW;
-#endif
- case BOOT_DEVICE_NAND:
- return 0;
- default:
- puts("spl: error: unsupported device\n");
- hang();
- }
-}
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
index 4093d15e56..3a74040b97 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
@@ -26,23 +26,6 @@ u32 spl_boot_device(void)
return 0;
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (spl_boot_device()) {
- case BOOT_DEVICE_MMC1:
-#ifdef CONFIG_SPL_FAT_SUPPORT
- return MMCSD_MODE_FS;
-#else
- return MMCSD_MODE_RAW;
-#endif
- case BOOT_DEVICE_NAND:
- return 0;
- default:
- puts("spl: error: unsupported device\n");
- hang();
- }
-}
-
#ifdef CONFIG_SPL_BUILD
void spl_board_init(void)
diff --git a/arch/arm/cpu/armv8/zynqmp/spl.c b/arch/arm/cpu/armv8/zynqmp/spl.c
index 41b0070a5e..970ac9b59b 100644
--- a/arch/arm/cpu/armv8/zynqmp/spl.c
+++ b/arch/arm/cpu/armv8/zynqmp/spl.c
@@ -115,20 +115,6 @@ u32 spl_boot_device(void)
return 0;
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (boot_device) {
- case BOOT_DEVICE_RAM:
- return 0;
- case BOOT_DEVICE_MMC1:
- case BOOT_DEVICE_MMC2:
- return MMCSD_MODE_FS;
- default:
- puts("spl: error: unsupported device\n");
- hang();
- }
-}
-
__weak void psu_init(void)
{
/*
diff --git a/arch/arm/mach-at91/spl.c b/arch/arm/mach-at91/spl.c
index 7e7e24bbe6..91add921c6 100644
--- a/arch/arm/mach-at91/spl.c
+++ b/arch/arm/mach-at91/spl.c
@@ -87,18 +87,3 @@ u32 spl_boot_device(void)
return BOOT_DEVICE_NONE;
}
#endif
-
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (boot_device) {
-#if defined(CONFIG_SYS_USE_MMC) || defined(CONFIG_SD_BOOT)
- case BOOT_DEVICE_MMC1:
- case BOOT_DEVICE_MMC2:
- return MMCSD_MODE_FS;
- break;
-#endif
- case BOOT_DEVICE_NONE:
- default:
- hang();
- }
-}
diff --git a/arch/arm/mach-davinci/spl.c b/arch/arm/mach-davinci/spl.c
index 564c2008e0..4c74db9ed0 100644
--- a/arch/arm/mach-davinci/spl.c
+++ b/arch/arm/mach-davinci/spl.c
@@ -45,11 +45,6 @@ void spl_board_init(void)
preloader_console_init();
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
u32 spl_boot_device(void)
{
switch (davinci_syscfg_regs->bootcfg) {
diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
index 6c16872f59..08a7e0071f 100644
--- a/arch/arm/mach-imx/spl.c
+++ b/arch/arm/mach-imx/spl.c
@@ -130,29 +130,6 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
}
#endif
-#if defined(CONFIG_SPL_MMC_SUPPORT)
-/* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */
-u32 spl_boot_mode(const u32 boot_device)
-{
- switch (spl_boot_device()) {
- /* for MMC return either RAW or FAT mode */
- case BOOT_DEVICE_MMC1:
- case BOOT_DEVICE_MMC2:
-#if defined(CONFIG_SPL_FAT_SUPPORT)
- return MMCSD_MODE_FS;
-#elif defined(CONFIG_SUPPORT_EMMC_BOOT)
- return MMCSD_MODE_EMMCBOOT;
-#else
- return MMCSD_MODE_RAW;
-#endif
- break;
- default:
- puts("spl: ERROR: unsupported device\n");
- hang();
- }
-}
-#endif
-
#if defined(CONFIG_SECURE_BOOT)
/*
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index d16a62d2dd..a5086f16fb 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -70,13 +70,6 @@ u32 spl_boot_device(void)
return get_boot_device();
}
-#ifdef CONFIG_SPL_MMC_SUPPORT
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-#endif
-
void board_init_f(ulong dummy)
{
int ret;
diff --git a/arch/arm/mach-rockchip/rk3188-board-spl.c b/arch/arm/mach-rockchip/rk3188-board-spl.c
index 8e3b8ae3ba..74771d3a0b 100644
--- a/arch/arm/mach-rockchip/rk3188-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3188-board-spl.c
@@ -72,11 +72,6 @@ fallback:
return BOOT_DEVICE_MMC1;
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
static int setup_arm_clock(void)
{
struct udevice *dev;
diff --git a/arch/arm/mach-rockchip/rk3288-board-spl.c b/arch/arm/mach-rockchip/rk3288-board-spl.c
index f64a54843f..f3ea624277 100644
--- a/arch/arm/mach-rockchip/rk3288-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3288-board-spl.c
@@ -78,11 +78,6 @@ fallback:
return BOOT_DEVICE_MMC1;
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
#ifdef CONFIG_SPL_MMC_SUPPORT
static int configure_emmc(struct udevice *pinctrl)
{
diff --git a/arch/arm/mach-rockchip/rk3368-board-spl.c b/arch/arm/mach-rockchip/rk3368-board-spl.c
index 72d2c97d36..8055ae538f 100644
--- a/arch/arm/mach-rockchip/rk3368-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3368-board-spl.c
@@ -57,11 +57,6 @@ void board_init_f(ulong dummy)
}
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
u32 spl_boot_device(void)
{
return BOOT_DEVICE_MMC1;
diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
index b96903e70f..d35990efd6 100644
--- a/arch/arm/mach-rockchip/rk3399-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
@@ -60,11 +60,6 @@ u32 spl_boot_device(void)
return boot_device;
}
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
#define TIMER_CHN10_BASE 0xff8680a0
#define TIMER_END_COUNT_L 0x00
#define TIMER_END_COUNT_H 0x04
diff --git a/arch/arm/mach-socfpga/spl.c b/arch/arm/mach-socfpga/spl.c
index 71bae827a1..9bf3b9a446 100644
--- a/arch/arm/mach-socfpga/spl.c
+++ b/arch/arm/mach-socfpga/spl.c
@@ -66,17 +66,6 @@ u32 spl_boot_device(void)
}
}
-#ifdef CONFIG_SPL_MMC_SUPPORT
-u32 spl_boot_mode(const u32 boot_device)
-{
-#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
- return MMCSD_MODE_FS;
-#else
- return MMCSD_MODE_RAW;
-#endif
-}
-#endif
-
#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
static void socfpga_nic301_slave_ns(void)
{
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index 0c60ee04da..1753faec1d 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -260,12 +260,6 @@ u32 spl_boot_device(void)
return sunxi_get_boot_device();
}
-/* No confirmation data available in SPL yet. Hardcode bootmode */
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_RAW;
-}
-
void board_init_f(ulong dummy)
{
spl_init();
diff --git a/arch/arm/mach-zynq/spl.c b/arch/arm/mach-zynq/spl.c
index 1672fa05c2..32db076409 100644
--- a/arch/arm/mach-zynq/spl.c
+++ b/arch/arm/mach-zynq/spl.c
@@ -69,13 +69,6 @@ u32 spl_boot_device(void)
return mode;
}
-#ifdef CONFIG_SPL_MMC_SUPPORT
-u32 spl_boot_mode(const u32 boot_device)
-{
- return MMCSD_MODE_FS;
-}
-#endif
-
#ifdef CONFIG_SPL_OS_BOOT
int spl_start_uboot(void)
{
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index b57e0b04e4..351f4edd41 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -281,6 +281,17 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image, struct mmc *mmc)
}
#endif
+u32 __weak spl_boot_mode(const u32 boot_device)
+{
+#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
+ return MMCSD_MODE_FS;
+#elif defined(CONFIG_SUPPORT_EMMC_BOOT)
+ return MMCSD_MODE_EMMCBOOT;
+#else
+ return MMCSD_MODE_RAW;
+#endif
+}
+
int spl_mmc_load_image(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
--
2.11.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function
2018-01-27 21:55 [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function Lukasz Majewski
@ 2018-01-27 22:01 ` Marek Vasut
2018-01-27 22:12 ` Lukasz Majewski
2018-01-30 15:26 ` Michal Simek
2018-01-30 15:32 ` Stefano Babic
2 siblings, 1 reply; 5+ messages in thread
From: Marek Vasut @ 2018-01-27 22:01 UTC (permalink / raw)
To: u-boot
On 01/27/2018 10:55 PM, Lukasz Majewski wrote:
> The goal of this patch is to clean up the code related to choosing spl
> MMC boot mode.
>
> The spl_boot_mode() now is called only in spl_mmc_load_image() function,
> which is only compiled in if CONFIG_SPL_MMC_SUPPORT is enabled.
It always was ;-)
> To achieve the goal, all per mach/arch implementations eligible for
> unification has been replaced with one __weak implementation.
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
>
> ---
> Comments regarding cleanup (to help maintainers assessment if those changes
> break anything):
You should run it through Travis at least, to detect if something
stopped building.
> Implementations necessary to stay as is:
> ----------------------------------------
> - SW fix for broken ROM boot code
> arch/arm/mach-uniphier/mmc-boot-mode.c
>
> - Omap specific adjustments:
> arch/arm/mach-omap2/boot-common.c
>
> Below archs had a bit off-standard approach, but were eligible for using
> the __weak function:
> --------------------
> - at91 -> check if proper configs flags in the weak function are set:
> arch/arm/mach-at91/spl.c
>
> - zyncmp -> the BOOT_DEVICE_RAM return of spl_boot_mode seems like an error
> (will hang in spl_mmc_load_image() anyway)
> arch/arm/cpu/armv8/zynqmp/spl.c
>
> - fsl -> here we had a return of BOOT_DEVICE_NAND, but the spl_boot_mode is
> eMMC/SD card specific
> (will hang in spl_mmc_load_image() anyway)
>
> arch/arm/cpu/armv8/fsl-layerscape/spl.c
> arch/arm/cpu/armv7/ls102xa/spl.c
> arch/arm/cpu/arm1136/mx35/generic.c
>
> Test HW:
>
> iMX6Q - display5 board
Reviewed-by: Marek Vasut <marex@denx.de>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function
2018-01-27 22:01 ` Marek Vasut
@ 2018-01-27 22:12 ` Lukasz Majewski
0 siblings, 0 replies; 5+ messages in thread
From: Lukasz Majewski @ 2018-01-27 22:12 UTC (permalink / raw)
To: u-boot
Hi Marek,
> On 01/27/2018 10:55 PM, Lukasz Majewski wrote:
> > The goal of this patch is to clean up the code related to choosing
> > spl MMC boot mode.
> >
> > The spl_boot_mode() now is called only in spl_mmc_load_image()
> > function, which is only compiled in if CONFIG_SPL_MMC_SUPPORT is
> > enabled.
>
> It always was ;-)
But some way forgotten :-)
>
> > To achieve the goal, all per mach/arch implementations eligible for
> > unification has been replaced with one __weak implementation.
> >
> > Signed-off-by: Lukasz Majewski <lukma@denx.de>
> >
> > ---
> > Comments regarding cleanup (to help maintainers assessment if those
> > changes break anything):
>
> You should run it through Travis at least, to detect if something
> stopped building.
https://travis-ci.org/lmajewski/u-boot-dfu
All "green".
>
> > Implementations necessary to stay as is:
> > ----------------------------------------
> > - SW fix for broken ROM boot code
> > arch/arm/mach-uniphier/mmc-boot-mode.c
> >
> > - Omap specific adjustments:
> > arch/arm/mach-omap2/boot-common.c
> >
> > Below archs had a bit off-standard approach, but were eligible for
> > using the __weak function:
> > --------------------
> > - at91 -> check if proper configs flags in the weak function are
> > set: arch/arm/mach-at91/spl.c
> >
> > - zyncmp -> the BOOT_DEVICE_RAM return of spl_boot_mode seems like
> > an error (will hang in spl_mmc_load_image() anyway)
> > arch/arm/cpu/armv8/zynqmp/spl.c
> >
> > - fsl -> here we had a return of BOOT_DEVICE_NAND, but the
> > spl_boot_mode is eMMC/SD card specific
> > (will hang in spl_mmc_load_image() anyway)
> >
> > arch/arm/cpu/armv8/fsl-layerscape/spl.c
> > arch/arm/cpu/armv7/ls102xa/spl.c
> > arch/arm/cpu/arm1136/mx35/generic.c
> >
> > Test HW:
> >
> > iMX6Q - display5 board
> Reviewed-by: Marek Vasut <marex@denx.de>
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180127/4490b3b1/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function
2018-01-27 21:55 [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function Lukasz Majewski
2018-01-27 22:01 ` Marek Vasut
@ 2018-01-30 15:26 ` Michal Simek
2018-01-30 15:32 ` Stefano Babic
2 siblings, 0 replies; 5+ messages in thread
From: Michal Simek @ 2018-01-30 15:26 UTC (permalink / raw)
To: u-boot
On 27.1.2018 22:55, Lukasz Majewski wrote:
> The goal of this patch is to clean up the code related to choosing spl
> MMC boot mode.
>
> The spl_boot_mode() now is called only in spl_mmc_load_image() function,
> which is only compiled in if CONFIG_SPL_MMC_SUPPORT is enabled.
>
> To achieve the goal, all per mach/arch implementations eligible for
> unification has been replaced with one __weak implementation.
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
>
> ---
> Comments regarding cleanup (to help maintainers assessment if those changes
> break anything):
>
> Implementations necessary to stay as is:
> ----------------------------------------
> - SW fix for broken ROM boot code
> arch/arm/mach-uniphier/mmc-boot-mode.c
>
> - Omap specific adjustments:
> arch/arm/mach-omap2/boot-common.c
>
> Below archs had a bit off-standard approach, but were eligible for using
> the __weak function:
> --------------------
> - at91 -> check if proper configs flags in the weak function are set:
> arch/arm/mach-at91/spl.c
>
> - zyncmp -> the BOOT_DEVICE_RAM return of spl_boot_mode seems like an error
zynqmp
> (will hang in spl_mmc_load_image() anyway)
> arch/arm/cpu/armv8/zynqmp/spl.c
Changes look reasonable.
Acked-by: Michal Simek <michal.simek@xilinx.com> (For ZynqMP)
M
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function
2018-01-27 21:55 [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function Lukasz Majewski
2018-01-27 22:01 ` Marek Vasut
2018-01-30 15:26 ` Michal Simek
@ 2018-01-30 15:32 ` Stefano Babic
2 siblings, 0 replies; 5+ messages in thread
From: Stefano Babic @ 2018-01-30 15:32 UTC (permalink / raw)
To: u-boot
On 27/01/2018 22:55, Lukasz Majewski wrote:
> The goal of this patch is to clean up the code related to choosing spl
> MMC boot mode.
>
> The spl_boot_mode() now is called only in spl_mmc_load_image() function,
> which is only compiled in if CONFIG_SPL_MMC_SUPPORT is enabled.
>
> To achieve the goal, all per mach/arch implementations eligible for
> unification has been replaced with one __weak implementation.
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
>
> ---
> Comments regarding cleanup (to help maintainers assessment if those changes
> break anything):
>
> Implementations necessary to stay as is:
> ----------------------------------------
> - SW fix for broken ROM boot code
> arch/arm/mach-uniphier/mmc-boot-mode.c
>
> - Omap specific adjustments:
> arch/arm/mach-omap2/boot-common.c
>
> Below archs had a bit off-standard approach, but were eligible for using
> the __weak function:
> --------------------
> - at91 -> check if proper configs flags in the weak function are set:
> arch/arm/mach-at91/spl.c
>
> - zyncmp -> the BOOT_DEVICE_RAM return of spl_boot_mode seems like an error
> (will hang in spl_mmc_load_image() anyway)
> arch/arm/cpu/armv8/zynqmp/spl.c
>
> - fsl -> here we had a return of BOOT_DEVICE_NAND, but the spl_boot_mode is
> eMMC/SD card specific
> (will hang in spl_mmc_load_image() anyway)
>
> arch/arm/cpu/armv8/fsl-layerscape/spl.c
> arch/arm/cpu/armv7/ls102xa/spl.c
> arch/arm/cpu/arm1136/mx35/generic.c
>
> Test HW:
>
> iMX6Q - display5 board
>
> ---
> arch/arm/cpu/arm1136/mx35/generic.c | 21 ---------------------
> arch/arm/cpu/armv7/ls102xa/spl.c | 17 -----------------
> arch/arm/cpu/armv8/fsl-layerscape/spl.c | 17 -----------------
> arch/arm/cpu/armv8/zynqmp/spl.c | 14 --------------
> arch/arm/mach-at91/spl.c | 15 ---------------
> arch/arm/mach-davinci/spl.c | 5 -----
> arch/arm/mach-imx/spl.c | 23 -----------------------
> arch/arm/mach-mvebu/spl.c | 7 -------
> arch/arm/mach-rockchip/rk3188-board-spl.c | 5 -----
> arch/arm/mach-rockchip/rk3288-board-spl.c | 5 -----
> arch/arm/mach-rockchip/rk3368-board-spl.c | 5 -----
> arch/arm/mach-rockchip/rk3399-board-spl.c | 5 -----
> arch/arm/mach-socfpga/spl.c | 11 -----------
> arch/arm/mach-sunxi/board.c | 6 ------
> arch/arm/mach-zynq/spl.c | 7 -------
> common/spl/spl_mmc.c | 11 +++++++++++
> 16 files changed, 11 insertions(+), 163 deletions(-)
>
> diff --git a/arch/arm/cpu/arm1136/mx35/generic.c b/arch/arm/cpu/arm1136/mx35/generic.c
> index 5297d62d00..4dcfc72656 100644
> --- a/arch/arm/cpu/arm1136/mx35/generic.c
> +++ b/arch/arm/cpu/arm1136/mx35/generic.c
> @@ -524,24 +524,3 @@ u32 spl_boot_device(void)
>
> return BOOT_DEVICE_NONE;
> }
> -
> -#ifdef CONFIG_SPL_BUILD
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (spl_boot_device()) {
> - case BOOT_DEVICE_MMC1:
> -#ifdef CONFIG_SPL_FAT_SUPPORT
> - return MMCSD_MODE_FS;
> -#else
> - return MMCSD_MODE_RAW;
> -#endif
> - break;
> - case BOOT_DEVICE_NAND:
> - return 0;
> - break;
> - default:
> - puts("spl: ERROR: unsupported device\n");
> - hang();
> - }
> -}
> -#endif
> diff --git a/arch/arm/cpu/armv7/ls102xa/spl.c b/arch/arm/cpu/armv7/ls102xa/spl.c
> index 1246eed2ca..1e4a1641cb 100644
> --- a/arch/arm/cpu/armv7/ls102xa/spl.c
> +++ b/arch/arm/cpu/armv7/ls102xa/spl.c
> @@ -14,20 +14,3 @@ u32 spl_boot_device(void)
> #endif
> return BOOT_DEVICE_NAND;
> }
> -
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (spl_boot_device()) {
> - case BOOT_DEVICE_MMC1:
> -#ifdef CONFIG_SPL_FAT_SUPPORT
> - return MMCSD_MODE_FS;
> -#else
> - return MMCSD_MODE_RAW;
> -#endif
> - case BOOT_DEVICE_NAND:
> - return 0;
> - default:
> - puts("spl: error: unsupported device\n");
> - hang();
> - }
> -}
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> index 4093d15e56..3a74040b97 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> @@ -26,23 +26,6 @@ u32 spl_boot_device(void)
> return 0;
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (spl_boot_device()) {
> - case BOOT_DEVICE_MMC1:
> -#ifdef CONFIG_SPL_FAT_SUPPORT
> - return MMCSD_MODE_FS;
> -#else
> - return MMCSD_MODE_RAW;
> -#endif
> - case BOOT_DEVICE_NAND:
> - return 0;
> - default:
> - puts("spl: error: unsupported device\n");
> - hang();
> - }
> -}
> -
> #ifdef CONFIG_SPL_BUILD
>
> void spl_board_init(void)
> diff --git a/arch/arm/cpu/armv8/zynqmp/spl.c b/arch/arm/cpu/armv8/zynqmp/spl.c
> index 41b0070a5e..970ac9b59b 100644
> --- a/arch/arm/cpu/armv8/zynqmp/spl.c
> +++ b/arch/arm/cpu/armv8/zynqmp/spl.c
> @@ -115,20 +115,6 @@ u32 spl_boot_device(void)
> return 0;
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (boot_device) {
> - case BOOT_DEVICE_RAM:
> - return 0;
> - case BOOT_DEVICE_MMC1:
> - case BOOT_DEVICE_MMC2:
> - return MMCSD_MODE_FS;
> - default:
> - puts("spl: error: unsupported device\n");
> - hang();
> - }
> -}
> -
> __weak void psu_init(void)
> {
> /*
> diff --git a/arch/arm/mach-at91/spl.c b/arch/arm/mach-at91/spl.c
> index 7e7e24bbe6..91add921c6 100644
> --- a/arch/arm/mach-at91/spl.c
> +++ b/arch/arm/mach-at91/spl.c
> @@ -87,18 +87,3 @@ u32 spl_boot_device(void)
> return BOOT_DEVICE_NONE;
> }
> #endif
> -
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (boot_device) {
> -#if defined(CONFIG_SYS_USE_MMC) || defined(CONFIG_SD_BOOT)
> - case BOOT_DEVICE_MMC1:
> - case BOOT_DEVICE_MMC2:
> - return MMCSD_MODE_FS;
> - break;
> -#endif
> - case BOOT_DEVICE_NONE:
> - default:
> - hang();
> - }
> -}
> diff --git a/arch/arm/mach-davinci/spl.c b/arch/arm/mach-davinci/spl.c
> index 564c2008e0..4c74db9ed0 100644
> --- a/arch/arm/mach-davinci/spl.c
> +++ b/arch/arm/mach-davinci/spl.c
> @@ -45,11 +45,6 @@ void spl_board_init(void)
> preloader_console_init();
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> u32 spl_boot_device(void)
> {
> switch (davinci_syscfg_regs->bootcfg) {
> diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
> index 6c16872f59..08a7e0071f 100644
> --- a/arch/arm/mach-imx/spl.c
> +++ b/arch/arm/mach-imx/spl.c
> @@ -130,29 +130,6 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
> }
> #endif
>
> -#if defined(CONFIG_SPL_MMC_SUPPORT)
> -/* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - switch (spl_boot_device()) {
> - /* for MMC return either RAW or FAT mode */
> - case BOOT_DEVICE_MMC1:
> - case BOOT_DEVICE_MMC2:
> -#if defined(CONFIG_SPL_FAT_SUPPORT)
> - return MMCSD_MODE_FS;
> -#elif defined(CONFIG_SUPPORT_EMMC_BOOT)
> - return MMCSD_MODE_EMMCBOOT;
> -#else
> - return MMCSD_MODE_RAW;
> -#endif
> - break;
> - default:
> - puts("spl: ERROR: unsupported device\n");
> - hang();
> - }
> -}
> -#endif
> -
> #if defined(CONFIG_SECURE_BOOT)
>
> /*
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index d16a62d2dd..a5086f16fb 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -70,13 +70,6 @@ u32 spl_boot_device(void)
> return get_boot_device();
> }
>
> -#ifdef CONFIG_SPL_MMC_SUPPORT
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -#endif
> -
> void board_init_f(ulong dummy)
> {
> int ret;
> diff --git a/arch/arm/mach-rockchip/rk3188-board-spl.c b/arch/arm/mach-rockchip/rk3188-board-spl.c
> index 8e3b8ae3ba..74771d3a0b 100644
> --- a/arch/arm/mach-rockchip/rk3188-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3188-board-spl.c
> @@ -72,11 +72,6 @@ fallback:
> return BOOT_DEVICE_MMC1;
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> static int setup_arm_clock(void)
> {
> struct udevice *dev;
> diff --git a/arch/arm/mach-rockchip/rk3288-board-spl.c b/arch/arm/mach-rockchip/rk3288-board-spl.c
> index f64a54843f..f3ea624277 100644
> --- a/arch/arm/mach-rockchip/rk3288-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3288-board-spl.c
> @@ -78,11 +78,6 @@ fallback:
> return BOOT_DEVICE_MMC1;
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> #ifdef CONFIG_SPL_MMC_SUPPORT
> static int configure_emmc(struct udevice *pinctrl)
> {
> diff --git a/arch/arm/mach-rockchip/rk3368-board-spl.c b/arch/arm/mach-rockchip/rk3368-board-spl.c
> index 72d2c97d36..8055ae538f 100644
> --- a/arch/arm/mach-rockchip/rk3368-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3368-board-spl.c
> @@ -57,11 +57,6 @@ void board_init_f(ulong dummy)
> }
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> u32 spl_boot_device(void)
> {
> return BOOT_DEVICE_MMC1;
> diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
> index b96903e70f..d35990efd6 100644
> --- a/arch/arm/mach-rockchip/rk3399-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
> @@ -60,11 +60,6 @@ u32 spl_boot_device(void)
> return boot_device;
> }
>
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> #define TIMER_CHN10_BASE 0xff8680a0
> #define TIMER_END_COUNT_L 0x00
> #define TIMER_END_COUNT_H 0x04
> diff --git a/arch/arm/mach-socfpga/spl.c b/arch/arm/mach-socfpga/spl.c
> index 71bae827a1..9bf3b9a446 100644
> --- a/arch/arm/mach-socfpga/spl.c
> +++ b/arch/arm/mach-socfpga/spl.c
> @@ -66,17 +66,6 @@ u32 spl_boot_device(void)
> }
> }
>
> -#ifdef CONFIG_SPL_MMC_SUPPORT
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> -#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
> - return MMCSD_MODE_FS;
> -#else
> - return MMCSD_MODE_RAW;
> -#endif
> -}
> -#endif
> -
> #if defined(CONFIG_TARGET_SOCFPGA_GEN5)
> static void socfpga_nic301_slave_ns(void)
> {
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index 0c60ee04da..1753faec1d 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -260,12 +260,6 @@ u32 spl_boot_device(void)
> return sunxi_get_boot_device();
> }
>
> -/* No confirmation data available in SPL yet. Hardcode bootmode */
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_RAW;
> -}
> -
> void board_init_f(ulong dummy)
> {
> spl_init();
> diff --git a/arch/arm/mach-zynq/spl.c b/arch/arm/mach-zynq/spl.c
> index 1672fa05c2..32db076409 100644
> --- a/arch/arm/mach-zynq/spl.c
> +++ b/arch/arm/mach-zynq/spl.c
> @@ -69,13 +69,6 @@ u32 spl_boot_device(void)
> return mode;
> }
>
> -#ifdef CONFIG_SPL_MMC_SUPPORT
> -u32 spl_boot_mode(const u32 boot_device)
> -{
> - return MMCSD_MODE_FS;
> -}
> -#endif
> -
> #ifdef CONFIG_SPL_OS_BOOT
> int spl_start_uboot(void)
> {
> diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
> index b57e0b04e4..351f4edd41 100644
> --- a/common/spl/spl_mmc.c
> +++ b/common/spl/spl_mmc.c
> @@ -281,6 +281,17 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image, struct mmc *mmc)
> }
> #endif
>
> +u32 __weak spl_boot_mode(const u32 boot_device)
> +{
> +#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
> + return MMCSD_MODE_FS;
> +#elif defined(CONFIG_SUPPORT_EMMC_BOOT)
> + return MMCSD_MODE_EMMCBOOT;
> +#else
> + return MMCSD_MODE_RAW;
> +#endif
> +}
> +
> int spl_mmc_load_image(struct spl_image_info *spl_image,
> struct spl_boot_device *bootdev)
> {
>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-01-30 15:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-27 21:55 [U-Boot] [PATCH v1] spl: eMMC/SD: Provide one __weak spl_boot_mode() function Lukasz Majewski
2018-01-27 22:01 ` Marek Vasut
2018-01-27 22:12 ` Lukasz Majewski
2018-01-30 15:26 ` Michal Simek
2018-01-30 15:32 ` Stefano Babic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox