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 05/12] MX6: add boot device support for SPL
Date: Mon, 05 May 2014 11:14:30 +0200	[thread overview]
Message-ID: <53675676.3080009@denx.de> (raw)
In-Reply-To: <1398716258-8420-6-git-send-email-tharvey@gateworks.com>

Hi Tim,

On 28/04/2014 22:17, Tim Harvey wrote:
> Add a common spl.c file to support boot device functions needed for SPL
> such as detecting the boot device.
> 
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> ---
> v2:
> - re-base on top of Masahiro Yamada's consolidation patch:
>   http://patchwork.ozlabs.org/patch/341817/
> - moved spl_boot_device() and get_boot_mode() into own common imx spl.c file
> - use mem-mapped structure for smbr reg access
> ---
>  arch/arm/imx-common/Makefile |  1 +
>  arch/arm/imx-common/spl.c    | 79 ++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 80 insertions(+)
>  create mode 100644 arch/arm/imx-common/spl.c
> 
> diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
> index b04dfbb..c97ea48 100644
> --- a/arch/arm/imx-common/Makefile
> +++ b/arch/arm/imx-common/Makefile
> @@ -16,6 +16,7 @@ obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o
>  endif
>  ifeq ($(SOC),$(filter $(SOC),mx6 mxs))
>  obj-y	+= misc.o
> +obj-$(CONFIG_SPL_BUILD)	+= spl.o
>  endif
>  ifeq ($(SOC),$(filter $(SOC),mx6))
>  obj-$(CONFIG_CMD_SATA) += sata.o
> diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
> new file mode 100644
> index 0000000..5c1667c
> --- /dev/null
> +++ b/arch/arm/imx-common/spl.c
> @@ -0,0 +1,79 @@
> +/*
> + * Copyright (C) 2014 Gateworks Corporation
> + * Author: Tim Harvey <tharvey@gateworks.com>
> + *
> + * SPDX-License-Identifier:     GPL-2.0+
> + */
> +

Just a little remark. Do you have written the function on your own or
have you ported it from Freescale's 2009.08 ? Apart names, it looks similar.

If this is the case, you should also add Freescale's Copyright to the
header.

> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/imx-regs.h>
> +#include <asm/spl.h>
> +#include <spl.h>
> +
> +#if defined(CONFIG_MX6)
> +/* determine boot device from SRC_SBMR1 register (BOOT_CFG[4:1]) */
> +u32 spl_boot_device(void)
> +{
> +	struct src *psrc = (struct src *)SRC_BASE_ADDR;
> +	unsigned reg = readl(&psrc->sbmr1);
> +
> +	/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
> +	switch ((reg & 0x000000FF) >> 4) {
> +	 /* EIM: See 8.5.1, Table 8-9 */
> +	case 0x0:
> +		/* BOOT_CFG1[3]: NOR/OneNAND Selection */
> +		if ((reg & 0x00000008) >> 3)
> +			return BOOT_DEVICE_ONENAND;
> +		else
> +			return BOOT_DEVICE_NOR;
> +		break;
> +	/* SATA: See 8.5.4, Table 8-20 */
> +	case 0x2:
> +		return BOOT_DEVICE_SATA;
> +	/* Serial ROM: See 8.5.5.1, Table 8-22 */
> +	case 0x3:
> +		/* BOOT_CFG4[2:0] */
> +		switch ((reg & 0x07000000) >> 24) {
> +		case 0x0 ... 0x4:
> +			return BOOT_DEVICE_SPI;
> +		case 0x5 ... 0x7:
> +			return BOOT_DEVICE_I2C;
> +		}
> +		break;
> +	/* SD/eSD: 8.5.3, Table 8-15  */
> +	case 0x4:
> +	case 0x5:
> +		return BOOT_DEVICE_MMC1;
> +	/* MMC/eMMC: 8.5.3 */
> +	case 0x6:
> +	case 0x7:
> +		return BOOT_DEVICE_MMC1;
> +	/* NAND Flash: 8.5.2 */
> +	case 0x8 ... 0xf:
> +		return BOOT_DEVICE_NAND;
> +	}
> +	return BOOT_DEVICE_NONE;
> +}
> +#endif
> +
> +#if defined(CONFIG_SPL_MMC_SUPPORT)
> +/* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */
> +u32 spl_boot_mode(void)
> +{
> +	switch (spl_boot_device()) {
> +	/* for MMC return either RAW or FAT mode */
> +	case BOOT_DEVICE_MMC1:
> +	case BOOT_DEVICE_MMC2:
> +#ifdef CONFIG_SPL_FAT_SUPPORT
> +		return MMCSD_MODE_FAT;
> +#else
> +		return MMCSD_MODE_RAW;
> +#endif
> +		break;
> +	default:
> +		puts("spl: ERROR:  unsupported device\n");
> +		hang();
> +	}
> +}
> +#endif
> 

Best regards,
Stefano Babic

-- 
=====================================================================
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 at denx.de
=====================================================================

  parent reply	other threads:[~2014-05-05  9:14 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 20:17 [U-Boot] [PATCH 00/12] MX6: SPL NAND support Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 01/12] SPL: NAND: remove CONFIG_SYS_NAND_PAGE_SIZE Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 02/12] SPL: NAND: add support for mxs nand Tim Harvey
2014-05-02 20:56   ` Scott Wood
2014-05-06  4:08     ` Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 03/12] MX6: add common SPL configuration Tim Harvey
2014-04-29  4:14   ` Eric Nelson
2014-04-29  6:37     ` Igor Grinberg
2014-04-29 11:55       ` Tim Harvey
2014-05-05  9:05   ` Stefano Babic
2014-05-07 17:01   ` Nikita Kiryanov
2014-04-28 20:17 ` [U-Boot] [PATCH 04/12] spl: consolidate arch/arm/include/asm/arch-*/spl.h Tim Harvey
2014-04-30  5:39   ` Masahiro Yamada
2014-05-05  9:08     ` Stefano Babic
2014-04-28 20:17 ` [U-Boot] [PATCH 05/12] MX6: add boot device support for SPL Tim Harvey
2014-04-29  4:28   ` Eric Nelson
2014-05-05  9:14   ` Stefano Babic [this message]
2014-05-05 15:46     ` Tim Harvey
2014-05-05 18:30       ` Stefano Babic
2014-05-06  6:36       ` Tapani Utriainen
2014-05-06  7:55         ` Stefano Babic
2014-05-06 15:42           ` Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 06/12] IMX: add comments and remove unused struct fields Tim Harvey
2014-05-05 10:28   ` Stefano Babic
2014-04-28 20:17 ` [U-Boot] [PATCH 07/12] MX6: add structs for mmdc and ddr iomux registers Tim Harvey
2014-04-29 14:20   ` Eric Nelson
2014-05-05 10:34   ` Stefano Babic
2014-05-05 15:52     ` Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 08/12] MX6: add mmdc configuration for MX6Q/MX6DL Tim Harvey
2014-04-29 15:15   ` Eric Nelson
2014-04-29 18:19     ` Tim Harvey
2014-04-29 18:26       ` Eric Nelson
2014-04-29 18:35     ` Otavio Salvador
2014-04-28 20:17 ` [U-Boot] [PATCH 09/12] IMX: add additional function for pinmux using an array Tim Harvey
2014-04-29 15:22   ` Eric Nelson
2014-05-06  4:35     ` Tim Harvey
2014-05-07 16:59       ` Nikita Kiryanov
2014-05-08  4:11         ` Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 10/12] imx: ventana: split read_eeprom into standalone file Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 11/12] imx: ventana: auto-configure for IMX6Q vs IMX6DL Tim Harvey
2014-04-28 20:17 ` [U-Boot] [PATCH 12/12] imx: ventana: switch to SPL Tim Harvey
2014-05-06 18:18   ` Tim Harvey
2014-05-06 18:45     ` York Sun
2014-05-06 19:11     ` Jeroen Hofstee
2014-05-06 23:35       ` Tim Harvey
2014-05-07 16:14         ` York Sun
2014-05-07 18:43           ` Jeroen Hofstee
2014-05-07 20:27           ` Tim Harvey
2014-05-07 20:29             ` York Sun
2014-05-07 20:35               ` Tim Harvey
2014-05-07 20:36                 ` York Sun
2014-05-07  9:29     ` Stefano Babic
2014-05-14  4:58       ` Tim Harvey
2014-05-14  5:03         ` Tim Harvey
2014-05-14 22:32           ` Tim Harvey
2014-05-15  9:20             ` Stefano Babic

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=53675676.3080009@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.