[U-Boot] [PATCH 05/11] MX6: add boot device support SPL

Stefano Babic
2014-04-17T08:59:04Z

Hi Tim,

On 17/04/2014 08:16, Tim Harvey wrote:

>>> + 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.

The register is the same, and mostly with the same meaning. You do not
need to care about it. Just put it into imx-common, and when someone
will add support for MX5, this function will be analyzed and modified
instead of adding a new one.

>
>>
>>> + 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
>

Masahiro has sent this week a patch to consolidate names, that are
duplicated for all architecture:
http://patchwork.ozlabs.org/patch/339438/

I think it is a very good idea to follow his approach.

>
> I hope to have a v2 posted soon.

Please only wait until I send my remark regarding the patches with pinmux.

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
=====================================================================