[U-Boot] [PATCH V5 17/31] imx: mx7: move get_boot_device to cpu.c
Stefano Babic
sbabic at denx.de
Sun Jan 21 16:33:08 UTC 2018
On 10/01/2018 06:20, Peng Fan wrote:
> Move get_boot_device to cpu.c to prepare adding i.MX8M support,
> because i.MX8M share same code with i.MX7.
>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Fabio Estevam <fabio.estevam at nxp.com>
> ---
> arch/arm/include/asm/arch-mx7/imx-regs.h | 8 -------
> arch/arm/include/asm/mach-imx/boot_mode.h | 9 ++++++++
> arch/arm/mach-imx/cpu.c | 38 +++++++++++++++++++++++++++++++
> arch/arm/mach-imx/mx7/soc.c | 35 ----------------------------
> 4 files changed, 47 insertions(+), 43 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-mx7/imx-regs.h b/arch/arm/include/asm/arch-mx7/imx-regs.h
> index a421b9bc04..3726f02af5 100644
> --- a/arch/arm/include/asm/arch-mx7/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx7/imx-regs.h
> @@ -1210,14 +1210,6 @@ extern void pcie_power_off(void);
> readl(USBOTG2_IPS_BASE_ADDR + 0x158))
> #define disconnect_from_pc(void) writel(0x0, USBOTG1_IPS_BASE_ADDR + 0x140)
>
> -/* Boot device type */
> -#define BOOT_TYPE_SD 0x1
> -#define BOOT_TYPE_MMC 0x2
> -#define BOOT_TYPE_NAND 0x3
> -#define BOOT_TYPE_QSPI 0x4
> -#define BOOT_TYPE_WEIM 0x5
> -#define BOOT_TYPE_SPINOR 0x6
> -
> struct bootrom_sw_info {
> u8 reserved_1;
> u8 boot_dev_instance;
> diff --git a/arch/arm/include/asm/mach-imx/boot_mode.h b/arch/arm/include/asm/mach-imx/boot_mode.h
> index e3ed046b25..300868a45e 100644
> --- a/arch/arm/include/asm/mach-imx/boot_mode.h
> +++ b/arch/arm/include/asm/mach-imx/boot_mode.h
> @@ -31,6 +31,15 @@ enum boot_device {
> BOOT_DEV_NUM = UNKNOWN_BOOT,
> };
>
> +/* Boot device type */
> +#define BOOT_TYPE_SD 0x1
> +#define BOOT_TYPE_MMC 0x2
> +#define BOOT_TYPE_NAND 0x3
> +#define BOOT_TYPE_QSPI 0x4
> +#define BOOT_TYPE_WEIM 0x5
> +#define BOOT_TYPE_SPINOR 0x6
> +#define BOOT_TYPE_USB 0xF
> +
> struct boot_mode {
> const char *name;
> unsigned cfg_val;
> diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
> index fd6d08c533..a7d89f2033 100644
> --- a/arch/arm/mach-imx/cpu.c
> +++ b/arch/arm/mach-imx/cpu.c
> @@ -16,6 +16,7 @@
> #include <asm/arch/clock.h>
> #include <asm/arch/sys_proto.h>
> #include <asm/arch/crm_regs.h>
> +#include <asm/mach-imx/boot_mode.h>
> #include <imx_thermal.h>
> #include <ipu_pixfmt.h>
> #include <thermal.h>
> @@ -409,6 +410,43 @@ u32 get_cpu_temp_grade(int *minc, int *maxc)
> }
> #endif
>
> +#if defined(CONFIG_MX7)
> +enum boot_device get_boot_device(void)
> +{
> + struct bootrom_sw_info **p =
> + (struct bootrom_sw_info **)(ulong)ROM_SW_INFO_ADDR;
> +
> + enum boot_device boot_dev = SD1_BOOT;
> + u8 boot_type = (*p)->boot_dev_type;
> + u8 boot_instance = (*p)->boot_dev_instance;
> +
> + switch (boot_type) {
> + case BOOT_TYPE_SD:
> + boot_dev = boot_instance + SD1_BOOT;
> + break;
> + case BOOT_TYPE_MMC:
> + boot_dev = boot_instance + MMC1_BOOT;
> + break;
> + case BOOT_TYPE_NAND:
> + boot_dev = NAND_BOOT;
> + break;
> + case BOOT_TYPE_QSPI:
> + boot_dev = QSPI_BOOT;
> + break;
> + case BOOT_TYPE_WEIM:
> + boot_dev = WEIM_NOR_BOOT;
> + break;
> + case BOOT_TYPE_SPINOR:
> + boot_dev = SPI_NOR_BOOT;
> + break;
> + default:
> + break;
> + }
> +
> + return boot_dev;
> +}
> +#endif
> +
> #ifdef CONFIG_NXP_BOARD_REVISION
> int nxp_board_rev(void)
> {
> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
> index 72dbd625c9..62bd3a0e5f 100644
> --- a/arch/arm/mach-imx/mx7/soc.c
> +++ b/arch/arm/mach-imx/mx7/soc.c
> @@ -250,41 +250,6 @@ const struct boot_mode soc_boot_modes[] = {
> {NULL, 0},
> };
>
> -enum boot_device get_boot_device(void)
> -{
> - struct bootrom_sw_info **p =
> - (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
> -
> - enum boot_device boot_dev = SD1_BOOT;
> - u8 boot_type = (*p)->boot_dev_type;
> - u8 boot_instance = (*p)->boot_dev_instance;
> -
> - switch (boot_type) {
> - case BOOT_TYPE_SD:
> - boot_dev = boot_instance + SD1_BOOT;
> - break;
> - case BOOT_TYPE_MMC:
> - boot_dev = boot_instance + MMC1_BOOT;
> - break;
> - case BOOT_TYPE_NAND:
> - boot_dev = NAND_BOOT;
> - break;
> - case BOOT_TYPE_QSPI:
> - boot_dev = QSPI_BOOT;
> - break;
> - case BOOT_TYPE_WEIM:
> - boot_dev = WEIM_NOR_BOOT;
> - break;
> - case BOOT_TYPE_SPINOR:
> - boot_dev = SPI_NOR_BOOT;
> - break;
> - default:
> - break;
> - }
> -
> - return boot_dev;
> -}
> -
> #ifdef CONFIG_ENV_IS_IN_MMC
> __weak int board_mmc_get_env_dev(int devno)
> {
>
Reviewed-by: Stefano Babic <sbabic at 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
=====================================================================
More information about the U-Boot
mailing list