U-Boot
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
December 2016
- 167 participants
- 530 discussions

[U-Boot] [v2, 1/3] mmc: fsl_esdhc: move 'status' property fixup into a weak function
by Yangbo Lu 08 Dec '16
by Yangbo Lu 08 Dec '16
08 Dec '16
Move fdt fixup of 'status' property into a weak function. This allows
board to define 'status' fdt fixup by themselves.
Signed-off-by: Yangbo Lu <yangbo.lu(a)nxp.com>
---
Changes for v2:
- None
---
drivers/mmc/fsl_esdhc.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 9796d39..68de04e 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -908,17 +908,26 @@ void mmc_adapter_card_type_ident(void)
#endif
#ifdef CONFIG_OF_LIBFDT
-void fdt_fixup_esdhc(void *blob, bd_t *bd)
+__weak int esdhc_status_fixup(void *blob, const char *compat)
{
- const char *compat = "fsl,esdhc";
-
#ifdef CONFIG_FSL_ESDHC_PIN_MUX
if (!hwconfig("esdhc")) {
do_fixup_by_compat(blob, compat, "status", "disabled",
- 8 + 1, 1);
- return;
+ sizeof("disabled"), 1);
+ return 1;
}
#endif
+ do_fixup_by_compat(blob, compat, "status", "okay",
+ sizeof("okay"), 1);
+ return 0;
+}
+
+void fdt_fixup_esdhc(void *blob, bd_t *bd)
+{
+ const char *compat = "fsl,esdhc";
+
+ if (esdhc_status_fixup(blob, compat))
+ return;
#ifdef CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK
do_fixup_by_compat_u32(blob, compat, "peripheral-frequency",
@@ -931,8 +940,6 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd)
do_fixup_by_compat_u32(blob, compat, "adapter-type",
(u32)(gd->arch.sdhc_adapter), 1);
#endif
- do_fixup_by_compat(blob, compat, "status", "okay",
- 4 + 1, 1);
}
#endif
--
2.1.0.27.g96db324
1
2

[U-Boot] [PATCH] bootm: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set
by Rick Altherr 08 Dec '16
by Rick Altherr 08 Dec '16
08 Dec '16
In 35fc84f, bootm was refactored so plain 'bootm' and
'bootm <subcommand>' shared a common implementation.
The 'bootm ramdisk' command implementation is now part of the common
implementation but not invoke by plain 'bootm' since the original
implementation never did ramdisk relocation. Instead, ramdisk
relocation happened in image_setup_linux() which is typically called
during the OS portion of 'bootm'.
On ARM, parameters to the Linux kernel can either be passed by FDT or
ATAGS. When using FDT, image_setup_linux() is called which also triggers
ramdisk relocation. When using ATAGS, image_setup_linux() is _not_
called because it mostly does FDT setup.
Instead of calling image_setup_linux() in both FDT and ATAGS cases,
include BOOTM_STATE_RAMDISK in the requested states during a plain
'bootm' if CONFIG_SYS_BOOT_RAMDISK_HIGH is set and remove the ramdisk
relocation from image_setup_linux(). This causes ramdisk relocation to
happen on any system where CONFIG_SYS_BOOT_RAMDISK_HIGH regardless of
the OS being booted. Also remove IMAGE_ENABLE_RAMDISK_HIGH as it was
only used by the now-removed code from image_setup_linux().
Signed-off-by: Rick Altherr <raltherr(a)google.com>
Reviewed-by: Simon Glass <sjg(a)chromium.org>
Reviewed-by: Joel Stanley <joel(a)jms.id.au>
---
cmd/bootm.c | 3 +++
common/image.c | 10 ----------
include/image.h | 6 ------
3 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/cmd/bootm.c b/cmd/bootm.c
index 083f3d1..a7e181d 100644
--- a/cmd/bootm.c
+++ b/cmd/bootm.c
@@ -126,6 +126,9 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START |
BOOTM_STATE_FINDOS | BOOTM_STATE_FINDOTHER |
BOOTM_STATE_LOADOS |
+#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
+ BOOTM_STATE_RAMDISK |
+#endif
#if defined(CONFIG_PPC) || defined(CONFIG_MIPS)
BOOTM_STATE_OS_CMDLINE |
#endif
diff --git a/common/image.c b/common/image.c
index bd07e86..b4a6839 100644
--- a/common/image.c
+++ b/common/image.c
@@ -1571,10 +1571,7 @@ int image_setup_linux(bootm_headers_t *images)
{
ulong of_size = images->ft_len;
char **of_flat_tree = &images->ft_addr;
- ulong *initrd_start = &images->initrd_start;
- ulong *initrd_end = &images->initrd_end;
struct lmb *lmb = &images->lmb;
- ulong rd_len;
int ret;
if (IMAGE_ENABLE_OF_LIBFDT)
@@ -1588,13 +1585,6 @@ int image_setup_linux(bootm_headers_t *images)
return ret;
}
}
- if (IMAGE_ENABLE_RAMDISK_HIGH) {
- rd_len = images->rd_end - images->rd_start;
- ret = boot_ramdisk_high(lmb, images->rd_start, rd_len,
- initrd_start, initrd_end);
- if (ret)
- return ret;
- }
if (IMAGE_ENABLE_OF_LIBFDT) {
ret = boot_relocate_fdt(lmb, of_flat_tree, &of_size);
diff --git a/include/image.h b/include/image.h
index 575f592..4c39bd7 100644
--- a/include/image.h
+++ b/include/image.h
@@ -99,12 +99,6 @@ struct lmb;
#endif /* IMAGE_ENABLE_FIT */
-#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
-# define IMAGE_ENABLE_RAMDISK_HIGH 1
-#else
-# define IMAGE_ENABLE_RAMDISK_HIGH 0
-#endif
-
#ifdef CONFIG_SYS_BOOT_GET_CMDLINE
# define IMAGE_BOOT_GET_CMDLINE 1
#else
--
2.8.0.rc3.226.g39d4020
1
0

[U-Boot] How to take value of an environmental variable of uboot in linux
by Haris Papadopoulos 07 Dec '16
by Haris Papadopoulos 07 Dec '16
07 Dec '16
Hi,
I type fw_printenv variable_name to take the name of a uboot variable from
linux.
I get variable_name=10 for example
How can I use the value 10 in the continuation of my script?
I have tried
string = fw_printenv flag_boot_error
IFS="=" read name value <<< $string
but it does not work
Thank you
--
Haris Papadopoulos| AmberBox | Software Engineer
haris(a)amberbox.com <tomas(a)amberbox.com> | + 1 650-686-0230
2
1

07 Dec '16
>From 127c5fb9ef390cad5cf58e446110a696cf111345 Mon Sep 17 00:00:00 2001
From: John Haechten <john.haechten(a)microsemi.com>
Date: Wed, 7 Dec 2016 08:42:51 -0800
Subject: [PATCH 0/1] Adding MSCC PHY-VSC8530-VSC8531-VSC8540-VSC8541
Tested using BeagleBoneBlack,bb.org-overlays, v2016.11-rc3, with 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch applied
John Haechten (1):
Adding MSCC PHY-VSC8530-VSC8531-VSC8540-VSC8541
drivers/net/phy/Makefile | 1 +
drivers/net/phy/mscc.c | 480 ++++++++++++++++++++++++++++++++++++
drivers/net/phy/phy.c | 3 +
include/config_phylib_all_drivers.h | 1 +
include/configs/am335x_evm.h | 3 +
include/phy.h | 1 +
6 files changed, 489 insertions(+)
create mode 100644 drivers/net/phy/mscc.c
--
1.9.1
1
0

07 Dec '16
Hi,
These patches add support for liteSOM (http://grinn-global.com/litesom/),
and liteBoard (which uses liteSOM as it's base).
liteSOM consists of processor (NXP i.MX6UL), RAM memory (up to 512M DDR3)
and flash (eMMC card). The idea is that every board vendor can use liteSOM
as it's base for designed board. Hence, we need a way to reuse common code
between those board.
liteBoard is a development kit (and reference platform for liteSOM), that
mainly shows possibilities and use cases of liteSOM.
Patches were rebased and tested on 2017.01-rc1.
Changes v1 -> v2 (only liteBoard related):
* fix boot_mode values for proper bmode command usage
* override default board_boot_order() and check inside it from which
device (SD or eMMC) we have booted
* add CONFIG_SUPPORT_EMMC_BOOT to support boot from eMMC boot
partitions
* move new CONFIG_* options from include/configs/liteboard.h to
configs/liteboard_defconfig
Marcin Niestroj (2):
ARM: imx6ul: Add support for liteSOM
board/liteboard: Add support for liteBoard
arch/arm/Kconfig | 2 +
arch/arm/Makefile | 1 +
arch/arm/cpu/armv7/mx6/Kconfig | 5 +
arch/arm/mach-litesom/Kconfig | 6 +
arch/arm/mach-litesom/Makefile | 6 +
arch/arm/mach-litesom/include/mach/litesom.h | 16 ++
arch/arm/mach-litesom/litesom.c | 200 +++++++++++++++++++
board/grinn/liteboard/Kconfig | 12 ++
board/grinn/liteboard/MAINTAINERS | 6 +
board/grinn/liteboard/Makefile | 6 +
board/grinn/liteboard/README | 31 +++
board/grinn/liteboard/board.c | 287 +++++++++++++++++++++++++++
configs/liteboard_defconfig | 29 +++
include/configs/liteboard.h | 171 ++++++++++++++++
14 files changed, 778 insertions(+)
create mode 100644 arch/arm/mach-litesom/Kconfig
create mode 100644 arch/arm/mach-litesom/Makefile
create mode 100644 arch/arm/mach-litesom/include/mach/litesom.h
create mode 100644 arch/arm/mach-litesom/litesom.c
create mode 100644 board/grinn/liteboard/Kconfig
create mode 100644 board/grinn/liteboard/MAINTAINERS
create mode 100644 board/grinn/liteboard/Makefile
create mode 100644 board/grinn/liteboard/README
create mode 100644 board/grinn/liteboard/board.c
create mode 100644 configs/liteboard_defconfig
create mode 100644 include/configs/liteboard.h
--
2.10.2
1
2

[U-Boot] [PATCH 07/10] arm: socfpga: arria10: Added miscellaneous drivers for Arria10
by Chee Tien Fong 07 Dec '16
by Chee Tien Fong 07 Dec '16
07 Dec '16
From: Tien Fong Chee <tien.fong.chee(a)intel.com>
The drivers is restructured such common functions, gen5 functions,
and arria10 functions are moved to misc.c, misc_gen5 and misc_arria10
respectively.
Signed-off-by: Tien Fong Chee <tien.fong.chee(a)intel.com>
Cc: Marek Vasut <marex(a)denx.de>
Cc: Dinh Nguyen <dinguyen(a)kernel.org>
Cc: Chin Liang See <chin.liang.see(a)intel.com>
Cc: Tien Fong <skywindctf(a)gmail.com>
---
arch/arm/mach-socfpga/Makefile | 4 +-
arch/arm/mach-socfpga/include/mach/misc.h | 25 ++
arch/arm/mach-socfpga/misc.c | 429 +---------------------------
arch/arm/mach-socfpga/misc_arria10.c | 111 ++++++++
arch/arm/mach-socfpga/misc_gen5.c | 363 ++++++++++++++++++++++++
5 files changed, 517 insertions(+), 415 deletions(-)
create mode 100644 arch/arm/mach-socfpga/include/mach/misc.h
create mode 100644 arch/arm/mach-socfpga/misc_arria10.c
create mode 100644 arch/arm/mach-socfpga/misc_gen5.c
diff --git a/arch/arm/mach-socfpga/Makefile b/arch/arm/mach-socfpga/Makefile
index b8fcf6e..f8b529e 100644
--- a/arch/arm/mach-socfpga/Makefile
+++ b/arch/arm/mach-socfpga/Makefile
@@ -9,9 +9,9 @@
obj-y += misc.o timer.o reset_manager.o system_manager.o clock_manager.o \
fpga_manager.o board.o
-obj-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += reset_manager_arria10.o
+obj-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += reset_manager_arria10.o misc_arria10.o
obj-$(CONFIG_TARGET_SOCFPGA_GEN5) += scan_manager.o wrap_pll_config.o \
- reset_manager_gen5.o
+ reset_manager_gen5.o misc_gen5.o
ifdef CONFIG_SPL_BUILD
obj-y += spl.o
diff --git a/arch/arm/mach-socfpga/include/mach/misc.h b/arch/arm/mach-socfpga/include/mach/misc.h
new file mode 100644
index 0000000..1bf1783
--- /dev/null
+++ b/arch/arm/mach-socfpga/include/mach/misc.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2016, Intel Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+#ifndef _MISC_H_
+#define _MISC_H_
+
+extern void dwmac_deassert_reset(const unsigned int of_reset_id,
+ const u32 phymode);
+
+struct bsel{
+ const char *mode;
+ const char *name;
+};
+
+extern struct bsel bsel_str[];
+
+#ifdef CONFIG_FPGA
+extern void socfpga_fpga_add(void);
+#else
+inline void socfpga_fpga_add(void) {}
+#endif
+#endif /* _MISC_H_ */
diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c
index 00e385f..f44233d 100644
--- a/arch/arm/mach-socfpga/misc.c
+++ b/arch/arm/mach-socfpga/misc.c
@@ -1,51 +1,39 @@
/*
- * Copyright (C) 2012 Altera Corporation <www.altera.com>
+ * Copyright (C) 2012-2016 Altera Corporation <www.altera.com>
*
- * SPDX-License-Identifier: GPL-2.0+
+ * SPDX-License-Identifier: GPL-2.0
*/
#include <common.h>
#include <asm/io.h>
#include <errno.h>
-#include <fdtdec.h>
-#include <libfdt.h>
#include <altera.h>
#include <miiphy.h>
#include <netdev.h>
#include <watchdog.h>
+#include <asm/arch/misc.h>
#include <asm/arch/reset_manager.h>
-#include <asm/arch/scan_manager.h>
#include <asm/arch/sdram_a10.h>
#include <asm/arch/system_manager.h>
#include <asm/arch/nic301.h>
#include <asm/arch/scu.h>
#include <asm/pl310.h>
-#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
-#include <dt-bindings/reset/altr,rst-mgr.h>
-#else
-#include <dt-bindings/reset/altr,rst-mgr-a10.h>
-#endif
-
DECLARE_GLOBAL_DATA_PTR;
-static struct pl310_regs *const pl310 =
+static const struct pl310_regs *const pl310 =
(struct pl310_regs *)CONFIG_SYS_PL310_BASE;
-static struct socfpga_system_manager *sysmgr_regs =
- (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
-static struct socfpga_reset_manager *reset_manager_base =
- (struct socfpga_reset_manager *)SOCFPGA_RSTMGR_ADDRESS;
-#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
-static struct nic301_registers *nic301_regs =
- (struct nic301_registers *)SOCFPGA_L3REGS_ADDRESS;
-#else
-static const struct socfpga_noc_fw_ocram *noc_fw_ocram_base =
- (void *)SOCFPGA_SDR_FIREWALL_OCRAM_ADDRESS;
-static const struct socfpga_noc_fw_ddr_l3 *noc_fw_ddr_l3_base =
- (void *)SOCFPGA_SDR_FIREWALL_L3_ADDRESS;
-#endif
-static struct scu_registers *scu_regs =
- (struct scu_registers *)SOCFPGA_MPUSCU_ADDRESS;
+
+struct bsel bsel_str[] = {
+ { "rsvd", "Reserved", },
+ { "fpga", "FPGA (HPS2FPGA Bridge)", },
+ { "nand", "NAND Flash (1.8V)", },
+ { "nand", "NAND Flash (3.0V)", },
+ { "sd", "SD/MMC External Transceiver (1.8V)", },
+ { "sd", "SD/MMC Internal Transceiver (3.0V)", },
+ { "qspi", "QSPI Flash (1.8V)", },
+ { "qspi", "QSPI Flash (3.0V)", },
+};
int dram_init(void)
{
@@ -84,219 +72,6 @@ void v7_outer_cache_disable(void)
clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
}
-/*
- * DesignWare Ethernet initialization
- */
-#ifdef CONFIG_ETH_DESIGNWARE
-static void dwmac_deassert_reset(const unsigned int of_reset_id,
- const u32 phymode)
-{
- u32 physhift, reset;
-
- if (of_reset_id == EMAC0_RESET) {
- physhift = SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB;
- reset = SOCFPGA_RESET(EMAC0);
- } else if (of_reset_id == EMAC1_RESET) {
- physhift = SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB;
- reset = SOCFPGA_RESET(EMAC1);
-#ifndef CONFIG_TARGET_SOCFPGA_GEN5
- } else if (of_reset_id == EMAC2_RESET) {
- reset = SOCFPGA_RESET(EMAC2);
-#endif
- } else {
- printf("GMAC: Invalid reset ID (%i)!\n", of_reset_id);
- return;
- }
-
-#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
- /* configure to PHY interface select choosed */
- clrsetbits_le32(&sysmgr_regs->emacgrp_ctrl,
- SYSMGR_EMACGRP_CTRL_PHYSEL_MASK << physhift,
- phymode << physhift);
-#else
- clrsetbits_le32(&sysmgr_regs->emac[of_reset_id - EMAC0_RESET],
- SYSMGR_EMACGRP_CTRL_PHYSEL_MASK,
- phymode);
-#endif
-
- /* Release the EMAC controller from reset */
- socfpga_per_reset(reset, 0);
-}
-
-static u32 dwmac_phymode_to_modereg(const char *phymode, u32 *modereg)
-{
- if (!phymode)
- return -EINVAL;
-
- if (!strcmp(phymode, "mii") || !strcmp(phymode, "gmii")) {
- *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII;
- return 0;
- }
-
- if (!strcmp(phymode, "rgmii")) {
- *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII;
- return 0;
- }
-
- if (!strcmp(phymode, "rmii")) {
- *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII;
- return 0;
- }
-
- return -EINVAL;
-}
-
-static int socfpga_eth_reset(void)
-{
- const void *fdt = gd->fdt_blob;
- struct fdtdec_phandle_args args;
- const char *phy_mode;
- u32 phy_modereg;
- int nodes[2]; /* Max. two GMACs */
- int ret, count;
- int i, node;
-
- /* Put both GMACs into RESET state. */
- socfpga_per_reset(SOCFPGA_RESET(EMAC0), 1);
- socfpga_per_reset(SOCFPGA_RESET(EMAC1), 1);
-
- count = fdtdec_find_aliases_for_id(fdt, "ethernet",
- COMPAT_ALTERA_SOCFPGA_DWMAC,
- nodes, ARRAY_SIZE(nodes));
- for (i = 0; i < count; i++) {
- node = nodes[i];
- if (node <= 0)
- continue;
-
- ret = fdtdec_parse_phandle_with_args(fdt, node, "resets",
- "#reset-cells", 1, 0,
- &args);
- if (ret || (args.args_count != 1)) {
- debug("GMAC%i: Failed to parse DT 'resets'!\n", i);
- continue;
- }
-
- phy_mode = fdt_getprop(fdt, node, "phy-mode", NULL);
- ret = dwmac_phymode_to_modereg(phy_mode, &phy_modereg);
- if (ret) {
- debug("GMAC%i: Failed to parse DT 'phy-mode'!\n", i);
- continue;
- }
-
- dwmac_deassert_reset(args.args[0], phy_modereg);
- }
-
- return 0;
-}
-#else
-static int socfpga_eth_reset(void)
-{
- return 0;
-};
-#endif
-
-struct {
- const char *mode;
- const char *name;
-} bsel_str[] = {
- { "rsvd", "Reserved", },
- { "fpga", "FPGA (HPS2FPGA Bridge)", },
- { "nand", "NAND Flash (1.8V)", },
- { "nand", "NAND Flash (3.0V)", },
- { "sd", "SD/MMC External Transceiver (1.8V)", },
- { "sd", "SD/MMC Internal Transceiver (3.0V)", },
- { "qspi", "QSPI Flash (1.8V)", },
- { "qspi", "QSPI Flash (3.0V)", },
-};
-
-static const struct {
- const u16 pn;
- const char *name;
- const char *var;
-} const socfpga_fpga_model[] = {
- /* Cyclone V E */
- { 0x2b15, "Cyclone V, E/A2", "cv_e_a2" },
- { 0x2b05, "Cyclone V, E/A4", "cv_e_a4" },
- { 0x2b22, "Cyclone V, E/A5", "cv_e_a5" },
- { 0x2b13, "Cyclone V, E/A7", "cv_e_a7" },
- { 0x2b14, "Cyclone V, E/A9", "cv_e_a9" },
- /* Cyclone V GX/GT */
- { 0x2b01, "Cyclone V, GX/C3", "cv_gx_c3" },
- { 0x2b12, "Cyclone V, GX/C4", "cv_gx_c4" },
- { 0x2b02, "Cyclone V, GX/C5 or GT/D5", "cv_gx_c5" },
- { 0x2b03, "Cyclone V, GX/C7 or GT/D7", "cv_gx_c7" },
- { 0x2b04, "Cyclone V, GX/C9 or GT/D9", "cv_gx_c9" },
- /* Cyclone V SE/SX/ST */
- { 0x2d11, "Cyclone V, SE/A2 or SX/C2", "cv_se_a2" },
- { 0x2d01, "Cyclone V, SE/A4 or SX/C4", "cv_se_a4" },
- { 0x2d12, "Cyclone V, SE/A5 or SX/C5 or ST/D5", "cv_se_a5" },
- { 0x2d02, "Cyclone V, SE/A6 or SX/C6 or ST/D6", "cv_se_a6" },
- /* Arria V */
- { 0x2d03, "Arria V, D5", "av_d5" },
-};
-
-static int socfpga_fpga_id(const bool print_id)
-{
- const u32 altera_mi = 0x6e;
- const u32 id = scan_mgr_get_fpga_id();
-
- const u32 lsb = id & 0x00000001;
- const u32 mi = (id >> 1) & 0x000007ff;
- const u32 pn = (id >> 12) & 0x0000ffff;
- const u32 version = (id >> 28) & 0x0000000f;
- int i;
-
- if ((mi != altera_mi) || (lsb != 1)) {
- printf("FPGA: Not Altera chip ID\n");
- return -EINVAL;
- }
-
- for (i = 0; i < ARRAY_SIZE(socfpga_fpga_model); i++)
- if (pn == socfpga_fpga_model[i].pn)
- break;
-
- if (i == ARRAY_SIZE(socfpga_fpga_model)) {
- printf("FPGA: Unknown Altera chip, ID 0x%08x\n", id);
- return -EINVAL;
- }
-
- if (print_id)
- printf("FPGA: Altera %s, version 0x%01x\n",
- socfpga_fpga_model[i].name, version);
- return i;
-}
-
-/*
- * Print CPU information
- */
-#if defined(CONFIG_DISPLAY_CPUINFO)
-int print_cpuinfo(void)
-{
- const u32 bsel = (readl(&sysmgr_regs->bootinfo) >>
- SYSMGR_BOOTINFO_BSEL_SHIFT) & 0x7;
-#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
- puts("CPU: Altera SoCFPGA Platform\n");
- socfpga_fpga_id(1);
-#else
- puts("CPU: Altera SoCFPGA Arria 10\n");
-#endif
- printf("BOOT: %s\n", bsel_str[bsel].name);
- return 0;
-}
-#endif
-
-#ifdef CONFIG_ARCH_MISC_INIT
-int arch_misc_init(void)
-{
- const u32 bsel = readl(&sysmgr_regs->bootinfo) & 0x7;
- const int fpga_id = socfpga_fpga_id(0);
- setenv("bootmode", bsel_str[bsel].mode);
- if (fpga_id >= 0)
- setenv("fpgatype", socfpga_fpga_model[fpga_id].var);
- return socfpga_eth_reset();
-}
-#endif
-
#if defined(CONFIG_SYS_CONSOLE_IS_IN_ENV) && \
defined(CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE)
int overwrite_console(void)
@@ -327,15 +102,13 @@ static Altera_desc altera_fpga[] = {
};
/* add device descriptor to FPGA device table */
-static void socfpga_fpga_add(void)
+void socfpga_fpga_add(void)
{
int i;
fpga_init();
for (i = 0; i < ARRAY_SIZE(altera_fpga); i++)
fpga_add(fpga_altera, &altera_fpga[i]);
}
-#else
-static inline void socfpga_fpga_add(void) {}
#endif
int arch_cpu_init(void)
@@ -361,173 +134,3 @@ int arch_cpu_init(void)
return 0;
}
-
-#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
-/*
- * Convert all NIC-301 AMBA slaves from secure to non-secure
- */
-static void socfpga_nic301_slave_ns(void)
-{
- writel(0x1, &nic301_regs->lwhps2fpgaregs);
- writel(0x1, &nic301_regs->hps2fpgaregs);
- writel(0x1, &nic301_regs->acp);
- writel(0x1, &nic301_regs->rom);
- writel(0x1, &nic301_regs->ocram);
- writel(0x1, &nic301_regs->sdrdata);
-}
-
-static uint32_t iswgrp_handoff[8];
-
-int arch_early_init_r(void)
-{
- int i;
-
- /*
- * Write magic value into magic register to unlock support for
- * issuing warm reset. The ancient kernel code expects this
- * value to be written into the register by the bootloader, so
- * to support that old code, we write it here instead of in the
- * reset_cpu() function just before reseting the CPU.
- */
- writel(0xae9efebc, &sysmgr_regs->romcodegrp_warmramgrp_enable);
-
- for (i = 0; i < 8; i++) /* Cache initial SW setting regs */
- iswgrp_handoff[i] = readl(&sysmgr_regs->iswgrp_handoff[i]);
-
- socfpga_bridges_reset(1);
- socfpga_nic301_slave_ns();
-
- /*
- * Private components security:
- * U-Boot : configure private timer, global timer and cpu component
- * access as non secure for kernel stage (as required by Linux)
- */
- setbits_le32(&scu_regs->sacr, 0xfff);
-
- /* Configure the L2 controller to make SDRAM start at 0 */
-#ifdef CONFIG_SOCFPGA_VIRTUAL_TARGET
- writel(0x2, &nic301_regs->remap);
-#else
- writel(0x1, &nic301_regs->remap); /* remap.mpuzero */
- writel(0x1, &pl310->pl310_addr_filter_start);
-#endif
-
- /* Add device descriptor to FPGA device table */
- socfpga_fpga_add();
-
-#ifdef CONFIG_DESIGNWARE_SPI
- /* Get Designware SPI controller out of reset */
- socfpga_per_reset(SOCFPGA_RESET(SPIM0), 0);
- socfpga_per_reset(SOCFPGA_RESET(SPIM1), 0);
-#endif
-
-#ifdef CONFIG_NAND_DENALI
- socfpga_per_reset(SOCFPGA_RESET(NAND), 0);
-#endif
-
- return 0;
-}
-
-static void socfpga_sdram_apply_static_cfg(void)
-{
- const uint32_t staticcfg = SOCFPGA_SDR_ADDRESS + 0x505c;
- const uint32_t applymask = 0x8;
- uint32_t val = readl(staticcfg) | applymask;
-
- /*
- * SDRAM staticcfg register specific:
- * When applying the register setting, the CPU must not access
- * SDRAM. Luckily for us, we can abuse i-cache here to help us
- * circumvent the SDRAM access issue. The idea is to make sure
- * that the code is in one full i-cache line by branching past
- * it and back. Once it is in the i-cache, we execute the core
- * of the code and apply the register settings.
- *
- * The code below uses 7 instructions, while the Cortex-A9 has
- * 32-byte cachelines, thus the limit is 8 instructions total.
- */
- asm volatile(
- ".align 5 \n"
- " b 2f \n"
- "1: str %0, [%1] \n"
- " dsb \n"
- " isb \n"
- " b 3f \n"
- "2: b 1b \n"
- "3: nop \n"
- : : "r"(val), "r"(staticcfg) : "memory", "cc");
-}
-
-int do_bridge(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
-{
- if (argc != 2)
- return CMD_RET_USAGE;
-
- argv++;
-
- switch (*argv[0]) {
- case 'e': /* Enable */
- writel(iswgrp_handoff[2], &sysmgr_regs->fpgaintfgrp_module);
- socfpga_sdram_apply_static_cfg();
- writel(iswgrp_handoff[3], SOCFPGA_SDR_ADDRESS + 0x5080);
- writel(iswgrp_handoff[0], &reset_manager_base->brg_mod_reset);
- writel(iswgrp_handoff[1], &nic301_regs->remap);
- break;
- case 'd': /* Disable */
- writel(0, &sysmgr_regs->fpgaintfgrp_module);
- writel(0, SOCFPGA_SDR_ADDRESS + 0x5080);
- socfpga_sdram_apply_static_cfg();
- writel(0, &reset_manager_base->brg_mod_reset);
- writel(1, &nic301_regs->remap);
- break;
- default:
- return CMD_RET_USAGE;
- }
-
- return 0;
-}
-#else
-/*
-+ * This function initializes security policies to be consistent across
-+ * all logic units in the Arria 10.
-+ *
-+ * The idea is to set all security policies to be normal, nonsecure
-+ * for all units.
-+ */
-static void initialize_security_policies(void)
-{
- /* Put OCRAM in non-secure */
- writel(0x003f0000, &noc_fw_ocram_base->region0);
- writel(0x1, &noc_fw_ocram_base->enable);
-
- /* Put DDR in non-secure */
- writel(0xffff0000, &noc_fw_ddr_l3_base->hpsregion0addr);
- writel(0x1, &noc_fw_ddr_l3_base->enable);
-}
-
-int arch_early_init_r(void)
-{
- initialize_security_policies();
-
- /* Configure the L2 controller to make SDRAM start at 0 */
- writel(0x1, &pl310->pl310_addr_filter_start);
-
- /* assert reset to all except L4WD0 and L4TIMER0 */
- socfpga_per_reset_all();
-
- /* configuring the clock based on handoff */
- /* TODO: Add call to cm_basic_init() */
-
- /* Add device descriptor to FPGA device table */
- socfpga_fpga_add();
- return 0;
-}
-#endif
-
-U_BOOT_CMD(
- bridge, 2, 1, do_bridge,
- "SoCFPGA HPS FPGA bridge control",
- "enable - Enable HPS-to-FPGA, FPGA-to-HPS, LWHPS-to-FPGA bridges\n"
- "bridge disable - Enable HPS-to-FPGA, FPGA-to-HPS, LWHPS-to-FPGA bridges\n"
- ""
-);
diff --git a/arch/arm/mach-socfpga/misc_arria10.c b/arch/arm/mach-socfpga/misc_arria10.c
new file mode 100644
index 0000000..b0bc51c
--- /dev/null
+++ b/arch/arm/mach-socfpga/misc_arria10.c
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2016, Intel Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <errno.h>
+#include <altera.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <watchdog.h>
+#include <asm/arch/misc.h>
+#include <asm/arch/reset_manager.h>
+#include <asm/arch/sdram_a10.h>
+#include <asm/arch/system_manager.h>
+#include <asm/arch/nic301.h>
+#include <asm/pl310.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static struct pl310_regs *const pl310 =
+ (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
+static struct socfpga_system_manager *sysmgr_regs =
+ (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
+static const struct socfpga_noc_fw_ocram *noc_fw_ocram_base =
+ (void *)SOCFPGA_SDR_FIREWALL_OCRAM_ADDRESS;
+static const struct socfpga_noc_fw_ddr_l3 *noc_fw_ddr_l3_base =
+ (void *)SOCFPGA_SDR_FIREWALL_L3_ADDRESS;
+
+/*
+ * DesignWare Ethernet initialization
+ */
+#ifdef CONFIG_ETH_DESIGNWARE
+void dwmac_deassert_reset(const unsigned int of_reset_id,
+ const u32 phymode)
+{
+ u32 reset;
+
+ if (of_reset_id == EMAC0_RESET) {
+ reset = SOCFPGA_RESET(EMAC0);
+ } else if (of_reset_id == EMAC1_RESET) {
+ reset = SOCFPGA_RESET(EMAC1);
+ } else if (of_reset_id == EMAC2_RESET) {
+ reset = SOCFPGA_RESET(EMAC2);
+ } else {
+ printf("GMAC: Invalid reset ID (%i)!\n", of_reset_id);
+ return;
+ }
+
+ clrsetbits_le32(&sysmgr_regs->emac[of_reset_id - EMAC0_RESET],
+ SYSMGR_EMACGRP_CTRL_PHYSEL_MASK,
+ phymode);
+
+ /* Release the EMAC controller from reset */
+ socfpga_per_reset(reset, 0);
+}
+#endif
+
+/*
++ * This function initializes security policies to be consistent across
++ * all logic units in the Arria 10.
++ *
++ * The idea is to set all security policies to be normal, nonsecure
++ * for all units.
++ */
+static void initialize_security_policies(void)
+{
+ /* Put OCRAM in non-secure */
+ writel(0x003f0000, &noc_fw_ocram_base->region0);
+ writel(0x1, &noc_fw_ocram_base->enable);
+
+ /* Put DDR in non-secure */
+ writel(0xffff0000, &noc_fw_ddr_l3_base->hpsregion0addr);
+ writel(0x1, &noc_fw_ddr_l3_base->enable);
+}
+
+int arch_early_init_r(void)
+{
+ initialize_security_policies();
+
+ /* Configure the L2 controller to make SDRAM start at 0 */
+ writel(0x1, &pl310->pl310_addr_filter_start);
+
+ /* assert reset to all except L4WD0 and L4TIMER0 */
+ socfpga_per_reset_all();
+
+ /* configuring the clock based on handoff */
+ /* TODO: Add call to cm_basic_init() */
+
+ /* Add device descriptor to FPGA device table */
+ socfpga_fpga_add();
+ return 0;
+}
+
+/*
+ * Print CPU information
+ */
+#if defined(CONFIG_DISPLAY_CPUINFO)
+int print_cpuinfo(void)
+{
+ const u32 bsel = (readl(&sysmgr_regs->bootinfo) >>
+ SYSMGR_BOOTINFO_BSEL_SHIFT) & 0x7;
+
+ puts("CPU: Altera SoCFPGA Arria 10\n");
+
+ printf("BOOT: %s\n", bsel_str[bsel].name);
+ return 0;
+}
+#endif
diff --git a/arch/arm/mach-socfpga/misc_gen5.c b/arch/arm/mach-socfpga/misc_gen5.c
new file mode 100644
index 0000000..b91aeb1
--- /dev/null
+++ b/arch/arm/mach-socfpga/misc_gen5.c
@@ -0,0 +1,363 @@
+/*
+ * Copyright (C) 2016, Intel Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <errno.h>
+#include <fdtdec.h>
+#include <libfdt.h>
+#include <altera.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <watchdog.h>
+#include <asm/arch/misc.h>
+#include <asm/arch/reset_manager.h>
+#include <asm/arch/scan_manager.h>
+#include <asm/arch/sdram_a10.h>
+#include <asm/arch/system_manager.h>
+#include <asm/arch/nic301.h>
+#include <asm/arch/scu.h>
+#include <asm/pl310.h>
+#include <dt-bindings/reset/altr,rst-mgr.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static struct pl310_regs *const pl310 =
+ (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
+static struct socfpga_system_manager *sysmgr_regs =
+ (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
+static struct socfpga_reset_manager *reset_manager_base =
+ (struct socfpga_reset_manager *)SOCFPGA_RSTMGR_ADDRESS;
+static struct nic301_registers *nic301_regs =
+ (struct nic301_registers *)SOCFPGA_L3REGS_ADDRESS;
+static struct scu_registers *scu_regs =
+ (struct scu_registers *)SOCFPGA_MPUSCU_ADDRESS;
+
+/*
+ * DesignWare Ethernet initialization
+ */
+#ifdef CONFIG_ETH_DESIGNWARE
+void dwmac_deassert_reset(const unsigned int of_reset_id,
+ const u32 phymode)
+{
+ u32 physhift;
+ u32 reset;
+
+ if (of_reset_id == EMAC0_RESET) {
+ physhift = SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB;
+
+ reset = SOCFPGA_RESET(EMAC0);
+ } else if (of_reset_id == EMAC1_RESET) {
+ physhift = SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB;
+
+ reset = SOCFPGA_RESET(EMAC1);
+ }
+ else {
+ printf("GMAC: Invalid reset ID (%i)!\n", of_reset_id);
+ return;
+ }
+
+ /* configure to PHY interface select choosed */
+ clrsetbits_le32(&sysmgr_regs->emacgrp_ctrl,
+ SYSMGR_EMACGRP_CTRL_PHYSEL_MASK << physhift,
+ phymode << physhift);
+
+ /* Release the EMAC controller from reset */
+ socfpga_per_reset(reset, 0);
+}
+
+/*
+ * DesignWare Ethernet initialization
+ */
+static u32 dwmac_phymode_to_modereg(const char *phymode, u32 *modereg)
+{
+ if (!phymode)
+ return -EINVAL;
+
+ if (!strcmp(phymode, "mii") || !strcmp(phymode, "gmii")) {
+ *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII;
+ return 0;
+ }
+
+ if (!strcmp(phymode, "rgmii")) {
+ *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII;
+ return 0;
+ }
+
+ if (!strcmp(phymode, "rmii")) {
+ *modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII;
+ return 0;
+ }
+
+ return -EINVAL;
+}
+
+static int socfpga_eth_reset(void)
+{
+ const void *fdt = gd->fdt_blob;
+ struct fdtdec_phandle_args args;
+ const char *phy_mode;
+ u32 phy_modereg;
+ int nodes[2]; /* Max. two GMACs */
+ int ret, count;
+ int i, node;
+
+ /* Put both GMACs into RESET state. */
+ socfpga_per_reset(SOCFPGA_RESET(EMAC0), 1);
+ socfpga_per_reset(SOCFPGA_RESET(EMAC1), 1);
+
+ count = fdtdec_find_aliases_for_id(fdt, "ethernet",
+ COMPAT_ALTERA_SOCFPGA_DWMAC,
+ nodes, ARRAY_SIZE(nodes));
+ for (i = 0; i < count; i++) {
+ node = nodes[i];
+ if (node <= 0)
+ continue;
+
+ ret = fdtdec_parse_phandle_with_args(fdt, node, "resets",
+ "#reset-cells", 1, 0,
+ &args);
+ if (ret || (args.args_count != 1)) {
+ debug("GMAC%i: Failed to parse DT 'resets'!\n", i);
+ continue;
+ }
+
+ phy_mode = fdt_getprop(fdt, node, "phy-mode", NULL);
+ ret = dwmac_phymode_to_modereg(phy_mode, &phy_modereg);
+ if (ret) {
+ debug("GMAC%i: Failed to parse DT 'phy-mode'!\n", i);
+ continue;
+ }
+
+ dwmac_deassert_reset(args.args[0], phy_modereg);
+ }
+
+ return 0;
+}
+#else
+static int socfpga_eth_reset(void)
+{
+ return 0;
+};
+#endif
+
+static const struct {
+ const u16 pn;
+ const char *name;
+ const char *var;
+} const socfpga_fpga_model[] = {
+ /* Cyclone V E */
+ { 0x2b15, "Cyclone V, E/A2", "cv_e_a2" },
+ { 0x2b05, "Cyclone V, E/A4", "cv_e_a4" },
+ { 0x2b22, "Cyclone V, E/A5", "cv_e_a5" },
+ { 0x2b13, "Cyclone V, E/A7", "cv_e_a7" },
+ { 0x2b14, "Cyclone V, E/A9", "cv_e_a9" },
+ /* Cyclone V GX/GT */
+ { 0x2b01, "Cyclone V, GX/C3", "cv_gx_c3" },
+ { 0x2b12, "Cyclone V, GX/C4", "cv_gx_c4" },
+ { 0x2b02, "Cyclone V, GX/C5 or GT/D5", "cv_gx_c5" },
+ { 0x2b03, "Cyclone V, GX/C7 or GT/D7", "cv_gx_c7" },
+ { 0x2b04, "Cyclone V, GX/C9 or GT/D9", "cv_gx_c9" },
+ /* Cyclone V SE/SX/ST */
+ { 0x2d11, "Cyclone V, SE/A2 or SX/C2", "cv_se_a2" },
+ { 0x2d01, "Cyclone V, SE/A4 or SX/C4", "cv_se_a4" },
+ { 0x2d12, "Cyclone V, SE/A5 or SX/C5 or ST/D5", "cv_se_a5" },
+ { 0x2d02, "Cyclone V, SE/A6 or SX/C6 or ST/D6", "cv_se_a6" },
+ /* Arria V */
+ { 0x2d03, "Arria V, D5", "av_d5" },
+};
+
+static int socfpga_fpga_id(const bool print_id)
+{
+ const u32 altera_mi = 0x6e;
+ const u32 id = scan_mgr_get_fpga_id();
+
+ const u32 lsb = id & 0x00000001;
+ const u32 mi = (id >> 1) & 0x000007ff;
+ const u32 pn = (id >> 12) & 0x0000ffff;
+ const u32 version = (id >> 28) & 0x0000000f;
+ int i;
+
+ if ((mi != altera_mi) || (lsb != 1)) {
+ printf("FPGA: Not Altera chip ID\n");
+ return -EINVAL;
+ }
+
+ for (i = 0; i < ARRAY_SIZE(socfpga_fpga_model); i++)
+ if (pn == socfpga_fpga_model[i].pn)
+ break;
+
+ if (i == ARRAY_SIZE(socfpga_fpga_model)) {
+ printf("FPGA: Unknown Altera chip, ID 0x%08x\n", id);
+ return -EINVAL;
+ }
+
+ if (print_id)
+ printf("FPGA: Altera %s, version 0x%01x\n",
+ socfpga_fpga_model[i].name, version);
+ return i;
+}
+
+#ifdef CONFIG_ARCH_MISC_INIT
+int arch_misc_init(void)
+{
+ const u32 bsel = readl(&sysmgr_regs->bootinfo) & 0x7;
+ const int fpga_id = socfpga_fpga_id(0);
+ setenv("bootmode", bsel_str[bsel].mode);
+ if (fpga_id >= 0)
+ setenv("fpgatype", socfpga_fpga_model[fpga_id].var);
+ return socfpga_eth_reset();
+}
+#endif
+
+/*
+ * Convert all NIC-301 AMBA slaves from secure to non-secure
+ */
+static void socfpga_nic301_slave_ns(void)
+{
+ writel(0x1, &nic301_regs->lwhps2fpgaregs);
+ writel(0x1, &nic301_regs->hps2fpgaregs);
+ writel(0x1, &nic301_regs->acp);
+ writel(0x1, &nic301_regs->rom);
+ writel(0x1, &nic301_regs->ocram);
+ writel(0x1, &nic301_regs->sdrdata);
+}
+
+static uint32_t iswgrp_handoff[8];
+
+int arch_early_init_r(void)
+{
+ int i;
+
+ /*
+ * Write magic value into magic register to unlock support for
+ * issuing warm reset. The ancient kernel code expects this
+ * value to be written into the register by the bootloader, so
+ * to support that old code, we write it here instead of in the
+ * reset_cpu() function just before reseting the CPU.
+ */
+ writel(0xae9efebc, &sysmgr_regs->romcodegrp_warmramgrp_enable);
+
+ for (i = 0; i < 8; i++) /* Cache initial SW setting regs */
+ iswgrp_handoff[i] = readl(&sysmgr_regs->iswgrp_handoff[i]);
+
+ socfpga_bridges_reset(1);
+ socfpga_nic301_slave_ns();
+
+ /*
+ * Private components security:
+ * U-Boot : configure private timer, global timer and cpu component
+ * access as non secure for kernel stage (as required by Linux)
+ */
+ setbits_le32(&scu_regs->sacr, 0xfff);
+
+ /* Configure the L2 controller to make SDRAM start at 0 */
+#ifdef CONFIG_SOCFPGA_VIRTUAL_TARGET
+ writel(0x2, &nic301_regs->remap);
+#else
+ writel(0x1, &nic301_regs->remap); /* remap.mpuzero */
+ writel(0x1, &pl310->pl310_addr_filter_start);
+#endif
+
+ /* Add device descriptor to FPGA device table */
+ socfpga_fpga_add();
+
+#ifdef CONFIG_DESIGNWARE_SPI
+ /* Get Designware SPI controller out of reset */
+ socfpga_per_reset(SOCFPGA_RESET(SPIM0), 0);
+ socfpga_per_reset(SOCFPGA_RESET(SPIM1), 0);
+#endif
+
+#ifdef CONFIG_NAND_DENALI
+ socfpga_per_reset(SOCFPGA_RESET(NAND), 0);
+#endif
+
+ return 0;
+}
+
+static void socfpga_sdram_apply_static_cfg(void)
+{
+ const uint32_t staticcfg = SOCFPGA_SDR_ADDRESS + 0x505c;
+ const uint32_t applymask = 0x8;
+ uint32_t val = readl(staticcfg) | applymask;
+
+ /*
+ * SDRAM staticcfg register specific:
+ * When applying the register setting, the CPU must not access
+ * SDRAM. Luckily for us, we can abuse i-cache here to help us
+ * circumvent the SDRAM access issue. The idea is to make sure
+ * that the code is in one full i-cache line by branching past
+ * it and back. Once it is in the i-cache, we execute the core
+ * of the code and apply the register settings.
+ *
+ * The code below uses 7 instructions, while the Cortex-A9 has
+ * 32-byte cachelines, thus the limit is 8 instructions total.
+ */
+ asm volatile(
+ ".align 5 \n"
+ " b 2f \n"
+ "1: str %0, [%1] \n"
+ " dsb \n"
+ " isb \n"
+ " b 3f \n"
+ "2: b 1b \n"
+ "3: nop \n"
+ : : "r"(val), "r"(staticcfg) : "memory", "cc");
+}
+
+int do_bridge(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ if (argc != 2)
+ return CMD_RET_USAGE;
+
+ argv++;
+
+ switch (*argv[0]) {
+ case 'e': /* Enable */
+ writel(iswgrp_handoff[2], &sysmgr_regs->fpgaintfgrp_module);
+ socfpga_sdram_apply_static_cfg();
+ writel(iswgrp_handoff[3], SOCFPGA_SDR_ADDRESS + 0x5080);
+ writel(iswgrp_handoff[0], &reset_manager_base->brg_mod_reset);
+ writel(iswgrp_handoff[1], &nic301_regs->remap);
+ break;
+ case 'd': /* Disable */
+ writel(0, &sysmgr_regs->fpgaintfgrp_module);
+ writel(0, SOCFPGA_SDR_ADDRESS + 0x5080);
+ socfpga_sdram_apply_static_cfg();
+ writel(0, &reset_manager_base->brg_mod_reset);
+ writel(1, &nic301_regs->remap);
+ break;
+ default:
+ return CMD_RET_USAGE;
+ }
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ bridge, 2, 1, do_bridge,
+ "SoCFPGA HPS FPGA bridge control",
+ "enable - Enable HPS-to-FPGA, FPGA-to-HPS, LWHPS-to-FPGA bridges\n"
+ "bridge disable - Enable HPS-to-FPGA, FPGA-to-HPS, LWHPS-to-FPGA bridges\n"
+ ""
+);
+
+/*
+ * Print CPU information
+ */
+#if defined(CONFIG_DISPLAY_CPUINFO)
+int print_cpuinfo(void)
+{
+ const u32 bsel = (readl(&sysmgr_regs->bootinfo) >>
+ SYSMGR_BOOTINFO_BSEL_SHIFT) & 0x7;
+
+ puts("CPU: Altera SoCFPGA Platform\n");
+ socfpga_fpga_id(1);
+
+ printf("BOOT: %s\n", bsel_str[bsel].name);
+ return 0;
+}
+#endif
--
1.7.7.4
5
6

07 Dec '16
I wrote a new SDHCI driver for my new SoCs, but before posting it,
I just want to make a clean-base for my driver entry.
Of course, I could enable some needed options in my header file
(for options in the "white-list"), but I just thought it is a good
habit to contribute to Kconfig moves in the area I am working on now.
Some people are actively working on such moves, so this kind of work
is really conflict-prone.
I described how to generate each commit in its git-log
in case this series becomes out of date.
I created this series based on commit bfb380b30 (the latest commit
at the time I am posting this series), but if some other pull requests
go in first, I hope Tom will easily reproduce it by following
each instruction in the log.
Masahiro Yamada (6):
Sync defconfig files by savedefconfig
mmc: complete the unfinished move of CONFIG_MMC
mmc: make MMC driver entries dependent on MMC
mmc: move CONFIG_SDHCI to Kconfig, renaming to CONFIG_MMC_SDHCI
mmc: move some SDHCI related options to Kconfig
mmc: move MMC_SDHCI_IO_ACCESSORS to Kconfig
arch/arm/mach-mvebu/cpu.c | 2 +-
board/broadcom/bcm23550_w1d/bcm23550_w1d.c | 2 +-
board/broadcom/bcm28155_ap/bcm28155_ap.c | 2 +-
board/samsung/common/board.c | 2 +-
configs/A10-OLinuXino-Lime_defconfig | 2 +-
configs/A20-OLinuXino-Lime2_defconfig | 2 +-
configs/A20-OLinuXino-Lime_defconfig | 2 +-
configs/A20-OLinuXino_MICRO_defconfig | 2 +-
configs/A20-Olimex-SOM-EVB_defconfig | 2 +-
configs/BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_NAND_DDRCLK100_defconfig | 1 +
configs/BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_NAND_DDRCLK133_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK100_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK133_defconfig | 1 +
.../BSC9132QDS_SDCARD_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig | 1 +
.../BSC9132QDS_SDCARD_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig | 1 +
.../BSC9132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_SPIFLASH_DDRCLK100_defconfig | 1 +
.../BSC9132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_SPIFLASH_DDRCLK133_defconfig | 1 +
configs/Bananapi_defconfig | 2 +-
configs/Bananapro_defconfig | 2 +-
configs/Chuwi_V7_CW0825_defconfig | 1 -
configs/Cubieboard2_defconfig | 2 +-
configs/Cubieboard_defconfig | 2 +-
configs/Cubietruck_defconfig | 2 +-
configs/Cyrus_P5020_defconfig | 1 +
configs/Cyrus_P5040_defconfig | 1 +
configs/Itead_Ibox_A20_defconfig | 2 +-
configs/Lamobo_R1_defconfig | 2 +-
configs/Linksprite_pcDuino3_Nano_defconfig | 2 +-
configs/Linksprite_pcDuino3_defconfig | 2 +-
configs/MPC8308RDB_defconfig | 1 +
configs/MPC837XEMDS_HOST_defconfig | 1 +
configs/MPC837XEMDS_defconfig | 1 +
configs/MPC837XERDB_defconfig | 1 +
configs/MPC8536DS_36BIT_defconfig | 1 +
configs/MPC8536DS_SDCARD_defconfig | 1 +
configs/MPC8536DS_SPIFLASH_defconfig | 1 +
configs/MPC8536DS_defconfig | 1 +
configs/MPC8569MDS_ATM_defconfig | 1 +
configs/MPC8569MDS_defconfig | 1 +
configs/MPC8610HPCD_defconfig | 3 +-
configs/MPC8641HPCN_36BIT_defconfig | 3 +-
configs/MPC8641HPCN_defconfig | 3 +-
configs/MSI_Primo81_defconfig | 1 -
configs/Marsboard_A10_defconfig | 2 +-
configs/Mele_A1000_defconfig | 2 +-
configs/Mele_M5_defconfig | 2 +-
configs/Orangepi_defconfig | 2 +-
configs/Orangepi_mini_defconfig | 2 +-
configs/P1010RDB-PA_36BIT_NAND_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_36BIT_NAND_defconfig | 1 +
configs/P1010RDB-PA_36BIT_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_36BIT_NOR_defconfig | 1 +
configs/P1010RDB-PA_36BIT_SDCARD_defconfig | 1 +
.../P1010RDB-PA_36BIT_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig | 1 +
configs/P1010RDB-PA_NAND_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_NAND_defconfig | 1 +
configs/P1010RDB-PA_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_NOR_defconfig | 1 +
configs/P1010RDB-PA_SDCARD_defconfig | 1 +
configs/P1010RDB-PA_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_SPIFLASH_defconfig | 1 +
configs/P1010RDB-PB_36BIT_NAND_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_36BIT_NAND_defconfig | 1 +
configs/P1010RDB-PB_36BIT_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_36BIT_NOR_defconfig | 1 +
configs/P1010RDB-PB_36BIT_SDCARD_defconfig | 1 +
.../P1010RDB-PB_36BIT_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig | 1 +
configs/P1010RDB-PB_NAND_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_NAND_defconfig | 1 +
configs/P1010RDB-PB_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_NOR_defconfig | 1 +
configs/P1010RDB-PB_SDCARD_defconfig | 1 +
configs/P1010RDB-PB_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_SPIFLASH_defconfig | 1 +
configs/P1020MBG-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020MBG-PC_36BIT_defconfig | 1 +
configs/P1020MBG-PC_SDCARD_defconfig | 1 +
configs/P1020MBG-PC_defconfig | 1 +
configs/P1020RDB-PC_36BIT_NAND_defconfig | 1 +
configs/P1020RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PC_36BIT_defconfig | 1 +
configs/P1020RDB-PC_NAND_defconfig | 1 +
configs/P1020RDB-PC_SDCARD_defconfig | 1 +
configs/P1020RDB-PC_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PC_defconfig | 1 +
configs/P1020RDB-PD_NAND_defconfig | 1 +
configs/P1020RDB-PD_SDCARD_defconfig | 1 +
configs/P1020RDB-PD_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PD_defconfig | 1 +
configs/P1020UTM-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020UTM-PC_36BIT_defconfig | 1 +
configs/P1020UTM-PC_SDCARD_defconfig | 1 +
configs/P1020UTM-PC_defconfig | 1 +
configs/P1021RDB-PC_36BIT_NAND_defconfig | 1 +
configs/P1021RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1021RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P1021RDB-PC_36BIT_defconfig | 1 +
configs/P1021RDB-PC_NAND_defconfig | 1 +
configs/P1021RDB-PC_SDCARD_defconfig | 1 +
configs/P1021RDB-PC_SPIFLASH_defconfig | 1 +
configs/P1021RDB-PC_defconfig | 1 +
configs/P1022DS_36BIT_NAND_defconfig | 1 +
configs/P1022DS_36BIT_SDCARD_defconfig | 1 +
configs/P1022DS_36BIT_SPIFLASH_defconfig | 1 +
configs/P1022DS_36BIT_defconfig | 1 +
configs/P1022DS_NAND_defconfig | 1 +
configs/P1022DS_SDCARD_defconfig | 1 +
configs/P1022DS_SPIFLASH_defconfig | 1 +
configs/P1022DS_defconfig | 1 +
configs/P1024RDB_36BIT_defconfig | 1 +
configs/P1024RDB_NAND_defconfig | 1 +
configs/P1024RDB_SDCARD_defconfig | 1 +
configs/P1024RDB_SPIFLASH_defconfig | 1 +
configs/P1024RDB_defconfig | 1 +
configs/P1025RDB_36BIT_defconfig | 1 +
configs/P1025RDB_NAND_defconfig | 1 +
configs/P1025RDB_SDCARD_defconfig | 1 +
configs/P1025RDB_SPIFLASH_defconfig | 1 +
configs/P1025RDB_defconfig | 1 +
configs/P2020RDB-PC_36BIT_NAND_defconfig | 1 +
configs/P2020RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P2020RDB-PC_36BIT_defconfig | 1 +
configs/P2020RDB-PC_NAND_defconfig | 1 +
configs/P2020RDB-PC_SDCARD_defconfig | 1 +
configs/P2020RDB-PC_SPIFLASH_defconfig | 1 +
configs/P2020RDB-PC_defconfig | 1 +
configs/P2041RDB_NAND_defconfig | 1 +
configs/P2041RDB_SDCARD_defconfig | 1 +
configs/P2041RDB_SECURE_BOOT_defconfig | 1 +
configs/P2041RDB_SPIFLASH_defconfig | 1 +
configs/P2041RDB_SRIO_PCIE_BOOT_defconfig | 1 +
configs/P2041RDB_defconfig | 1 +
configs/P3041DS_NAND_SECURE_BOOT_defconfig | 1 +
configs/P3041DS_NAND_defconfig | 1 +
configs/P3041DS_SDCARD_defconfig | 1 +
configs/P3041DS_SECURE_BOOT_defconfig | 1 +
configs/P3041DS_SPIFLASH_defconfig | 1 +
configs/P3041DS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/P3041DS_defconfig | 1 +
configs/P4080DS_SDCARD_defconfig | 1 +
configs/P4080DS_SECURE_BOOT_defconfig | 1 +
configs/P4080DS_SPIFLASH_defconfig | 1 +
configs/P4080DS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/P4080DS_defconfig | 1 +
configs/P5020DS_NAND_SECURE_BOOT_defconfig | 1 +
configs/P5020DS_NAND_defconfig | 1 +
configs/P5020DS_SDCARD_defconfig | 1 +
configs/P5020DS_SECURE_BOOT_defconfig | 1 +
configs/P5020DS_SPIFLASH_defconfig | 1 +
configs/P5020DS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/P5020DS_defconfig | 1 +
configs/P5040DS_NAND_SECURE_BOOT_defconfig | 1 +
configs/P5040DS_NAND_defconfig | 1 +
configs/P5040DS_SDCARD_defconfig | 1 +
configs/P5040DS_SECURE_BOOT_defconfig | 1 +
configs/P5040DS_SPIFLASH_defconfig | 1 +
configs/P5040DS_defconfig | 1 +
configs/T1023RDB_NAND_defconfig | 1 +
configs/T1023RDB_SDCARD_defconfig | 1 +
configs/T1023RDB_SECURE_BOOT_defconfig | 1 +
configs/T1023RDB_SPIFLASH_defconfig | 1 +
configs/T1023RDB_defconfig | 1 +
configs/T1024QDS_DDR4_SECURE_BOOT_defconfig | 1 +
configs/T1024QDS_DDR4_defconfig | 1 +
configs/T1024QDS_NAND_defconfig | 1 +
configs/T1024QDS_SDCARD_defconfig | 1 +
configs/T1024QDS_SECURE_BOOT_defconfig | 1 +
configs/T1024QDS_SPIFLASH_defconfig | 1 +
configs/T1024QDS_defconfig | 1 +
configs/T1024RDB_NAND_defconfig | 1 +
configs/T1024RDB_SDCARD_defconfig | 1 +
configs/T1024RDB_SECURE_BOOT_defconfig | 1 +
configs/T1024RDB_SPIFLASH_defconfig | 1 +
configs/T1024RDB_defconfig | 1 +
configs/T1040D4RDB_NAND_defconfig | 1 +
configs/T1040D4RDB_SDCARD_defconfig | 1 +
configs/T1040D4RDB_SECURE_BOOT_defconfig | 1 +
configs/T1040D4RDB_SPIFLASH_defconfig | 1 +
configs/T1040D4RDB_defconfig | 1 +
configs/T1040QDS_DDR4_defconfig | 1 +
configs/T1040QDS_SECURE_BOOT_defconfig | 1 +
configs/T1040QDS_defconfig | 1 +
configs/T1040RDB_NAND_defconfig | 1 +
configs/T1040RDB_SDCARD_defconfig | 1 +
configs/T1040RDB_SECURE_BOOT_defconfig | 1 +
configs/T1040RDB_SPIFLASH_defconfig | 1 +
configs/T1040RDB_defconfig | 1 +
configs/T1042D4RDB_NAND_defconfig | 1 +
configs/T1042D4RDB_SDCARD_defconfig | 1 +
configs/T1042D4RDB_SECURE_BOOT_defconfig | 1 +
configs/T1042D4RDB_SPIFLASH_defconfig | 1 +
configs/T1042D4RDB_defconfig | 1 +
configs/T1042RDB_PI_NAND_SECURE_BOOT_defconfig | 1 +
configs/T1042RDB_PI_NAND_defconfig | 1 +
configs/T1042RDB_PI_SDCARD_defconfig | 1 +
configs/T1042RDB_PI_SPIFLASH_defconfig | 1 +
configs/T1042RDB_PI_defconfig | 1 +
configs/T1042RDB_SECURE_BOOT_defconfig | 1 +
configs/T1042RDB_defconfig | 1 +
configs/T2080QDS_NAND_defconfig | 1 +
configs/T2080QDS_SDCARD_defconfig | 1 +
configs/T2080QDS_SECURE_BOOT_defconfig | 1 +
configs/T2080QDS_SPIFLASH_defconfig | 1 +
configs/T2080QDS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/T2080QDS_defconfig | 1 +
configs/T2080RDB_NAND_defconfig | 1 +
configs/T2080RDB_SDCARD_defconfig | 1 +
configs/T2080RDB_SECURE_BOOT_defconfig | 1 +
configs/T2080RDB_SPIFLASH_defconfig | 1 +
configs/T2080RDB_SRIO_PCIE_BOOT_defconfig | 1 +
configs/T2080RDB_defconfig | 1 +
configs/T2081QDS_NAND_defconfig | 1 +
configs/T2081QDS_SDCARD_defconfig | 1 +
configs/T2081QDS_SPIFLASH_defconfig | 1 +
configs/T2081QDS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/T2081QDS_defconfig | 1 +
configs/T4160QDS_NAND_defconfig | 1 +
configs/T4160QDS_SDCARD_defconfig | 1 +
configs/T4160QDS_SECURE_BOOT_defconfig | 1 +
configs/T4160QDS_defconfig | 1 +
configs/T4160RDB_defconfig | 1 +
configs/T4240QDS_NAND_defconfig | 1 +
configs/T4240QDS_SDCARD_defconfig | 1 +
configs/T4240QDS_SECURE_BOOT_defconfig | 1 +
configs/T4240QDS_SRIO_PCIE_BOOT_defconfig | 1 +
configs/T4240QDS_defconfig | 1 +
configs/T4240RDB_SDCARD_defconfig | 1 +
configs/T4240RDB_defconfig | 1 +
configs/TWR-P1025_defconfig | 1 +
configs/UCP1020_SPIFLASH_defconfig | 1 +
configs/UCP1020_defconfig | 1 +
configs/Wits_Pro_A20_DKT_defconfig | 2 +-
configs/adp-ag101p_defconfig | 1 +
configs/alt_defconfig | 1 +
configs/am335x_baltos_defconfig | 1 +
configs/am335x_boneblack_defconfig | 1 +
configs/am335x_boneblack_vboot_defconfig | 1 +
configs/am335x_evm_defconfig | 1 +
configs/am335x_evm_nor_defconfig | 1 +
configs/am335x_evm_norboot_defconfig | 1 +
configs/am335x_evm_spiboot_defconfig | 1 +
configs/am335x_evm_usbspl_defconfig | 1 +
configs/am335x_igep0033_defconfig | 1 +
configs/am335x_shc_defconfig | 1 +
configs/am335x_shc_ict_defconfig | 1 +
configs/am335x_shc_netboot_defconfig | 1 +
configs/am335x_shc_prompt_defconfig | 1 +
configs/am335x_shc_sdboot_defconfig | 1 +
configs/am335x_shc_sdboot_prompt_defconfig | 1 +
configs/am335x_sl50_defconfig | 1 +
configs/am3517_crane_defconfig | 1 +
configs/am3517_evm_defconfig | 1 +
configs/am43xx_evm_defconfig | 1 +
configs/am43xx_evm_ethboot_defconfig | 1 +
configs/am43xx_evm_qspiboot_defconfig | 1 +
configs/am43xx_evm_usbhost_boot_defconfig | 1 +
configs/am43xx_hs_evm_defconfig | 1 +
configs/am57xx_evm_defconfig | 5 +-
configs/am57xx_evm_nodt_defconfig | 1 +
configs/am57xx_hs_evm_defconfig | 5 +-
configs/apalis_t30_defconfig | 1 +
configs/apf27_defconfig | 1 +
configs/apx4devkit_defconfig | 1 +
configs/aristainetos2_defconfig | 1 +
configs/aristainetos2b_defconfig | 1 +
configs/aristainetos_defconfig | 1 +
configs/arndale_defconfig | 3 +
configs/at91sam9263ek_dataflash_cs0_defconfig | 1 +
configs/at91sam9263ek_dataflash_defconfig | 1 +
configs/at91sam9263ek_nandflash_defconfig | 1 +
configs/at91sam9263ek_norflash_boot_defconfig | 1 +
configs/at91sam9263ek_norflash_defconfig | 1 +
configs/at91sam9g20ek_2mmc_defconfig | 1 +
configs/at91sam9g20ek_2mmc_nandflash_defconfig | 1 +
configs/at91sam9m10g45ek_mmc_defconfig | 1 +
configs/at91sam9m10g45ek_nandflash_defconfig | 1 +
configs/at91sam9n12ek_mmc_defconfig | 1 +
configs/at91sam9n12ek_nandflash_defconfig | 1 +
configs/at91sam9n12ek_spiflash_defconfig | 1 +
configs/at91sam9rlek_dataflash_defconfig | 1 +
configs/at91sam9rlek_mmc_defconfig | 1 +
configs/at91sam9rlek_nandflash_defconfig | 1 +
configs/at91sam9x5ek_dataflash_defconfig | 1 +
configs/at91sam9x5ek_mmc_defconfig | 1 +
configs/at91sam9x5ek_nandflash_defconfig | 1 +
configs/at91sam9x5ek_spiflash_defconfig | 1 +
configs/atngw100_defconfig | 1 +
configs/atngw100mkii_defconfig | 1 +
configs/atstk1002_defconfig | 1 +
configs/axs101_defconfig | 1 +
configs/axs103_defconfig | 1 +
configs/bayleybay_defconfig | 5 +-
configs/bcm11130_defconfig | 4 +
configs/bcm11130_nand_defconfig | 4 +
configs/bcm23550_w1d_defconfig | 4 +
configs/bcm28155_ap_defconfig | 4 +
configs/bcm28155_w1d_defconfig | 4 +
configs/beaver_defconfig | 1 +
configs/bf518f-ezbrd_defconfig | 1 +
configs/bf527-ad7160-eval_defconfig | 1 +
configs/bf537-stamp_defconfig | 1 +
configs/bf548-ezkit_defconfig | 1 +
configs/bf609-ezkit_defconfig | 1 +
configs/birdland_bav335a_defconfig | 1 +
configs/birdland_bav335b_defconfig | 1 +
configs/bk4r1_defconfig | 1 +
configs/brppt1_mmc_defconfig | 1 +
configs/brppt1_spi_defconfig | 1 +
configs/brxre1_defconfig | 1 +
configs/cairo_defconfig | 1 +
configs/cardhu_defconfig | 1 +
configs/cei-tk1-som_defconfig | 1 +
configs/cgtqmx6eval_defconfig | 1 +
configs/chromebit_mickey_defconfig | 8 +-
configs/chromebook_jerry_defconfig | 3 +-
configs/chromebook_link_defconfig | 2 +-
configs/chromebook_minnie_defconfig | 3 +-
configs/chromebox_panther_defconfig | 2 +-
configs/clearfog_defconfig | 4 +
configs/cm-bf537e_defconfig | 1 +
configs/cm-bf537u_defconfig | 1 +
configs/cm_fx6_defconfig | 1 +
configs/cm_t335_defconfig | 1 +
configs/cm_t3517_defconfig | 1 +
configs/cm_t35_defconfig | 1 +
configs/cm_t43_defconfig | 1 +
configs/cm_t54_defconfig | 1 +
configs/colibri_imx7_defconfig | 1 +
configs/colibri_pxa270_defconfig | 1 +
configs/colibri_t20_defconfig | 1 +
configs/colibri_t30_defconfig | 1 +
configs/colibri_vf_defconfig | 1 +
...conga-qeval20-qa3-e3845-internal-uart_defconfig | 5 +-
configs/conga-qeval20-qa3-e3845_defconfig | 5 +-
.../controlcenterd_36BIT_SDCARD_DEVELOP_defconfig | 1 +
configs/controlcenterd_36BIT_SDCARD_defconfig | 1 +
.../controlcenterd_TRAILBLAZER_DEVELOP_defconfig | 1 +
configs/controlcenterd_TRAILBLAZER_defconfig | 1 +
configs/coreboot-x86_defconfig | 2 +-
configs/crownbay_defconfig | 5 +-
configs/da850_am18xxevm_defconfig | 1 +
configs/da850evm_defconfig | 1 +
configs/dalmore_defconfig | 1 +
configs/db-88f6820-gp_defconfig | 4 +
configs/devkit8000_defconfig | 1 +
configs/dfi-bt700-q7x-151_defconfig | 5 +-
configs/dms-ba16-1g_defconfig | 3 +-
configs/dms-ba16_defconfig | 3 +-
configs/dra7xx_evm_defconfig | 1 +
configs/dra7xx_hs_evm_defconfig | 1 +
configs/draco_defconfig | 1 +
configs/dragonboard410c_defconfig | 2 +
configs/duovero_defconfig | 1 +
configs/e2220-1170_defconfig | 9 +-
configs/eco5pk_defconfig | 1 +
configs/etamin_defconfig | 1 +
configs/ethernut5_defconfig | 1 +
configs/evb-rk3036_defconfig | 1 +
configs/evb-rk3288_defconfig | 3 +-
configs/evb-rk3399_defconfig | 4 +-
configs/fennec-rk3288_defconfig | 3 +-
configs/firefly-rk3288_defconfig | 1 +
configs/galileo_defconfig | 3 +
configs/ge_b450v3_defconfig | 3 +-
configs/ge_b650v3_defconfig | 3 +-
configs/ge_b850v3_defconfig | 3 +-
configs/gose_defconfig | 1 +
configs/gurnard_defconfig | 1 +
configs/gwventana_defconfig | 1 +
configs/harmony_defconfig | 1 +
configs/hikey_defconfig | 1 +
configs/hrcon_defconfig | 1 +
configs/hrcon_dh_defconfig | 1 +
configs/igep0020_defconfig | 1 +
configs/igep0030_defconfig | 1 +
configs/igep0032_defconfig | 1 +
configs/imx6qdl_icore_mmc_defconfig | 44 +++++----
configs/imx6qdl_icore_nand_defconfig | 42 ++++-----
configs/jetson-tk1_defconfig | 1 +
configs/k2g_evm_defconfig | 1 +
configs/kc1_defconfig | 3 +-
configs/koelsch_defconfig | 1 +
configs/kylin-rk3036_defconfig | 7 +-
configs/lager_defconfig | 1 +
configs/legoev3_defconfig | 1 +
configs/ls1012aqds_qspi_defconfig | 1 +
configs/ls1012ardb_qspi_defconfig | 1 +
configs/ls1021aiot_qspi_defconfig | 11 +--
configs/ls1021aiot_sdcard_defconfig | 14 +--
configs/ls1021aqds_ddr4_nor_defconfig | 1 +
configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_nand_defconfig | 1 +
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021aqds_nor_defconfig | 1 +
configs/ls1021aqds_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_qspi_defconfig | 1 +
configs/ls1021aqds_sdcard_ifc_defconfig | 1 +
configs/ls1021aqds_sdcard_qspi_defconfig | 1 +
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021atwr_nor_defconfig | 1 +
configs/ls1021atwr_nor_lpuart_defconfig | 1 +
configs/ls1021atwr_qspi_defconfig | 1 +
.../ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig | 1 +
configs/ls1021atwr_sdcard_ifc_defconfig | 1 +
configs/ls1021atwr_sdcard_qspi_defconfig | 1 +
configs/ls1043aqds_defconfig | 1 +
configs/ls1043aqds_lpuart_defconfig | 1 +
configs/ls1043aqds_nand_defconfig | 1 +
configs/ls1043aqds_nor_ddr3_defconfig | 1 +
configs/ls1043aqds_qspi_defconfig | 1 +
configs/ls1043aqds_sdcard_ifc_defconfig | 1 +
configs/ls1043aqds_sdcard_qspi_defconfig | 1 +
configs/ls1043ardb_SECURE_BOOT_defconfig | 1 +
configs/ls1043ardb_defconfig | 1 +
configs/ls1043ardb_nand_defconfig | 1 +
configs/ls1043ardb_sdcard_defconfig | 1 +
configs/ls1046aqds_defconfig | 1 +
configs/ls1046aqds_lpuart_defconfig | 6 +-
configs/ls1046aqds_nand_defconfig | 1 +
configs/ls1046aqds_qspi_defconfig | 1 +
configs/ls1046aqds_sdcard_ifc_defconfig | 1 +
configs/ls1046aqds_sdcard_qspi_defconfig | 1 +
configs/ls1046ardb_emmc_defconfig | 1 +
configs/ls1046ardb_qspi_defconfig | 1 +
configs/ls1046ardb_sdcard_defconfig | 1 +
configs/ls2080a_simu_defconfig | 1 +
configs/ls2080aqds_SECURE_BOOT_defconfig | 1 +
configs/ls2080aqds_defconfig | 1 +
configs/ls2080aqds_nand_defconfig | 1 +
configs/ls2080aqds_qspi_defconfig | 1 +
configs/ls2080ardb_SECURE_BOOT_defconfig | 1 +
configs/ls2080ardb_defconfig | 1 +
configs/ls2080ardb_nand_defconfig | 1 +
configs/m28evk_defconfig | 1 +
configs/m53evk_defconfig | 1 +
configs/ma5d4evk_defconfig | 1 +
configs/marsboard_defconfig | 1 +
configs/mcx_defconfig | 1 +
configs/medcom-wide_defconfig | 1 +
configs/miniarm-rk3288_defconfig | 3 +-
configs/minnowmax_defconfig | 5 +-
configs/mt_ventoux_defconfig | 1 +
configs/mx23_olinuxino_defconfig | 1 +
configs/mx23evk_defconfig | 1 +
configs/mx25pdk_defconfig | 3 +-
configs/mx28evk_auart_console_defconfig | 1 +
configs/mx28evk_defconfig | 1 +
configs/mx28evk_nand_defconfig | 1 +
configs/mx28evk_spi_defconfig | 1 +
configs/mx35pdk_defconfig | 1 +
configs/mx51evk_defconfig | 1 +
configs/mx53ard_defconfig | 3 +-
configs/mx53evk_defconfig | 1 +
configs/mx53loco_defconfig | 1 +
configs/mx53smd_defconfig | 1 +
configs/mx6cuboxi_defconfig | 1 +
configs/mx6dlarm2_defconfig | 1 +
configs/mx6dlarm2_lpddr2_defconfig | 1 +
configs/mx6dlsabreauto_defconfig | 1 +
configs/mx6dlsabresd_defconfig | 1 +
configs/mx6qarm2_defconfig | 1 +
configs/mx6qarm2_lpddr2_defconfig | 1 +
configs/mx6qpsabreauto_defconfig | 1 +
configs/mx6qsabreauto_defconfig | 1 +
configs/mx6qsabrelite_defconfig | 1 +
configs/mx6qsabresd_defconfig | 1 +
configs/mx6sabresd_spl_defconfig | 1 +
configs/mx6slevk_defconfig | 1 +
configs/mx6slevk_spinor_defconfig | 1 +
configs/mx6slevk_spl_defconfig | 1 +
configs/mx6sxsabreauto_defconfig | 1 +
configs/mx6sxsabresd_defconfig | 1 +
configs/mx6sxsabresd_spl_defconfig | 1 +
configs/mx6ul_14x14_evk_defconfig | 1 +
configs/mx6ul_9x9_evk_defconfig | 1 +
configs/mx6ull_14x14_evk_defconfig | 1 +
configs/mx6ull_14x14_evk_plugin_defconfig | 3 +-
configs/mx7dsabresd_defconfig | 1 +
configs/mx7dsabresd_secure_defconfig | 7 +-
configs/nitrogen6dl2g_defconfig | 1 +
configs/nitrogen6dl_defconfig | 1 +
configs/nitrogen6q2g_defconfig | 1 +
configs/nitrogen6q_defconfig | 1 +
configs/nitrogen6s1g_defconfig | 1 +
configs/nitrogen6s_defconfig | 1 +
configs/nokia_rx51_defconfig | 1 +
configs/novena_defconfig | 1 +
configs/nyan-big_defconfig | 1 +
configs/odroid-xu3_defconfig | 3 +
configs/odroid_defconfig | 4 +
configs/omap3_beagle_defconfig | 1 +
configs/omap3_evm_defconfig | 1 +
configs/omap3_ha_defconfig | 1 +
configs/omap3_logic_defconfig | 1 +
configs/omap3_overo_defconfig | 1 +
configs/omap3_pandora_defconfig | 1 +
configs/omap3_zoom1_defconfig | 1 +
configs/omap4_panda_defconfig | 1 +
configs/omap4_sdp4430_defconfig | 1 +
configs/omap5_uevm_defconfig | 1 +
configs/omapl138_lcdk_defconfig | 1 +
configs/openrd_base_defconfig | 1 +
configs/openrd_client_defconfig | 1 +
configs/openrd_ultimate_defconfig | 1 +
configs/origen_defconfig | 4 +
configs/ot1200_defconfig | 1 +
configs/ot1200_spl_defconfig | 1 +
configs/p2371-0000_defconfig | 9 +-
configs/p2371-2180_defconfig | 9 +-
configs/p2571_defconfig | 9 +-
configs/p2771-0000-000_defconfig | 9 +-
configs/p2771-0000-500_defconfig | 9 +-
configs/paz00_defconfig | 1 +
configs/pcm051_rev1_defconfig | 1 +
configs/pcm051_rev3_defconfig | 1 +
configs/pcm052_defconfig | 1 +
configs/pcm058_defconfig | 1 +
configs/peach-pi_defconfig | 3 +
configs/peach-pit_defconfig | 3 +
configs/pengwyn_defconfig | 1 +
configs/pepper_defconfig | 1 +
configs/pic32mzdask_defconfig | 2 +
configs/pico-imx6ul_defconfig | 3 +-
configs/picosam9g45_defconfig | 1 +
configs/platinum_picon_defconfig | 1 +
configs/platinum_titanium_defconfig | 1 +
configs/plutux_defconfig | 1 +
configs/popmetal-rk3288_defconfig | 3 +-
configs/porter_defconfig | 1 +
configs/pxm2_defconfig | 1 +
configs/qemu-x86_defconfig | 2 +-
configs/qemu-x86_efi_payload32_defconfig | 2 +-
configs/qemu-x86_efi_payload64_defconfig | 4 +-
configs/rastaban_defconfig | 1 +
configs/riotboard_defconfig | 1 +
configs/rock2_defconfig | 2 +-
configs/rpi_2_defconfig | 3 +
configs/rpi_3_32b_defconfig | 3 +
configs/rpi_3_defconfig | 3 +
configs/rpi_defconfig | 3 +
configs/rut_defconfig | 1 +
configs/s32v234evb_defconfig | 1 +
configs/s5p_goni_defconfig | 3 +
configs/s5pc210_universal_defconfig | 4 +
configs/sama5d2_xplained_mmc_defconfig | 10 +--
configs/sama5d2_xplained_spiflash_defconfig | 8 +-
configs/sama5d3_xplained_mmc_defconfig | 1 +
configs/sama5d3_xplained_nandflash_defconfig | 1 +
configs/sama5d3xek_mmc_defconfig | 1 +
configs/sama5d3xek_nandflash_defconfig | 1 +
configs/sama5d3xek_spiflash_defconfig | 1 +
configs/sama5d4_xplained_mmc_defconfig | 1 +
configs/sama5d4_xplained_nandflash_defconfig | 1 +
configs/sama5d4_xplained_spiflash_defconfig | 1 +
configs/sama5d4ek_mmc_defconfig | 1 +
configs/sama5d4ek_nandflash_defconfig | 1 +
configs/sama5d4ek_spiflash_defconfig | 1 +
configs/sansa_fuze_plus_defconfig | 1 +
configs/sc_sps_1_defconfig | 1 +
configs/seaboard_defconfig | 1 +
configs/secomx6quq7_defconfig | 1 +
configs/sh7752evb_defconfig | 1 +
configs/sh7753evb_defconfig | 1 +
configs/sh7757lcr_defconfig | 1 +
configs/sheevaplug_defconfig | 1 +
configs/silk_defconfig | 1 +
configs/smdk5250_defconfig | 3 +
configs/smdk5420_defconfig | 3 +
configs/smdkv310_defconfig | 4 +
configs/sniper_defconfig | 3 +-
configs/snow_defconfig | 3 +
configs/socfpga_arria5_defconfig | 1 +
configs/socfpga_cyclone5_defconfig | 1 +
configs/socfpga_de0_nano_soc_defconfig | 1 +
configs/socfpga_mcvevk_defconfig | 1 +
configs/socfpga_sockit_defconfig | 1 +
configs/socfpga_socrates_defconfig | 1 +
configs/socfpga_sr1500_defconfig | 1 +
configs/socfpga_vining_fpga_defconfig | 1 +
configs/som-db5800-som-6867_defconfig | 2 +-
configs/spring_defconfig | 3 +
configs/stm32f429-discovery_defconfig | 2 +-
configs/stout_defconfig | 1 +
configs/strider_con_defconfig | 1 +
configs/strider_con_dp_defconfig | 1 +
configs/strider_cpu_defconfig | 1 +
configs/strider_cpu_dp_defconfig | 1 +
configs/tao3530_defconfig | 1 +
configs/tbs2910_defconfig | 1 +
configs/tcm-bf537_defconfig | 1 +
configs/tec-ng_defconfig | 1 +
configs/tec_defconfig | 1 +
configs/theadorable-x86-dfi-bt700_defconfig | 5 +-
configs/theadorable_debug_defconfig | 1 -
configs/theadorable_defconfig | 1 -
configs/thuban_defconfig | 1 +
configs/ti814x_evm_defconfig | 1 +
configs/ti816x_evm_defconfig | 1 +
configs/titanium_defconfig | 1 +
configs/topic_miami_defconfig | 2 +
configs/topic_miamiplus_defconfig | 2 +
configs/tqma6q_mba6_mmc_defconfig | 3 +-
configs/tqma6q_mba6_spi_defconfig | 3 +-
configs/tqma6s_mba6_mmc_defconfig | 3 +-
configs/tqma6s_mba6_spi_defconfig | 3 +-
configs/tqma6s_wru4_mmc_defconfig | 3 +-
configs/trats2_defconfig | 4 +
configs/trats_defconfig | 4 +
configs/tricorder_defconfig | 1 +
configs/tricorder_flash_defconfig | 1 +
configs/trimslice_defconfig | 1 +
configs/ts4600_defconfig | 1 +
configs/ts4800_defconfig | 1 +
configs/twister_defconfig | 1 +
configs/udoo_defconfig | 1 +
configs/udoo_neo_defconfig | 4 +-
configs/uniphier_ld20_defconfig | 1 +
configs/uniphier_ld4_sld8_defconfig | 1 +
configs/uniphier_pro4_defconfig | 1 +
configs/uniphier_pxs2_ld6b_defconfig | 1 +
configs/uniphier_sld3_defconfig | 1 +
configs/usbarmory_defconfig | 1 +
configs/venice2_defconfig | 1 +
configs/ventana_defconfig | 1 +
configs/vexpress_ca15_tc2_defconfig | 1 +
configs/vexpress_ca5x2_defconfig | 1 +
configs/vexpress_ca9x4_defconfig | 1 +
configs/vf610twr_defconfig | 1 +
configs/vf610twr_nand_defconfig | 1 +
configs/vinco_defconfig | 1 +
configs/vining_2000_defconfig | 3 +-
configs/wandboard_defconfig | 1 +
configs/warp7_defconfig | 1 +
configs/warp7_secure_defconfig | 1 +
configs/warp_defconfig | 1 +
configs/whistler_defconfig | 1 +
configs/woodburn_defconfig | 1 +
configs/woodburn_sd_defconfig | 1 +
configs/xfi3_defconfig | 1 +
configs/xilinx_zynqmp_ep_defconfig | 2 +
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 2 +
configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig | 2 +
configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig | 2 +
configs/xilinx_zynqmp_zcu102_defconfig | 2 +
configs/xilinx_zynqmp_zcu102_revB_defconfig | 2 +
configs/xpress_defconfig | 1 +
configs/xpress_spl_defconfig | 1 +
configs/zc5202_defconfig | 1 +
configs/zc5601_defconfig | 1 +
configs/zipitz2_defconfig | 1 +
configs/zynq_microzed_defconfig | 2 +
configs/zynq_picozed_defconfig | 2 +
configs/zynq_zc702_defconfig | 2 +
configs/zynq_zc706_defconfig | 2 +
configs/zynq_zc770_xm010_defconfig | 2 +
configs/zynq_zed_defconfig | 2 +
configs/zynq_zybo_defconfig | 2 +
drivers/mmc/Kconfig | 100 ++++++++++++++++++++-
drivers/mmc/Makefile | 14 +--
drivers/mmc/sdhci.c | 10 +--
include/configs/BSC9132QDS.h | 1 -
include/configs/MPC8308RDB.h | 2 -
include/configs/MPC837XEMDS.h | 2 -
include/configs/MPC837XERDB.h | 2 -
include/configs/MPC8536DS.h | 2 -
include/configs/MPC8569MDS.h | 2 -
include/configs/P1010RDB.h | 1 -
include/configs/P1022DS.h | 1 -
include/configs/P2041RDB.h | 2 -
include/configs/P3041DS.h | 1 -
include/configs/P4080DS.h | 1 -
include/configs/P5020DS.h | 1 -
include/configs/P5040DS.h | 1 -
include/configs/T102xQDS.h | 1 -
include/configs/T102xRDB.h | 1 -
include/configs/T1040QDS.h | 2 -
include/configs/T104xRDB.h | 2 -
include/configs/T208xQDS.h | 1 -
include/configs/T208xRDB.h | 1 -
include/configs/T4240QDS.h | 2 -
include/configs/T4240RDB.h | 2 -
include/configs/UCP1020.h | 2 -
include/configs/adp-ag101p.h | 1 -
include/configs/advantech_dms-ba16.h | 1 -
include/configs/alt.h | 1 -
include/configs/am3517_crane.h | 1 -
include/configs/am3517_evm.h | 1 -
include/configs/apalis_t30.h | 1 -
include/configs/apf27.h | 1 -
include/configs/at91sam9260ek.h | 1 -
include/configs/at91sam9263ek.h | 1 -
include/configs/at91sam9m10g45ek.h | 1 -
include/configs/at91sam9n12ek.h | 1 -
include/configs/at91sam9rlek.h | 1 -
include/configs/at91sam9x5ek.h | 1 -
include/configs/atngw100.h | 1 -
include/configs/atngw100mkii.h | 1 -
include/configs/atstk1002.h | 1 -
include/configs/axs10x.h | 1 -
include/configs/bayleybay.h | 3 -
include/configs/bcm23550_w1d.h | 4 -
include/configs/bcm28155_ap.h | 4 -
include/configs/beaver.h | 1 -
include/configs/bf518f-ezbrd.h | 1 -
include/configs/bf527-ad7160-eval.h | 1 -
include/configs/bf537-stamp.h | 1 -
include/configs/bf548-ezkit.h | 1 -
include/configs/bf609-ezkit.h | 1 -
include/configs/brppt1.h | 1 -
include/configs/brxre1.h | 1 -
include/configs/cardhu.h | 1 -
include/configs/cei-tk1-som.h | 1 -
include/configs/clearfog.h | 4 -
include/configs/cm-bf537e.h | 1 -
include/configs/cm-bf537u.h | 1 -
include/configs/cm_t35.h | 1 -
include/configs/cm_t3517.h | 1 -
include/configs/colibri_t20.h | 1 -
include/configs/colibri_t30.h | 1 -
include/configs/colibri_vf.h | 1 -
include/configs/conga-qeval20-qa3-e3845.h | 3 -
include/configs/controlcenterd.h | 1 -
include/configs/crownbay.h | 3 -
include/configs/cyrus.h | 1 -
include/configs/da850evm.h | 1 -
include/configs/dalmore.h | 1 -
include/configs/db-88f6820-gp.h | 4 -
include/configs/dfi-bt700.h | 3 -
include/configs/dragonboard410c.h | 2 -
include/configs/e2220-1170.h | 1 -
include/configs/edb93xx.h | 1 -
include/configs/ethernut5.h | 1 -
include/configs/exynos-common.h | 3 -
include/configs/exynos4-common.h | 1 -
include/configs/galileo.h | 3 -
include/configs/ge_bx50v3.h | 1 -
include/configs/gose.h | 1 -
include/configs/harmony.h | 1 -
include/configs/hikey.h | 1 -
include/configs/hrcon.h | 1 -
include/configs/imx27lite-common.h | 1 -
include/configs/jetson-tk1.h | 1 -
include/configs/k2g_evm.h | 1 -
include/configs/kc1.h | 1 -
include/configs/koelsch.h | 1 -
include/configs/lager.h | 1 -
include/configs/legoev3.h | 1 -
include/configs/ls1012aqds.h | 1 -
include/configs/ls1012ardb.h | 1 -
include/configs/ls1021aiot.h | 1 -
include/configs/ls1021aqds.h | 1 -
include/configs/ls1021atwr.h | 1 -
include/configs/ls1043a_common.h | 1 -
include/configs/ls1046a_common.h | 1 -
include/configs/ls2080a_simu.h | 1 -
include/configs/ls2080aqds.h | 1 -
include/configs/ls2080ardb.h | 1 -
include/configs/m53evk.h | 1 -
include/configs/ma5d4evk.h | 1 -
include/configs/mcx.h | 1 -
include/configs/medcom-wide.h | 1 -
include/configs/minnowmax.h | 3 -
include/configs/mx25pdk.h | 1 -
include/configs/mx35pdk.h | 1 -
include/configs/mx51evk.h | 2 -
include/configs/mx53ard.h | 1 -
include/configs/mx53evk.h | 1 -
include/configs/mx53loco.h | 1 -
include/configs/mx53smd.h | 1 -
include/configs/mx6_common.h | 1 -
include/configs/mx7_common.h | 1 -
include/configs/mxs.h | 1 -
include/configs/nokia_rx51.h | 1 -
include/configs/nyan-big.h | 1 -
include/configs/omap3_evm.h | 1 -
include/configs/omapl138_lcdk.h | 1 -
include/configs/openrd.h | 1 -
include/configs/p1_p2_rdb_pc.h | 2 -
include/configs/p1_twr.h | 2 -
include/configs/p2371-0000.h | 1 -
include/configs/p2371-2180.h | 1 -
include/configs/p2571.h | 1 -
include/configs/p2771-0000.h | 1 -
include/configs/paz00.h | 1 -
include/configs/pcm052.h | 1 -
include/configs/pepper.h | 1 -
include/configs/pic32mzdask.h | 2 -
include/configs/pico-imx6ul.h | 1 -
include/configs/picosam9g45.h | 1 -
include/configs/plutux.h | 1 -
include/configs/porter.h | 1 -
include/configs/pxa-common.h | 1 -
include/configs/rk3036_common.h | 1 -
include/configs/rk3288_common.h | 1 -
include/configs/rk3399_common.h | 2 -
include/configs/rpi.h | 4 -
include/configs/s32v234evb.h | 1 -
include/configs/s5p_goni.h | 3 -
include/configs/sama5d2_xplained.h | 1 -
include/configs/sama5d3_xplained.h | 1 -
include/configs/sama5d3xek.h | 1 -
include/configs/sama5d4_xplained.h | 1 -
include/configs/sama5d4ek.h | 1 -
include/configs/seaboard.h | 1 -
include/configs/sh7752evb.h | 1 -
include/configs/sh7753evb.h | 1 -
include/configs/sh7757lcr.h | 1 -
include/configs/sheevaplug.h | 1 -
include/configs/siemens-am33x-common.h | 1 -
include/configs/silk.h | 1 -
include/configs/snapper9g45.h | 1 -
include/configs/sniper.h | 1 -
include/configs/socfpga_common.h | 1 -
include/configs/stout.h | 1 -
include/configs/strider.h | 1 -
include/configs/tam3517-common.h | 1 -
include/configs/tao3530.h | 1 -
include/configs/tcm-bf537.h | 1 -
include/configs/tec-ng.h | 1 -
include/configs/tec.h | 1 -
include/configs/tegra-common-post.h | 3 -
include/configs/ti814x_evm.h | 1 -
include/configs/ti816x_evm.h | 1 -
include/configs/ti_armv7_common.h | 1 -
include/configs/ti_armv7_keystone2.h | 1 -
include/configs/tricorder.h | 1 -
include/configs/trimslice.h | 1 -
include/configs/ts4800.h | 2 -
include/configs/usbarmory.h | 1 -
include/configs/venice2.h | 1 -
include/configs/ventana.h | 1 -
include/configs/vexpress_common.h | 1 -
include/configs/vf610twr.h | 1 -
include/configs/vinco.h | 1 -
include/configs/whistler.h | 1 -
include/configs/woodburn_common.h | 1 -
include/configs/xilinx_zynqmp.h | 2 -
include/configs/zipitz2.h | 1 -
include/configs/zynq-common.h | 2 -
851 files changed, 975 insertions(+), 458 deletions(-)
--
2.7.4
3
17
v3-v4 changes:
- Re-added the 1/6 from v2, and move the newly re-named macro into Kconfig
- Add "Reviewed-by: Tom Rini <trini(a)konsulko.com>" for patch 4/6 ~ 6/6.
v2-v3 changes:
- Drop the previous 1/6, since the previous CONFIG_ARMV8_PSCI in common parts
of codes also work for generic PSCI framework, so there are 5 patches in this
iteration.
- Add "Reviewed-by: Tom Rini <trini(a)konsulko.com>" for patches 1/5 and 2/5,
which were 2/6 and 3/6.
- Move config values for ls1043 from armv8/Kconfig to s1043ardb_defconfig.
v1-v2 changes:
- The new config options are introduced in Kconfig when used for first time
- Introduce new config options in armv8/Kconfig instead of LS1043 platform
- Move previous patch 5/6 to current 2/6 place
v1 notes:
This patch set introduces ARMv8 PSCI framework, all the PSCI functions are
implemented a default dummy one, it is up to each platform to implement their
own specific ones.
The first 1/6 patch is a prepare clean up for adding ARMv8 PSCI.
Patches 2/6 to 5/6 introduce new ARMv8 framework and set it up.
The last 6/6 adds a most simple implementation on NXP LS1043 platform, to
verify this framework.
This patch set mainly introduces ARMv8 PSCI framework, for easier review and
merge, further PSCI implementation on LS1043 is coming later.
Hongbo Zhang (6):
ARMv8: LS1043A: change macro CONFIG_ARMV8_PSCI definition
ARMv8: Enable SMC instruction
ARMv8: Add secure sections for PSCI text and data
ARMv8: Add basic PSCI framework
ARMv8: Setup PSCI memory and device tree
ARMv8: LS1043A: Enable LS1043A default PSCI support
arch/arm/config.mk | 3 +-
arch/arm/cpu/armv8/Kconfig | 41 ++++
arch/arm/cpu/armv8/Makefile | 1 +
arch/arm/cpu/armv8/cpu-dt.c | 11 +-
arch/arm/cpu/armv8/cpu.c | 22 ++
arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 20 ++
arch/arm/cpu/armv8/fsl-layerscape/Makefile | 1 +
arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 3 +-
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 3 +-
arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S | 20 ++
arch/arm/cpu/armv8/psci.S | 286 +++++++++++++++++++++++
arch/arm/cpu/armv8/sec_firmware.c | 2 +-
arch/arm/cpu/armv8/sec_firmware_asm.S | 2 +-
arch/arm/cpu/armv8/u-boot.lds | 57 +++++
arch/arm/include/asm/armv8/sec_firmware.h | 2 +-
arch/arm/include/asm/macro.h | 2 +-
arch/arm/include/asm/psci.h | 15 ++
arch/arm/include/asm/secure.h | 2 +-
arch/arm/include/asm/system.h | 11 +
arch/arm/lib/bootm-fdt.c | 3 +-
arch/arm/lib/bootm.c | 3 +
arch/arm/lib/psci-dt.c | 5 +-
board/freescale/ls1043ardb/Kconfig | 9 +
configs/ls1043ardb_defconfig | 3 +
include/configs/ls1043ardb.h | 1 -
25 files changed, 515 insertions(+), 13 deletions(-)
create mode 100644 arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S
create mode 100644 arch/arm/cpu/armv8/psci.S
--
2.1.4
2
17

07 Dec '16
From: Hou Zhiqiang <Zhiqiang.Hou(a)nxp.com>
Enable DT to support Driver Model.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou(a)nxp.com>
---
V4:
- No change
configs/ls1021aqds_nand_defconfig | 3 +++
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 2 ++
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 2 ++
configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig | 2 ++
configs/ls1021atwr_sdcard_ifc_defconfig | 3 +++
5 files changed, 12 insertions(+)
diff --git a/configs/ls1021aqds_nand_defconfig b/configs/ls1021aqds_nand_defconfig
index e28aa48..5c52c3f 100644
--- a/configs/ls1021aqds_nand_defconfig
+++ b/configs/ls1021aqds_nand_defconfig
@@ -1,5 +1,6 @@
CONFIG_ARM=y
CONFIG_TARGET_LS1021AQDS=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_SYS_FSL_DDR3=y
@@ -13,6 +14,7 @@ CONFIG_VIDEO=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_CONTROL=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,NAND_BOOT"
CONFIG_NAND_BOOT=y
@@ -38,6 +40,7 @@ CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
+CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_PCI=y
diff --git a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
index 8b869fa..16dc8bb 100644
--- a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
@@ -1,11 +1,13 @@
CONFIG_ARM=y
CONFIG_TARGET_LS1021AQDS=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
CONFIG_SYS_FSL_DDR3=y
CONFIG_VIDEO=y
# CONFIG_SYS_MALLOC_F is not set
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_CONTROL=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_SECURE_BOOT=y
CONFIG_BOOTDELAY=3
diff --git a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
index 946945f..71681a6 100644
--- a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
@@ -1,11 +1,13 @@
CONFIG_ARM=y
CONFIG_TARGET_LS1021ATWR=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-twr-duart"
CONFIG_VIDEO=y
# CONFIG_SYS_MALLOC_F is not set
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_OF_CONTROL=y
CONFIG_SECURE_BOOT=y
CONFIG_BOOTDELAY=3
CONFIG_SILENT_CONSOLE=y
diff --git a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
index 5e74645..aa8c4f9 100644
--- a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
@@ -1,5 +1,6 @@
CONFIG_ARM=y
CONFIG_TARGET_LS1021ATWR=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-twr-duart"
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_SPL_I2C_SUPPORT=y
@@ -12,6 +13,7 @@ CONFIG_VIDEO=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_CONTROL=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,SD_BOOT"
CONFIG_SECURE_BOOT=y
diff --git a/configs/ls1021atwr_sdcard_ifc_defconfig b/configs/ls1021atwr_sdcard_ifc_defconfig
index 22be22c..1c79d58 100644
--- a/configs/ls1021atwr_sdcard_ifc_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_defconfig
@@ -1,5 +1,6 @@
CONFIG_ARM=y
CONFIG_TARGET_LS1021ATWR=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-twr-duart"
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_SPL_I2C_SUPPORT=y
@@ -11,6 +12,7 @@ CONFIG_VIDEO=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_CONTROL=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,SD_BOOT"
CONFIG_SD_BOOT=y
@@ -35,6 +37,7 @@ CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
+CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_PCI=y
--
2.1.0.27.g96db324
4
21

07 Dec '16
This patch series adds support for the Guntermann & Drunck
ControlCenter-Compact board.
To this extent, some bugs in the mvebu PCI driver are fixed, a GPIO driver is
added, support for the Marvell 88E1680 is added, the TPM library is extended,
the kwbimage generation is streamlined, a board function for manipulating the
device tree is added, and secure boot for the mvebu architecture is
implemented.
Dirk Eibach (4):
pci: mvebu: Fix Armada 38x support
arm: mvebu: Add gpio support
net: phy: Support Marvell 88E1680
arm: mvebu: Add gdsys ControlCenter-Compact board
Mario Six (12):
mvebu: Add board_pex_config()
dm: Add callback to modify the device tree
lib: tpm: Add command to flush resources
tools: kwbimage: Fix dest addr
tools: kwbimage: Fix style violations
tools: kwbimage: Fix arithmetic with void pointers
tools: kwbimage: Reduce scope of variables
tools: kwbimage: Remove unused parameter
tools: kwbimage: Factor out add_binary_header_v1
tools: kwbimage: Refactor line parsing and fix error
arm: mvebu: Implement secure boot
controlcenterdc: Make secure boot available
Reinhard Pfau (1):
arm: mvebu: spl.c: Remove useless gd declaration
Makefile | 3 +-
arch/arm/Kconfig | 1 +
arch/arm/dts/Makefile | 3 +-
arch/arm/dts/controlcenterdc.dts | 629 ++++++++++++++++
arch/arm/mach-mvebu/Kconfig | 24 +
arch/arm/mach-mvebu/Makefile | 1 +
arch/arm/mach-mvebu/efuse.c | 293 ++++++++
arch/arm/mach-mvebu/include/mach/cpu.h | 2 +
arch/arm/mach-mvebu/include/mach/efuse.h | 71 ++
arch/arm/mach-mvebu/include/mach/gpio.h | 41 +-
arch/arm/mach-mvebu/include/mach/soc.h | 1 +
arch/arm/mach-mvebu/serdes/a38x/ctrl_pex.c | 10 +
arch/arm/mach-mvebu/serdes/a38x/ctrl_pex.h | 2 +
arch/arm/mach-mvebu/spl.c | 2 -
board/gdsys/38x/.gitignore | 1 +
board/gdsys/38x/Kconfig | 51 ++
board/gdsys/38x/MAINTAINERS | 7 +
board/gdsys/38x/Makefile | 45 ++
board/gdsys/38x/README | 18 +
board/gdsys/38x/controlcenterdc.c | 717 ++++++++++++++++++
board/gdsys/38x/dt_helpers.c | 60 ++
board/gdsys/38x/dt_helpers.h | 16 +
board/gdsys/38x/hre.c | 517 +++++++++++++
board/gdsys/38x/hre.h | 38 +
board/gdsys/38x/keyprogram.c | 158 ++++
board/gdsys/38x/keyprogram.h | 14 +
board/gdsys/38x/kwbimage.cfg.in | 40 +
board/gdsys/38x/spl.c | 21 +
board/gdsys/p1022/controlcenterd-id.c | 9 -
common/board_f.c | 3 +
configs/controlcenterdc_defconfig | 54 ++
drivers/net/phy/marvell.c | 51 ++
drivers/pci/pci_mvebu.c | 25 +-
dts/Kconfig | 10 +
include/asm-generic/global_data.h | 4 +
include/common.h | 1 +
include/configs/controlcenterdc.h | 244 +++++++
include/tpm.h | 45 ++
lib/tpm.c | 28 +
tools/Makefile | 6 +-
tools/kwbimage.c | 1091 ++++++++++++++++++++++++----
tools/kwbimage.h | 37 +
42 files changed, 4216 insertions(+), 178 deletions(-)
create mode 100644 arch/arm/dts/controlcenterdc.dts
create mode 100644 arch/arm/mach-mvebu/efuse.c
create mode 100644 arch/arm/mach-mvebu/include/mach/efuse.h
create mode 100644 board/gdsys/38x/.gitignore
create mode 100644 board/gdsys/38x/Kconfig
create mode 100644 board/gdsys/38x/MAINTAINERS
create mode 100644 board/gdsys/38x/Makefile
create mode 100644 board/gdsys/38x/README
create mode 100644 board/gdsys/38x/controlcenterdc.c
create mode 100644 board/gdsys/38x/dt_helpers.c
create mode 100644 board/gdsys/38x/dt_helpers.h
create mode 100644 board/gdsys/38x/hre.c
create mode 100644 board/gdsys/38x/hre.h
create mode 100644 board/gdsys/38x/keyprogram.c
create mode 100644 board/gdsys/38x/keyprogram.h
create mode 100644 board/gdsys/38x/kwbimage.cfg.in
create mode 100644 board/gdsys/38x/spl.c
create mode 100644 configs/controlcenterdc_defconfig
create mode 100644 include/configs/controlcenterdc.h
--
2.9.0
7
34