All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] spl: consolidate arch/arm/include/asm/arch-*/spl.h
Date: Thu, 17 Apr 2014 14:59:27 +0200	[thread overview]
Message-ID: <534FD02F.7050509@denx.de> (raw)
In-Reply-To: <1397630676-14520-1-git-send-email-yamada.m@jp.panasonic.com>

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

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================

  parent reply	other threads:[~2014-04-17 12:59 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-16  6:44 [U-Boot] [PATCH] spl: consolidate arch/arm/include/asm/arch-*/spl.h Masahiro Yamada
2014-04-16 10:21 ` Bo Shen
2014-04-16 17:05 ` Stephen Warren
2014-04-17 12:59 ` Stefano Babic [this message]
2014-04-22  9:39 ` Michal Simek
2014-04-23  7:30 ` Andreas Bießmann
2014-04-23  8:10 ` Tim Harvey
2014-04-25 18:52 ` Tom Rini
2014-04-28  8:16   ` Masahiro Yamada
2014-05-16  6:16     ` Tim Harvey
2014-05-16  6:25       ` Masahiro Yamada

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=534FD02F.7050509@denx.de \
    --to=sbabic@denx.de \
    --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.