[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