From: Jaehoon Chung <jh80.chung@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v6 03/12] arch:exynos: boot mode: add get_boot_mode(), code cleanup
Date: Mon, 28 Jul 2014 14:10:38 +0900 [thread overview]
Message-ID: <53D5DB4E.9040402@samsung.com> (raw)
In-Reply-To: <1405697361-27571-4-git-send-email-p.marczak@samsung.com>
Hi, Przemyslaw.
On 07/19/2014 12:29 AM, Przemyslaw Marczak wrote:
> This patch introduces code clean-up for exynos boot mode check.
> It includes:
> - removal of typedef: boot_mode
> - move the boot mode enum to arch-exynos/power.h
> - add bootmode for sequence: eMMC 4.4 ch4 / SD ch2
> - add new function: get_boot_mode() for OM[5:1] pin check
> - update spl boot code
>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
>
> Changes v5:
> - exynos: boot mode: add missing bootmode (1st:EMMC 4.4 / 2nd:SD ch2)
> ---
> arch/arm/cpu/armv7/exynos/power.c | 7 +++++++
> arch/arm/cpu/armv7/exynos/spl_boot.c | 5 ++---
> arch/arm/include/asm/arch-exynos/power.h | 21 +++++++++++++++++++++
> arch/arm/include/asm/arch-exynos/spl.h | 17 ++---------------
> 4 files changed, 32 insertions(+), 18 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/exynos/power.c b/arch/arm/cpu/armv7/exynos/power.c
> index 638ee0b..e1ab3d6 100644
> --- a/arch/arm/cpu/armv7/exynos/power.c
> +++ b/arch/arm/cpu/armv7/exynos/power.c
> @@ -202,3 +202,10 @@ void power_exit_wakeup(void)
> else
> exynos4_power_exit_wakeup();
> }
> +
> +unsigned int get_boot_mode(void)
> +{
> + unsigned int om_pin = samsung_get_base_power();
> +
> + return readl(om_pin) & OM_PIN_MASK;
> +}
> diff --git a/arch/arm/cpu/armv7/exynos/spl_boot.c b/arch/arm/cpu/armv7/exynos/spl_boot.c
> index 7916630..87f9214 100644
> --- a/arch/arm/cpu/armv7/exynos/spl_boot.c
> +++ b/arch/arm/cpu/armv7/exynos/spl_boot.c
> @@ -20,7 +20,6 @@
> #include "clock_init.h"
>
> DECLARE_GLOBAL_DATA_PTR;
> -#define OM_STAT (0x1f << 1)
>
> /* Index into irom ptr table */
> enum index {
> @@ -184,7 +183,7 @@ static void exynos_spi_copy(unsigned int uboot_size, unsigned int uboot_addr)
> */
> void copy_uboot_to_ram(void)
> {
> - enum boot_mode bootmode = BOOT_MODE_OM;
> + u32 bootmode = BOOT_MODE_OM;
Need to use "u32"?
>
> u32 (*copy_bl2)(u32 offset, u32 nblock, u32 dst) = NULL;
> u32 offset = 0, size = 0;
> @@ -207,7 +206,7 @@ void copy_uboot_to_ram(void)
> #endif
>
> if (bootmode == BOOT_MODE_OM)
> - bootmode = readl(samsung_get_base_power()) & OM_STAT;
> + bootmode = get_boot_mode();
>
> switch (bootmode) {
> #ifdef CONFIG_SPI_BOOTING
> diff --git a/arch/arm/include/asm/arch-exynos/power.h b/arch/arm/include/asm/arch-exynos/power.h
> index 4f2447b..1c0f144 100644
> --- a/arch/arm/include/asm/arch-exynos/power.h
> +++ b/arch/arm/include/asm/arch-exynos/power.h
> @@ -1670,6 +1670,27 @@ struct exynos5420_power {
> };
> #endif /* __ASSEMBLY__ */
>
> +#define OM_PIN_BITS 0x1f
> +#define OM_PIN_SHIFT 0x1
> +#define OM_PIN_MASK (OM_PIN_BITS << OM_PIN_SHIFT)
> +
> +enum {
> + /*
> + * Assign the OM pin values for respective boot modes.
> + * Exynos4 does not support spi boot and the mmc boot OM
> + * pin values are the same across Exynos4 and Exynos5.
> + */
> + BOOT_MODE_MMC = 4, /* SD_CH2 | USB */
I think good that use "BOOT_MODE_SD" instead of "BOOT_MODE_MMC".
Best Regards,
Jaehoon Chung
> + BOOT_MODE_EMMC = 8, /* EMMC4.4 | USB */
> + BOOT_MODE_EMMC_SD = 40, /* EMMC4.4 | SD_CH2 */
> + BOOT_MODE_SERIAL = 20,
> + /* Boot based on Operating Mode pin settings */
> + BOOT_MODE_OM = 32,
> + BOOT_MODE_USB, /* Boot using USB download */
> +};
> +
> +unsigned int get_boot_mode(void);
> +
> void set_mipi_phy_ctrl(unsigned int dev_index, unsigned int enable);
>
> #define EXYNOS_MIPI_PHY_ENABLE (1 << 0)
> diff --git a/arch/arm/include/asm/arch-exynos/spl.h b/arch/arm/include/asm/arch-exynos/spl.h
> index b1d68c3..cdcb2bc 100644
> --- a/arch/arm/include/asm/arch-exynos/spl.h
> +++ b/arch/arm/include/asm/arch-exynos/spl.h
> @@ -8,20 +8,7 @@
> #define __ASM_ARCH_EXYNOS_SPL_H__
>
> #include <asm/arch-exynos/dmc.h>
> -
> -enum boot_mode {
> - /*
> - * Assign the OM pin values for respective boot modes.
> - * Exynos4 does not support spi boot and the mmc boot OM
> - * pin values are the same across Exynos4 and Exynos5.
> - */
> - BOOT_MODE_MMC = 4,
> - BOOT_MODE_EMMC = 8, /* EMMC4.4 */
> - BOOT_MODE_SERIAL = 20,
> - /* Boot based on Operating Mode pin settings */
> - BOOT_MODE_OM = 32,
> - BOOT_MODE_USB, /* Boot using USB download */
> -};
> +#include <asm/arch/power.h>
>
> #ifndef __ASSEMBLY__
> /* Parameters of early board initialization in SPL */
> @@ -62,7 +49,7 @@ struct spl_machine_param {
> * table only for mmc boot.
> */
> u32 uboot_size;
> - enum boot_mode boot_source; /* Boot device */
> + unsigned boot_source; /* Boot device */
> unsigned frequency_mhz; /* Frequency of memory in MHz */
> unsigned arm_freq_mhz; /* ARM Frequency in MHz */
> u32 serial_base; /* Serial base address */
>
next prev parent reply other threads:[~2014-07-28 5:10 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-17 13:09 [U-Boot] [PATCH v5 00/12] Add support to Odroid U3/X2 Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 01/12] samsung: misc: fix soc revision setting in the set_board_info() Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 02/12] exynos: pinmux: fix the gpio names for exynos4x12 mmc Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 03/12] arch:exynos: boot mode: add get_boot_mode(), code cleanup Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 04/12] board:samsung: check the boot device and init the right mmc driver Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 05/12] samsung: misc: add function for setting $dfu_alt_info Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 06/12] samsung:board: misc_init_r: call set_dfu_alt_info() Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 07/12] arm:reset: call the reset_misc() before the cpu reset Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 08/12] samsung: board: enable support of multiple board types Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 09/12] samsung: misc: use board specific functions to set env board info Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 10/12] odroid: add board file for Odroid X2/U3 based on Samsung Exynos4412 Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 11/12] odroid: add odroid U3/X2 device tree description Przemyslaw Marczak
2014-07-17 13:09 ` [U-Boot] [PATCH v5 12/12] odroid: add odroid_config Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 00/12] Add support to Odroid U3/X2 Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 01/12] samsung: misc: fix soc revision setting in the set_board_info() Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 02/12] exynos: pinmux: fix the gpio names for exynos4x12 mmc Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 03/12] arch:exynos: boot mode: add get_boot_mode(), code cleanup Przemyslaw Marczak
2014-07-28 5:10 ` Jaehoon Chung [this message]
2014-07-28 8:26 ` Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 04/12] board:samsung: check the boot device and init the right mmc driver Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 05/12] samsung: misc: add function for setting $dfu_alt_info Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 06/12] samsung:board: misc_init_r: call set_dfu_alt_info() Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 07/12] arm:reset: call the reset_misc() before the cpu reset Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 08/12] samsung: board: enable support of multiple board types Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 09/12] samsung: misc: use board specific functions to set env board info Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 10/12] odroid: add board file for Odroid X2/U3 based on Samsung Exynos4412 Przemyslaw Marczak
2014-07-26 9:07 ` Minkyu Kang
2014-07-28 8:29 ` Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 11/12] odroid: add odroid U3/X2 device tree description Przemyslaw Marczak
2014-07-18 15:29 ` [U-Boot] [PATCH v6 12/12] odroid: add odroid_config Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 00/12] Add support to Odroid U3/X2 Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 01/12] samsung: misc: fix soc revision setting in the set_board_info() Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 02/12] exynos: pinmux: fix the gpio names for exynos4x12 mmc Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 03/12] arch:exynos: boot mode: add get_boot_mode(), code cleanup Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 04/12] board:samsung: check the boot device and init the right mmc driver Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 05/12] samsung: misc: add function for setting $dfu_alt_info Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 06/12] samsung:board: misc_init_r: call set_dfu_alt_info() Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 07/12] arm:reset: call the reset_misc() before the cpu reset Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 08/12] samsung: board: enable support of multiple board types Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 09/12] samsung: misc: use board specific functions to set env board info Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 10/12] odroid: add board file for Odroid X2/U3 based on Samsung Exynos4412 Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 11/12] odroid: add odroid U3/X2 device tree description Przemyslaw Marczak
2014-07-30 11:35 ` [U-Boot] [PATCH v7 12/12] odroid: add odroid_config Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 00/12] Add support to Odroid U3/X2 Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 01/12] samsung: misc: fix soc revision setting in the set_board_info() Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 02/12] exynos: pinmux: fix the gpio names for exynos4x12 mmc Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 03/12] arch:exynos: boot mode: add get_boot_mode(), code cleanup Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 04/12] board:samsung: check the boot device and init the right mmc driver Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 05/12] samsung: misc: add function for setting $dfu_alt_info Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 06/12] samsung:board: misc_init_r: call set_dfu_alt_info() Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 07/12] arm:reset: call the reset_misc() before the cpu reset Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 08/12] samsung: board: enable support of multiple board types Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 09/12] samsung: misc: use board specific functions to set env board info Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 10/12] odroid: add board file for Odroid X2/U3 based on Samsung Exynos4412 Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 11/12] odroid: add odroid U3/X2 device tree description Przemyslaw Marczak
2014-09-01 11:50 ` [U-Boot] [PATCH v8 12/12] odroid: kconfig: add odroid_defconfig Przemyslaw Marczak
2014-09-01 12:02 ` [U-Boot] [PATCH v8 00/12] Add support to Odroid U3/X2 Przemyslaw Marczak
2014-09-05 6:34 ` Minkyu Kang
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=53D5DB4E.9040402@samsung.com \
--to=jh80.chung@samsung.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.