435 lines
13 KiB
Diff
435 lines
13 KiB
Diff
From d47e40830ae8406e248880b7eb08bead00377adc Mon Sep 17 00:00:00 2001
|
|
From: Patrice Chotard <patrice.chotard@st.com>
|
|
Date: Mon, 13 Feb 2017 10:24:16 +0100
|
|
Subject: [PATCH 01/16] mmc: sti_sdhci: Rework sti_mmc_core_config()
|
|
|
|
Use struct udevice* as input parameter. Previous
|
|
parameters are retrieved through plat and priv data.
|
|
|
|
This to prepare to use the reset framework.
|
|
|
|
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
|
|
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
|
|
---
|
|
drivers/mmc/sti_sdhci.c | 33 ++++++++++++++++++---------------
|
|
1 file changed, 18 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c
|
|
index 2a07082036..d6c4d677b8 100644
|
|
--- a/drivers/mmc/sti_sdhci.c
|
|
+++ b/drivers/mmc/sti_sdhci.c
|
|
@@ -16,6 +16,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
struct sti_sdhci_plat {
|
|
struct mmc_config cfg;
|
|
struct mmc mmc;
|
|
+ int instance;
|
|
};
|
|
|
|
/*
|
|
@@ -26,8 +27,8 @@ struct sti_sdhci_plat {
|
|
|
|
/**
|
|
* sti_mmc_core_config: configure the Arasan HC
|
|
- * @regbase: base address
|
|
- * @mmc_instance: mmc instance id
|
|
+ * @dev : udevice
|
|
+ *
|
|
* Description: this function is to configure the Arasan MMC HC.
|
|
* This should be called when the system starts in case of, on the SoC,
|
|
* it is needed to configure the host controller.
|
|
@@ -36,33 +37,35 @@ struct sti_sdhci_plat {
|
|
* W/o these settings the SDHCI could configure and use the embedded controller
|
|
* with limited features.
|
|
*/
|
|
-static void sti_mmc_core_config(const u32 regbase, int mmc_instance)
|
|
+static void sti_mmc_core_config(struct udevice *dev)
|
|
{
|
|
+ struct sti_sdhci_plat *plat = dev_get_platdata(dev);
|
|
+ struct sdhci_host *host = dev_get_priv(dev);
|
|
unsigned long *sysconf;
|
|
|
|
/* only MMC1 has a reset line */
|
|
- if (mmc_instance) {
|
|
+ if (plat->instance) {
|
|
sysconf = (unsigned long *)(STIH410_SYSCONF5_BASE +
|
|
ST_MMC_CCONFIG_REG_5);
|
|
generic_set_bit(SYSCONF_MMC1_ENABLE_BIT, sysconf);
|
|
}
|
|
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG_1,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_1);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_1);
|
|
|
|
- if (mmc_instance) {
|
|
+ if (plat->instance) {
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG2,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_2);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_2);
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG3,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_3);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_3);
|
|
} else {
|
|
writel(STI_FLASHSS_SDCARD_CORE_CONFIG2,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_2);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_2);
|
|
writel(STI_FLASHSS_SDCARD_CORE_CONFIG3,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_3);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_3);
|
|
}
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG4,
|
|
- regbase + FLASHSS_MMC_CORE_CONFIG_4);
|
|
+ host->ioaddr + FLASHSS_MMC_CORE_CONFIG_4);
|
|
}
|
|
|
|
static int sti_sdhci_probe(struct udevice *dev)
|
|
@@ -70,7 +73,7 @@ static int sti_sdhci_probe(struct udevice *dev)
|
|
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
|
|
struct sti_sdhci_plat *plat = dev_get_platdata(dev);
|
|
struct sdhci_host *host = dev_get_priv(dev);
|
|
- int ret, mmc_instance;
|
|
+ int ret;
|
|
|
|
/*
|
|
* identify current mmc instance, mmc1 has a reset, not mmc0
|
|
@@ -79,11 +82,11 @@ static int sti_sdhci_probe(struct udevice *dev)
|
|
*/
|
|
|
|
if (fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "resets", NULL))
|
|
- mmc_instance = 1;
|
|
+ plat->instance = 1;
|
|
else
|
|
- mmc_instance = 0;
|
|
+ plat->instance = 0;
|
|
|
|
- sti_mmc_core_config((const u32) host->ioaddr, mmc_instance);
|
|
+ sti_mmc_core_config(dev);
|
|
|
|
host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD |
|
|
SDHCI_QUIRK_32BIT_DMA_ADDR |
|
|
--
|
|
2.12.2
|
|
|
|
From 7a13a40753f67f4989d08e11ce67059206c95e2c Mon Sep 17 00:00:00 2001
|
|
From: Patrice Chotard <patrice.chotard@st.com>
|
|
Date: Mon, 13 Feb 2017 10:00:07 +0100
|
|
Subject: [PATCH 02/16] ARM: dts: stih410-family: Add missing reset_names for
|
|
mmc1 node
|
|
|
|
reset-names property is needed to use the reset
|
|
API for STi sdhci driver.
|
|
|
|
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
|
|
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
|
|
---
|
|
arch/arm/dts/stih407-family.dtsi | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/arch/arm/dts/stih407-family.dtsi b/arch/arm/dts/stih407-family.dtsi
|
|
index af66b53471..452ac1cdce 100644
|
|
--- a/arch/arm/dts/stih407-family.dtsi
|
|
+++ b/arch/arm/dts/stih407-family.dtsi
|
|
@@ -563,6 +563,7 @@
|
|
clocks = <&clk_s_c0_flexgen CLK_MMC_1>,
|
|
<&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
|
|
resets = <&softreset STIH407_MMC1_SOFTRESET>;
|
|
+ reset-names = "softreset";
|
|
bus-width = <4>;
|
|
};
|
|
|
|
--
|
|
2.12.2
|
|
|
|
From ef5fc6a1069e21332358d2b3b2fb4ee926cb4e11 Mon Sep 17 00:00:00 2001
|
|
From: Patrice Chotard <patrice.chotard@st.com>
|
|
Date: Tue, 28 Feb 2017 18:18:42 +0100
|
|
Subject: [PATCH 03/16] mmc: sti_sdhci: Use reset framework
|
|
|
|
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
|
|
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
|
|
---
|
|
drivers/mmc/sti_sdhci.c | 31 ++++++++++++++++++++++---------
|
|
1 file changed, 22 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c
|
|
index d6c4d677b8..8b1b2c08a1 100644
|
|
--- a/drivers/mmc/sti_sdhci.c
|
|
+++ b/drivers/mmc/sti_sdhci.c
|
|
@@ -8,6 +8,7 @@
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <mmc.h>
|
|
+#include <reset-uclass.h>
|
|
#include <sdhci.h>
|
|
#include <asm/arch/sdhci.h>
|
|
|
|
@@ -16,6 +17,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
struct sti_sdhci_plat {
|
|
struct mmc_config cfg;
|
|
struct mmc mmc;
|
|
+ struct reset_ctl reset;
|
|
int instance;
|
|
};
|
|
|
|
@@ -37,17 +39,19 @@ struct sti_sdhci_plat {
|
|
* W/o these settings the SDHCI could configure and use the embedded controller
|
|
* with limited features.
|
|
*/
|
|
-static void sti_mmc_core_config(struct udevice *dev)
|
|
+static int sti_mmc_core_config(struct udevice *dev)
|
|
{
|
|
struct sti_sdhci_plat *plat = dev_get_platdata(dev);
|
|
struct sdhci_host *host = dev_get_priv(dev);
|
|
- unsigned long *sysconf;
|
|
+ int ret;
|
|
|
|
/* only MMC1 has a reset line */
|
|
if (plat->instance) {
|
|
- sysconf = (unsigned long *)(STIH410_SYSCONF5_BASE +
|
|
- ST_MMC_CCONFIG_REG_5);
|
|
- generic_set_bit(SYSCONF_MMC1_ENABLE_BIT, sysconf);
|
|
+ ret = reset_deassert(&plat->reset);
|
|
+ if (ret < 0) {
|
|
+ error("MMC1 deassert failed: %d", ret);
|
|
+ return ret;
|
|
+ }
|
|
}
|
|
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG_1,
|
|
@@ -66,6 +70,8 @@ static void sti_mmc_core_config(struct udevice *dev)
|
|
}
|
|
writel(STI_FLASHSS_MMC_CORE_CONFIG4,
|
|
host->ioaddr + FLASHSS_MMC_CORE_CONFIG_4);
|
|
+
|
|
+ return 0;
|
|
}
|
|
|
|
static int sti_sdhci_probe(struct udevice *dev)
|
|
@@ -80,13 +86,20 @@ static int sti_sdhci_probe(struct udevice *dev)
|
|
* MMC0 is wired to the SD slot,
|
|
* MMC1 is wired on the high speed connector
|
|
*/
|
|
-
|
|
- if (fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "resets", NULL))
|
|
+ if (fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "resets", NULL)) {
|
|
plat->instance = 1;
|
|
- else
|
|
+ ret = reset_get_by_name(dev, "softreset", &plat->reset);
|
|
+ if (ret) {
|
|
+ error("can't get reset for %s (%d)", dev->name, ret);
|
|
+ return ret;
|
|
+ }
|
|
+ } else {
|
|
plat->instance = 0;
|
|
+ }
|
|
|
|
- sti_mmc_core_config(dev);
|
|
+ ret = sti_mmc_core_config(dev);
|
|
+ if (ret)
|
|
+ return ret;
|
|
|
|
host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD |
|
|
SDHCI_QUIRK_32BIT_DMA_ADDR |
|
|
--
|
|
2.12.2
|
|
|
|
From bec77a7aaeeaa5f77fc239c672aa23d7aaa481b7 Mon Sep 17 00:00:00 2001
|
|
From: Patrice Chotard <patrice.chotard@st.com>
|
|
Date: Mon, 20 Mar 2017 13:40:41 +0100
|
|
Subject: [PATCH 10/16] board: STiH410-B2260: add OHCI and XHCI related defines
|
|
|
|
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
|
|
---
|
|
include/configs/stih410-b2260.h | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
|
|
index 6f4070ff43..3df0e04768 100644
|
|
--- a/include/configs/stih410-b2260.h
|
|
+++ b/include/configs/stih410-b2260.h
|
|
@@ -51,4 +51,7 @@
|
|
|
|
#define CONFIG_SKIP_LOWLEVEL_INIT
|
|
|
|
+#define CONFIG_USB_OHCI_NEW
|
|
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
|
|
+
|
|
#endif /* __CONFIG_H */
|
|
--
|
|
2.12.2
|
|
|
|
From f6976cd38b82390054b9ff135f8346119082f2ad Mon Sep 17 00:00:00 2001
|
|
From: Patrice Chotard <patrice.chotard@st.com>
|
|
Date: Mon, 20 Mar 2017 14:38:49 +0100
|
|
Subject: [PATCH 12/16] STiH410-B2260: enable USB Host Networking
|
|
|
|
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
|
|
---
|
|
include/configs/stih410-b2260.h | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
|
|
index 3df0e04768..6c84e9b485 100644
|
|
--- a/include/configs/stih410-b2260.h
|
|
+++ b/include/configs/stih410-b2260.h
|
|
@@ -51,7 +51,19 @@
|
|
|
|
#define CONFIG_SKIP_LOWLEVEL_INIT
|
|
|
|
+/* USB Configs */
|
|
#define CONFIG_USB_OHCI_NEW
|
|
#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
|
|
|
|
+#define CONFIG_USB_HOST_ETHER
|
|
+#define CONFIG_USB_ETHER_ASIX
|
|
+#define CONFIG_USB_ETHER_MCS7830
|
|
+#define CONFIG_USB_ETHER_SMSC95XX
|
|
+
|
|
+/* NET Configs */
|
|
+#define CONFIG_BOOTP_SUBNETMASK
|
|
+#define CONFIG_BOOTP_GATEWAY
|
|
+#define CONFIG_BOOTP_HOSTNAME
|
|
+#define CONFIG_BOOTP_BOOTPATH
|
|
+
|
|
#endif /* __CONFIG_H */
|
|
--
|
|
2.12.2
|
|
|
|
From 4b762469b09955d56bf45b81af8f5d26433e933d Mon Sep 17 00:00:00 2001
|
|
From: Nicolas Le Bayon <nicolas.le.bayon@st.com>
|
|
Date: Mon, 27 Mar 2017 16:10:45 +0200
|
|
Subject: [PATCH 15/16] board: STiH410-B2260: fix sdram size
|
|
|
|
32MB are reserved for Trusted Zone purpose
|
|
|
|
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
|
|
---
|
|
include/configs/stih410-b2260.h | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
|
|
index 7fcb327a52..ccbbf32470 100644
|
|
--- a/include/configs/stih410-b2260.h
|
|
+++ b/include/configs/stih410-b2260.h
|
|
@@ -14,7 +14,7 @@
|
|
#define CONFIG_NR_DRAM_BANKS 1
|
|
#define PHYS_SDRAM_1 0x40000000
|
|
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
|
|
-#define PHYS_SDRAM_1_SIZE 0x3FE00000
|
|
+#define PHYS_SDRAM_1_SIZE 0x3E000000
|
|
#define CONFIG_SYS_TEXT_BASE 0x7D600000
|
|
#define CONFIG_SYS_LOAD_ADDR PHYS_SDRAM_1 /* default load addr */
|
|
|
|
--
|
|
2.12.2
|
|
|
|
From 73c47454a638029bafeaa4b5061f25bc6ddb6cea Mon Sep 17 00:00:00 2001
|
|
From: Peter Robinson <pbrobinson@gmail.com>
|
|
Date: Tue, 1 Aug 2017 11:28:54 +0100
|
|
Subject: [PATCH] sti: enable distro defaults, USB and a few other bits
|
|
|
|
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
|
---
|
|
configs/stih410-b2260_defconfig | 26 ++++++++++++++++++++++----
|
|
include/configs/stih410-b2260.h | 31 +++++++++++++++++++++++++------
|
|
2 files changed, 47 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/configs/stih410-b2260_defconfig b/configs/stih410-b2260_defconfig
|
|
index e29c29bc6f..48f534c907 100644
|
|
--- a/configs/stih410-b2260_defconfig
|
|
+++ b/configs/stih410-b2260_defconfig
|
|
@@ -2,26 +2,44 @@ CONFIG_ARM=y
|
|
CONFIG_ARCH_STI=y
|
|
CONFIG_IDENT_STRING="STMicroelectronics STiH410-B2260"
|
|
CONFIG_DEFAULT_DEVICE_TREE="stih410-b2260"
|
|
+CONFIG_DISTRO_DEFAULTS=y
|
|
CONFIG_FIT=y
|
|
CONFIG_FIT_VERBOSE=y
|
|
CONFIG_ENV_IS_NOWHERE=y
|
|
# CONFIG_DISPLAY_CPUINFO is not set
|
|
CONFIG_SYS_PROMPT="stih410-b2260 => "
|
|
# CONFIG_CMD_IMLS is not set
|
|
+CONFIG_CMD_GPT=y
|
|
CONFIG_CMD_MMC=y
|
|
+CONFIG_CMD_USB=y
|
|
CONFIG_CMD_TIME=y
|
|
CONFIG_CMD_TIMER=y
|
|
-CONFIG_CMD_EXT2=y
|
|
-CONFIG_CMD_EXT4=y
|
|
-CONFIG_CMD_FAT=y
|
|
-CONFIG_CMD_FS_GENERIC=y
|
|
+CONFIG_CMD_EXT4_WRITE=y
|
|
+# CONFIG_ISO_PARTITION is not set
|
|
CONFIG_OF_CONTROL=y
|
|
CONFIG_REGMAP=y
|
|
CONFIG_SYSCON=y
|
|
+CONFIG_MISC=y
|
|
CONFIG_MMC_SDHCI=y
|
|
CONFIG_MMC_SDHCI_STI=y
|
|
CONFIG_PINCTRL=y
|
|
+CONFIG_STI_RESET=y
|
|
CONFIG_STI_ASC_SERIAL=y
|
|
CONFIG_SYSRESET=y
|
|
CONFIG_TIMER=y
|
|
+CONFIG_USB=y
|
|
+CONFIG_DM_USB=y
|
|
+CONFIG_USB_XHCI_HCD=y
|
|
+CONFIG_USB_XHCI_DWC3=y
|
|
+CONFIG_USB_EHCI_HCD=y
|
|
+CONFIG_USB_OHCI_HCD=y
|
|
+CONFIG_USB_DWC3_GADGET=y
|
|
+CONFIG_USB_STORAGE=y
|
|
+CONFIG_USB_GADGET=y
|
|
+CONFIG_USB_GADGET_DOWNLOAD=y
|
|
+CONFIG_G_DNL_MANUFACTURER="STMicroelectronics"
|
|
+CONFIG_G_DNL_VENDOR_NUM=0x483
|
|
+CONFIG_G_DNL_PRODUCT_NUM=0x7270
|
|
+CONFIG_USB_PHY=y
|
|
+CONFIG_OF_LIBFDT_OVERLAY=y
|
|
CONFIG_SPL_OF_LIBFDT=y
|
|
diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
|
|
index eaa93a5830..1909f3b0d6 100644
|
|
--- a/include/configs/stih410-b2260.h
|
|
+++ b/include/configs/stih410-b2260.h
|
|
@@ -20,13 +20,32 @@
|
|
|
|
#define CONFIG_SYS_HZ_CLOCK 1000000000 /* 1 GHz */
|
|
|
|
-#define CONFIG_BOOTARGS \
|
|
- "console=ttyS0,115200 earlyprintk consoleblank=0 ignore_loglevel"
|
|
-
|
|
+#include <config_distro_defaults.h>
|
|
/* Environment */
|
|
-#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
- "board= B2260" \
|
|
- "load_addr= #CONFIG_SYS_LOAD_ADDR \0"
|
|
+
|
|
+/* we assume that rootfs is located on second partition formatted in ext4 */
|
|
+#define CONFIG_BOOTARGS \
|
|
+ "console=ttyAS1,115200 CONSOLE=/dev/ttyAS1 consoleblank=0 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait mem=992M@0x40000000 vmalloc=256m"
|
|
+
|
|
+#define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR
|
|
+
|
|
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
|
|
+
|
|
+#define BOOT_TARGET_DEVICES(func) \
|
|
+ func(MMC, mmc, 0) \
|
|
+ func(USB, usb, 0) \
|
|
+ func(DHCP, dhcp, na)
|
|
+#include <config_distro_bootcmd.h>
|
|
+#define CONFIG_BOOTFILE "uImage"
|
|
+#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
+ "kernel_addr_r=0x40000000\0" \
|
|
+ "fdtfile=stih410-b2260.dtb\0" \
|
|
+ "fdt_addr_r=0x47000000\0" \
|
|
+ "scriptaddr=0x50000000\0" \
|
|
+ "fdt_high=0xffffffffffffffff\0" \
|
|
+ "initrd_high=0xffffffffffffffff\0" \
|
|
+ "ramdisk_addr_r=0x48000000\0" \
|
|
+ BOOTENV
|
|
|
|
#define CONFIG_ENV_SIZE 0x4000
|
|
|
|
--
|
|
2.13.3
|
|
|