diff mbox

[U-Boot] spl: consolidate arch/arm/include/asm/arch-*/spl.h

Message ID 1397630676-14520-1-git-send-email-yamada.m@jp.panasonic.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada April 16, 2014, 6:44 a.m. UTC
arch/arm/include/asm/spl.h requires all SoCs to have
arch/arm/include/asm/arch-*/spl.h.

But many of them just define BOOT_DEVICE_* macros.

Those macros are used in the "switch (boot_device) { ... }"
statement in common/spl/spl.c.

So they should not be archtecture specific, but described as
a simpile enumeration.

This commit merge most of arch/arm/include/asm/arch-*/spl.h
into arch/arm/include/asm/spl.h.

With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
will be merged, while I am not sure about OMAP and Exynos.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Tom Rini <trini@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Andreas Bießmann <andreas.devel@googlemail.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Tom Warren <twarren@nvidia.com>
CC: Stefano Babic <sbabic@denx.de>
CC: Minkyu Kang <mk7.kang@samsung.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
---
 arch/arm/cpu/arm720t/tegra-common/spl.c  |  2 +-
 arch/arm/include/asm/arch-at91/spl.h     | 24 ------------------------
 arch/arm/include/asm/arch-davinci/spl.h  | 16 ----------------
 arch/arm/include/asm/arch-mx35/spl.h     | 22 ----------------------
 arch/arm/include/asm/arch-mx5/spl.h      | 13 -------------
 arch/arm/include/asm/arch-tegra114/spl.h | 22 ----------------------
 arch/arm/include/asm/arch-tegra124/spl.h | 13 -------------
 arch/arm/include/asm/arch-tegra20/spl.h  | 12 ------------
 arch/arm/include/asm/arch-tegra30/spl.h  | 12 ------------
 arch/arm/include/asm/spl.h               | 18 ++++++++++++++++++
 board/denx/m53evk/m53evk.c               |  2 +-
 11 files changed, 20 insertions(+), 136 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-at91/spl.h
 delete mode 100644 arch/arm/include/asm/arch-davinci/spl.h
 delete mode 100644 arch/arm/include/asm/arch-mx35/spl.h
 delete mode 100644 arch/arm/include/asm/arch-mx5/spl.h
 delete mode 100644 arch/arm/include/asm/arch-tegra114/spl.h
 delete mode 100644 arch/arm/include/asm/arch-tegra124/spl.h
 delete mode 100644 arch/arm/include/asm/arch-tegra20/spl.h
 delete mode 100644 arch/arm/include/asm/arch-tegra30/spl.h

Comments

Bo Shen April 16, 2014, 10:21 a.m. UTC | #1
Hi Masahiro Yamada,

On 04/16/2014 02:44 PM, Masahiro Yamada wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
>
> But many of them just define BOOT_DEVICE_* macros.
>
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
>
> So they should not be archtecture specific, but described as
> a simpile enumeration.
>
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
>
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.
>
> Signed-off-by: Masahiro Yamada<yamada.m@jp.panasonic.com>
> Cc: Tom Rini<trini@ti.com>
> Cc: Michal Simek<michal.simek@xilinx.com>
> Cc: Andreas Bießmann<andreas.devel@googlemail.com>
> Cc: Stephen Warren<swarren@nvidia.com>
> Cc: Tom Warren<twarren@nvidia.com>
> CC: Stefano Babic<sbabic@denx.de>
> CC: Minkyu Kang<mk7.kang@samsung.com>
> Cc: Dinh Nguyen<dinguyen@altera.com>
> ---
>   arch/arm/cpu/arm720t/tegra-common/spl.c  |  2 +-
>   arch/arm/include/asm/arch-at91/spl.h     | 24 ------------------------

Tested ok on sama5d3xek board for at91 part.

Tested-by: Bo Shen <voice.shen@atmel.com>

Best Regards,
Bo Shen
Stephen Warren April 16, 2014, 5:05 p.m. UTC | #2
On 04/16/2014 12:44 AM, Masahiro Yamada wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
> 
> But many of them just define BOOT_DEVICE_* macros.
> 
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
> 
> So they should not be archtecture specific, but described as
> a simpile enumeration.
> 
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
> 
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.

Seems reasonable to me,
Acked-by: Stephen Warren <swarren@nvidia.com>
Stefano Babic April 17, 2014, 12:59 p.m. UTC | #3
Hi Masahiro,

On 16/04/2014 08:44, Masahiro Yamada wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
> 
> But many of them just define BOOT_DEVICE_* macros.
> 
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
> 
> So they should not be archtecture specific, but described as
> a simpile enumeration.

Absolutely right !

> 
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
> 
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Andreas Bießmann <andreas.devel@googlemail.com>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Tom Warren <twarren@nvidia.com>
> CC: Stefano Babic <sbabic@denx.de>
> CC: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Dinh Nguyen <dinguyen@altera.com>
> ---
>  arch/arm/cpu/arm720t/tegra-common/spl.c  |  2 +-
>  arch/arm/include/asm/arch-at91/spl.h     | 24 ------------------------
>  arch/arm/include/asm/arch-davinci/spl.h  | 16 ----------------
>  arch/arm/include/asm/arch-mx35/spl.h     | 22 ----------------------
>  arch/arm/include/asm/arch-mx5/spl.h      | 13 -------------
>  arch/arm/include/asm/arch-tegra114/spl.h | 22 ----------------------
>  arch/arm/include/asm/arch-tegra124/spl.h | 13 -------------
>  arch/arm/include/asm/arch-tegra20/spl.h  | 12 ------------
>  arch/arm/include/asm/arch-tegra30/spl.h  | 12 ------------
>  arch/arm/include/asm/spl.h               | 18 ++++++++++++++++++
>  board/denx/m53evk/m53evk.c               |  2 +-
>  11 files changed, 20 insertions(+), 136 deletions(-)
>  delete mode 100644 arch/arm/include/asm/arch-at91/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-davinci/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-mx35/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-mx5/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-tegra114/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-tegra124/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-tegra20/spl.h
>  delete mode 100644 arch/arm/include/asm/arch-tegra30/spl.h
> 
> diff --git a/arch/arm/cpu/arm720t/tegra-common/spl.c b/arch/arm/cpu/arm720t/tegra-common/spl.c
> index 5171a8f..8147806 100644
> --- a/arch/arm/cpu/arm720t/tegra-common/spl.c
> +++ b/arch/arm/cpu/arm720t/tegra-common/spl.c
> @@ -14,7 +14,7 @@
>  #include <asm/arch/pinmux.h>
>  #include <asm/arch/tegra.h>
>  #include <asm/arch-tegra/board.h>
> -#include <asm/arch/spl.h>
> +#include <asm/spl.h>
>  #include "cpu.h"
>  
>  void spl_board_init(void)
> diff --git a/arch/arm/include/asm/arch-at91/spl.h b/arch/arm/include/asm/arch-at91/spl.h
> deleted file mode 100644
> index d8a87da..0000000
> --- a/arch/arm/include/asm/arch-at91/spl.h
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -/*
> - * Copyright (C) 2013 Atmel Corporation
> - *		      Bo Shen <voice.shen@atmel.com>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -enum {
> -	BOOT_DEVICE_NONE,
> -#ifdef CONFIG_SYS_USE_MMC
> -	BOOT_DEVICE_MMC1,
> -	BOOT_DEVICE_MMC2,
> -	BOOT_DEVICE_MMC2_2,
> -#elif CONFIG_SYS_USE_NANDFLASH
> -	BOOT_DEVICE_NAND,
> -#elif CONFIG_SYS_USE_SERIALFLASH
> -	BOOT_DEVICE_SPI,
> -#endif
> -};
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-davinci/spl.h b/arch/arm/include/asm/arch-davinci/spl.h
> deleted file mode 100644
> index 5afe0d4..0000000
> --- a/arch/arm/include/asm/arch-davinci/spl.h
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -/*
> - * (C) Copyright 2012
> - * Texas Instruments, <www.ti.com>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_NAND	1
> -#define BOOT_DEVICE_SPI		2
> -#define BOOT_DEVICE_MMC1	3
> -#define BOOT_DEVICE_MMC2	4	/* dummy */
> -#define BOOT_DEVICE_MMC2_2	5	/* dummy */
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-mx35/spl.h b/arch/arm/include/asm/arch-mx35/spl.h
> deleted file mode 100644
> index d0efec2..0000000
> --- a/arch/arm/include/asm/arch-mx35/spl.h
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/*
> - * (C) Copyright 2012
> - * Texas Instruments, <www.ti.com>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_NONE	0
> -#define BOOT_DEVICE_XIP		1
> -#define BOOT_DEVICE_XIPWAIT	2
> -#define BOOT_DEVICE_NAND	3
> -#define BOOT_DEVICE_ONENAND	4
> -#define BOOT_DEVICE_MMC1	5
> -#define BOOT_DEVICE_MMC2	6
> -#define BOOT_DEVICE_MMC2_2	7
> -#define BOOT_DEVICE_NOR		8
> -#define BOOT_DEVICE_I2C		9
> -#define BOOT_DEVICE_SPI		10
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-mx5/spl.h b/arch/arm/include/asm/arch-mx5/spl.h
> deleted file mode 100644
> index 20c6cae..0000000
> --- a/arch/arm/include/asm/arch-mx5/spl.h
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -/*
> - * Copyright (C) 2013 Marek Vasut <marex@denx.de>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -
> -#ifndef __ASM_ARCH_SPL_H__
> -#define __ASM_ARCH_SPL_H__
> -
> -#define BOOT_DEVICE_NONE	0
> -#define BOOT_DEVICE_NAND	1
> -
> -#endif	/* __ASM_ARCH_SPL_H__ */
> diff --git a/arch/arm/include/asm/arch-tegra114/spl.h b/arch/arm/include/asm/arch-tegra114/spl.h
> deleted file mode 100644
> index ebb16fe..0000000
> --- a/arch/arm/include/asm/arch-tegra114/spl.h
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/*
> - * Copyright (c) 2010-2013, NVIDIA CORPORATION.  All rights reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms and conditions of the GNU General Public License,
> - * version 2, as published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope it will be useful, but WITHOUT
> - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> - * more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> - */
> -
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_RAM         1
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-tegra124/spl.h b/arch/arm/include/asm/arch-tegra124/spl.h
> deleted file mode 100644
> index e266395..0000000
> --- a/arch/arm/include/asm/arch-tegra124/spl.h
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -/*
> - * (C) Copyright 2010-2013
> - * NVIDIA Corporation <www.nvidia.com>
> - *
> - * SPDX-License-Identifier:     GPL-2.0+
> - */
> -
> -#ifndef _ASM_ARCH_SPL_H_
> -#define _ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_RAM 1
> -
> -#endif /* _ASM_ARCH_SPL_H_ */
> diff --git a/arch/arm/include/asm/arch-tegra20/spl.h b/arch/arm/include/asm/arch-tegra20/spl.h
> deleted file mode 100644
> index 8953b00..0000000
> --- a/arch/arm/include/asm/arch-tegra20/spl.h
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/*
> - * (C) Copyright 2012
> - * NVIDIA Corporation <www.nvidia.com>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_RAM         1
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-tegra30/spl.h b/arch/arm/include/asm/arch-tegra30/spl.h
> deleted file mode 100644
> index 8953b00..0000000
> --- a/arch/arm/include/asm/arch-tegra30/spl.h
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/*
> - * (C) Copyright 2012
> - * NVIDIA Corporation <www.nvidia.com>
> - *
> - * SPDX-License-Identifier:	GPL-2.0+
> - */
> -#ifndef	_ASM_ARCH_SPL_H_
> -#define	_ASM_ARCH_SPL_H_
> -
> -#define BOOT_DEVICE_RAM         1
> -
> -#endif
> diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h
> index 90e5a9d..2e94a09 100644
> --- a/arch/arm/include/asm/spl.h
> +++ b/arch/arm/include/asm/spl.h
> @@ -7,9 +7,27 @@
>  #ifndef	_ASM_SPL_H_
>  #define	_ASM_SPL_H_
>  
> +#if defined(CONFIG_OMAP) || defined(CONFIG_SOCFPGA) || defined(CONFIG_ZYNQ) \
> +	|| defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
>  /* Platform-specific defines */
>  #include <asm/arch/spl.h>
>  
> +#else
> +enum {
> +	BOOT_DEVICE_RAM,
> +	BOOT_DEVICE_MMC1,
> +	BOOT_DEVICE_MMC2,
> +	BOOT_DEVICE_MMC2_2,
> +	BOOT_DEVICE_NAND,
> +	BOOT_DEVICE_ONENAND,
> +	BOOT_DEVICE_NOR,
> +	BOOT_DEVICE_UART,
> +	BOOT_DEVICE_SPI,
> +	BOOT_DEVICE_I2C,
> +	BOOT_DEVICE_NONE
> +};
> +#endif
> +
>  /* Linker symbols. */
>  extern char __bss_start[], __bss_end[];
>  
> diff --git a/board/denx/m53evk/m53evk.c b/board/denx/m53evk/m53evk.c
> index 74f9501..5dd6cdd 100644
> --- a/board/denx/m53evk/m53evk.c
> +++ b/board/denx/m53evk/m53evk.c
> @@ -14,7 +14,7 @@
>  #include <asm/arch/clock.h>
>  #include <asm/arch/iomux-mx53.h>
>  #include <asm/imx-common/mx5_video.h>
> -#include <asm/arch/spl.h>
> +#include <asm/spl.h>
>  #include <asm/errno.h>
>  #include <netdev.h>
>  #include <i2c.h>
> 

Acked-by: Stefano Babic <sbabic@denx.de>

By the way, an issue we have with the current implementation is that we
need to add a further enum for each instance of the same boot device
type. You can see with BOOT_DEVICE_MMC1, BOOT_DEVICE_MMC2,
BOOT_DEVICE_MMC2_2. I will presume we will have the same with SPI and
I2C, more uncommon with NAND. What about (I am OT here, it should be
done in a separate patch) if we will change spl_boot_device(), that now
returns this enum, combining in the return value the instance of the
device ? (Example: (BOOT_DEVICE_MMC << 16 | 2) for MMC2)

Best regards,
Stefano
Michal Simek April 22, 2014, 9:39 a.m. UTC | #4
On 04/16/2014 08:44 AM, Masahiro Yamada wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
> 
> But many of them just define BOOT_DEVICE_* macros.
> 
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
> 
> So they should not be archtecture specific, but described as
> a simpile enumeration.
> 
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
> 
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>


Finally. :-)
Acked-by: Michal Simek <monstr@monstr.eu>

Thanks,
Michal
Andreas Bießmann April 23, 2014, 7:30 a.m. UTC | #5
On 04/16/2014 08:44 AM, Masahiro Yamada wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
> 
> But many of them just define BOOT_DEVICE_* macros.
> 
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
> 
> So they should not be archtecture specific, but described as
> a simpile enumeration.
> 
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
> 
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Andreas Bießmann <andreas.devel@googlemail.com>

Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Tim Harvey April 23, 2014, 8:10 a.m. UTC | #6
On Tue, Apr 15, 2014 at 11:44 PM, Masahiro Yamada
<yamada.m@jp.panasonic.com> wrote:
> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
>
> But many of them just define BOOT_DEVICE_* macros.
>
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
>
> So they should not be archtecture specific, but described as
> a simpile enumeration.
>
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
>
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.
>
<snip>
> --- a/arch/arm/include/asm/spl.h
> +++ b/arch/arm/include/asm/spl.h
> @@ -7,9 +7,27 @@
>  #ifndef        _ASM_SPL_H_
>  #define        _ASM_SPL_H_
>
> +#if defined(CONFIG_OMAP) || defined(CONFIG_SOCFPGA) || defined(CONFIG_ZYNQ) \
> +       || defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
>  /* Platform-specific defines */
>  #include <asm/arch/spl.h>
>
> +#else
> +enum {
> +       BOOT_DEVICE_RAM,
> +       BOOT_DEVICE_MMC1,
> +       BOOT_DEVICE_MMC2,
> +       BOOT_DEVICE_MMC2_2,
> +       BOOT_DEVICE_NAND,
> +       BOOT_DEVICE_ONENAND,
> +       BOOT_DEVICE_NOR,
> +       BOOT_DEVICE_UART,
> +       BOOT_DEVICE_SPI,
> +       BOOT_DEVICE_I2C,
> +       BOOT_DEVICE_NONE
> +};
> +#endif
> +

Masahiro,

This is great! If you can add BOOT_DEVICE_SATA I can use this for imx,
then you can add my:

Acked-by: Tim Harvey <tharvey@gateworks.com>

Thanks,

Tim
Tom Rini April 25, 2014, 6:52 p.m. UTC | #7
On Wed, Apr 16, 2014 at 03:44:36PM +0900, Masahiro Yamada wrote:

> arch/arm/include/asm/spl.h requires all SoCs to have
> arch/arm/include/asm/arch-*/spl.h.
> 
> But many of them just define BOOT_DEVICE_* macros.
> 
> Those macros are used in the "switch (boot_device) { ... }"
> statement in common/spl/spl.c.
> 
> So they should not be archtecture specific, but described as
> a simpile enumeration.
> 
> This commit merge most of arch/arm/include/asm/arch-*/spl.h
> into arch/arm/include/asm/spl.h.
> 
> With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> will be merged, while I am not sure about OMAP and Exynos.

The problem is that on TI platforms these values have meaning defined by
ROM (which changes occasionally).  When ROM starts us up, we get a
little bit of info that says "I found and loaded you on ...".  So while
we could move towards moving BOOT_DEVICE_FOO into <spl.h> we'd need in
arch/arm/cpu/armv7/omap-common/boot-common.c some logic to translate
from ROM numbers to U-Boot numbers.
Masahiro Yamada April 28, 2014, 8:16 a.m. UTC | #8
Hi Tom,

On Fri, 25 Apr 2014 14:52:06 -0400
Tom Rini <trini@ti.com> wrote:

> On Wed, Apr 16, 2014 at 03:44:36PM +0900, Masahiro Yamada wrote:
> 
> > arch/arm/include/asm/spl.h requires all SoCs to have
> > arch/arm/include/asm/arch-*/spl.h.
> > 
> > But many of them just define BOOT_DEVICE_* macros.
> > 
> > Those macros are used in the "switch (boot_device) { ... }"
> > statement in common/spl/spl.c.
> > 
> > So they should not be archtecture specific, but described as
> > a simpile enumeration.
> > 
> > This commit merge most of arch/arm/include/asm/arch-*/spl.h
> > into arch/arm/include/asm/spl.h.
> > 
> > With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> > will be merged, while I am not sure about OMAP and Exynos.
> 
> The problem is that on TI platforms these values have meaning defined by
> ROM (which changes occasionally).  When ROM starts us up, we get a
> little bit of info that says "I found and loaded you on ...".  So while
> we could move towards moving BOOT_DEVICE_FOO into <spl.h> we'd need in
> arch/arm/cpu/armv7/omap-common/boot-common.c some logic to translate
> from ROM numbers to U-Boot numbers.

Could you apply my patch first and fix the OMAP translation logic lator?

I want to stop duplication of similar spl.h headers.

Best Regards
Masahiro Yamada
Tim Harvey May 16, 2014, 6:16 a.m. UTC | #9
On Mon, Apr 28, 2014 at 1:16 AM, Masahiro Yamada
<yamada.m@jp.panasonic.com> wrote:
>
> Hi Tom,
>
> On Fri, 25 Apr 2014 14:52:06 -0400
> Tom Rini <trini@ti.com> wrote:
>
> > On Wed, Apr 16, 2014 at 03:44:36PM +0900, Masahiro Yamada wrote:
> >
> > > arch/arm/include/asm/spl.h requires all SoCs to have
> > > arch/arm/include/asm/arch-*/spl.h.
> > >
> > > But many of them just define BOOT_DEVICE_* macros.
> > >
> > > Those macros are used in the "switch (boot_device) { ... }"
> > > statement in common/spl/spl.c.
> > >
> > > So they should not be archtecture specific, but described as
> > > a simpile enumeration.
> > >
> > > This commit merge most of arch/arm/include/asm/arch-*/spl.h
> > > into arch/arm/include/asm/spl.h.
> > >
> > > With a little more effort, arch-zynq/spl.h and arch-socfpga/spl.h
> > > will be merged, while I am not sure about OMAP and Exynos.
> >
> > The problem is that on TI platforms these values have meaning defined by
> > ROM (which changes occasionally).  When ROM starts us up, we get a
> > little bit of info that says "I found and loaded you on ...".  So while
> > we could move towards moving BOOT_DEVICE_FOO into <spl.h> we'd need in
> > arch/arm/cpu/armv7/omap-common/boot-common.c some logic to translate
> > from ROM numbers to U-Boot numbers.
>
> Could you apply my patch first and fix the OMAP translation logic lator?
>
> I want to stop duplication of similar spl.h headers.
>
> Best Regards
> Masahiro Yamada

Tom / Masahiro,

Any update on this? This is a very useful cleanup and there is at
least one pending patch series that depend on it.

Regards,

Tim
Masahiro Yamada May 16, 2014, 6:25 a.m. UTC | #10
Hi Tim, Tom,

> 
> Tom / Masahiro,
> 
> Any update on this? This is a very useful cleanup and there is at
> least one pending patch series that depend on it.

No update from me.

Version 2 is the latest one.
http://patchwork.ozlabs.org/patch/341817/

I am also waiting for the review.


Best Regards
Masahiro Yamada
diff mbox

Patch

diff --git a/arch/arm/cpu/arm720t/tegra-common/spl.c b/arch/arm/cpu/arm720t/tegra-common/spl.c
index 5171a8f..8147806 100644
--- a/arch/arm/cpu/arm720t/tegra-common/spl.c
+++ b/arch/arm/cpu/arm720t/tegra-common/spl.c
@@ -14,7 +14,7 @@ 
 #include <asm/arch/pinmux.h>
 #include <asm/arch/tegra.h>
 #include <asm/arch-tegra/board.h>
-#include <asm/arch/spl.h>
+#include <asm/spl.h>
 #include "cpu.h"
 
 void spl_board_init(void)
diff --git a/arch/arm/include/asm/arch-at91/spl.h b/arch/arm/include/asm/arch-at91/spl.h
deleted file mode 100644
index d8a87da..0000000
--- a/arch/arm/include/asm/arch-at91/spl.h
+++ /dev/null
@@ -1,24 +0,0 @@ 
-/*
- * Copyright (C) 2013 Atmel Corporation
- *		      Bo Shen <voice.shen@atmel.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-enum {
-	BOOT_DEVICE_NONE,
-#ifdef CONFIG_SYS_USE_MMC
-	BOOT_DEVICE_MMC1,
-	BOOT_DEVICE_MMC2,
-	BOOT_DEVICE_MMC2_2,
-#elif CONFIG_SYS_USE_NANDFLASH
-	BOOT_DEVICE_NAND,
-#elif CONFIG_SYS_USE_SERIALFLASH
-	BOOT_DEVICE_SPI,
-#endif
-};
-
-#endif
diff --git a/arch/arm/include/asm/arch-davinci/spl.h b/arch/arm/include/asm/arch-davinci/spl.h
deleted file mode 100644
index 5afe0d4..0000000
--- a/arch/arm/include/asm/arch-davinci/spl.h
+++ /dev/null
@@ -1,16 +0,0 @@ 
-/*
- * (C) Copyright 2012
- * Texas Instruments, <www.ti.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_NAND	1
-#define BOOT_DEVICE_SPI		2
-#define BOOT_DEVICE_MMC1	3
-#define BOOT_DEVICE_MMC2	4	/* dummy */
-#define BOOT_DEVICE_MMC2_2	5	/* dummy */
-
-#endif
diff --git a/arch/arm/include/asm/arch-mx35/spl.h b/arch/arm/include/asm/arch-mx35/spl.h
deleted file mode 100644
index d0efec2..0000000
--- a/arch/arm/include/asm/arch-mx35/spl.h
+++ /dev/null
@@ -1,22 +0,0 @@ 
-/*
- * (C) Copyright 2012
- * Texas Instruments, <www.ti.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_NONE	0
-#define BOOT_DEVICE_XIP		1
-#define BOOT_DEVICE_XIPWAIT	2
-#define BOOT_DEVICE_NAND	3
-#define BOOT_DEVICE_ONENAND	4
-#define BOOT_DEVICE_MMC1	5
-#define BOOT_DEVICE_MMC2	6
-#define BOOT_DEVICE_MMC2_2	7
-#define BOOT_DEVICE_NOR		8
-#define BOOT_DEVICE_I2C		9
-#define BOOT_DEVICE_SPI		10
-
-#endif
diff --git a/arch/arm/include/asm/arch-mx5/spl.h b/arch/arm/include/asm/arch-mx5/spl.h
deleted file mode 100644
index 20c6cae..0000000
--- a/arch/arm/include/asm/arch-mx5/spl.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-/*
- * Copyright (C) 2013 Marek Vasut <marex@denx.de>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#ifndef __ASM_ARCH_SPL_H__
-#define __ASM_ARCH_SPL_H__
-
-#define BOOT_DEVICE_NONE	0
-#define BOOT_DEVICE_NAND	1
-
-#endif	/* __ASM_ARCH_SPL_H__ */
diff --git a/arch/arm/include/asm/arch-tegra114/spl.h b/arch/arm/include/asm/arch-tegra114/spl.h
deleted file mode 100644
index ebb16fe..0000000
--- a/arch/arm/include/asm/arch-tegra114/spl.h
+++ /dev/null
@@ -1,22 +0,0 @@ 
-/*
- * Copyright (c) 2010-2013, NVIDIA CORPORATION.  All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_RAM         1
-
-#endif
diff --git a/arch/arm/include/asm/arch-tegra124/spl.h b/arch/arm/include/asm/arch-tegra124/spl.h
deleted file mode 100644
index e266395..0000000
--- a/arch/arm/include/asm/arch-tegra124/spl.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-/*
- * (C) Copyright 2010-2013
- * NVIDIA Corporation <www.nvidia.com>
- *
- * SPDX-License-Identifier:     GPL-2.0+
- */
-
-#ifndef _ASM_ARCH_SPL_H_
-#define _ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_RAM 1
-
-#endif /* _ASM_ARCH_SPL_H_ */
diff --git a/arch/arm/include/asm/arch-tegra20/spl.h b/arch/arm/include/asm/arch-tegra20/spl.h
deleted file mode 100644
index 8953b00..0000000
--- a/arch/arm/include/asm/arch-tegra20/spl.h
+++ /dev/null
@@ -1,12 +0,0 @@ 
-/*
- * (C) Copyright 2012
- * NVIDIA Corporation <www.nvidia.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_RAM         1
-
-#endif
diff --git a/arch/arm/include/asm/arch-tegra30/spl.h b/arch/arm/include/asm/arch-tegra30/spl.h
deleted file mode 100644
index 8953b00..0000000
--- a/arch/arm/include/asm/arch-tegra30/spl.h
+++ /dev/null
@@ -1,12 +0,0 @@ 
-/*
- * (C) Copyright 2012
- * NVIDIA Corporation <www.nvidia.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-#ifndef	_ASM_ARCH_SPL_H_
-#define	_ASM_ARCH_SPL_H_
-
-#define BOOT_DEVICE_RAM         1
-
-#endif
diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h
index 90e5a9d..2e94a09 100644
--- a/arch/arm/include/asm/spl.h
+++ b/arch/arm/include/asm/spl.h
@@ -7,9 +7,27 @@ 
 #ifndef	_ASM_SPL_H_
 #define	_ASM_SPL_H_
 
+#if defined(CONFIG_OMAP) || defined(CONFIG_SOCFPGA) || defined(CONFIG_ZYNQ) \
+	|| defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
 /* Platform-specific defines */
 #include <asm/arch/spl.h>
 
+#else
+enum {
+	BOOT_DEVICE_RAM,
+	BOOT_DEVICE_MMC1,
+	BOOT_DEVICE_MMC2,
+	BOOT_DEVICE_MMC2_2,
+	BOOT_DEVICE_NAND,
+	BOOT_DEVICE_ONENAND,
+	BOOT_DEVICE_NOR,
+	BOOT_DEVICE_UART,
+	BOOT_DEVICE_SPI,
+	BOOT_DEVICE_I2C,
+	BOOT_DEVICE_NONE
+};
+#endif
+
 /* Linker symbols. */
 extern char __bss_start[], __bss_end[];
 
diff --git a/board/denx/m53evk/m53evk.c b/board/denx/m53evk/m53evk.c
index 74f9501..5dd6cdd 100644
--- a/board/denx/m53evk/m53evk.c
+++ b/board/denx/m53evk/m53evk.c
@@ -14,7 +14,7 @@ 
 #include <asm/arch/clock.h>
 #include <asm/arch/iomux-mx53.h>
 #include <asm/imx-common/mx5_video.h>
-#include <asm/arch/spl.h>
+#include <asm/spl.h>
 #include <asm/errno.h>
 #include <netdev.h>
 #include <i2c.h>