All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Harvey <tharvey@gateworks.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 05/11] MX6: add boot device support SPL
Date: Wed, 16 Apr 2014 23:16:28 -0700	[thread overview]
Message-ID: <CAJ+vNU1H4pyj0EJu4Jzb5yJaZvMdz3wEQGCxHB=82SKNrek-Ug@mail.gmail.com> (raw)
In-Reply-To: <534BD429.7060108@denx.de>

On Mon, Apr 14, 2014 at 5:27 AM, Stefano Babic <sbabic@denx.de> wrote:
> Hi Tim,
>
>> diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
>> index 1725279..4ee62c7 100644
>> --- a/arch/arm/cpu/armv7/mx6/soc.c
>> +++ b/arch/arm/cpu/armv7/mx6/soc.c
>> @@ -305,6 +305,62 @@ const struct boot_mode soc_boot_modes[] = {
>>       {NULL,          0},
>>  };
>>
>> +/* determine boot device from SRC_SBMR1 register (BOOT_CFG[4:1]) */
>> +enum boot_device get_boot_device(void)
>> +{
>> +     enum boot_device boot_dev;
>> +
>> +     uint soc_sbmr = readl(SRC_BASE_ADDR + 0x4); /* SRC_SBMR1 */
>
> Use structure to access internal registers. The structure is already
> defined in imx-regs.h.

Agreed - I will do this for v2.

>
>> +
>> +     /* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
>> +     switch ((soc_sbmr & 0x000000FF) >> 4) {
>> +      /* EIM: See 8.5.1, Table 8-9 */
>> +     case 0x0:
>> +             /* BOOT_CFG1[3]: NOR/OneNAND Selection */
>> +             if ((soc_sbmr & 0x00000008) >> 3)
>> +                     boot_dev = MX6_ONE_NAND_BOOT;
>> +             else
>> +                     boot_dev = MX6_WEIM_NOR_BOOT;
>> +             break;
>> +     /* SATA: See 8.5.4, Table 8-20 */
>> +     case 0x2:
>
> Can we use #defines for that ?

Yes, I'll add them to imx-regs.h.

>
>> +             boot_dev = MX6_SATA_BOOT;
>> +             break;
>> +     /* Serial ROM: See 8.5.5.1, Table 8-22 */
>> +     case 0x3:
>> +             /* BOOT_CFG4[2:0] */
>> +             switch ((soc_sbmr & 0x07000000) >> 24) {
>> +             case 0x0 ... 0x4:
>> +                     boot_dev = MX6_SPI_NOR_BOOT;
>> +                     break;
>> +             case 0x5 ... 0x7:
>> +                     boot_dev = MX6_I2C_BOOT;
>> +                     break;
>> +             }
>> +             break;
>> +     /* SD/eSD: 8.5.3, Table 8-15  */
>> +     case 0x4:
>> +     case 0x5:
>> +             boot_dev = MX6_SD_BOOT;
>> +             break;
>> +     /* MMC/eMMC: 8.5.3 */
>> +     case 0x6:
>> +     case 0x7:
>> +             boot_dev = MX6_MMC_BOOT;
>> +             break;
>> +     /* NAND Flash: 8.5.2 */
>> +     case 0x8 ... 0xf:
>> +             boot_dev = MX6_NAND_BOOT;
>> +             break;
>> +     default:
>> +             boot_dev = MX6_UNKNOWN_BOOT;
>> +             break;
>> +     }
>> +
>
> The function can be used as well for MX5 SOCs. Move it into imx-common,
> and use constants without SOC names. Instead of MX6_NAND_BOOT,
> IMX_NAND_BOOT (or whatever you find makes sense..)

Are you saying the i.MX5's have the same register and meaning?  I
figured the sbmr is different.

>
>> +     return boot_dev;
>> +}
>> +
>> +
>>  void s_init(void)
>>  {
>>       struct anatop_regs *anatop = (struct anatop_regs *)ANATOP_BASE_ADDR;
>> diff --git a/arch/arm/include/asm/arch-mx6/spl.h b/arch/arm/include/asm/arch-mx6/spl.h
>> new file mode 100644
>> index 0000000..5611c71
>> --- /dev/null
>> +++ b/arch/arm/include/asm/arch-mx6/spl.h
>> @@ -0,0 +1,26 @@
>> +/*
>> + * Copyright (C) 2013 TechNexion Ltd.
>> + *
>> + * Author: Richard Hu <linuxfae@technexion.com>
>> + *
>> + * See file CREDITS for list of people who contributed to this
>> + * project.
>> + *
>> + * This program is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU General Public License as
>> + * published by the Free Software Foundation; either version 2 of
>> + * the License, or (at your option) any later version.
>> + */
>> +
>> +#ifndef __ASM_ARCH_SPL_H__
>> +#define __ASM_ARCH_SPL_H__
>> +
>> +#define BOOT_DEVICE_MMC1     0
>> +#define BOOT_DEVICE_MMC2     1
>> +#define BOOT_DEVICE_MMC2_2   2
>> +#define BOOT_DEVICE_NAND     3
>> +#define BOOT_DEVICE_SATA     4
>> +#define BOOT_DEVICE_USBETH   5
>> +#define BOOT_DEVICE_NONE     6
>> +
>
> They are only defines and are not yet related to i.MX6 anymnore, because
> you have already mapped them. What about to move this defines into
> imx-common ?

ok

>
>> +#endif       /* __ASM_ARCH_SPL_H__ */
>> diff --git a/arch/arm/include/asm/imx-common/boot_mode.h b/arch/arm/include/asm/imx-common/boot_mode.h
>> index de0205c..3686367 100644
>> --- a/arch/arm/include/asm/imx-common/boot_mode.h
>> +++ b/arch/arm/include/asm/imx-common/boot_mode.h
>> @@ -17,4 +17,21 @@ struct boot_mode {
>>  void add_board_boot_modes(const struct boot_mode *p);
>>  void boot_mode_apply(unsigned cfg_val);
>>  extern const struct boot_mode soc_boot_modes[];
>> +
>> +/* boot devices */
>> +enum boot_device {
>> +     MX6_SD_BOOT,
>> +     MX6_MMC_BOOT,
>> +     MX6_NAND_BOOT,
>> +     MX6_SATA_BOOT,
>> +     MX6_WEIM_NOR_BOOT,
>> +     MX6_ONE_NAND_BOOT,
>> +     MX6_PATA_BOOT,
>> +     MX6_I2C_BOOT,
>> +     MX6_SPI_NOR_BOOT,
>> +     MX6_UNKNOWN_BOOT,
>> +     MX6_BOOT_DEV_NUM = MX6_UNKNOWN_BOOT,
>> +};
>
> See my remark before.
>

ok

I hope to have a v2 posted soon.

Regards,

Tim

>> +enum boot_device get_boot_device(void);
>> +
>>  #endif
>>
>

  reply	other threads:[~2014-04-17  6:16 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-03  6:01 [U-Boot] [PATCH 00/11] MX6: SPL NAND support Tim Harvey
2014-04-03  6:01 ` [U-Boot] [PATCH 01/11] SPL: NAND: remove CONFIG_SYS_NAND_PAGE_SIZE Tim Harvey
2014-04-04  2:33   ` Masahiro Yamada
2014-04-09 14:55   ` Nikita Kiryanov
2014-04-14 11:38   ` Stefano Babic
2014-04-17 14:18     ` Tim Harvey
2014-04-18 22:23       ` Scott Wood
2014-04-03  6:01 ` [U-Boot] [PATCH 02/11] SPL: NAND: add support for mxs nand Tim Harvey
2014-04-14 11:38   ` Stefano Babic
2014-04-03  6:01 ` [U-Boot] [PATCH 03/11] MX6: provide linker script for SPL Tim Harvey
2014-04-09 14:55   ` Nikita Kiryanov
2014-04-14 12:02   ` Stefano Babic
2014-04-17  6:27     ` Tim Harvey
2014-04-18 21:10       ` Otavio Salvador
2014-04-03  6:01 ` [U-Boot] [PATCH 04/11] MX6: add common SPL configuration Tim Harvey
2014-04-09 14:55   ` Nikita Kiryanov
2014-04-09 15:32     ` Tim Harvey
2014-04-10 14:37       ` Nikita Kiryanov
2014-04-10 21:04         ` Scott Wood
2014-04-03  6:01 ` [U-Boot] [PATCH 05/11] MX6: add boot device support SPL Tim Harvey
2014-04-14 12:27   ` Stefano Babic
2014-04-17  6:16     ` Tim Harvey [this message]
2014-04-17  8:59       ` Stefano Babic
2014-04-03  6:01 ` [U-Boot] [PATCH 06/11] MX6: add struct for sharing data between SPL and uboot Tim Harvey
2014-04-09 14:55   ` Nikita Kiryanov
2014-04-14 12:35   ` Stefano Babic
2014-04-17  6:07     ` Tim Harvey
2014-04-17  9:30       ` Stefano Babic
2014-04-17 11:22         ` Igor Grinberg
2014-04-17 11:44           ` Stefano Babic
2014-04-18  6:35             ` Tim Harvey
2014-04-20  7:52               ` Igor Grinberg
2014-04-21 18:28                 ` Tim Harvey
2014-04-22  7:44                   ` Igor Grinberg
2014-04-03  6:01 ` [U-Boot] [PATCH 07/11] MX6: use macro building for MX6Q/MX6DL iomux regs Tim Harvey
2014-04-09 14:57   ` Nikita Kiryanov
2014-04-09 15:46     ` Tim Harvey
2014-04-10 14:08       ` Nikita Kiryanov
2014-04-10 14:51         ` Nikita Kiryanov
2014-04-11  5:23           ` Tim Harvey
2014-04-23 17:07         ` Stefano Babic
2014-04-23 19:00           ` Eric Nelson
2014-04-24  7:07             ` Igor Grinberg
2014-04-24  5:21           ` Tim Harvey
2014-04-23 15:30       ` Stefano Babic
2014-04-03  6:01 ` [U-Boot] [PATCH 08/11] MX6: add mmdc configuration for MX6Q/MX6DL Tim Harvey
2014-04-03  6:01 ` [U-Boot] [PATCH 09/11] IMX: add additional function for pinmux using an array Tim Harvey
2014-04-09 14:56   ` Nikita Kiryanov
2014-04-09 15:40     ` Tim Harvey
2014-04-10 14:41       ` Nikita Kiryanov
2014-04-23  5:03         ` Tim Harvey
2014-04-03  6:01 ` [U-Boot] [PATCH 10/11] ventana: auto-configure for IMX6Q vs IMX6DL Tim Harvey
2014-04-23 17:31   ` Stefano Babic
2014-04-24  5:04     ` Tim Harvey
2014-04-03  6:01 ` [U-Boot] [PATCH 11/11] ventana: switch to SPL Tim Harvey
2014-04-03 18:52   ` Tim Harvey
2014-04-23 18:03   ` Stefano Babic
2014-04-24  8:06     ` Tim Harvey
2014-04-24  8:18       ` Stefano Babic
2014-04-24  8:22       ` Stefan Roese

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='CAJ+vNU1H4pyj0EJu4Jzb5yJaZvMdz3wEQGCxHB=82SKNrek-Ug@mail.gmail.com' \
    --to=tharvey@gateworks.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.