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
April 2015
- 189 participants
- 647 discussions

[U-Boot] [PATCH v2 2/4] powerpc/t2080qds: enable eSDHC adapter card type identification
by Yangbo Lu 17 Apr '15
by Yangbo Lu 17 Apr '15
17 Apr '15
Enable eSDHC adapter card type identification and this will do
some corresponding operations and set 'adapter-type' property
for device tree according SDHC Card ID.
Signed-off-by: Yangbo Lu <yangbo.lu(a)freescale.com>
Cc: York Sun <yorksun(a)freescale.com>
---
include/configs/T208xQDS.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
index ff6d2c1..8d6918a 100644
--- a/include/configs/T208xQDS.h
+++ b/include/configs/T208xQDS.h
@@ -764,6 +764,7 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_FAT
#define CONFIG_DOS_PARTITION
+#define CONFIG_FSL_ESDHC_ADAPTER_IDENT
#endif
--
2.1.0.27.g96db324
1
0

17 Apr '15
From: Fabio Estevam <fabio.estevam(a)freescale.com>
Add the initial SPL support for HummingBoard-i2eX, which is based on a
MX6 Dual.
For more information about HummingBoard, please check:
http://www.solid-run.com/products/hummingboard/
Based on the work from Jon Nettleton and Rabeeh Khoury.
Signed-off-by: Fabio Estevam <fabio.estevam(a)freescale.com>
---
Currently only HummingBoard-i2eX is supported.
After this initial patch is accepted, then we can add the other Hummingboard
and Cubox-i variants as well.
Changes since v1:
- Addressed several comments made by Tom Rini
- Remove empty lines from README as pointed out by Nikolay Dimitrov
- Fixed sparse warnings
- Fixed DDR settings
arch/arm/Kconfig | 6 +
board/solidrun/mx6cuboxi/Kconfig | 15 ++
board/solidrun/mx6cuboxi/MAINTAINERS | 6 +
board/solidrun/mx6cuboxi/Makefile | 9 +
board/solidrun/mx6cuboxi/README | 21 +++
board/solidrun/mx6cuboxi/mx6cuboxi.c | 330 +++++++++++++++++++++++++++++++++++
configs/mx6cuboxi_spl_defconfig | 6 +
include/configs/mx6cuboxi.h | 205 ++++++++++++++++++++++
8 files changed, 598 insertions(+)
create mode 100644 board/solidrun/mx6cuboxi/Kconfig
create mode 100644 board/solidrun/mx6cuboxi/MAINTAINERS
create mode 100644 board/solidrun/mx6cuboxi/Makefile
create mode 100644 board/solidrun/mx6cuboxi/README
create mode 100644 board/solidrun/mx6cuboxi/mx6cuboxi.c
create mode 100644 configs/mx6cuboxi_spl_defconfig
create mode 100644 include/configs/mx6cuboxi.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7ed0e20..7c383cb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -523,6 +523,11 @@ config TARGET_MX6SABRESD
select CPU_V7
select SUPPORT_SPL
+config TARGET_MX6CUBOXI
+ bool "Support Solid-run mx6 boards"
+ select CPU_V7
+ select SUPPORT_SPL
+
config TARGET_MX6SLEVK
bool "Support mx6slevk"
select CPU_V7
@@ -856,6 +861,7 @@ source "board/siemens/draco/Kconfig"
source "board/siemens/pxm2/Kconfig"
source "board/siemens/rut/Kconfig"
source "board/silica/pengwyn/Kconfig"
+source "board/solidrun/mx6cuboxi/Kconfig"
source "board/solidrun/hummingboard/Kconfig"
source "board/spear/spear300/Kconfig"
source "board/spear/spear310/Kconfig"
diff --git a/board/solidrun/mx6cuboxi/Kconfig b/board/solidrun/mx6cuboxi/Kconfig
new file mode 100644
index 0000000..31d88b2
--- /dev/null
+++ b/board/solidrun/mx6cuboxi/Kconfig
@@ -0,0 +1,15 @@
+if TARGET_MX6CUBOXI
+
+config SYS_BOARD
+ default "mx6cuboxi"
+
+config SYS_VENDOR
+ default "solidrun"
+
+config SYS_SOC
+ default "mx6"
+
+config SYS_CONFIG_NAME
+ default "mx6cuboxi"
+
+endif
diff --git a/board/solidrun/mx6cuboxi/MAINTAINERS b/board/solidrun/mx6cuboxi/MAINTAINERS
new file mode 100644
index 0000000..3d468ed
--- /dev/null
+++ b/board/solidrun/mx6cuboxi/MAINTAINERS
@@ -0,0 +1,6 @@
+MX6CUBOXI BOARD
+M: Fabio Estevam <fabio.estevam(a)freescale.com>
+S: Maintained
+F: board/solidrun/mx6cuboxi/
+F: include/configs/mx6cuboxi.h
+F: configs/mx6cuboxi_spl_defconfig
diff --git a/board/solidrun/mx6cuboxi/Makefile b/board/solidrun/mx6cuboxi/Makefile
new file mode 100644
index 0000000..df425ac
--- /dev/null
+++ b/board/solidrun/mx6cuboxi/Makefile
@@ -0,0 +1,9 @@
+#
+# Copyright (C) 2007, Guennadi Liakhovetski <lg(a)denx.de>
+#
+# (C) Copyright 2011 Freescale Semiconductor, Inc.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y := mx6cuboxi.o
diff --git a/board/solidrun/mx6cuboxi/README b/board/solidrun/mx6cuboxi/README
new file mode 100644
index 0000000..0f1d514
--- /dev/null
+++ b/board/solidrun/mx6cuboxi/README
@@ -0,0 +1,21 @@
+How to use U-boot on Solid-run mx6 hummingboard
+-----------------------------------------------
+
+- Build U-boot for hummingboard:
+
+$ make mrproper
+$ make mx6cuboxi_spl_defconfig
+$ make
+
+This will generate the SPL image called SPL and the u-boot.img.
+
+- Flash the SPL image into the SD card:
+
+sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
+
+- Flash the u-boot.img image into the SD card:
+
+sudo dd if=u-boot.img of=/dev/mmcblk0 bs=1k seek=69; sync
+
+- Insert the SD card in the hummingboard, power it up and U-boot messages
+should come up.
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
new file mode 100644
index 0000000..b696dcb
--- /dev/null
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -0,0 +1,330 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam(a)freescale.com>
+ *
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton(a)gmail.com>
+ *
+ * Based on SPL code from Solidrun tree, which is:
+ * Author: Tungyi Lin <tungyilin1127(a)gmail.com>
+ *
+ * Derived from EDM_CF_IMX6 code by TechNexion,Inc
+ * Ported to SolidRun microSOM by Rabeeh Khoury <rabeeh(a)solid-run.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <asm/arch/clock.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/errno.h>
+#include <asm/gpio.h>
+#include <asm/imx-common/iomux-v3.h>
+#include <mmc.h>
+#include <fsl_esdhc.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/io.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/arch/mx6-ddr.h>
+#include <spl.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
+ PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
+ PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
+ PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define ENET_PAD_CTRL_PD (PAD_CTL_PUS_100K_DOWN | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define ENET_PAD_CTRL_CLK ((PAD_CTL_PUS_100K_UP & ~PAD_CTL_PKE) | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
+
+#define ETH_PHY_RESET IMX_GPIO_NR(4, 15)
+
+int dram_init(void)
+{
+ gd->ram_size = imx_ddr_size();
+ return 0;
+}
+
+static iomux_v3_cfg_t const uart1_pads[] = {
+ MX6_PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
+ MX6_PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static iomux_v3_cfg_t const usdhc2_pads[] = {
+ MX6_PAD_SD2_CLK__SD2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD2_CMD__SD2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD2_DAT0__SD2_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD2_DAT1__SD2_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD2_DAT2__SD2_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD2_DAT3__SD2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+ imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
+}
+
+static struct fsl_esdhc_cfg usdhc_cfg[1] = {
+ {USDHC2_BASE_ADDR},
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+ return 1; /* uSDHC2 is always present */
+}
+
+int board_mmc_init(bd_t *bis)
+{
+ imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
+ usdhc_cfg[0].esdhc_base = USDHC2_BASE_ADDR;
+ usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
+ gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk;
+
+ return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
+}
+
+static iomux_v3_cfg_t const enet_pads[] = {
+ MX6_PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ /* AR8035 reset */
+ MX6_PAD_KEY_ROW4__GPIO4_IO15 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
+ /* AR8035 interrupt */
+ MX6_PAD_DI0_PIN2__GPIO4_IO18 | MUX_PAD_CTRL(NO_PAD_CTRL),
+ /* GPIO16 -> AR8035 25MHz */
+ MX6_PAD_GPIO_16__ENET_REF_CLK | MUX_PAD_CTRL(NO_PAD_CTRL),
+ MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(NO_PAD_CTRL),
+ MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
+ MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL_CLK),
+ MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
+ MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
+ MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+ MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
+};
+
+static void setup_iomux_enet(void)
+{
+ imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
+
+ gpio_direction_output(ETH_PHY_RESET, 0);
+ mdelay(2);
+ gpio_set_value(ETH_PHY_RESET, 1);
+}
+
+int board_phy_config(struct phy_device *phydev)
+{
+ if (phydev->drv->config)
+ phydev->drv->config(phydev);
+
+ return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+ struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+ int ret = enable_fec_anatop_clock(ENET_25MHZ);
+ if (ret)
+ return ret;
+
+ /* set gpr1[ENET_CLK_SEL] */
+ setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
+
+ setup_iomux_enet();
+
+ return cpu_eth_init(bis);
+}
+
+int board_early_init_f(void)
+{
+ setup_iomux_uart();
+ return 0;
+}
+
+int board_init(void)
+{
+ /* address of boot parameters */
+ gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+ return 0;
+}
+
+int checkboard(void)
+{
+ puts("Board: MX6 Hummingboard\n");
+ return 0;
+}
+
+#ifdef CONFIG_SPL_BUILD
+static const struct mx6dq_iomux_ddr_regs mx6_ddr_ioregs = {
+ .dram_sdclk_0 = 0x00020030,
+ .dram_sdclk_1 = 0x00020030,
+ .dram_cas = 0x00020030,
+ .dram_ras = 0x00020030,
+ .dram_reset = 0x00020030,
+ .dram_sdcke0 = 0x00003000,
+ .dram_sdcke1 = 0x00003000,
+ .dram_sdba2 = 0x00000000,
+ .dram_sdodt0 = 0x00003030,
+ .dram_sdodt1 = 0x00003030,
+ .dram_sdqs0 = 0x00000030,
+ .dram_sdqs1 = 0x00000030,
+ .dram_sdqs2 = 0x00000030,
+ .dram_sdqs3 = 0x00000030,
+ .dram_sdqs4 = 0x00000030,
+ .dram_sdqs5 = 0x00000030,
+ .dram_sdqs6 = 0x00000030,
+ .dram_sdqs7 = 0x00000030,
+ .dram_dqm0 = 0x00020030,
+ .dram_dqm1 = 0x00020030,
+ .dram_dqm2 = 0x00020030,
+ .dram_dqm3 = 0x00020030,
+ .dram_dqm4 = 0x00020030,
+ .dram_dqm5 = 0x00020030,
+ .dram_dqm6 = 0x00020030,
+ .dram_dqm7 = 0x00020030,
+};
+
+static const struct mx6dq_iomux_grp_regs mx6_grp_ioregs = {
+ .grp_ddr_type = 0x000C0000,
+ .grp_ddrmode_ctl = 0x00020000,
+ .grp_ddrpke = 0x00000000,
+ .grp_addds = 0x00000030,
+ .grp_ctlds = 0x00000030,
+ .grp_ddrmode = 0x00020000,
+ .grp_b0ds = 0x00000030,
+ .grp_b1ds = 0x00000030,
+ .grp_b2ds = 0x00000030,
+ .grp_b3ds = 0x00000030,
+ .grp_b4ds = 0x00000030,
+ .grp_b5ds = 0x00000030,
+ .grp_b6ds = 0x00000030,
+ .grp_b7ds = 0x00000030,
+};
+
+static const struct mx6_mmdc_calibration mx6_mmcd_calib = {
+ .p0_mpwldectrl0 = 0x00000000,
+ .p0_mpwldectrl1 = 0x00000000,
+ .p1_mpwldectrl0 = 0x00000000,
+ .p1_mpwldectrl1 = 0x00000000,
+ .p0_mpdgctrl0 = 0x0314031c,
+ .p0_mpdgctrl1 = 0x023e0304,
+ .p1_mpdgctrl0 = 0x03240330,
+ .p1_mpdgctrl1 = 0x03180260,
+ .p0_mprddlctl = 0x3630323c,
+ .p1_mprddlctl = 0x3436283a,
+ .p0_mpwrdlctl = 0x36344038,
+ .p1_mpwrdlctl = 0x422a423c,
+};
+
+static struct mx6_ddr3_cfg mem_ddr = {
+ .mem_speed = 1600,
+ .density = 2,
+ .width = 16,
+ .banks = 8,
+ .rowaddr = 14,
+ .coladdr = 10,
+ .pagesz = 2,
+ .trcd = 1375,
+ .trcmin = 4875,
+ .trasmin = 3500,
+ .SRT = 1,
+};
+
+static void ccgr_init(void)
+{
+ struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+ writel(0x00C03F3F, &ccm->CCGR0);
+ writel(0x0030FC03, &ccm->CCGR1);
+ writel(0x0FFFC000, &ccm->CCGR2);
+ writel(0x3FF00000, &ccm->CCGR3);
+ writel(0x00FFF300, &ccm->CCGR4);
+ writel(0x0F0000C3, &ccm->CCGR5);
+ writel(0x000003FF, &ccm->CCGR6);
+}
+
+static void gpr_init(void)
+{
+ struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+ /* enable AXI cache for VDOA/VPU/IPU */
+ writel(0xF00000CF, &iomux->gpr[4]);
+ /* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
+ writel(0x007F007F, &iomux->gpr[6]);
+ writel(0x007F007F, &iomux->gpr[7]);
+}
+
+/*
+ * This section requires the differentiation between Solidrun mx6 boards, but
+ * for now, it will configure only for the mx6dual hummingboard version.
+ */
+static void spl_dram_init(void)
+{
+ struct mx6_ddr_sysinfo sysinfo = {
+ /* width of data bus: 0=16, 1=32, 2=64 */
+ .dsize = 2,
+ /* config for full 4GB range so that get_mem_size() works */
+ .cs_density = 32, /* 32Gb per CS */
+ .ncs = 1, /* single chip select */
+ .cs1_mirror = 0,
+ .rtt_wr = 1 /*DDR3_RTT_60_OHM*/, /* RTT_Wr = RZQ/4 */
+ .rtt_nom = 1 /*DDR3_RTT_60_OHM*/, /* RTT_Nom = RZQ/4 */
+ .walat = 1, /* Write additional latency */
+ .ralat = 5, /* Read additional latency */
+ .mif3_mode = 3, /* Command prediction working mode */
+ .bi_on = 1, /* Bank interleaving enabled */
+ .sde_to_rst = 0x10, /* 14 cycles, 200us (JEDEC default) */
+ .rst_to_cke = 0x23, /* 33 cycles, 500us (JEDEC default) */
+ };
+
+ mx6dq_dram_iocfg(64, &mx6_ddr_ioregs, &mx6_grp_ioregs);
+ mx6_dram_cfg(&sysinfo, &mx6_mmcd_calib, &mem_ddr);
+}
+
+void board_init_f(ulong dummy)
+{
+ /* setup AIPS and disable watchdog */
+ arch_cpu_init();
+
+ ccgr_init();
+ gpr_init();
+
+ /* iomux and setup of i2c */
+ board_early_init_f();
+
+ /* setup GP timer */
+ timer_init();
+
+ /* UART clocks enabled and gd valid - init serial console */
+ preloader_console_init();
+
+ /* DDR initialization */
+ spl_dram_init();
+
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
+
+ /* load/boot image from boot device */
+ board_init_r(NULL, 0);
+}
+#endif
diff --git a/configs/mx6cuboxi_spl_defconfig b/configs/mx6cuboxi_spl_defconfig
new file mode 100644
index 0000000..85dc58a
--- /dev/null
+++ b/configs/mx6cuboxi_spl_defconfig
@@ -0,0 +1,6 @@
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,MX6Q"
+CONFIG_ARM=y
+CONFIG_TARGET_MX6CUBOXI=y
+CONFIG_DM=y
+CONFIG_DM_THERMAL=y
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
new file mode 100644
index 0000000..a259417
--- /dev/null
+++ b/include/configs/mx6cuboxi.h
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * Configuration settings for the SolidRun mx6 based boards
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+#ifndef __MX6CUBOXI_CONFIG_H
+#define __MX6CUBOXI_CONFIG_H
+
+#include <linux/sizes.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/imx-common/gpio.h>
+#include "mx6_common.h"
+
+#define CONFIG_MX6
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_MMC_SUPPORT
+#include "imx6_spl.h"
+
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+#define CONFIG_CMDLINE_TAG
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_INITRD_TAG
+#define CONFIG_REVISION_TAG
+#define CONFIG_IMX6_THERMAL
+#define CONFIG_SYS_GENERIC_BOARD
+
+#define CONFIG_SYS_MALLOC_LEN (2 * SZ_1M)
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_MXC_GPIO
+#define CONFIG_MXC_UART
+#define CONFIG_CMD_FUSE
+#define CONFIG_MXC_OCOTP
+
+/* MMC Configs */
+#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_USDHC
+#define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR
+#define CONFIG_MMC
+#define CONFIG_CMD_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_BOUNCE_BUFFER
+#define CONFIG_CMD_EXT4
+#define CONFIG_CMD_EXT4_WRITE
+#define CONFIG_CMD_FAT
+#define CONFIG_DOS_PARTITION
+
+/* Ethernet Configuration */
+#define CONFIG_FEC_MXC
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_NET
+#define CONFIG_MII
+#define IMX_FEC_BASE ENET_BASE_ADDR
+#define CONFIG_FEC_XCV_TYPE RGMII
+#define CONFIG_FEC_MXC_PHYADDR 0
+#define CONFIG_PHYLIB
+#define CONFIG_PHY_ATHEROS
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_CONS_INDEX 1
+#define CONFIG_BAUDRATE 115200
+
+/* Command definition */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_BOOTZ
+#define CONFIG_CMD_SETEXPR
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_BOOTDELAY 1
+
+#define CONFIG_LOADADDR 0x12000000
+#define CONFIG_SYS_TEXT_BASE 0x17800000
+
+#define CONFIG_MXC_UART_BASE UART1_BASE
+#define CONFIG_CONSOLE_DEV "ttymxc0"
+#define CONFIG_MMCROOT "/dev/mmcblk0p2"
+#define CONFIG_DEFAULT_FDT_FILE "imx6q-hummingboard.dtb"
+#define CONFIG_SYS_FSL_USDHC_NUM 1
+#define CONFIG_SYS_MMC_ENV_DEV 0 /* SDHC2 */
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "script=boot.scr\0" \
+ "image=zImage\0" \
+ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+ "fdt_addr=0x18000000\0" \
+ "boot_fdt=try\0" \
+ "ip_dyn=yes\0" \
+ "console=" CONFIG_CONSOLE_DEV "\0" \
+ "bootm_size=0x10000000\0" \
+ "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
+ "mmcpart=1\0" \
+ "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
+ "update_sd_firmware=" \
+ "if test ${ip_dyn} = yes; then " \
+ "setenv get_cmd dhcp; " \
+ "else " \
+ "setenv get_cmd tftp; " \
+ "fi; " \
+ "if mmc dev ${mmcdev}; then " \
+ "if ${get_cmd} ${update_sd_firmware_filename}; then " \
+ "setexpr fw_sz ${filesize} / 0x200; " \
+ "setexpr fw_sz ${fw_sz} + 1; " \
+ "mmc write ${loadaddr} 0x2 ${fw_sz}; " \
+ "fi; " \
+ "fi\0" \
+ "mmcargs=setenv bootargs console=${console},${baudrate} " \
+ "root=${mmcroot}\0" \
+ "loadbootscript=" \
+ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+ "bootscript=echo Running bootscript from mmc ...; " \
+ "source\0" \
+ "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+ "mmcboot=echo Booting from mmc ...; " \
+ "run mmcargs; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if run loadfdt; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "fi; " \
+ "else " \
+ "bootz; " \
+ "fi;\0" \
+ "netargs=setenv bootargs console=${console},${baudrate} " \
+ "root=/dev/nfs " \
+ "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
+ "netboot=echo Booting from net ...; " \
+ "run netargs; " \
+ "if test ${ip_dyn} = yes; then " \
+ "setenv get_cmd dhcp; " \
+ "else " \
+ "setenv get_cmd tftp; " \
+ "fi; " \
+ "${get_cmd} ${image}; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "fi; " \
+ "else " \
+ "bootz; " \
+ "fi;\0"
+
+#define CONFIG_BOOTCOMMAND \
+ "mmc dev ${mmcdev};" \
+ "if mmc rescan; then " \
+ "if run loadbootscript; then " \
+ "run bootscript; " \
+ "else " \
+ "if run loadimage; then " \
+ "run mmcboot; " \
+ "else run netboot; " \
+ "fi; " \
+ "fi; " \
+ "else run netboot; fi"
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_CBSIZE 256
+#define CONFIG_SYS_MAXARGS 16
+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+
+#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
+
+#define CONFIG_CMDLINE_EDITING
+
+/* Physical Memory Map */
+#define CONFIG_NR_DRAM_BANKS 1
+#define CONFIG_SYS_SDRAM_BASE MMDC0_ARB_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET \
+ (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+ (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+/* Environment organization */
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_ENV_SIZE (8 * 1024)
+#define CONFIG_ENV_IS_IN_MMC
+#define CONFIG_ENV_OFFSET (8 * 64 * 1024)
+
+#define CONFIG_OF_LIBFDT
+#define CONFIG_CMD_CACHE
+
+#endif /* __MX6CUBOXI_CONFIG_H */
--
1.9.1
1
0
Hi Tom,
Here are the driver model changes that have been queued up on
u-boot-dm/next. The main changes are:
- Ethernet driver model support
- USB driver model support
- PCI driver model support
- Network cosmetic changes
- Masahiro's driver model Kconfig changes
- Chromebox panther support
- Moving cros_ec fully to driver model
- Moving various sandbox CONFIGs to Kconfig
Since this has wide impact on the code base I'd like to get this in
early in the merge window to minimise the pain of rebase, etc.
The following changes since commit f33cdaa4c3da4a8fd35aa2f9a3172f31cc887b35:
Prepare v2015.04 (2015-04-13 10:53:03 -0400)
are available in the git repository at:
http://git.denx.de/u-boot-dm.git
for you to fetch changes up to 5ab83ec1a13601c4f76ce009afe0d1ee51f1ad9c:
sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig (2015-04-13
20:53:47 -0600)
----------------------------------------------------------------
Haikun.Wang(a)freescale.com (5):
dm: arm: Bring in skeleton64 device tree file from Linux
dm: ls1021a: dts: Update DSPI node to support DM SPI
dm: ls1021a: dts: Add QSPI dts node
dm: spi: Convert Freescale DSPI driver to driver model
dm: spi: Convert Freescale QSPI driver to driver model
Joe Hershberger (51):
test: dm: Reorder the objects to build
common: Make sure arch-specific map_sysmem() is defined
net: Provide a function to get the current MAC address
net: Rename helper function to be more clear
net: Remove unneeded "extern" in net.h
net: Refactor in preparation for driver model
net: Change return codes from net/eth.c to use errorno constants
net: Use int instead of u8 for boolean flag
net: Remove the bd* parameter from net stack functions
net: Make netretry actually do something
net: Access mapped physmem in net functions
cmd: net: Clean up return codes
dm: eth: Add basic driver model support to Ethernet stack
net: Clean up network stack names used in DM drivers
dm: eth: Pass the packet pointer as a parameter to recv
sandbox: eth: Add network support to sandbox
sandbox: eth: Add ARP and PING response to sandbox driver
test: dm: eth: Add tests for the eth dm implementation
dm: eth: Add support for aliases
dm: eth: Add support for ethprime env var
test: dm: eth: Add testing for ethrotate env var
sandbox: eth: Add ability to disable ping reply in sandbox eth driver
test: dm: net: Add a test of the netretry behavior
sandbox: eth: Add a bridge to a real network for sandbox
sandbox: Enable DHCP and IP defrag
sandbox: eth: Add support for using the 'lo' interface
net: Improve error handling
dm: eth: Provide a way for drivers to manage packet buffers
net: cosmetic: Change IPaddr_t to struct in_addr
net: cosmetic: Fixup var names related to boot file
net: cosmetic: Fixup var names for DHCP strings
net: cosmetic: Name ethaddr variables consistently
net: cosmetic: Cleanup internal packet buffer names
net: cosmetic: Fix var naming net <-> eth drivers
net: cosmetic: Clean up TFTP variables and functions
net: cosmetic: Clean up ARP variables and functions
net: cosmetic: Clean up DHCP variables and functions
net: cosmetic: Clean up NFS variables and functions
net: cosmetic: Clean up RARP variables and functions
net: cosmetic: Clean up SNTP variables and functions
net: cosmetic: Clean up ping variables and functions
net: cosmetic: Clean up CDP variables and functions
net: cosmetic: Clean up DNS variables and functions
net: cosmetic: Clean up netconsole variables and functions
net: cosmetic: Clean up cmd_net variables and functions
net: cosmetic: Fix checkpatch.pl failures in linklocal
net: cosmetic: Fix checkpatch.pl failures in eth.c
net: cosmetic: Fix checkpatch.pl failures in net.h
net: cosmetic: Fix checkpatch.pl failures in net.c
net: Fix compile errors when SNTP enabled and not DATE
sandbox: Enable more network features for sandbox
Masahiro Yamada (12):
dm: spi_flash: fix wrong dependency
dm: select CONFIG_DM* options
ARM: UniPhier: use "select" instead of default value in defconfig
ARM: zynq: use "select" instead of default value in defconfig
ARM: rmobile: use "select" instead of default value in defconfig
ARM: snapper9260: use "select" instead of default value in defconfig
ARM: mx6: use "select" instead of default value in defconfig
ARM: socfpga: use "select" instead of default value in defconfig
ARM: bav335x: use "select" instead of default value in defconfig
ARM: stv0991: use "select" instead of default value in defconfig
ARM: cm_fx6: use "select" instead of default value in defconfig
powerpc: ids8313: use "select" instead of default value in defconfig
Przemyslaw Marczak (3):
dm: gpio: request list: return the count if requests max_count reached
Kconfig: i2c: fix help message related to dm i2c
dm: i2c: add i2c-gpio driver
Sergey Temerkhanov (2):
net: Fix incorrect DHCP/BOOTP packets on 64-bit systems
net: Convert protocol structures to use explicit sizes
Simon Glass (145):
x86: Support machines with >4GB of RAM
x86: video: Allow keyboard presence to be controlled by device tree
x86: pci: Add PCI IDs for lynxpoint
x86: spi: Add support for lynxpoint
x86: Move common Chromebook config into a separate file
x86: Add support for panther (Asus Chromebox)
sandbox: Update device tree 'reg' properties for I2C and SPI
fdt: Export fdtdec_get_number() for general use
x86: Add a x86_ prefix to the x86-specific PCI functions
dm: Add a new CPU init function which can use driver model
x86: Split up arch_cpu_init()
Correct map_sysmem() logic in do_mem_mw()
fdt: Tighten up error handling in fdtdec_get_pci_addr()
dm: core: Add dev_get_uclass_priv() to access uclass private data
dm: core: Mark device as active before calling its probe() method
dm: core: Add a uclass pre_probe() method for devices
dm: Show both allocated and requested seq numbers in 'dm uclass'
dm: pci: Move common PCI functions into their own file
dm: pci: Add a uclass for PCI
dm: sandbox: pci: Add PCI support for sandbox
dm: sandbox: Add a simple PCI driver
dm: sandbox: pci: Add a PCI emulation uclass
dm: sandbox: Add a emulated PCI device as an example
dm: sandbox: pci: Enable PCI for sandbox
dm: x86: pci: Add a PCI driver for driver model
dm: x86: pci: Convert coreboot to use driver model for pci
dm: x86: pci: Convert chromebook_link to use driver model for pci
dm: pci: Add driver model tests for PCI
dm: sf: Add driver model read/write/erase methods
dm: x86: spi: Convert ICH SPI driver to driver model
dm: x86: Add a uclass for a Platform Controller Hub
dm: x86: Add a uclass for an Low Pin Count (LPC) device
x86: chromebook_link: dts: Add PCH and LPC devices
dm: cros_ec: Convert cros_ec LPC driver to driver model
cros_ec: Reinit the cros_ec device when 'crosec init' is used
cros_ec: Drop unused CONFIG_DM_CROS_EC
sandbox: cros_ec: Drop unnecessary init
x86: cros_ec: Drop unnecessary init
exynos: cros_ec: Drop unnecessary init
cros_ec: Remove unused cros_ec_board_init() function
fdt: cros_ec: Drop compatible string in fdtdec
fdt: Drop LPC compatible string in fdtdec
cros_ec: exynos: Match up device tree with kernel version
sandbox: cros_ec: Add Kconfig for sandbox EC config
i8042: Add keyboard enable logic in kbd_reset()
linker_lists: Add a function to access a linker list entry
sandbox: Fix comment for os_open()
dm: test: bus: Use a local variable to simplify code
dm: core: Support allocating driver-private data for DMA
dm: core: Convert driver_bind() to use const
dm: core: Rename driver data function to dev_get_driver_data()
dm: core: Mark device as active before calling uclass probe() methods
dm: core: Add device children and sibling functions
dm: gpio: Add an implementation for gpio_get_number()
dm: usb: Add a uclass for USB controllers
dm: usb: Adjust usb command to prepare for driver model
dm: usb: Adjust usb_alloc_new_device() to return an error
dm: usb: Convert 'usb' command to support driver model
dm: usb: Drop the legacy USB init sequence
dm: usb: Refactor port resets
dm: usb: Move descriptor setup code into its own function
dm: usb: Split out more code from usb_new_device()
dm: usb: Complete the splitting up of usb_new_device()
dm: usb: Convert core usb.c file to support driver model
dm: usb: Split hub detection into its own function
dm: usb: Add driver model support for hubs
dm: usb: Move USB storage definitions to usb_defs.h
dm: usb: Fix type problems in usb_stor_get_info()
dm: usb: Simply device finding code in usb_storage
dm: usb: Adjust usb_storage to work with sandbox
dm: usb: Move storage device scanning into its own function
dm: usb: Convert usb_storage to driver model
dm: usb: Move all the EHCI weak functions together and declare them
dm: usb: Pass EHCI controller pointer to ehci_get_port_speed()
dm: usb: Allow ECHI to hold private data for the controller
dm: usb: tegra: Store the controller type explicitly
dm: usb: Pass EHCI controller pointer to ehci_powerup_fixup()
dm: usb: tegra: Drop use of global controller variable
dm: usb: Pass EHCI controller pointer to ehci_set_usbmode()
dm: usb: Pass EHCI controller pointer to ehci_get_portsc_register()
dm: usb: ehci: Use a function to find the controller from struct udevice
dm: usb: Refactor EHCI init
dm: usb: Drop the EHCI weak functions
dm: usb: Change ehci_reset() to use a pointer
dm: usb: Add driver model support to EHCI
dm: usb: Allow USB drivers to be declared and auto-probed
dm: usb: Bind generic USB devices when there is no driver
dm: usb: Allow setting up a USB controller as a device/gadget
dm: usb: Split out the keyboard probe into its own function
dm: usb: Support driver model with USB keyboards
dm: usb: tegra: Add vbus GPIOs for nyan
dm: usb: Move struct usb_string to a common place
dm: usb: sandbox: Add a uclass for USB device emulation
dm: usb: sandbox: Reset emulation devices in usb stop()
dm: usb: sandbox: Add an emulator for USB flash devices
dm: usb: sandbox: Add an emulator for USB hub emulation
dm: usb: sandbox: Add a driver for sandbox
dm: usb: dts: sandbox: Add some sample USB devices to sandbox
dm: usb: Add support for USB ethernet devices with driver model
dm: usb: exynos: Add driver model support to exynos EHCI
dm: usb: tegra: Remove the port_addr_clear_csc variable
dm: usb: tegra: Tidy up error handling and a static function
dm: usb: tegra: Move most of init/uninit into a function
dm: usb: tegra: Add driver model support to tegra EHCI
dm: usb: xhci: Use a function to get xhci_ctrl
dm: usb: xhci: Use explicit parameters for xhci_alloc_virt_device()
dm: usb: xhci: Use explicit parameters for
xhci_setup_addressable_virt_dev()
dm: usb: xhci: Factor out common init/uninit
dm: usb: Support driver model in XHCI
dm: usb: Rename the XHCI HCD to U-Boot
dm: usb: exynos: Adjust XHCI driver to support driver model
dm: usb: exynos: Use driver model for USB
dm: usb: exynos: Enable both USB ports on snow
dm: usb: exynos: Enable both EHCI and XHCI on snow
dm: usb: Add a generic descriptor struct
dm: usb: Tidy up pipe value decoding
dm: usb: sandbox: Enable USB
dm: test: Correct printf() output nit in 'dm uclass'
dm: test: Allow 'dm test' to select a particular test to run
dm: usb: Add tests for the USB uclass
dm: usb: Add a README for driver model
sunxi: Replace the pcDuino3 config with FDT version
Kconfig: Move CONFIG_DESIGNWARE_ETH to Kconfig
dts: sunxi: Bring in Ethernet device tree bindings
dm: net: Use existing Ethernet init for driver model
Avoid calling print_eths() with driver model
dm: net: Adjust PHY interface to work with CONFIG_DM_ETH
dm: net: Tidy up designware driver ready for driver model
dm: net: Adjust designware driver to support driver model
dm: sunxi: Support driver model for Ethernet
dm: sunxi: Use driver model for Ethernet on Linksprite pcDuino3
Kconfig: Move CONFIG_BOOTSTAGE to Kconfig
sandbox: Move GPIO CONFIGs to Kconfig
sandbox: Move CONFIG_SYS_VSNPRINTF to Kconfig
sandbox: Move CONFIG_SYS_I2C_SANDBOX to Kconfig
sandbox: Move CONFIG_SANDBOX_SPI to Kconfig
sandbox: Move CONFIG_SPI_FLASH_SANDBOX to Kconfig
sandbox: Move CONFIG_TPM_TIS_SANDBOX to Kconfig
sandbox: exynos: Move CONFIG_SOUND to Kconfig
sandbox: exynos: Move CONFIG_CMD_SOUND to Kconfig
sandbox: exynos: Move CONFIG_I2S to Kconfig
sandbox: exynos: Move CONFIG_I2S_SAMSUNG to Kconfig
sandbox: exynos: Move CONFIG_SOUND_MAX98095 to Kconfig
sandbox: exynos: Move CONFIG_SOUND_WM8994 to Kconfig
sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig
haikun (2):
dm: ls1021a: Bring in ls1021a dts files from linux kernel
dm: ls1021a: dts: Change address_cells and size_cells from 2 to 1
Makefile | 1 +
README | 55 +-
api/api_net.c | 2 +-
arch/Kconfig | 9 +
arch/arm/Kconfig | 58 ++
arch/arm/cpu/arm926ejs/spear/cpu.c | 2 +-
arch/arm/cpu/armv7/exynos/Kconfig | 14 +-
arch/arm/cpu/armv7/omap3/Kconfig | 27 +-
arch/arm/cpu/armv7/rmobile/Kconfig | 12 +
arch/arm/cpu/armv7/socfpga/misc.c | 2 +-
arch/arm/dts/Makefile | 3 +
arch/arm/dts/exynos5250-snow.dts | 12 +-
arch/arm/dts/exynos5420-peach-pit.dts | 5 +-
arch/arm/dts/exynos5800-peach-pi.dts | 4 +-
arch/arm/dts/ls1021a-qds.dts | 216 +++++
arch/arm/dts/ls1021a-twr.dts | 87 ++
arch/arm/dts/ls1021a.dtsi | 381 ++++++++
arch/arm/dts/skeleton64.dtsi | 13 +
arch/arm/dts/tegra124-nyan-big.dts | 2 +
arch/arm/lib/board.c | 2 +-
arch/arm/lib/bootm.c | 1 +
arch/arm/mach-at91/Kconfig | 3 +
arch/arm/mach-bcm283x/Kconfig | 9 -
arch/arm/mach-davinci/misc.c | 2 +-
arch/arm/mach-tegra/Kconfig | 18 -
arch/avr32/lib/board.c | 2 +-
arch/mips/mach-au1x00/au1x00_eth.c | 14 +-
arch/nds32/lib/board.c | 2 +-
arch/openrisc/lib/board.c | 2 +-
arch/powerpc/cpu/mpc8260/ether_fcc.c | 22 +-
arch/powerpc/cpu/mpc8260/ether_scc.c | 4 +-
arch/powerpc/cpu/mpc83xx/Kconfig | 1 +
arch/powerpc/cpu/mpc85xx/ether_fcc.c | 6 +-
arch/powerpc/cpu/mpc8xx/fec.c | 12 +-
arch/powerpc/cpu/mpc8xx/scc.c | 7 +-
arch/powerpc/cpu/ppc4xx/Kconfig | 2 +
arch/powerpc/lib/board.c | 2 +-
arch/sandbox/Kconfig | 24 +-
arch/sandbox/cpu/Makefile | 10 +
arch/sandbox/cpu/cpu.c | 41 +-
arch/sandbox/cpu/eth-raw-os.c | 249 ++++++
arch/sandbox/dts/cros-ec-keyboard.dtsi | 105 +++
arch/sandbox/dts/sandbox.dts | 191 ++--
arch/sandbox/include/asm/eth-raw-os.h | 40 +
arch/sandbox/include/asm/eth.h | 15 +
arch/sandbox/include/asm/io.h | 16 +-
arch/sandbox/include/asm/processor.h | 12 +
arch/sandbox/include/asm/test.h | 7 +-
arch/sandbox/include/asm/u-boot-sandbox.h | 48 +
arch/sandbox/lib/Makefile | 2 +-
arch/sandbox/lib/pci_io.c | 138 +++
arch/sh/lib/board.c | 2 +-
arch/sparc/lib/board.c | 2 +-
arch/x86/Kconfig | 35 +-
arch/x86/cpu/baytrail/early_uart.c | 5 +-
arch/x86/cpu/coreboot/pci.c | 63 +-
arch/x86/cpu/coreboot/sdram.c | 6 +-
arch/x86/cpu/cpu.c | 2 +-
arch/x86/cpu/ivybridge/bd82x6x.c | 47 +-
arch/x86/cpu/ivybridge/cpu.c | 64 +-
arch/x86/cpu/ivybridge/early_init.c | 58 +-
arch/x86/cpu/ivybridge/early_me.c | 12 +-
arch/x86/cpu/ivybridge/gma.c | 4 +-
arch/x86/cpu/ivybridge/lpc.c | 88 +-
arch/x86/cpu/ivybridge/mrccache.c | 7 +-
arch/x86/cpu/ivybridge/northbridge.c | 6 +-
arch/x86/cpu/ivybridge/pch.c | 4 +-
arch/x86/cpu/ivybridge/pci.c | 85 +-
arch/x86/cpu/ivybridge/report_platform.c | 4 +-
arch/x86/cpu/ivybridge/sata.c | 61 +-
arch/x86/cpu/ivybridge/sdram.c | 37 +-
arch/x86/cpu/ivybridge/usb_ehci.c | 4 +-
arch/x86/cpu/ivybridge/usb_xhci.c | 8 +-
arch/x86/cpu/pci.c | 52 +-
arch/x86/cpu/quark/quark.c | 4 +-
arch/x86/cpu/queensbay/tnc.c | 4 +-
arch/x86/dts/Makefile | 1 +
arch/x86/dts/chromebook_link.dts | 80 +-
arch/x86/dts/chromebox_panther.dts | 64 ++
arch/x86/include/asm/arch-ivybridge/bd82x6x.h | 1 -
arch/x86/include/asm/arch-ivybridge/mrccache.h | 4 +-
arch/x86/include/asm/pci.h | 20 +-
arch/x86/lib/Makefile | 4 +
arch/x86/lib/bios_interrupts.c | 12 +-
arch/x86/lib/init_helpers.c | 8 -
arch/x86/lib/lpc-uclass.c | 28 +
arch/x86/lib/pch-uclass.c | 28 +
board/BuR/common/common.c | 4 +-
board/BuS/eb_cpux9k2/cpux9k2.c | 2 +-
board/BuS/vl_ma2sc/vl_ma2sc.c | 2 +-
board/ait/cam_enc_4xx/cam_enc_4xx.c | 2 +-
board/alphaproject/ap_sh4a_4a/ap_sh4a_4a.c | 2 +-
board/amcc/canyonlands/Kconfig | 6 -
board/atmel/at91sam9261ek/at91sam9261ek.c | 2 +-
board/bct-brettl2/bct-brettl2.c | 2 +-
board/bf518f-ezbrd/bf518f-ezbrd.c | 4 +-
board/bf526-ezbrd/bf526-ezbrd.c | 4 +-
board/bf527-ezkit/bf527-ezkit.c | 4 +-
board/bf537-minotaur/bf537-minotaur.c | 2 +-
board/bf537-pnav/bf537-pnav.c | 2 +-
board/bf537-srv1/bf537-srv1.c | 2 +-
board/bf537-stamp/bf537-stamp.c | 4 +-
board/bf609-ezkit/bf609-ezkit.c | 2 +-
board/birdland/bav335x/board.c | 4 +-
board/buffalo/lsxl/lsxl.c | 2 +-
board/cm-bf527/cm-bf527.c | 4 +-
board/cm-bf537e/cm-bf537e.c | 2 +-
board/cm-bf537u/cm-bf537u.c | 2 +-
board/compulab/cm_fx6/cm_fx6.c | 2 +-
board/compulab/cm_t335/Kconfig | 9 -
board/compulab/cm_t335/cm_t335.c | 2 +-
board/compulab/cm_t35/cm_t35.c | 2 +-
board/compulab/cm_t3517/cm_t3517.c | 4 +-
board/compulab/cm_t54/cm_t54.c | 4 +-
board/coreboot/coreboot/coreboot.c | 5 -
board/davinci/da8xxevm/da850evm.c | 6 +-
board/dnp5370/dnp5370.c | 4 +-
board/egnite/ethernut5/ethernut5.c | 2 +-
board/genesi/mx51_efikamx/efikamx-usb.c | 4 +-
board/google/chromebook_link/link.c | 10 +-
board/google/chromebox_panther/Kconfig | 34 +
board/google/chromebox_panther/MAINTAINERS | 6 +
board/google/chromebox_panther/Makefile | 7 +
board/google/chromebox_panther/panther.c | 22 +
board/gumstix/pepper/Kconfig | 9 -
board/gumstix/pepper/board.c | 2 +-
board/ifm/ac14xx/ac14xx.c | 2 +-
board/ip04/ip04.c | 2 +-
board/isee/igep0033/Kconfig | 9 -
board/isee/igep0033/board.c | 2 +-
board/phytec/pcm051/Kconfig | 9 -
board/phytec/pcm051/board.c | 2 +-
board/renesas/r0p7734/r0p7734.c | 2 +-
board/ronetix/pm9261/pm9261.c | 2 +-
board/ronetix/pm9g45/pm9g45.c | 2 +-
board/samsung/common/board.c | 12 -
board/samsung/goni/Kconfig | 9 -
board/samsung/smdk5420/Kconfig | 6 -
board/samsung/smdkc100/Kconfig | 9 -
board/sandbox/README.sandbox | 78 +-
board/sandbox/sandbox.c | 12 -
board/siemens/common/factoryset.c | 4 +-
board/siemens/pxm2/board.c | 2 +-
board/silica/pengwyn/Kconfig | 9 -
board/silica/pengwyn/board.c | 2 +-
board/spear/spear300/spear300.c | 2 +-
board/spear/spear310/spear310.c | 2 +-
board/spear/spear320/spear320.c | 2 +-
board/spear/spear600/spear600.c | 2 +-
board/st/stv0991/stv0991.c | 2 +-
board/sunxi/gmac.c | 10 +-
board/tcm-bf518/tcm-bf518.c | 4 +-
board/tcm-bf537/tcm-bf537.c | 2 +-
board/ti/am335x/Kconfig | 9 -
board/ti/am335x/board.c | 6 +-
board/ti/am43xx/board.c | 4 +-
board/ti/beagle_x15/board.c | 4 +-
board/ti/dra7xx/evm.c | 4 +-
board/ti/ti814x/evm.c | 2 +-
common/Kconfig | 116 +++
common/board_f.c | 7 +
common/board_r.c | 8 +-
common/bootm.c | 1 +
common/cmd_bdinfo.c | 4 +-
common/cmd_bootm.c | 1 +
common/cmd_bootstage.c | 7 +-
common/cmd_demo.c | 1 +
common/cmd_elf.c | 2 +-
common/cmd_fat.c | 1 +
common/cmd_fdt.c | 1 +
common/cmd_lzmadec.c | 1 +
common/cmd_md5sum.c | 1 +
common/cmd_mem.c | 8 +-
common/cmd_net.c | 178 ++--
common/cmd_nvedit.c | 1 +
common/cmd_pci.c | 14 +-
common/cmd_pxe.c | 5 +-
common/cmd_sf.c | 3 +-
common/cmd_source.c | 1 +
common/cmd_trace.c | 1 +
common/cmd_usb.c | 198 ++++-
common/cmd_ximg.c | 1 +
common/cros_ec.c | 35 +-
common/hash.c | 1 +
common/image-fdt.c | 1 +
common/image-fit.c | 1 +
common/image.c | 1 +
common/iotrace.c | 1 +
common/lcd.c | 1 +
common/malloc_simple.c | 1 +
common/miiphyutil.c | 1 +
common/spl/spl_net.c | 4 +-
common/update.c | 25 +-
common/usb.c | 295 +++---
common/usb_hub.c | 194 +++-
common/usb_kbd.c | 119 ++-
common/usb_storage.c | 249 +++---
configs/A20-OLinuXino-Lime2_defconfig | 3 +
configs/A20-OLinuXino-Lime_defconfig | 3 +
configs/A20-OLinuXino_MICRO_defconfig | 3 +
configs/Bananapi_defconfig | 3 +
configs/Bananapro_defconfig | 3 +
configs/CSQ_CS908_defconfig | 3 +
configs/Colombus_defconfig | 3 +
configs/Cubieboard2_defconfig | 3 +
configs/Cubietruck_defconfig | 3 +
configs/Hummingbird_A31_defconfig | 3 +
configs/Linksprite_pcDuino3_Nano_defconfig | 3 +
configs/Linksprite_pcDuino3_defconfig | 11 +
configs/Linksprite_pcDuino3_fdt_defconfig | 15 -
configs/Mele_I7_defconfig | 3 +
configs/Mele_M3_defconfig | 3 +
configs/Mele_M5_defconfig | 3 +
configs/Mele_M9_defconfig | 3 +
configs/Orangepi_defconfig | 3 +
configs/Orangepi_mini_defconfig | 3 +
configs/Wits_Pro_A20_DKT_defconfig | 3 +
configs/alt_defconfig | 2 -
configs/am335x_boneblack_vboot_defconfig | 1 -
configs/am3517_crane_defconfig | 3 -
configs/am3517_evm_defconfig | 3 -
configs/arndale_defconfig | 6 +
configs/axs101_defconfig | 3 +
configs/axs103_defconfig | 3 +
configs/bf609-ezkit_defconfig | 3 +
configs/birdland_bav335a_defconfig | 3 -
configs/birdland_bav335b_defconfig | 3 -
configs/chromebook_link_defconfig | 2 +
configs/chromebox_panther_defconfig | 12 +
configs/cm_fx6_defconfig | 3 -
configs/cm_t3517_defconfig | 3 -
configs/cm_t35_defconfig | 3 -
configs/coreboot-x86_defconfig | 1 +
configs/devkit8000_defconfig | 3 -
configs/dig297_defconfig | 3 -
configs/eco5pk_defconfig | 3 -
configs/galileo_defconfig | 3 +
configs/gose_defconfig | 2 -
configs/i12-tvbox_defconfig | 3 +
configs/ids8313_defconfig | 1 -
configs/koelsch_defconfig | 2 -
configs/lager_defconfig | 2 -
configs/mcx_defconfig | 3 -
configs/mt_ventoux_defconfig | 3 -
configs/mx6dlsabreauto_defconfig | 2 -
configs/mx6dlsabresd_defconfig | 2 -
configs/mx6qsabreauto_defconfig | 2 -
configs/mx6qsabresd_defconfig | 2 -
configs/mx6sabresd_spl_defconfig | 2 -
configs/mx6sxsabresd_defconfig | 2 -
configs/mx6sxsabresd_spl_defconfig | 2 -
configs/nokia_rx51_defconfig | 3 -
configs/omap3_beagle_defconfig | 3 -
configs/omap3_evm_defconfig | 3 -
configs/omap3_evm_quick_mmc_defconfig | 3 -
configs/omap3_evm_quick_nand_defconfig | 3 -
configs/omap3_ha_defconfig | 3 -
configs/omap3_logic_defconfig | 3 -
configs/omap3_mvblx_defconfig | 3 -
configs/omap3_pandora_defconfig | 3 -
configs/omap3_sdp3430_defconfig | 3 -
configs/ph1_ld4_defconfig | 3 -
configs/ph1_pro4_defconfig | 3 -
configs/ph1_sld8_defconfig | 3 -
configs/porter_defconfig | 2 -
configs/sandbox_defconfig | 20 +-
configs/silk_defconfig | 2 -
configs/smdk5250_defconfig | 6 +
configs/snapper9260_defconfig | 3 -
configs/snapper9g20_defconfig | 3 -
configs/snow_defconfig | 7 +-
configs/socfpga_arria5_defconfig | 3 -
configs/socfpga_cyclone5_defconfig | 6 +-
configs/socfpga_socrates_defconfig | 6 +-
configs/spear300_defconfig | 3 +
configs/spear300_nand_defconfig | 3 +
configs/spear300_usbtty_defconfig | 3 +
configs/spear300_usbtty_nand_defconfig | 3 +
configs/spear310_defconfig | 3 +
configs/spear310_nand_defconfig | 3 +
configs/spear310_pnor_defconfig | 3 +
configs/spear310_usbtty_defconfig | 3 +
configs/spear310_usbtty_nand_defconfig | 3 +
configs/spear310_usbtty_pnor_defconfig | 3 +
configs/spear320_defconfig | 3 +
configs/spear320_nand_defconfig | 3 +
configs/spear320_pnor_defconfig | 3 +
configs/spear320_usbtty_defconfig | 3 +
configs/spear320_usbtty_nand_defconfig | 3 +
configs/spear320_usbtty_pnor_defconfig | 3 +
configs/spear600_defconfig | 3 +
configs/spear600_nand_defconfig | 3 +
configs/spear600_usbtty_defconfig | 3 +
configs/spear600_usbtty_nand_defconfig | 3 +
configs/stv0991_defconfig | 5 +-
configs/tao3530_defconfig | 3 -
configs/tb100_defconfig | 3 +
configs/tricorder_defconfig | 3 -
configs/tricorder_flash_defconfig | 3 -
configs/twister_defconfig | 3 -
configs/x600_defconfig | 3 +
configs/zynq_microzed_defconfig | 1 -
configs/zynq_zc70x_defconfig | 1 -
configs/zynq_zc770_xm010_defconfig | 1 -
configs/zynq_zc770_xm012_defconfig | 1 -
configs/zynq_zc770_xm013_defconfig | 1 -
configs/zynq_zed_defconfig | 1 -
configs/zynq_zybo_defconfig | 1 -
doc/README.drivers.eth | 18 +-
doc/README.enetaddr | 2 +-
doc/README.fdt-control | 16 +
doc/README.link-local | 4 +-
doc/device-tree-bindings/i2c/i2c-gpio.txt | 37 +
.../net/allwinner,sun4i-emac.txt | 19 +
.../net/allwinner,sun4i-mdio.txt | 27 +
.../net/allwinner,sun7i-a20-gmac.txt | 27 +
doc/device-tree-bindings/net/ethernet.txt | 25 +
doc/device-tree-bindings/net/stmmac.txt | 63 ++
doc/driver-model/pci-info.txt | 70 ++
doc/driver-model/usb-info.txt | 415 +++++++++
drivers/core/device-remove.c | 4 +-
drivers/core/device.c | 85 +-
drivers/core/lists.c | 2 +-
drivers/core/uclass.c | 10 +-
drivers/demo/demo-simple.c | 1 +
drivers/gpio/Kconfig | 21 +
drivers/gpio/at91_gpio.c | 2 +-
drivers/gpio/bcm2835_gpio.c | 2 +-
drivers/gpio/gpio-uclass.c | 40 +-
drivers/gpio/intel_ich6_gpio.c | 18 +-
drivers/gpio/mxc_gpio.c | 2 +-
drivers/gpio/omap_gpio.c | 2 +-
drivers/gpio/s5p_gpio.c | 2 +-
drivers/gpio/sandbox.c | 6 +-
drivers/gpio/sunxi_gpio.c | 2 +-
drivers/gpio/tegra_gpio.c | 2 +-
drivers/i2c/Kconfig | 56 +-
drivers/i2c/Makefile | 1 +
drivers/i2c/i2c-gpio.c | 346 ++++++++
drivers/i2c/i2c-uclass.c | 6 +-
drivers/i2c/i2c-uniphier-f.c | 1 +
drivers/i2c/i2c-uniphier.c | 1 +
drivers/i2c/s3c24x0_i2c.c | 2 +-
drivers/i2c/sandbox_i2c.c | 2 +-
drivers/i2c/tegra_i2c.c | 6 +-
drivers/input/cros_ec_keyb.c | 2 +-
drivers/input/i8042.c | 7 +
drivers/misc/Kconfig | 19 +-
drivers/misc/Makefile | 1 +
drivers/misc/cros_ec.c | 254 +-----
drivers/misc/cros_ec_i2c.c | 6 +-
drivers/misc/cros_ec_lpc.c | 29 +-
drivers/misc/cros_ec_sandbox.c | 79 +-
drivers/misc/cros_ec_spi.c | 8 +-
drivers/misc/swap_case.c | 285 ++++++
drivers/mtd/spi/Kconfig | 12 +-
drivers/mtd/spi/sf-uclass.c | 18 +-
drivers/mtd/spi/sf_probe.c | 9 +-
drivers/net/4xx_enet.c | 21 +-
drivers/net/Kconfig | 49 +
drivers/net/Makefile | 4 +-
drivers/net/altera_tse.c | 15 +-
drivers/net/armada100_fec.c | 7 +-
drivers/net/at91_emac.c | 4 +-
drivers/net/ax88180.c | 6 +-
drivers/net/bcm-sf2-eth.c | 6 +-
drivers/net/bfin_mac.c | 4 +-
drivers/net/calxedaxgmac.c | 2 +-
drivers/net/cpsw.c | 17 +-
drivers/net/cs8900.c | 5 +-
drivers/net/davinci_emac.c | 5 +-
drivers/net/dc2114x.c | 9 +-
drivers/net/designware.c | 250 +++++-
drivers/net/designware.h | 3 +-
drivers/net/dm9000x.c | 9 +-
drivers/net/dnet.c | 5 +-
drivers/net/e1000.c | 4 +-
drivers/net/eepro100.c | 3 +-
drivers/net/enc28j60.c | 13 +-
drivers/net/ep93xx_eth.c | 11 +-
drivers/net/ethoc.c | 4 +-
drivers/net/fec_mxc.c | 4 +-
drivers/net/fm/eth.c | 2 +-
drivers/net/fsl_mcdmafec.c | 23 +-
drivers/net/ftgmac100.c | 4 +-
drivers/net/ftmac100.c | 4 +-
drivers/net/ftmac110.c | 4 +-
drivers/net/greth.c | 2 +-
drivers/net/keystone_net.c | 2 +-
drivers/net/ks8851_mll.c | 6 +-
drivers/net/lan91c96.c | 19 +-
drivers/net/lpc32xx_eth.c | 10 +-
drivers/net/macb.c | 10 +-
drivers/net/mcffec.c | 5 +-
drivers/net/mpc512x_fec.c | 3 +-
drivers/net/mpc5xxx_fec.c | 2 +-
drivers/net/mvgbe.c | 41 +-
drivers/net/mvneta.c | 2 +-
drivers/net/natsemi.c | 3 +-
drivers/net/ne2000_base.c | 2 +-
drivers/net/netconsole.c | 98 +-
drivers/net/ns8382x.c | 6 +-
drivers/net/pch_gbe.c | 2 +-
drivers/net/pcnet.c | 2 +-
drivers/net/phy/phy.c | 22 +
drivers/net/rtl8139.c | 4 +-
drivers/net/rtl8169.c | 2 +-
drivers/net/sandbox-raw.c | 165 ++++
drivers/net/sandbox.c | 208 +++++
drivers/net/sh_eth.c | 2 +-
drivers/net/smc91111.c | 18 +-
drivers/net/smc911x.c | 4 +-
drivers/net/sunxi_emac.c | 4 +-
drivers/net/tsec.c | 7 +-
drivers/net/tsi108_eth.c | 8 +-
drivers/net/uli526x.c | 5 +-
drivers/net/xilinx_axi_emac.c | 2 +-
drivers/net/xilinx_emaclite.c | 2 +-
drivers/net/xilinx_ll_temac_fifo.c | 4 +-
drivers/net/xilinx_ll_temac_sdma.c | 4 +-
drivers/net/zynq_gem.c | 2 +-
drivers/pci/Kconfig | 22 +
drivers/pci/Makefile | 11 +-
drivers/pci/pci-emul-uclass.c | 67 ++
drivers/pci/pci-uclass.c | 639 +++++++++++++
drivers/pci/pci.c | 281 +-----
drivers/pci/pci_auto.c | 16 +-
drivers/pci/pci_common.c | 292 ++++++
drivers/pci/pci_compat.c | 43 +
drivers/pci/pci_sandbox.c | 79 ++
drivers/pci/pci_x86.c | 24 +
drivers/qe/uec.c | 2 +-
drivers/serial/ns16550.c | 1 +
drivers/serial/serial-uclass.c | 4 +-
drivers/serial/serial_uniphier.c | 1 +
drivers/sound/Kconfig | 55 ++
drivers/spi/Kconfig | 25 +
drivers/spi/Makefile | 1 +
drivers/spi/fsl_dspi.c | 737 +++++++++++++++
drivers/spi/fsl_qspi.c | 985 ++++++++++++++-------
drivers/spi/ich.c | 522 +++++------
drivers/spi/spi-uclass.c | 4 +-
drivers/tpm/Kconfig | 7 +
drivers/usb/Kconfig | 16 +
drivers/usb/emul/Kconfig | 8 +
drivers/usb/emul/Makefile | 10 +
drivers/usb/emul/sandbox_flash.c | 423 +++++++++
drivers/usb/emul/sandbox_hub.c | 303 +++++++
drivers/usb/emul/usb-emul-uclass.c | 263 ++++++
drivers/usb/eth/asix.c | 3 +-
drivers/usb/eth/asix88179.c | 2 +-
drivers/usb/eth/mcs7830.c | 2 +-
drivers/usb/eth/smsc95xx.c | 5 +-
drivers/usb/eth/usb_ether.c | 52 +-
drivers/usb/gadget/ci_udc.c | 4 +
drivers/usb/gadget/ether.c | 13 +-
drivers/usb/host/Makefile | 5 +
drivers/usb/host/ehci-exynos.c | 112 ++-
drivers/usb/host/ehci-faraday.c | 112 ++-
drivers/usb/host/ehci-hcd.c | 379 ++++++--
drivers/usb/host/ehci-mx5.c | 12 +
drivers/usb/host/ehci-tegra.c | 322 ++++---
drivers/usb/host/ehci.h | 47 +
drivers/usb/host/usb-sandbox.c | 117 +++
drivers/usb/host/usb-uclass.c | 645 ++++++++++++++
drivers/usb/host/xhci-exynos5.c | 120 ++-
drivers/usb/host/xhci-mem.c | 24 +-
drivers/usb/host/xhci-ring.c | 8 +-
drivers/usb/host/xhci.c | 312 +++++--
drivers/usb/host/xhci.h | 31 +-
drivers/usb/musb-new/musb_uboot.c | 4 +-
drivers/video/cfb_console.c | 29 +-
fs/fs.c | 1 +
include/bootstage.h | 2 +-
include/common.h | 30 +-
include/configs/axs101.h | 1 -
include/configs/bf609-ezkit.h | 1 -
include/configs/chromebook_link.h | 61 +-
include/configs/chromebox_panther.h | 17 +
include/configs/exynos5250-common.h | 10 -
include/configs/exynos5420-common.h | 2 -
include/configs/sandbox.h | 59 +-
include/configs/smdk5250.h | 1 -
include/configs/snow.h | 3 +-
include/configs/socfpga_common.h | 1 -
include/configs/spear-common.h | 1 -
include/configs/stv0991.h | 1 -
include/configs/sunxi-common.h | 1 -
include/configs/tb100.h | 1 -
include/configs/x600.h | 1 -
include/configs/x86-chromebook.h | 68 ++
include/configs/x86-common.h | 5 -
include/cros_ec.h | 137 ---
include/dm/device-internal.h | 2 +-
include/dm/device.h | 61 +-
include/dm/test.h | 8 +-
include/dm/uclass-id.h | 11 +
include/dm/uclass-internal.h | 7 +-
include/dm/uclass.h | 2 +
include/fdtdec.h | 19 +-
include/fsl_dspi.h | 150 ++++
include/i2c.h | 8 +-
include/linker_lists.h | 10 +
include/linux/usb/ch9.h | 18 +
include/linux/usb/gadget.h | 13 -
include/mapmem.h | 32 +
include/net.h | 470 ++++++----
include/os.h | 2 +-
include/pci.h | 411 ++++++++-
include/pci_ids.h | 2 +
include/phy.h | 23 +-
include/spi_flash.h | 47 +-
include/usb.h | 494 ++++++++++-
include/usb_defs.h | 68 +-
lib/Kconfig | 9 +
lib/fdtdec.c | 10 +-
lib/net_utils.c | 16 +-
lib/trace.c | 1 +
net/arp.c | 137 ++-
net/arp.h | 22 +-
net/bootp.c | 373 ++++----
net/bootp.h | 39 +-
net/cdp.c | 88 +-
net/cdp.h | 2 +-
net/dns.c | 72 +-
net/dns.h | 2 +-
net/eth.c | 666 +++++++++++---
net/link_local.c | 83 +-
net/net.c | 493 ++++++-----
net/nfs.c | 241 +++--
net/nfs.h | 2 +-
net/ping.c | 49 +-
net/rarp.c | 45 +-
net/rarp.h | 6 +-
net/sntp.c | 48 +-
net/sntp.h | 2 +-
net/tftp.c | 595 +++++++------
net/tftp.h | 8 +-
post/cpu/mpc8xx/ether.c | 6 +-
test/compression.c | 1 +
test/dm/Makefile | 7 +-
test/dm/bus.c | 16 +-
test/dm/cmd_dm.c | 16 +-
test/dm/core.c | 9 +-
test/dm/eth.c | 156 ++++
test/dm/pci.c | 59 ++
test/dm/test-dm.sh | 3 +
test/dm/test-main.c | 7 +-
test/dm/test-uclass.c | 17 +-
test/dm/test.dts | 78 ++
test/dm/usb.c | 50 ++
551 files changed, 16067 insertions(+), 5184 deletions(-)
create mode 100644 arch/arm/dts/ls1021a-qds.dts
create mode 100644 arch/arm/dts/ls1021a-twr.dts
create mode 100644 arch/arm/dts/ls1021a.dtsi
create mode 100644 arch/arm/dts/skeleton64.dtsi
create mode 100644 arch/sandbox/cpu/eth-raw-os.c
create mode 100644 arch/sandbox/dts/cros-ec-keyboard.dtsi
create mode 100644 arch/sandbox/include/asm/eth-raw-os.h
create mode 100644 arch/sandbox/include/asm/eth.h
create mode 100644 arch/sandbox/include/asm/processor.h
create mode 100644 arch/sandbox/lib/pci_io.c
create mode 100644 arch/x86/dts/chromebox_panther.dts
create mode 100644 arch/x86/lib/lpc-uclass.c
create mode 100644 arch/x86/lib/pch-uclass.c
create mode 100644 board/google/chromebox_panther/Kconfig
create mode 100644 board/google/chromebox_panther/MAINTAINERS
create mode 100644 board/google/chromebox_panther/Makefile
create mode 100644 board/google/chromebox_panther/panther.c
delete mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
create mode 100644 configs/chromebox_panther_defconfig
create mode 100644 doc/device-tree-bindings/i2c/i2c-gpio.txt
create mode 100644 doc/device-tree-bindings/net/allwinner,sun4i-emac.txt
create mode 100644 doc/device-tree-bindings/net/allwinner,sun4i-mdio.txt
create mode 100644 doc/device-tree-bindings/net/allwinner,sun7i-a20-gmac.txt
create mode 100644 doc/device-tree-bindings/net/ethernet.txt
create mode 100644 doc/device-tree-bindings/net/stmmac.txt
create mode 100644 doc/driver-model/pci-info.txt
create mode 100644 doc/driver-model/usb-info.txt
create mode 100644 drivers/i2c/i2c-gpio.c
create mode 100644 drivers/misc/swap_case.c
create mode 100644 drivers/net/sandbox-raw.c
create mode 100644 drivers/net/sandbox.c
create mode 100644 drivers/pci/pci-emul-uclass.c
create mode 100644 drivers/pci/pci-uclass.c
create mode 100644 drivers/pci/pci_common.c
create mode 100644 drivers/pci/pci_compat.c
create mode 100644 drivers/pci/pci_sandbox.c
create mode 100644 drivers/pci/pci_x86.c
create mode 100644 drivers/spi/fsl_dspi.c
create mode 100644 drivers/usb/emul/Kconfig
create mode 100644 drivers/usb/emul/Makefile
create mode 100644 drivers/usb/emul/sandbox_flash.c
create mode 100644 drivers/usb/emul/sandbox_hub.c
create mode 100644 drivers/usb/emul/usb-emul-uclass.c
create mode 100644 drivers/usb/host/usb-sandbox.c
create mode 100644 drivers/usb/host/usb-uclass.c
create mode 100644 include/configs/chromebox_panther.h
create mode 100644 include/configs/x86-chromebook.h
create mode 100644 include/fsl_dspi.h
create mode 100644 include/mapmem.h
create mode 100644 test/dm/eth.c
create mode 100644 test/dm/pci.c
create mode 100644 test/dm/usb.c
Regards,
Simon
2
3

[U-Boot] [u-boot PATCH] ti: dwc3: Enable clocks in enable_basic_clocks() in hw_data.c
by Kishon Vijay Abraham I 16 Apr '15
by Kishon Vijay Abraham I 16 Apr '15
16 Apr '15
Commit d3cfcb3 (ARM: DRA7: Enable clocks for USB OTGSS and USB PHY)
changed the member names of prcm_regs from cm_l3init_usb_otg_ss_clkctrl
to cm_l3init_usb_otg_ss1_clkctrl and from cm_coreaon_usb_phy_core_clkctrl
to cm_coreaon_usb_phy1_core_clkctrl in order to differentiate between
the two dwc3 controllers present in dra7xx/am43xx and enabled these
clocks in enable_basic_clocks() in hw_data.c. However these clocks
continued to be enabled in board files/driver files for dwc3 host
mode functionality causing compilation break with few configs.
Fixed it here by making all the clocks enabled in enable_basic_clocks()
and removing it from board files/driver files here.
Signed-off-by: Kishon Vijay Abraham I <kishon(a)ti.com>
---
Tested host mode functionality in beagle_x15, dra72-evm and am43xx evm
in order to make sure this patch doesn't break host mode functioanlity.
arch/arm/cpu/armv7/omap5/hw_data.c | 4 ++--
board/ti/beagle_x15/board.c | 10 ----------
drivers/usb/phy/omap_usb_phy.c | 16 ----------------
3 files changed, 2 insertions(+), 28 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap5/hw_data.c b/arch/arm/cpu/armv7/omap5/hw_data.c
index e4abb25..868415d 100644
--- a/arch/arm/cpu/armv7/omap5/hw_data.c
+++ b/arch/arm/cpu/armv7/omap5/hw_data.c
@@ -460,7 +460,7 @@ void enable_basic_clocks(void)
(*prcm)->cm_l4per_gpio6_clkctrl,
(*prcm)->cm_l4per_gpio7_clkctrl,
(*prcm)->cm_l4per_gpio8_clkctrl,
-#ifdef CONFIG_USB_DWC3
+#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
(*prcm)->cm_l3init_ocp2scp1_clkctrl,
(*prcm)->cm_l3init_usb_otg_ss1_clkctrl,
#endif
@@ -495,7 +495,7 @@ void enable_basic_clocks(void)
setbits_le32((*prcm)->cm_l3init_hsmmc2_clkctrl,
HSMMC_CLKCTRL_CLKSEL_MASK);
-#ifdef CONFIG_USB_DWC3
+#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
/* Enable 960 MHz clock for dwc3 */
setbits_le32((*prcm)->cm_l3init_usb_otg_ss1_clkctrl,
OPTFCLKEN_REFCLK960M);
diff --git a/board/ti/beagle_x15/board.c b/board/ti/beagle_x15/board.c
index 3a7e04d..ac0d22c 100644
--- a/board/ti/beagle_x15/board.c
+++ b/board/ti/beagle_x15/board.c
@@ -385,13 +385,3 @@ int board_eth_init(bd_t *bis)
return ret;
}
#endif
-
-#ifdef CONFIG_USB_XHCI_OMAP
-int board_usb_init(int index, enum usb_init_type init)
-{
- setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
- OTG_SS_CLKCTRL_MODULEMODE_HW | OPTFCLKEN_REFCLK960M);
-
- return 0;
-}
-#endif
diff --git a/drivers/usb/phy/omap_usb_phy.c b/drivers/usb/phy/omap_usb_phy.c
index 52a3664..63d9301 100644
--- a/drivers/usb/phy/omap_usb_phy.c
+++ b/drivers/usb/phy/omap_usb_phy.c
@@ -131,17 +131,6 @@ static void omap_enable_usb3_phy(struct omap_xhci *omap)
{
u32 val;
- /* Setting OCP2SCP1 register */
- setbits_le32((*prcm)->cm_l3init_ocp2scp1_clkctrl,
- OCP2SCP1_CLKCTRL_MODULEMODE_HW);
-
- /* Turn on 32K AON clk */
- setbits_le32((*prcm)->cm_coreaon_usb_phy_core_clkctrl,
- USBPHY_CORE_CLKCTRL_OPTFCLKEN_CLK32K);
-
- /* Setting CM_L3INIT_CLKSTCTRL to 0x0 i.e NO sleep */
- writel(0x0, (*prcm)->cm_l3init_clkstctrl);
-
val = (USBOTGSS_DMADISABLE |
USBOTGSS_STANDBYMODE_SMRT_WKUP |
USBOTGSS_IDLEMODE_NOIDLE);
@@ -169,11 +158,6 @@ static void omap_enable_usb3_phy(struct omap_xhci *omap)
writel(val, &omap->otg_wrapper->irqstatus_1);
val = readl(&omap->otg_wrapper->irqstatus_0);
writel(val, &omap->otg_wrapper->irqstatus_0);
-
- /* Enable the USB OTG Super speed clocks */
- val = (OPTFCLKEN_REFCLK960M | OTG_SS_CLKCTRL_MODULEMODE_HW);
- setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl, val);
-
};
#endif /* CONFIG_OMAP_USB3PHY1_HOST */
--
1.7.9.5
2
1
Hi Tom,
Please pull u-boot-sunxi/master into master for the first series of sunxi
patches for v2015.07. This consists of a mix of bug-fixes, improvements
and new boards.
The following changes since commit f33cdaa4c3da4a8fd35aa2f9a3172f31cc887b35:
Prepare v2015.04 (2015-04-13 10:53:03 -0400)
are available in the git repository at:
http://git.denx.de/u-boot-sunxi.git master
for you to fetch changes up to 6c739c5d8a3466f8ef2f8543636484957bcca6ee:
sunxi: Complete i2c support for each supported platform (2015-04-15 16:33:17 +0200)
----------------------------------------------------------------
Han Pengfei (1):
sun6i: Add support for the Mixtile LOFT-Q board
Hans de Goede (3):
sunxi: usbc: Initialize vusb value on request_resources
sunxi: usbc: Wait for vbus to fall after disabling it
sunxi: axp221: Use vbus-available rather then vbus-usable for vbus-detect
Paul Kocialkowski (26):
sunxi: gpio: Indentation fix
power: axp221: Virtual VBUS detect and enable GPIOs to replace separate logic
sunxi: usb: Drop AXP-sepcific VBUS detection and drive logic
power: axp209: VBUS detection support
sunxi: common VBUS detection logic in usbc
sunxi: USB download gadget cable detection
sunxi: Ainol AW1 support
sunxi: GPIO pin mux hardware-feature-specific function index defines
sunxi: Complete mmc pin mux for each supported platform, configured with Kconfig
sunxi: Yones Toptech BD1078 support
power: axp152: Registers definitions in header
power: axp209: Registers definitions in header
sunxi: TZX-Q8-713B7 mmc0 card-detect pin
sunxi: Ampe A76 mmc0 card-detect pin
sunxi: Ainol AW1 mmc0 card-detect pin
sunxi: Yones Toptech BD1078 mmc0 and mmc1 card-detect pins
sunxi: A20-OLinuXino-Lime2 mmc0 card-detect pin
sunxi: Cubieboard2 mmc0 card-detect pin
sunxi: A20-OLinuXino-Lime2 USB0 VBUS detect and enable pins
sunxi: Serial number support, obtained from SID bits
sunxi: Removed dram files cleanup in MAINTAINERS
sunxi: Proper iNet board config naming
sunxi: iNet 3W support
sunxi: iNet 3F support
i2c: mvtwsi: Support for up to 4 different controllers
sunxi: Complete i2c support for each supported platform
arch/arm/cpu/armv7/sunxi/board.c | 29 ++-
arch/arm/cpu/armv7/sunxi/rsb.c | 8 +-
arch/arm/cpu/armv7/sunxi/usbc.c | 77 +++++--
arch/arm/include/asm/arch-sunxi/cpu_sun4i.h | 7 +
arch/arm/include/asm/arch-sunxi/gpio.h | 104 +++++----
arch/arm/include/asm/arch-sunxi/i2c.h | 17 +-
arch/arm/include/asm/arch-sunxi/usbc.h | 1 +
arch/arm/mach-kirkwood/include/mach/config.h | 2 +-
board/sunxi/Kconfig | 58 ++++-
board/sunxi/MAINTAINERS | 32 ++-
board/sunxi/board.c | 254 +++++++++++++++++++--
board/sunxi/gmac.c | 22 +-
configs/A20-OLinuXino-Lime2_defconfig | 3 +
configs/Ainol_AW1_defconfig | 22 ++
configs/Ampe_A76_defconfig | 3 +-
configs/Cubieboard2_defconfig | 1 +
configs/Ippo_q8h_v1_2_defconfig | 4 +-
configs/Ippo_q8h_v5_defconfig | 4 +-
configs/TZX-Q8-713B7_defconfig | 1 +
configs/Yones_Toptech_BD1078_defconfig | 29 +++
configs/iNet_3F_defconfig | 20 ++
configs/iNet_3W_defconfig | 19 ++
.../{Inet_86VS_defconfig => iNet_86VS_defconfig} | 0
configs/mixtile_loftq_defconfig | 21 ++
drivers/gpio/sunxi_gpio.c | 23 ++
drivers/i2c/mvtwsi.c | 128 ++++++++---
drivers/net/sunxi_emac.c | 2 +-
drivers/power/axp152.c | 11 -
drivers/power/axp209.c | 46 +---
drivers/power/axp221.c | 75 +++---
drivers/usb/musb-new/sunxi.c | 45 +---
drivers/video/sunxi_display.c | 8 +-
include/axp152.h | 12 +
include/axp209.h | 38 +++
include/axp221.h | 14 +-
include/configs/db-mv784mp-gp.h | 2 +-
include/configs/edminiv2.h | 2 +-
include/configs/maxbcm.h | 2 +-
include/configs/sunxi-common.h | 4 +
39 files changed, 852 insertions(+), 298 deletions(-)
create mode 100644 configs/Ainol_AW1_defconfig
create mode 100644 configs/Yones_Toptech_BD1078_defconfig
create mode 100644 configs/iNet_3F_defconfig
create mode 100644 configs/iNet_3W_defconfig
rename configs/{Inet_86VS_defconfig => iNet_86VS_defconfig} (100%)
create mode 100644 configs/mixtile_loftq_defconfig
Regards,
Hans
2
1

16 Apr '15
This patch series adds support for the Marvell Armada A38x SoC's. Specifically
the 88F6820 / 88F6828.
Basic support for the DB-88F6820-GP evaluation board is added. Supporting the
following interfaces:
- UART
- SPI (including SPI NOR flash)
- I2C
- Ethernet (neta)
One big part of this new SoC support is the move of the already exisiting
Armada XP support into the "mach-mvebu" directory. With this move its
easier to re-use this code for the A38x, which is pretty similar to the
AXP.
Thanks,
Stefan
Changes in v2:
- Made mvebu_soc_family() globally available so that it can be called
from mbus.c
- Add PL310 L2 cache base address
- Update to 256KiB env sector as required for M25P128
- Add I2C IO expander initialization (fan etc)
- Enable PL310 L2 cache as this is needed for correct caching OPs
Stefan Roese (13):
arm: armada-xp: Move SoC sources to mach-mvebu
arm: armada-xp: Move SoC headers to mach-mvebu/include/mach
arm: mvebu: Move mvebu-common into mach-mvebu
arm: mvebu: Change header macros from ARMADA_XP to MVEBU
arm: mvebu: Remove unreferenced define
arm: mvebu: Only define MV88F78X60 for Armada XP
arm: mvebu: Move CONFIG_SPL_LDSCRIPT to common header
arm: mvebu: Add basic Armada 38x support
arm: mvebu: Change network init code to allow a more flexible setup
arm: mvebu: Add dynamic SoC detection to mbus driver
arm: mvebu: mv-common.h: Add CONFIG_PREBOOT
arm: mvebu: Add d-cache invalidate before enabling the d-cache
arm: mvebu: Add Armada A38x DB-88F6820-GP board support
arch/arm/Kconfig | 6 ++
arch/arm/Makefile | 5 +-
arch/arm/cpu/armv7/Makefile | 1 -
arch/arm/cpu/armv7/armada-xp/Makefile | 9 --
arch/arm/mach-mvebu/Makefile | 24 +++++
arch/arm/{cpu/armv7/armada-xp => mach-mvebu}/cpu.c | 96 +++++++++++++++----
arch/arm/{mvebu-common => mach-mvebu}/dram.c | 0
arch/arm/{mvebu-common => mach-mvebu}/gpio.c | 0
.../include/mach}/config.h | 15 ++-
.../include/mach}/cpu.h | 13 ++-
.../include/mach}/soc.h | 20 ++--
.../armv7/armada-xp => mach-mvebu}/lowlevel_spl.S | 0
arch/arm/{mvebu-common => mach-mvebu}/mbus.c | 5 +-
.../{mvebu-common => mach-mvebu}/serdes/Makefile | 0
.../serdes/board_env_spec.h | 0
.../serdes/high_speed_env_lib.c | 0
.../serdes/high_speed_env_spec.c | 0
.../serdes/high_speed_env_spec.h | 0
arch/arm/{cpu/armv7/armada-xp => mach-mvebu}/spl.c | 0
arch/arm/{mvebu-common => mach-mvebu}/timer.c | 0
.../{mvebu-common => mach-mvebu}/u-boot-spl.lds | 0
board/Marvell/db-88f6820-gp/Kconfig | 15 +++
board/Marvell/db-88f6820-gp/Makefile | 7 ++
board/Marvell/db-88f6820-gp/binary.0 | 16 ++++
board/Marvell/db-88f6820-gp/db-88f6820-gp.c | 103 +++++++++++++++++++++
board/Marvell/db-88f6820-gp/kwbimage.cfg | 12 +++
board/Marvell/db-mv784mp-gp/Kconfig | 2 +-
board/Marvell/db-mv784mp-gp/db-mv784mp-gp.c | 3 +-
board/maxbcm/Kconfig | 2 +-
board/maxbcm/maxbcm.c | 2 +-
configs/db-88f6820-gp_defconfig | 2 +
include/configs/db-88f6820-gp.h | 72 ++++++++++++++
include/configs/db-mv784mp-gp.h | 3 +-
include/configs/maxbcm.h | 3 +-
include/configs/mv-common.h | 1 +
35 files changed, 380 insertions(+), 57 deletions(-)
delete mode 100644 arch/arm/cpu/armv7/armada-xp/Makefile
create mode 100644 arch/arm/mach-mvebu/Makefile
rename arch/arm/{cpu/armv7/armada-xp => mach-mvebu}/cpu.c (71%)
rename arch/arm/{mvebu-common => mach-mvebu}/dram.c (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/gpio.c (100%)
rename arch/arm/{include/asm/arch-armada-xp => mach-mvebu/include/mach}/config.h (86%)
rename arch/arm/{include/asm/arch-armada-xp => mach-mvebu/include/mach}/cpu.h (93%)
rename arch/arm/{include/asm/arch-armada-xp => mach-mvebu/include/mach}/soc.h (81%)
rename arch/arm/{cpu/armv7/armada-xp => mach-mvebu}/lowlevel_spl.S (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/mbus.c (99%)
rename arch/arm/{mvebu-common => mach-mvebu}/serdes/Makefile (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/serdes/board_env_spec.h (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/serdes/high_speed_env_lib.c (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/serdes/high_speed_env_spec.c (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/serdes/high_speed_env_spec.h (100%)
rename arch/arm/{cpu/armv7/armada-xp => mach-mvebu}/spl.c (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/timer.c (100%)
rename arch/arm/{mvebu-common => mach-mvebu}/u-boot-spl.lds (100%)
create mode 100644 board/Marvell/db-88f6820-gp/Kconfig
create mode 100644 board/Marvell/db-88f6820-gp/Makefile
create mode 100644 board/Marvell/db-88f6820-gp/binary.0
create mode 100644 board/Marvell/db-88f6820-gp/db-88f6820-gp.c
create mode 100644 board/Marvell/db-88f6820-gp/kwbimage.cfg
create mode 100644 configs/db-88f6820-gp_defconfig
create mode 100644 include/configs/db-88f6820-gp.h
--
2.3.5
3
16

[U-Boot] [PATCH v3 0/3] mtd: nand: mxs: Calculate ECC strength dynamically
by Jörg Krause 16 Apr '15
by Jörg Krause 16 Apr '15
16 Apr '15
This patchset is based on the patch from Peng Fan:
"[U-Boot,1/2] mtd:mxs:nand calculate ecc strength dynamically"
https://patchwork.ozlabs.org/patch/422756/
Instead of hard-coding every possible oob size / ECC strength combination
calculate the ECC strength dynamically to be aligned with the Linux Kernel
MTD NAND driver. Also adds the calculation to tools/mxsboot to be aligned
with the U-Boot MTD NAND driver.
Jörg Krause (2):
mtd: nand: mxs: Replace magic number for bits per ECC level with macro
tools: mxsboot: Calculate ECC strength dynamically
Peng Fan (1):
mtd:mxs:nand calculate ecc strength dynamically
drivers/mtd/nand/mxs_nand.c | 35 +++++++++++++++--------------------
tools/mxsboot.c | 39 ++++++++++++++++++++++++---------------
2 files changed, 39 insertions(+), 35 deletions(-)
--
2.3.5
2
5

[U-Boot] [PATCH] boards/t2080rdb: update ddr frequency from 1600MT/s to 1867MT/s
by Shengzhou Liu 16 Apr '15
by Shengzhou Liu 16 Apr '15
16 Apr '15
T2080RDB RevC uses new SODIMM 1867MT/s instead of previous 1600MT/s.
So update RCW to support new DDR frequency i.e 1867MT/s
Signed-off-by: Shengzhou Liu <Shengzhou.Liu(a)freescale.com>
---
board/freescale/t208xrdb/t2080_rcw.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/board/freescale/t208xrdb/t2080_rcw.cfg b/board/freescale/t208xrdb/t2080_rcw.cfg
index 59025ea..7c55150 100644
--- a/board/freescale/t208xrdb/t2080_rcw.cfg
+++ b/board/freescale/t208xrdb/t2080_rcw.cfg
@@ -9,8 +9,8 @@ aa55aa55 010e0100
#00000000 00000000 00000000 00000004
#For T2080 v1.1
-#SerDes=0x66_0x15, Core:1800MHz, DDR:1600MT/s
-1206001b 15000000 00000000 00000000
+#SerDes=0x66_0x15, Core:1800MHz, DDR:1867MT/s
+1207001b 15000000 00000000 00000000
66150002 00000000 e8104000 c1000000
00800000 00000000 00000000 000307fc
00000000 00000000 00000000 00000004
--
2.1.0.27.g96db324
2
1

[U-Boot] [PATCH 1/4] mmc: fsl_esdhc: Add adapter card type identification support
by Yangbo Lu 16 Apr '15
by Yangbo Lu 16 Apr '15
16 Apr '15
Add adapter card type identification support by reading
FPGA STAT_PRES1 register SDHC Card ID[0:2] bits. To use this function,
define CONFIG_FSL_ESDHC_ADAPTER_IDENT.
Signed-off-by: Yangbo Lu <yangbo.lu(a)freescale.com>
Cc: York Sun <yorksun(a)freescale.com>
---
arch/powerpc/include/asm/global_data.h | 3 +++
board/freescale/common/qixis.h | 14 +++++++++++++
drivers/mmc/fsl_esdhc.c | 38 +++++++++++++++++++++++++++++++++-
drivers/mmc/mmc.c | 6 ++++++
drivers/mmc/mmc_private.h | 3 +++
include/fsl_esdhc.h | 4 ++++
6 files changed, 67 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h
index c57d9c0..4090975 100644
--- a/arch/powerpc/include/asm/global_data.h
+++ b/arch/powerpc/include/asm/global_data.h
@@ -15,6 +15,9 @@
struct arch_global_data {
#if defined(CONFIG_FSL_ESDHC)
u32 sdhc_clk;
+#if defined(CONFIG_FSL_ESDHC_ADAPTER_IDENT)
+ u8 sdhc_adapter;
+#endif
#endif
#if defined(CONFIG_8xx)
unsigned long brg_clk;
diff --git a/board/freescale/common/qixis.h b/board/freescale/common/qixis.h
index 52d2021..51ce9c3 100644
--- a/board/freescale/common/qixis.h
+++ b/board/freescale/common/qixis.h
@@ -115,4 +115,18 @@ void qixis_write_i2c(unsigned int reg, u8 value);
qixis_write_i2c(offsetof(struct qixis, reg), value)
#endif
+/* Use for SDHC adapter card type identification and operation */
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+#define QIXIS_SDID_MASK 0x07
+#define QIXIS_ESDHC_ADAPTER_TYPE_EMMC45 0x1 /* eMMC Card Rev4.5 */
+#define QIXIS_ESDHC_ADAPTER_TYPE_SDMMC_LEGACY 0x2 /* SD/MMC Legacy Card */
+#define QIXIS_ESDHC_ADAPTER_TYPE_EMMC44 0x3 /* eMMC Card Rev4.4 */
+#define QIXIS_ESDHC_ADAPTER_TYPE_RSV 0x4 /* Reserved */
+#define QIXIS_ESDHC_ADAPTER_TYPE_MMC 0x5 /* MMC Card */
+#define QIXIS_ESDHC_ADAPTER_TYPE_SD 0x6 /* SD Card Rev2.0 3.0 */
+#define QIXIS_ESDHC_NO_ADAPTER 0x7 /* No Card is Present*/
+#define QIXIS_SDCLKIN 0x08
+#define QIXIS_SDCLKOUT 0x02
+#endif
+
#endif
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index f5d2ccb..355cada 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -643,6 +643,39 @@ int fsl_esdhc_mmc_init(bd_t *bis)
return fsl_esdhc_initialize(bis, cfg);
}
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+void mmc_adapter_card_type_ident(void)
+{
+ u8 card_id;
+ u8 value;
+
+ card_id = QIXIS_READ(present) & QIXIS_SDID_MASK;
+ gd->arch.sdhc_adapter = card_id;
+
+ switch (card_id) {
+ case QIXIS_ESDHC_ADAPTER_TYPE_EMMC45:
+ break;
+ case QIXIS_ESDHC_ADAPTER_TYPE_SDMMC_LEGACY:
+ break;
+ case QIXIS_ESDHC_ADAPTER_TYPE_EMMC44:
+ value = QIXIS_READ(brdcfg[5]);
+ value |= (QIXIS_SDCLKIN | QIXIS_SDCLKOUT);
+ QIXIS_WRITE(brdcfg[5], value);
+ break;
+ case QIXIS_ESDHC_ADAPTER_TYPE_RSV:
+ break;
+ case QIXIS_ESDHC_ADAPTER_TYPE_MMC:
+ break;
+ case QIXIS_ESDHC_ADAPTER_TYPE_SD:
+ break;
+ case QIXIS_ESDHC_NO_ADAPTER:
+ break;
+ default:
+ break;
+ }
+}
+#endif
+
#ifdef CONFIG_OF_LIBFDT
void fdt_fixup_esdhc(void *blob, bd_t *bd)
{
@@ -658,7 +691,10 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd)
do_fixup_by_compat_u32(blob, compat, "clock-frequency",
gd->arch.sdhc_clk, 1);
-
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+ 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);
}
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index a13769e..dc32aec 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1588,6 +1588,9 @@ int mmc_start_init(struct mmc *mmc)
if (mmc->has_init)
return 0;
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+ mmc_adapter_card_type_ident();
+#endif
board_mmc_power_init();
/* made sure it's not NULL earlier */
@@ -1739,6 +1742,9 @@ static void do_preinit(void)
list_for_each(entry, &mmc_devices) {
m = list_entry(entry, struct mmc, link);
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+ mmc_set_preinit(m, 1);
+#endif
if (m->preinit)
mmc_start_init(m);
}
diff --git a/drivers/mmc/mmc_private.h b/drivers/mmc/mmc_private.h
index 16dcf9f..447a700 100644
--- a/drivers/mmc/mmc_private.h
+++ b/drivers/mmc/mmc_private.h
@@ -16,6 +16,9 @@ extern int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
struct mmc_data *data);
extern int mmc_send_status(struct mmc *mmc, int timeout);
extern int mmc_set_blocklen(struct mmc *mmc, int len);
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+void mmc_adapter_card_type_ident(void);
+#endif
#ifndef CONFIG_SPL_BUILD
diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h
index 313fa1e..5462b4c 100644
--- a/include/fsl_esdhc.h
+++ b/include/fsl_esdhc.h
@@ -16,6 +16,10 @@
/* needed for the mmc_cfg definition */
#include <mmc.h>
+#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
+#include "../board/freescale/common/qixis.h"
+#endif
+
/* FSL eSDHC-specific constants */
#define SYSCTL 0x0002e02c
#define SYSCTL_INITA 0x08000000
--
2.1.0.27.g96db324
2
1
The following changes since commit f33cdaa4c3da4a8fd35aa2f9a3172f31cc887b35:
Prepare v2015.04 (2015-04-13 10:53:03 -0400)
are available in the git repository at:
git://git.denx.de/u-boot-usb.git HEAD
for you to fetch changes up to 7704fdbda3afb3d3bb0749378f444c71f92fb9ca:
usb: gadget: thor: Claim EP after allocating it in thor gadget (2015-04-14
05:48:12 +0200)
----------------------------------------------------------------
Franck Jullien (1):
usb_storage : scan all interfaces to find a storage device
Inha Song (2):
usb: gadget: UMS: Invoke board specific USB cleanup interface
usb: gadget: thor: Invoke board specific USB cleanup interface
Joonyoung Shim (1):
usb: dwc3: make dwc3_set_mode to static
Kishon Vijay Abraham I (40):
ARM: DRA7: Enable clocks for USB OTGSS and USB PHY
ARM: AM43xx: Enable clocks for USB OTGSS and USB PHY
usb: gadget: udc: add udc-core from linux kernel to u-boot
include: usb: modify gadget.h to include udc support
usb: gadget: udc: make udc-core compile in u-boot build
include: asm: dma-mapping: get rid of the compilation warning in udc-core
usb: dwc3: add dwc3 folder from linux kernel to u-boot
usb: dwc3: remove un-used files from dwc3 folder
usb: dwc3: Modify the file headers to u-boot format
usb: dwc3: remove trace_* APIs from dwc3 driver
usb: dwc3: fix dwc3 header files
usb: dwc3: remove pm related operations from dwc3 driver
arm: asm: dma-mapping: added dma_free_coherent API
usb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy
usb: dwc3: gadget: make dwc3 gadget build in uboot
include: asm: types: add resource_size_t type
usb: dwc3: ep0: make dwc3 ep0 build in uboot
include: usb: composite: add USB_GADGET_DELAYED_STATUS to avoid
compilation error
usb: dwc3: core: make dwc3 core build in uboot
include: dwc3-uboot: add a structure for populating platform data
dwc3: core: change probe and remove to uboot init and uboot exit code
dwc3: core: add support for multiple dwc3 controllers
dwc3: core: added an API to invoke irq handlers
usb: dwc3: dwc3-omap: make dwc3-omap build in uboot
include: dwc3-omap-uboot: add a structure for populating dwc3-omap
platform data
usb: dwc3: dwc3-omap: change probe and remove to uboot init and uboot exit
code
dwc3: dwc3-omap: add support for multiple dwc3-omap controllers
usb: dwc3: dwc3-omap: add interrupt status API to check for interrupts
usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms
dwc3: flush the buffers before using it
usb: dwc3: ep0: preparation for implementing chained TRB
usb: dwc3: Add chained TRB support for ep0
usb: dwc3: Makefile: Make dwc3 driver compile in u-boot
usb: gadget: defer setting maxpacket till ->setup()
common: cmd_dfu: invoke board_usb_cleanup() for cleaning up
board: ti: DRA7: added USB initializtion code
include: configs: Enable DWC3 and DFU in DRA7xx
board: ti: AM43xx: added USB initializtion code
include: configs: Enable DWC3 and DFU in AM43xx
usb: modify usb_gadget_handle_interrupts to take controller index
Marek Szyprowski (4):
usb: dwc3: add a workaround for too small OUT requests
usb: dwc3: gadget: add common endpoint configuration for dwc3 udc driver
usb: dwc3: optimize interrupt loop
usb: gadget: thor: Claim EP after allocating it in thor gadget
Paul Kocialkowski (3):
usb: usb_new_device return codes consistency
usb: Check usb_new_device for failure
usb: Early failure when the first descriptor read fails or is invalid
Rob Herring (2):
usb: ci_udc: fix warnings on 64-bit builds
ehci-hcd: fix warnings on 64-bit builds
Sergey Temerkhanov (3):
usb: Convert protocol header structures to use explicitly sized variables
usb: 64-bit architectures support for xHCI
usb_storage:Fix USB storage capacity detection on 64 bit architectures
Stephen Warren (17):
usb: fix first descriptor fetch error handling
usb: dwc2: unify waiting for transfer completion
usb: dwc2: refactor submit_bulk_msg to be common
usb: dwc2: usb chunk_msg() for control transfers too
usb: dwc2: remove control_data_toggle[]
usb: dwc2: simplify wait_for_chhltd
usb: dwc2: fix aligned buffer usage
usb: dwc2: remove restriction on buffer length
usb: dwc2: fix bulk transfers
Create API to map between CPU physical and bus addresses
ARM: bcm2835: implement phys_to_bus/bus_to_phys
usb: dwc2: use phys_to_bus/bus_to_phys
usb: dwc2: detect device speed correctly
ARM: bcm2835: use phys_to_bus() for mbox
usb: dwc2: correctly program hcchar for LS devices
usb: dwc2: implement interrupt transfers
usb: dwc2: retry NAK'd interrupt transfers
Thierry Reding (3):
usb: eth: asix: Build warning fixes for 64-bit
usb: ehci-tegra: Build warning fixes for 64-bit
usb: mass-storage: Build warning fixes for 64-bit
Tim Harvey (1):
usb: hub: allow pgood_delay to be specified via env
Łukasz Majewski (7):
usb: board: samsung: Add default board_usb_cleanup() definition for Exynos
SoCs
usb: board: goni: Add default board_usb_cleanup() definition for Goni
board
usb: composite: Add .reset callback to usb_gadget_driver structure
usb: dwc3: Remove BIT(x) macro from DWC3's gadget code
usb: dwc3: gadget: Set all ctrl fields of Transfer Control Blocks (TRB) to
be LST
usb: dwc3: gadget: Set non EP0 max packet limit to 512B
usb: dwc3: Correct clean up code for requests
Makefile | 2 +
arch/arm/cpu/armv7/am33xx/clock_am43xx.c | 12 +
arch/arm/cpu/armv7/omap5/hw_data.c | 14 +
arch/arm/cpu/armv7/omap5/prcm-regs.c | 10 +-
arch/arm/include/asm/arch-am33xx/cpu.h | 20 +-
arch/arm/include/asm/arch-am33xx/hardware_am43xx.h | 12 +
arch/arm/include/asm/arch-omap5/omap.h | 12 +
arch/arm/include/asm/dma-mapping.h | 9 +-
arch/arm/include/asm/omap_common.h | 4 +-
arch/arm/include/asm/types.h | 1 +
arch/arm/mach-bcm283x/Kconfig | 3 +
arch/arm/mach-bcm283x/Makefile | 2 +-
arch/arm/mach-bcm283x/mbox.c | 5 +-
arch/arm/mach-bcm283x/phys2bus.c | 22 +
board/samsung/common/board.c | 6 +
board/samsung/goni/goni.c | 5 +
board/ti/am43xx/board.c | 108 ++++
board/ti/dra7xx/evm.c | 109 ++++
common/cmd_dfu.c | 3 +-
common/cmd_fastboot.c | 2 +-
common/cmd_thordown.c | 1 +
common/cmd_usb_mass_storage.c | 3 +-
common/usb.c | 98 ++--
common/usb_hub.c | 8 +
common/usb_storage.c | 89 +--
drivers/Kconfig | 8 +
drivers/usb/dwc3/Makefile | 8 +
drivers/usb/dwc3/core.c | 785
+++++++++++++++++++++++++
drivers/usb/dwc3/core.h | 1032
+++++++++++++++++++++++++++++++++
drivers/usb/dwc3/dwc3-omap.c | 441 ++++++++++++++
drivers/usb/dwc3/ep0.c | 1112
++++++++++++++++++++++++++++++++++++
drivers/usb/dwc3/gadget.c | 2678
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/usb/dwc3/gadget.h | 108 ++++
drivers/usb/dwc3/io.h | 55 ++
drivers/usb/dwc3/linux-compat.h | 38 ++
drivers/usb/dwc3/ti_usb_phy.c | 309 ++++++++++
drivers/usb/eth/asix.c | 2 +-
drivers/usb/gadget/atmel_usba_udc.c | 2 +-
drivers/usb/gadget/ci_udc.c | 44 +-
drivers/usb/gadget/composite.c | 5 +-
drivers/usb/gadget/epautoconf.c | 24 +-
drivers/usb/gadget/ether.c | 12 +-
drivers/usb/gadget/f_mass_storage.c | 4 +-
drivers/usb/gadget/f_thor.c | 9 +-
drivers/usb/gadget/fotg210.c | 2 +-
drivers/usb/gadget/gadget_chips.h | 8 +
drivers/usb/gadget/pxa25x_udc.c | 2 +-
drivers/usb/gadget/s3c_udc_otg.c | 2 +-
drivers/usb/gadget/udc/Makefile | 4 +
drivers/usb/gadget/udc/udc-core.c | 354 ++++++++++++
drivers/usb/host/dwc2.c | 369 +++++-------
drivers/usb/host/dwc2.h | 3 +
drivers/usb/host/ehci-hcd.c | 82 +--
drivers/usb/host/ehci-tegra.c | 8 +-
drivers/usb/host/xhci-mem.c | 20 +-
drivers/usb/host/xhci-ring.c | 30 +-
drivers/usb/host/xhci.c | 10 +-
drivers/usb/host/xhci.h | 13 +-
drivers/usb/musb-new/musb_uboot.c | 2 +-
include/configs/am43xx_evm.h | 58 +-
include/configs/dra7xx_evm.h | 63 ++
include/configs/ti_omap5_common.h | 5 +
include/dwc3-omap-uboot.h | 32 ++
include/dwc3-uboot.h | 42 ++
include/linux/compat.h | 1 +
include/linux/usb/composite.h | 9 +
include/linux/usb/dwc3-omap.h | 19 +
include/linux/usb/gadget.h | 84 ++-
include/linux/usb/otg.h | 20 +
include/phys2bus.h | 25 +
include/ti-usb-phy-uboot.h | 22 +
include/usb.h | 18 +-
72 files changed, 8096 insertions(+), 447 deletions(-)
create mode 100644 arch/arm/mach-bcm283x/phys2bus.c
create mode 100644 drivers/usb/dwc3/Makefile
create mode 100644 drivers/usb/dwc3/core.c
create mode 100644 drivers/usb/dwc3/core.h
create mode 100644 drivers/usb/dwc3/dwc3-omap.c
create mode 100644 drivers/usb/dwc3/ep0.c
create mode 100644 drivers/usb/dwc3/gadget.c
create mode 100644 drivers/usb/dwc3/gadget.h
create mode 100644 drivers/usb/dwc3/io.h
create mode 100644 drivers/usb/dwc3/linux-compat.h
create mode 100644 drivers/usb/dwc3/ti_usb_phy.c
create mode 100644 drivers/usb/gadget/udc/Makefile
create mode 100644 drivers/usb/gadget/udc/udc-core.c
create mode 100644 include/dwc3-omap-uboot.h
create mode 100644 include/dwc3-uboot.h
create mode 100644 include/linux/usb/dwc3-omap.h
create mode 100644 include/linux/usb/otg.h
create mode 100644 include/phys2bus.h
create mode 100644 include/ti-usb-phy-uboot.h
3
6