From 8385a29af060b94ace4b28d763c0dcae39721d6a Mon Sep 17 00:00:00 2001 From: Robert Schwebel Date: Mon, 13 Nov 2017 15:12:39 +0100 Subject: barebox: version bump 2017.10.0 -> 2017.11.0 The vexpress series has been merged upstream and can be dropped. Signed-off-by: Robert Schwebel --- ...M-vexpress-always-build-relocatable-image.patch | 106 ---- ...late-clock-providers-before-other-devices.patch | 27 - .../0003-clk-versatile-add-basic-clocks.patch | 225 -------- ...-sp804-silently-ignore-secondary-instaces.patch | 28 - .../0005-mci-mmci-add-DT-support.patch | 82 --- ...s-switch-to-DT-probe-and-multi-image-buil.patch | 577 --------------------- .../0007-ARM-vexpress-regenerate-config.patch | 63 --- .../0008-docs-add-qemu-vexpress.patch | 38 -- ...e-device-tree-provided-by-QEMU-if-availab.patch | 50 -- ...ess-add-bootstate-node-to-the-device-tree.patch | 90 ---- ...se-add-funtion-to-copy-a-device-tree-node.patch | 50 -- ...s-add-fixup-handler-for-virtio-mmio-devic.patch | 54 -- ...glebone-add-state-entry-for-mmc0-and-mmc1.patch | 35 -- ...201-ARM-imx-add-support-for-Udoo-Neo-full.patch | 320 ------------ ...2017.10.0-pengutronix-multi_v7-20171007-1.patch | 22 - .../platform-v7a/patches/barebox-2017.10.0/series | 30 -- ...glebone-add-state-entry-for-mmc0-and-mmc1.patch | 35 ++ ...101-ARM-imx-add-support-for-Udoo-Neo-full.patch | 320 ++++++++++++ ...2017.11.0-pengutronix-multi_v7-20171113-1.patch | 22 + .../platform-v7a/patches/barebox-2017.11.0/series | 15 + 20 files changed, 392 insertions(+), 1797 deletions(-) delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0001-ARM-vexpress-always-build-relocatable-image.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0002-of-populate-clock-providers-before-other-devices.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0003-clk-versatile-add-basic-clocks.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0004-clocksource-sp804-silently-ignore-secondary-instaces.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0005-mci-mmci-add-DT-support.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0006-ARM-vexpress-switch-to-DT-probe-and-multi-image-buil.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0007-ARM-vexpress-regenerate-config.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0008-docs-add-qemu-vexpress.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0009-vexpress-use-device-tree-provided-by-QEMU-if-availab.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0010-vexpress-add-bootstate-node-to-the-device-tree.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0011-of-base-add-funtion-to-copy-a-device-tree-node.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0012-ARM-vexpress-add-fixup-handler-for-virtio-mmio-devic.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0101-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0201-ARM-imx-add-support-for-Udoo-Neo-full.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/0301-Release-2017.10.0-pengutronix-multi_v7-20171007-1.patch delete mode 100644 configs/platform-v7a/patches/barebox-2017.10.0/series create mode 100644 configs/platform-v7a/patches/barebox-2017.11.0/0001-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch create mode 100644 configs/platform-v7a/patches/barebox-2017.11.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch create mode 100644 configs/platform-v7a/patches/barebox-2017.11.0/0201-Release-2017.11.0-pengutronix-multi_v7-20171113-1.patch create mode 100644 configs/platform-v7a/patches/barebox-2017.11.0/series (limited to 'configs/platform-v7a/patches') diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0001-ARM-vexpress-always-build-relocatable-image.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0001-ARM-vexpress-always-build-relocatable-image.patch deleted file mode 100644 index de791cd..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0001-ARM-vexpress-always-build-relocatable-image.patch +++ /dev/null @@ -1,106 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 11:59:15 +0200 -Subject: [PATCH] ARM: vexpress: always build relocatable image - -This allows to make more space available for the malloc area and -allows us to drop the special CA9 defconfig, which had a different -text base. - -Signed-off-by: Lucas Stach ---- - arch/arm/configs/vexpress_ca9_defconfig | 52 --------------------------------- - arch/arm/configs/vexpress_defconfig | 1 + - arch/arm/mach-vexpress/Kconfig | 3 +- - 3 files changed, 3 insertions(+), 53 deletions(-) - delete mode 100644 arch/arm/configs/vexpress_ca9_defconfig - -diff --git a/arch/arm/configs/vexpress_ca9_defconfig b/arch/arm/configs/vexpress_ca9_defconfig -deleted file mode 100644 -index a1c42512d205..000000000000 ---- a/arch/arm/configs/vexpress_ca9_defconfig -+++ /dev/null -@@ -1,52 +0,0 @@ --CONFIG_ARCH_VEXPRESS=y --CONFIG_AEABI=y --CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y --CONFIG_TEXT_BASE=0x63f00000 --CONFIG_MALLOC_TLSF=y --CONFIG_PROMPT="vexpress: " --CONFIG_GLOB=y --CONFIG_HUSH_FANCY_PROMPT=y --CONFIG_CMDLINE_EDITING=y --CONFIG_AUTO_COMPLETE=y --CONFIG_MENU=y --CONFIG_BOOTM_SHOW_TYPE=y --CONFIG_BOOTM_VERBOSE=y --CONFIG_BOOTM_INITRD=y --CONFIG_PARTITION=y --CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y --CONFIG_LONGHELP=y --CONFIG_CMD_MEMINFO=y --# CONFIG_CMD_BOOTU is not set --CONFIG_CMD_GO=y --CONFIG_CMD_LOADB=y --CONFIG_CMD_RESET=y --CONFIG_CMD_UIMAGE=y --CONFIG_CMD_PARTITION=y --CONFIG_CMD_EXPORT=y --CONFIG_CMD_PRINTENV=y --CONFIG_CMD_SAVEENV=y --CONFIG_CMD_UNCOMPRESS=y --CONFIG_CMD_SLEEP=y --CONFIG_CMD_DHCP=y --CONFIG_CMD_PING=y --CONFIG_CMD_TFTP=y --CONFIG_CMD_ECHO_E=y --CONFIG_CMD_EDIT=y --CONFIG_CMD_LOGIN=y --CONFIG_CMD_MENU=y --CONFIG_CMD_MENU_MANAGEMENT=y --CONFIG_CMD_PASSWD=y --CONFIG_CMD_READLINE=y --CONFIG_CMD_TIMEOUT=y --CONFIG_CMD_CLK=y --CONFIG_CMD_OFTREE=y --CONFIG_NET=y --CONFIG_NET_NFS=y --CONFIG_NET_NETCONSOLE=y --CONFIG_NET_RESOLV=y --CONFIG_SERIAL_AMBA_PL011=y --CONFIG_DRIVER_NET_SMC91111=y --# CONFIG_SPI is not set --CONFIG_FS_TFTP=y --CONFIG_DIGEST_SHA1_GENERIC=y --CONFIG_DIGEST_SHA256_GENERIC=y -diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig -index 94fe1eaa72b1..e31da4a8c668 100644 ---- a/arch/arm/configs/vexpress_defconfig -+++ b/arch/arm/configs/vexpress_defconfig -@@ -1,6 +1,7 @@ - CONFIG_ARCH_VEXPRESS=y - CONFIG_AEABI=y - CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y -+CONFIG_MALLOC_SIZE=0x0 - CONFIG_MALLOC_TLSF=y - CONFIG_PROMPT="vexpress: " - CONFIG_GLOB=y -diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig -index bf1dd5a79150..1d5e293602f6 100644 ---- a/arch/arm/mach-vexpress/Kconfig -+++ b/arch/arm/mach-vexpress/Kconfig -@@ -2,13 +2,14 @@ if ARCH_VEXPRESS - - config ARCH_TEXT_BASE - hex -- default 0x83f00000 -+ default 0x0 - - choice - prompt "ARM Board type" - - config MACH_VEXPRESS - bool "ARM Vexpress" -+ select RELOCATABLE - - endchoice - diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0002-of-populate-clock-providers-before-other-devices.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0002-of-populate-clock-providers-before-other-devices.patch deleted file mode 100644 index 9bb617b..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0002-of-populate-clock-providers-before-other-devices.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 17:52:18 +0200 -Subject: [PATCH] of: populate clock providers before other devices - -Clocks are a basic resource, which may be needed early by other -devices or even the bus driver (as is the case with the ARM AMBA -bus). Register them before populating other devices. - -Signed-off-by: Lucas Stach ---- - drivers/of/base.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/of/base.c b/drivers/of/base.c -index 95bea4ee836d..fb4d2c03946e 100644 ---- a/drivers/of/base.c -+++ b/drivers/of/base.c -@@ -1938,8 +1938,8 @@ int of_probe(void) - if (memory) - of_add_memory(memory, false); - -- of_platform_populate(root_node, of_default_bus_match_table, NULL); - of_clk_init(root_node, NULL); -+ of_platform_populate(root_node, of_default_bus_match_table, NULL); - - return 0; - } diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0003-clk-versatile-add-basic-clocks.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0003-clk-versatile-add-basic-clocks.patch deleted file mode 100644 index c992c53..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0003-clk-versatile-add-basic-clocks.patch +++ /dev/null @@ -1,225 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 18:47:47 +0200 -Subject: [PATCH] clk: versatile: add basic clocks - -This adds the necessary basic clocks used on the ARM versatile -platforms. - -Signed-off-by: Lucas Stach ---- - drivers/clk/Makefile | 1 + - drivers/clk/vexpress/Makefile | 1 + - drivers/clk/vexpress/clk-sp810.c | 137 ++++++++++++++++++++++++++++++++ - drivers/clk/vexpress/clk-vexpress-osc.c | 42 ++++++++++ - 4 files changed, 181 insertions(+) - create mode 100644 drivers/clk/vexpress/Makefile - create mode 100644 drivers/clk/vexpress/clk-sp810.c - create mode 100644 drivers/clk/vexpress/clk-vexpress-osc.c - -diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile -index b5abe1cdf5db..a36a8db03bdb 100644 ---- a/drivers/clk/Makefile -+++ b/drivers/clk/Makefile -@@ -12,3 +12,4 @@ obj-$(CONFIG_CLK_SOCFPGA) += socfpga/ - obj-$(CONFIG_MACH_MIPS_ATH79) += clk-ar933x.o - obj-$(CONFIG_ARCH_IMX) += imx/ - obj-$(CONFIG_COMMON_CLK_AT91) += at91/ -+obj-$(CONFIG_MACH_VEXPRESS) += vexpress/ -diff --git a/drivers/clk/vexpress/Makefile b/drivers/clk/vexpress/Makefile -new file mode 100644 -index 000000000000..c6869bac8365 ---- /dev/null -+++ b/drivers/clk/vexpress/Makefile -@@ -0,0 +1 @@ -+obj-y += clk-vexpress-osc.o clk-sp810.o -diff --git a/drivers/clk/vexpress/clk-sp810.c b/drivers/clk/vexpress/clk-sp810.c -new file mode 100644 -index 000000000000..dc57b74e0848 ---- /dev/null -+++ b/drivers/clk/vexpress/clk-sp810.c -@@ -0,0 +1,137 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Copyright (C) 2013 ARM Limited -+ */ -+ -+//#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* sysctl registers offset */ -+#define SCCTRL 0x000 -+#define SCCTRL_TIMERENnSEL_SHIFT(n) (15 + ((n) * 2)) -+ -+struct clk_sp810; -+ -+struct clk_sp810_timerclken { -+ struct clk hw; -+ struct clk_sp810 *sp810; -+ int channel; -+}; -+ -+static inline struct clk_sp810_timerclken * -+to_clk_sp810_timerclken(struct clk *clk) -+{ -+ return container_of(clk, struct clk_sp810_timerclken, hw); -+} -+ -+struct clk_sp810 { -+ struct device_node *node; -+ void __iomem *base; -+ struct clk_sp810_timerclken timerclken[4]; -+}; -+ -+static int clk_sp810_timerclken_get_parent(struct clk *hw) -+{ -+ struct clk_sp810_timerclken *timerclken = to_clk_sp810_timerclken(hw); -+ u32 val = readl(timerclken->sp810->base + SCCTRL); -+ -+ return !!(val & (1 << SCCTRL_TIMERENnSEL_SHIFT(timerclken->channel))); -+} -+ -+static int clk_sp810_timerclken_set_parent(struct clk *hw, u8 index) -+{ -+ struct clk_sp810_timerclken *timerclken = to_clk_sp810_timerclken(hw); -+ struct clk_sp810 *sp810 = timerclken->sp810; -+ u32 val, shift = SCCTRL_TIMERENnSEL_SHIFT(timerclken->channel); -+ -+ if (WARN_ON(index > 1)) -+ return -EINVAL; -+ -+ val = readl(sp810->base + SCCTRL); -+ val &= ~(1 << shift); -+ val |= index << shift; -+ writel(val, sp810->base + SCCTRL); -+ -+ return 0; -+} -+ -+static const struct clk_ops clk_sp810_timerclken_ops = { -+ .get_parent = clk_sp810_timerclken_get_parent, -+ .set_parent = clk_sp810_timerclken_set_parent, -+}; -+ -+static struct clk *clk_sp810_timerclken_of_get(struct of_phandle_args *clkspec, -+ void *data) -+{ -+ struct clk_sp810 *sp810 = data; -+ -+ if (WARN_ON(clkspec->args_count != 1 || -+ clkspec->args[0] >= ARRAY_SIZE(sp810->timerclken))) -+ return NULL; -+ -+ return &sp810->timerclken[clkspec->args[0]].hw; -+} -+ -+static void clk_sp810_of_setup(struct device_node *node) -+{ -+ struct clk_sp810 *sp810 = xzalloc(sizeof(*sp810)); -+ const char *parent_names[2]; -+ int num = ARRAY_SIZE(parent_names); -+ char name[12]; -+ static int instance; -+ int i; -+ bool deprecated; -+ -+ if (!sp810) -+ return; -+ -+ if (of_clk_parent_fill(node, parent_names, num) != num) { -+ pr_warn("Failed to obtain parent clocks for SP810!\n"); -+ kfree(sp810); -+ return; -+ } -+ -+ sp810->node = node; -+ sp810->base = of_iomap(node, 0); -+ -+ deprecated = !of_find_property(node, "assigned-clock-parents", NULL); -+ -+ for (i = 0; i < ARRAY_SIZE(sp810->timerclken); i++) { -+ snprintf(name, sizeof(name), "sp810_%d_%d", instance, i); -+ -+ sp810->timerclken[i].sp810 = sp810; -+ sp810->timerclken[i].channel = i; -+ sp810->timerclken[i].hw.name = strdup(name); -+ sp810->timerclken[i].hw.parent_names = parent_names; -+ sp810->timerclken[i].hw.num_parents = num; -+ sp810->timerclken[i].hw.ops = &clk_sp810_timerclken_ops; -+ -+ /* -+ * If DT isn't setting the parent, force it to be -+ * the 1 MHz clock without going through the framework. -+ * We do this before clk_register() so that it can determine -+ * the parent and setup the tree properly. -+ */ -+ if (deprecated) -+ clk_sp810_timerclken_set_parent(&sp810->timerclken[i].hw, 1); -+ -+ clk_register(&sp810->timerclken[i].hw); -+ } -+ -+ of_clk_add_provider(node, clk_sp810_timerclken_of_get, sp810); -+ instance++; -+} -+CLK_OF_DECLARE(sp810, "arm,sp810", clk_sp810_of_setup); -diff --git a/drivers/clk/vexpress/clk-vexpress-osc.c b/drivers/clk/vexpress/clk-vexpress-osc.c -new file mode 100644 -index 000000000000..c0d6e6066ecd ---- /dev/null -+++ b/drivers/clk/vexpress/clk-vexpress-osc.c -@@ -0,0 +1,42 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+/* -+ * This represents the vexpress-osc as a fixed clock, which isn't really -+ * accurate, as this clock allows rate changes in real implementations. As those -+ * would need access to the config bus, a whole lot more infrastructure would be -+ * needed. We skip this complication for now, as we don't have a use-case, yet. -+ */ -+static int vexpress_osc_setup(struct device_node *node) -+{ -+ struct clk *clk; -+ u32 range[2]; -+ const char *name; -+ -+ if (of_property_read_u32_array(node, "freq-range", range, -+ ARRAY_SIZE(range))) -+ return -EINVAL; -+ -+ if (of_property_read_string(node, "clock-output-names", &name)) -+ return -EINVAL; -+ -+ clk = clk_fixed(name, range[0]); -+ if (IS_ERR(clk)) -+ return PTR_ERR(clk); -+ -+ return of_clk_add_provider(node, of_clk_src_simple_get, clk); -+} -+CLK_OF_DECLARE(vexpress_osc, "arm,vexpress-osc", vexpress_osc_setup); diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0004-clocksource-sp804-silently-ignore-secondary-instaces.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0004-clocksource-sp804-silently-ignore-secondary-instaces.patch deleted file mode 100644 index e61865e..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0004-clocksource-sp804-silently-ignore-secondary-instaces.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 18:54:54 +0200 -Subject: [PATCH] clocksource: sp804: silently ignore secondary instaces - -When probing from an upstream DT, we don't always have influence on -how many timer instances are enabled. Just use the first one and -silently skip the other instances. - -Signed-off-by: Lucas Stach ---- - drivers/clocksource/amba-sp804.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/clocksource/amba-sp804.c b/drivers/clocksource/amba-sp804.c -index c5ad9947cd96..66e3988b4cf8 100644 ---- a/drivers/clocksource/amba-sp804.c -+++ b/drivers/clocksource/amba-sp804.c -@@ -35,8 +35,8 @@ static int sp804_probe(struct amba_device *dev, const struct amba_id *id) - int ret; - - if (sp804_base) { -- dev_err(&dev->dev, "single instance driver\n"); -- return -EBUSY; -+ dev_dbg(&dev->dev, "skipping secondary instance\n"); -+ return 0; - } - - sp804_clk = clk_get(&dev->dev, NULL); diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0005-mci-mmci-add-DT-support.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0005-mci-mmci-add-DT-support.patch deleted file mode 100644 index 2564644..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0005-mci-mmci-add-DT-support.patch +++ /dev/null @@ -1,82 +0,0 @@ -From: Lucas Stach -Date: Mon, 4 Sep 2017 11:43:38 +0200 -Subject: [PATCH] mci: mmci: add DT support - -Just adds the minimal implementation to fill platform_data from -the DT properties with Linux binding. - -Signed-off-by: Lucas Stach ---- - drivers/mci/mmci.c | 39 ++++++++++++++++++++++++++++++++++++--- - 1 file changed, 36 insertions(+), 3 deletions(-) - -diff --git a/drivers/mci/mmci.c b/drivers/mci/mmci.c -index 7489ee03a13c..f45557d4f7be 100644 ---- a/drivers/mci/mmci.c -+++ b/drivers/mci/mmci.c -@@ -532,9 +532,37 @@ static void mci_set_ios(struct mci_host *mci, struct mci_ios *ios) - udelay(CLK_CHANGE_DELAY); - } - -+static int mmci_of_parse(struct device_node *np, -+ struct mmci_platform_data *plat) -+{ -+ if (!IS_ENABLED(CONFIG_OFDEVICE)) -+ return 0; -+ -+ if (of_get_property(np, "st,sig-dir-dat0", NULL)) -+ plat->sigdir |= MCI_ST_DATA0DIREN; -+ if (of_get_property(np, "st,sig-dir-dat2", NULL)) -+ plat->sigdir |= MCI_ST_DATA2DIREN; -+ if (of_get_property(np, "st,sig-dir-dat31", NULL)) -+ plat->sigdir |= MCI_ST_DATA31DIREN; -+ if (of_get_property(np, "st,sig-dir-dat74", NULL)) -+ plat->sigdir |= MCI_ST_DATA74DIREN; -+ if (of_get_property(np, "st,sig-dir-cmd", NULL)) -+ plat->sigdir |= MCI_ST_CMDDIREN; -+ if (of_get_property(np, "st,sig-pin-fbclk", NULL)) -+ plat->sigdir |= MCI_ST_FBCLKEN; -+ -+ if (of_get_property(np, "mmc-cap-mmc-highspeed", NULL)) -+ plat->capabilities |= MMC_CAP_MMC_HIGHSPEED; -+ if (of_get_property(np, "mmc-cap-sd-highspeed", NULL)) -+ plat->capabilities |= MMC_CAP_SD_HIGHSPEED; -+ -+ return 0; -+} -+ - static int mmci_probe(struct amba_device *dev, const struct amba_id *id) - { - struct device_d *hw_dev = &dev->dev; -+ struct device_node *np = hw_dev->device_node; - struct mmci_platform_data *plat = hw_dev->platform_data; - struct variant_data *variant = id->data; - u32 sdi_u32; -@@ -542,11 +570,16 @@ static int mmci_probe(struct amba_device *dev, const struct amba_id *id) - struct clk *clk; - int ret; - -- if (!plat) { -- dev_err(hw_dev, "missing platform data\n"); -+ if (!plat && !np) { -+ dev_err(hw_dev, "missing platform data or DT node\n"); - return -EINVAL; - } - -+ if (!plat) -+ plat = xzalloc(sizeof(*plat)); -+ -+ mmci_of_parse(np, plat); -+ - host = xzalloc(sizeof(*host)); - - host->base = amba_get_mem_region(dev); -@@ -625,7 +658,7 @@ static int mmci_probe(struct amba_device *dev, const struct amba_id *id) - host->mci.max_req_size = (1 << variant->datalength_bits) - 1; - - host->mci.host_caps = plat->capabilities; -- host->mci.voltages = plat->ocr_mask; -+ host->mci.voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | plat->ocr_mask; - - mci_register(&host->mci); - diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0006-ARM-vexpress-switch-to-DT-probe-and-multi-image-buil.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0006-ARM-vexpress-switch-to-DT-probe-and-multi-image-buil.patch deleted file mode 100644 index a788723..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0006-ARM-vexpress-switch-to-DT-probe-and-multi-image-buil.patch +++ /dev/null @@ -1,577 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 14:07:05 +0200 -Subject: [PATCH] ARM: vexpress: switch to DT probe and multi-image build - -This switches the VExpress support to use an internal DT, instead -of probing the peripherals from a board file. It also switches to -a multi-iamge build with both CA9 and CA15 variants of the VExpress -board being supported. - -Signed-off-by: Lucas Stach ---- - arch/arm/boards/vexpress/Makefile | 2 - - .../arm/boards/vexpress/defaultenv-vexpress/config | 38 ------- - arch/arm/boards/vexpress/init.c | 115 +-------------------- - arch/arm/boards/vexpress/lowlevel.c | 20 +++- - arch/arm/dts/Makefile | 2 + - arch/arm/dts/vexpress-v2p-ca15.dts | 27 +++++ - arch/arm/dts/vexpress-v2p-ca9.dts | 27 +++++ - arch/arm/mach-vexpress/Kconfig | 4 + - arch/arm/mach-vexpress/Makefile | 1 - - arch/arm/mach-vexpress/devices.c | 83 --------------- - arch/arm/mach-vexpress/include/mach/devices.h | 9 -- - arch/arm/mach-vexpress/v2m.c | 38 ------- - images/Makefile | 1 + - images/Makefile.vexpress | 11 ++ - 14 files changed, 93 insertions(+), 285 deletions(-) - delete mode 100644 arch/arm/boards/vexpress/defaultenv-vexpress/config - create mode 100644 arch/arm/dts/vexpress-v2p-ca15.dts - create mode 100644 arch/arm/dts/vexpress-v2p-ca9.dts - delete mode 100644 arch/arm/mach-vexpress/devices.c - create mode 100644 images/Makefile.vexpress - -diff --git a/arch/arm/boards/vexpress/Makefile b/arch/arm/boards/vexpress/Makefile -index c89d7bf182d0..2da0494d49b3 100644 ---- a/arch/arm/boards/vexpress/Makefile -+++ b/arch/arm/boards/vexpress/Makefile -@@ -1,4 +1,2 @@ - obj-y += init.o -- - lwl-y += lowlevel.o --bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-vexpress -diff --git a/arch/arm/boards/vexpress/defaultenv-vexpress/config b/arch/arm/boards/vexpress/defaultenv-vexpress/config -deleted file mode 100644 -index 6c0abda40c12..000000000000 ---- a/arch/arm/boards/vexpress/defaultenv-vexpress/config -+++ /dev/null -@@ -1,38 +0,0 @@ --#!/bin/sh -- --# use 'dhcp' to do dhcp in barebox and in kernel --# use 'none' if you want to skip kernel ip autoconfiguration --ip=dhcp --global.dhcp.vendor_id=barebox-${global.hostname} -- --# or set your networking parameters here --#eth0.ipaddr=a.b.c.d --#eth0.netmask=a.b.c.d --#eth0.gateway=a.b.c.d --#eth0.serverip=a.b.c.d -- --# can be either 'nfs', 'tftp' or 'nor' --kernel_loc=tftp --# can be either 'net', 'nor' or 'initrd' --rootfs_loc=initrd -- --# can be either 'jffs2' or 'ubifs' --rootfs_type=ubifs --rootfsimage=root.$rootfs_type -- --kernelimage=zImage --#kernelimage=uImage --#kernelimage=Image --#kernelimage=Image.lzo -- --nfsroot="$eth0.serverip:/opt/work/busybox/arm9/rootfs_arm" -- --nor_parts="256k(barebox)ro,64k(bareboxenv),1536k(kernel),-(root)" --rootfs_mtdblock_nor=3 -- --autoboot_timeout=3 -- --bootargs="console=ttyAMA0,115200n8 CONSOLE=/dev/ttyAMA0" -- --# set a fancy prompt (if support is compiled in) --PS1="\e[1;31m[barebox@\h]:\w\e[0m\n# " -diff --git a/arch/arm/boards/vexpress/init.c b/arch/arm/boards/vexpress/init.c -index f89dff939231..1bbc8c347638 100644 ---- a/arch/arm/boards/vexpress/init.c -+++ b/arch/arm/boards/vexpress/init.c -@@ -11,129 +11,23 @@ - #include - #include - #include --#include - #include - #include - #include - #include - #include --#include -- --struct vexpress_init { -- void (*core_init)(void); -- void (*mem_init)(void); -- void (*console_init)(void); -- void (*devices_init)(void); --}; -- --struct mmci_platform_data mmci_plat = { -- .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, -- .clkdiv_init = SDI_CLKCR_CLKDIV_INIT, --}; -- --struct vexpress_init *v2m_init; -- --static void vexpress_ax_mem_init(void) --{ -- vexpress_add_ddram(SZ_512M); --} - - #define V2M_SYS_FLASH 0x03c - --static void vexpress_ax_devices_init(void) --{ -- add_cfi_flash_device(0, 0x08000000, SZ_64M, 0); -- add_cfi_flash_device(1, 0x0c000000, SZ_64M, 0); -- vexpress_register_mmc(&mmci_plat); -- add_generic_device("smc911x", DEVICE_ID_DYNAMIC, NULL, 0x1a000000, -- 64 * 1024, IORESOURCE_MEM, NULL); --} -- --static void vexpress_ax_console_init(void) --{ -- vexpress_register_uart(0); -- vexpress_register_uart(1); -- vexpress_register_uart(2); -- vexpress_register_uart(3); --} -- --struct vexpress_init vexpress_init_ax = { -- .core_init = vexpress_init, -- .mem_init = vexpress_ax_mem_init, -- .console_init = vexpress_ax_console_init, -- .devices_init = vexpress_ax_devices_init, --}; -- --static void vexpress_a9_legacy_mem_init(void) --{ -- vexpress_a9_legacy_add_ddram(SZ_512M, SZ_512M); --} -- --static void vexpress_a9_legacy_devices_init(void) --{ -- add_cfi_flash_device(0, 0x40000000, SZ_64M, 0); -- add_cfi_flash_device(1, 0x44000000, SZ_64M, 0); -- add_generic_device("smc911x", DEVICE_ID_DYNAMIC, NULL, 0x4e000000, -- 64 * 1024, IORESOURCE_MEM, NULL); -- vexpress_a9_legacy_register_mmc(&mmci_plat); -- armlinux_set_architecture(MACH_TYPE_VEXPRESS); --} -- --static void vexpress_a9_legacy_console_init(void) --{ -- vexpress_a9_legacy_register_uart(0); -- vexpress_a9_legacy_register_uart(1); -- vexpress_a9_legacy_register_uart(2); -- vexpress_a9_legacy_register_uart(3); --} -- --struct vexpress_init vexpress_init_a9_legacy = { -- .core_init = vexpress_a9_legacy_init, -- .mem_init = vexpress_a9_legacy_mem_init, -- .console_init = vexpress_a9_legacy_console_init, -- .devices_init = vexpress_a9_legacy_devices_init, --}; -- --static int vexpress_mem_init(void) --{ -- v2m_init->mem_init(); -- -- return 0; --} --mem_initcall(vexpress_mem_init); -- --static int vexpress_devices_init(void) --{ -- writel(1, v2m_sysreg_base + V2M_SYS_FLASH); -- v2m_init->devices_init(); -- -- devfs_add_partition("nor0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self"); -- devfs_add_partition("nor0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env0"); -- -- if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT_GENERIC)) -- defaultenv_append_directory(defaultenv_vexpress); -- -- return 0; --} --device_initcall(vexpress_devices_init); -- --static int vexpress_console_init(void) --{ -- v2m_init->console_init(); -- -- return 0; --} --console_initcall(vexpress_console_init); -- - static int vexpress_core_init(void) - { - char *hostname = "vexpress-unknown"; - - if (amba_is_arm_sp804(IOMEM(0x10011000))) { -- v2m_init = &vexpress_init_a9_legacy; -+ vexpress_a9_legacy_init(); - hostname = "vexpress-a9-legacy"; - } else { -- v2m_init = &vexpress_init_ax; -+ vexpress_init(); - if (cpu_is_cortex_a5()) - hostname = "vexpress-a5"; - else if (cpu_is_cortex_a7()) -@@ -144,10 +38,9 @@ static int vexpress_core_init(void) - hostname = "vexpress-a15"; - } - -- barebox_set_model("ARM Vexpress"); -- barebox_set_hostname(hostname); -+ writel(1, v2m_sysreg_base + V2M_SYS_FLASH); - -- v2m_init->core_init(); -+ barebox_set_hostname(hostname); - - return 0; - } -diff --git a/arch/arm/boards/vexpress/lowlevel.c b/arch/arm/boards/vexpress/lowlevel.c -index 204d29d8f098..0a226b295c2a 100644 ---- a/arch/arm/boards/vexpress/lowlevel.c -+++ b/arch/arm/boards/vexpress/lowlevel.c -@@ -11,12 +11,26 @@ - #include - #include - --void __naked barebox_arm_reset_vector(void) -+static inline void start_vexpress_common(void *internal_dt) - { -+ void *fdt = internal_dt - get_runtime_offset(); -+ - arm_cpu_lowlevel_init(); - - if (amba_is_arm_sp804(IOMEM(0x10011000))) -- barebox_arm_entry(0x60000000, SZ_512M, NULL); -+ barebox_arm_entry(0x60000000, SZ_512M, fdt); - else -- barebox_arm_entry(0x80000000, SZ_512M, NULL); -+ barebox_arm_entry(0x80000000, SZ_512M, fdt); -+} -+ -+extern char __dtb_vexpress_v2p_ca9_start[]; -+ENTRY_FUNCTION(start_vexpress_ca9, r0, r1, r2) -+{ -+ start_vexpress_common(__dtb_vexpress_v2p_ca9_start); -+} -+ -+extern char __dtb_vexpress_v2p_ca15_start[]; -+ENTRY_FUNCTION(start_vexpress_ca15, r0, r1, r2) -+{ -+ start_vexpress_common(__dtb_vexpress_v2p_ca15_start); - } -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index cf9d8ea9402a..b5601a61c56d 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -91,6 +91,8 @@ pbl-dtb-$(CONFIG_MACH_TURRIS_OMNIA) += armada-385-turris-omnia-bb.dtb.o - pbl-dtb-$(CONFIG_MACH_UDOO) += imx6q-udoo.dtb.o - pbl-dtb-$(CONFIG_MACH_USI_TOPKICK) += kirkwood-topkick-bb.dtb.o - pbl-dtb-$(CONFIG_MACH_VARISCITE_MX6) += imx6q-var-custom.dtb.o -+pbl-dtb-$(CONFIG_MACH_VEXPRESS) += vexpress-v2p-ca9.dtb.o -+pbl-dtb-$(CONFIG_MACH_VEXPRESS) += vexpress-v2p-ca15.dtb.o - pbl-dtb-$(CONFIG_MACH_VSCOM_BALTOS) += am335x-baltos-minimal.dtb.o - pbl-dtb-$(CONFIG_MACH_WARP7) += imx7s-warp.dtb.o - pbl-dtb-$(CONFIG_MACH_VF610_TWR) += vf610-twr.dtb.o -diff --git a/arch/arm/dts/vexpress-v2p-ca15.dts b/arch/arm/dts/vexpress-v2p-ca15.dts -new file mode 100644 -index 000000000000..211eaccb6238 ---- /dev/null -+++ b/arch/arm/dts/vexpress-v2p-ca15.dts -@@ -0,0 +1,27 @@ -+#include -+ -+/ { -+ barebox_environment { -+ compatible = "barebox,environment"; -+ device-path = &barebox_env; -+ }; -+ -+ smb@8000000 { -+ motherboard { -+ flash@0,00000000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ partition@0 { -+ label = "barebox"; -+ reg = <0x0 0x80000>; -+ }; -+ -+ barebox_env: partition@80000 { -+ label = "barebox-environment"; -+ reg = <0x80000 0x80000>; -+ }; -+ }; -+ }; -+ }; -+}; -diff --git a/arch/arm/dts/vexpress-v2p-ca9.dts b/arch/arm/dts/vexpress-v2p-ca9.dts -new file mode 100644 -index 000000000000..541840ae22dc ---- /dev/null -+++ b/arch/arm/dts/vexpress-v2p-ca9.dts -@@ -0,0 +1,27 @@ -+#include -+ -+/ { -+ barebox_environment { -+ compatible = "barebox,environment"; -+ device-path = &barebox_env; -+ }; -+ -+ smb@4000000 { -+ motherboard { -+ flash@0,00000000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ partition@0 { -+ label = "barebox"; -+ reg = <0x0 0x80000>; -+ }; -+ -+ barebox_env: partition@80000 { -+ label = "barebox-environment"; -+ reg = <0x80000 0x80000>; -+ }; -+ }; -+ }; -+ }; -+}; -diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig -index 1d5e293602f6..aaa535f073a5 100644 ---- a/arch/arm/mach-vexpress/Kconfig -+++ b/arch/arm/mach-vexpress/Kconfig -@@ -10,6 +10,10 @@ choice - config MACH_VEXPRESS - bool "ARM Vexpress" - select RELOCATABLE -+ select HAVE_PBL_MULTI_IMAGES -+ select OFTREE -+ select OFDEVICE -+ select COMMON_CLK_OF_PROVIDER - - endchoice - -diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile -index 74b4a0feb2e2..9a06e648a6f1 100644 ---- a/arch/arm/mach-vexpress/Makefile -+++ b/arch/arm/mach-vexpress/Makefile -@@ -1,3 +1,2 @@ - obj-y += v2m.o --obj-y += devices.o - obj-y += reset.o -diff --git a/arch/arm/mach-vexpress/devices.c b/arch/arm/mach-vexpress/devices.c -deleted file mode 100644 -index 5b530119245d..000000000000 ---- a/arch/arm/mach-vexpress/devices.c -+++ /dev/null -@@ -1,83 +0,0 @@ --/* -- * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD -- * -- * GPLv2 only -- */ -- --#include -- --#include -- --#include -- --#include -- --void vexpress_a9_legacy_add_ddram(u32 ddr0_size, u32 ddr1_size) --{ -- arm_add_mem_device("ram0", 0x60000000, ddr0_size); -- -- if (ddr1_size) -- arm_add_mem_device("ram1", 0x80000000, ddr1_size); --} -- --void vexpress_a9_legacy_register_uart(unsigned id) --{ -- resource_size_t start; -- -- switch (id) { -- case 0: -- start = 0x10009000; -- break; -- case 1: -- start = 0x1000a000; -- break; -- case 2: -- start = 0x1000b000; -- break; -- case 3: -- start = 0x1000c000; -- break; -- default: -- return; -- } -- amba_apb_device_add(NULL, "uart-pl011", id, start, 4096, NULL, 0); --} -- --void vexpress_a9_legacy_register_mmc(struct mmci_platform_data *plat) --{ -- amba_apb_device_add(NULL, "mmci-pl18x", DEVICE_ID_SINGLE, 0x10005000, -- 4096, plat, 0); --} -- --void vexpress_add_ddram(u32 size) --{ -- arm_add_mem_device("ram1", 0x80000000, size); --} -- --void vexpress_register_uart(unsigned id) --{ -- resource_size_t start; -- -- switch (id) { -- case 0: -- start = 0x1c090000; -- break; -- case 1: -- start = 0x1c0a0000; -- break; -- case 2: -- start = 0x1c0b0000; -- break; -- case 3: -- start = 0x1c0c0000; -- break; -- default: -- return; -- } -- amba_apb_device_add(NULL, "uart-pl011", id, start, 4096, NULL, 0); --} -- --void vexpress_register_mmc(struct mmci_platform_data *plat) --{ -- amba_apb_device_add(NULL, "mmci-pl18x", DEVICE_ID_SINGLE, 0x1c050000, 4096, plat, 0); --} -diff --git a/arch/arm/mach-vexpress/include/mach/devices.h b/arch/arm/mach-vexpress/include/mach/devices.h -index 96d14005017e..bef8c8b94fb9 100644 ---- a/arch/arm/mach-vexpress/include/mach/devices.h -+++ b/arch/arm/mach-vexpress/include/mach/devices.h -@@ -9,18 +9,9 @@ - - #include - --void vexpress_a9_legacy_add_ddram(u32 ddr0_size, u32 ddr1_size); --void vexpress_add_ddram(u32 size); -- --void vexpress_a9_legacy_register_uart(unsigned id); --void vexpress_register_uart(unsigned id); -- - void vexpress_a9_legacy_init(void); - void vexpress_init(void); - --void vexpress_a9_legacy_register_mmc(struct mmci_platform_data *plat); --void vexpress_register_mmc(struct mmci_platform_data *plat); -- - extern void *v2m_wdt_base; - extern void *v2m_sysreg_base; - -diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c -index 025bbb17fc6e..35352628482c 100644 ---- a/arch/arm/mach-vexpress/v2m.c -+++ b/arch/arm/mach-vexpress/v2m.c -@@ -19,31 +19,6 @@ - - void __iomem *v2m_sysreg_base; - --static const char *v2m_osc2_periphs[] = { -- "mb:mmci", "mmci-pl18x", /* PL180 MMCI */ -- "mb:uart0", "uart-pl0110", /* PL011 UART0 */ -- "mb:uart1", "uart-pl0111", /* PL011 UART1 */ -- "mb:uart2", "uart-pl0112", /* PL011 UART2 */ -- "mb:uart3", "uart-pl0113", /* PL011 UART3 */ --}; -- --static void v2m_clk_init(void) --{ -- struct clk *clk; -- int i; -- -- clk = clk_fixed("dummy_apb_pclk", 0); -- clk_register_clkdev(clk, "apb_pclk", NULL); -- -- clk = clk_fixed("mb:sp804_clk", 1000000); -- clk_register_clkdev(clk, NULL, "sp804"); -- -- clk = clk_fixed("mb:osc2", 24000000); -- for (i = 0; i < ARRAY_SIZE(v2m_osc2_periphs); i++) -- clk_register_clkdev(clk, NULL, v2m_osc2_periphs[i]); -- --} -- - static void v2m_sysctl_init(void __iomem *base) - { - u32 scctrl; -@@ -58,21 +33,11 @@ static void v2m_sysctl_init(void __iomem *base) - writel(scctrl, base + SCCTRL); - } - --static void __init v2m_sp804_init(void __iomem *base) --{ -- writel(0, base + TIMER_1_BASE + TIMER_CTRL); -- -- amba_apb_device_add(NULL, "sp804", DEVICE_ID_SINGLE, (resource_size_t)base, 4096, NULL, 0); --} -- - void vexpress_a9_legacy_init(void) - { - v2m_wdt_base = IOMEM(0x1000f000); - v2m_sysreg_base = IOMEM(0x10001000); - v2m_sysctl_init(IOMEM(0x10001000)); -- v2m_clk_init(); -- -- v2m_sp804_init(IOMEM(0x10011000)); - } - - void vexpress_init(void) -@@ -80,7 +45,4 @@ void vexpress_init(void) - v2m_wdt_base = IOMEM(0x1c0f0000); - v2m_sysreg_base = IOMEM(0x1c020000); - v2m_sysctl_init(IOMEM(0x1c020000)); -- v2m_clk_init(); -- -- v2m_sp804_init(IOMEM(0x1c110000)); - } -diff --git a/images/Makefile b/images/Makefile -index 705c8ad03eda..5c4d99ac5add 100644 ---- a/images/Makefile -+++ b/images/Makefile -@@ -111,6 +111,7 @@ include $(srctree)/images/Makefile.omap3 - include $(srctree)/images/Makefile.rockchip - include $(srctree)/images/Makefile.socfpga - include $(srctree)/images/Makefile.tegra -+include $(srctree)/images/Makefile.vexpress - include $(srctree)/images/Makefile.at91 - - targets += $(image-y) pbl.lds barebox.x barebox.z -diff --git a/images/Makefile.vexpress b/images/Makefile.vexpress -new file mode 100644 -index 000000000000..0f12dc12a534 ---- /dev/null -+++ b/images/Makefile.vexpress -@@ -0,0 +1,11 @@ -+# -+# barebox image generation Makefile for VExpress images -+# -+ -+pblx-$(CONFIG_MACH_VEXPRESS) += start_vexpress_ca9 -+FILE_barebox-vexpress-ca9.img = start_vexpress_ca9.pblx -+image-$(CONFIG_MACH_VEXPRESS) += barebox-vexpress-ca9.img -+ -+pblx-$(CONFIG_MACH_VEXPRESS) += start_vexpress_ca15 -+FILE_barebox-vexpress-ca15.img = start_vexpress_ca15.pblx -+image-$(CONFIG_MACH_VEXPRESS) += barebox-vexpress-ca15.img diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0007-ARM-vexpress-regenerate-config.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0007-ARM-vexpress-regenerate-config.patch deleted file mode 100644 index a370a27..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0007-ARM-vexpress-regenerate-config.patch +++ /dev/null @@ -1,63 +0,0 @@ -From: Lucas Stach -Date: Fri, 1 Sep 2017 19:08:04 +0200 -Subject: [PATCH] ARM: vexpress: regenerate config - -Enable some more features, so the default configuration gets more -in line with other platforms. - -Signed-off-by: Lucas Stach ---- - arch/arm/configs/vexpress_defconfig | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig -index e31da4a8c668..f6a57de75cd9 100644 ---- a/arch/arm/configs/vexpress_defconfig -+++ b/arch/arm/configs/vexpress_defconfig -@@ -4,7 +4,6 @@ CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y - CONFIG_MALLOC_SIZE=0x0 - CONFIG_MALLOC_TLSF=y - CONFIG_PROMPT="vexpress: " --CONFIG_GLOB=y - CONFIG_HUSH_FANCY_PROMPT=y - CONFIG_CMDLINE_EDITING=y - CONFIG_AUTO_COMPLETE=y -@@ -12,9 +11,10 @@ CONFIG_MENU=y - CONFIG_BOOTM_SHOW_TYPE=y - CONFIG_BOOTM_VERBOSE=y - CONFIG_BOOTM_INITRD=y --CONFIG_PARTITION=y --CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y -+CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y -+CONFIG_CMD_DMESG=y - CONFIG_LONGHELP=y -+CONFIG_CMD_IOMEM=y - CONFIG_CMD_MEMINFO=y - # CONFIG_CMD_BOOTU is not set - CONFIG_CMD_GO=y -@@ -38,15 +38,25 @@ CONFIG_CMD_MENU_MANAGEMENT=y - CONFIG_CMD_PASSWD=y - CONFIG_CMD_READLINE=y - CONFIG_CMD_TIMEOUT=y -+CONFIG_CMD_CRC=y -+CONFIG_CMD_CRC_CMP=y - CONFIG_CMD_CLK=y -+CONFIG_CMD_DETECT=y - CONFIG_CMD_OFTREE=y - CONFIG_NET=y - CONFIG_NET_NFS=y - CONFIG_NET_NETCONSOLE=y - CONFIG_NET_RESOLV=y -+CONFIG_OF_BAREBOX_DRIVERS=y - CONFIG_SERIAL_AMBA_PL011=y - CONFIG_DRIVER_NET_SMC91111=y - # CONFIG_SPI is not set -+CONFIG_MTD=y -+CONFIG_MTD_CONCAT=y -+CONFIG_DRIVER_CFI=y -+CONFIG_MCI=y -+CONFIG_MCI_MMCI=y -+# CONFIG_PINCTRL is not set - CONFIG_FS_TFTP=y - CONFIG_DIGEST_SHA1_GENERIC=y - CONFIG_DIGEST_SHA256_GENERIC=y diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0008-docs-add-qemu-vexpress.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0008-docs-add-qemu-vexpress.patch deleted file mode 100644 index 989dbb6..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0008-docs-add-qemu-vexpress.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Lucas Stach -Date: Mon, 4 Sep 2017 12:22:06 +0200 -Subject: [PATCH] docs: add qemu vexpress - -Add a basic command line for QEMU vexpress. - -Signed-off-by: Lucas Stach ---- - Documentation/boards/arm-qemu-vexpress.rst | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - create mode 100644 Documentation/boards/arm-qemu-vexpress.rst - -diff --git a/Documentation/boards/arm-qemu-vexpress.rst b/Documentation/boards/arm-qemu-vexpress.rst -new file mode 100644 -index 000000000000..dcbac8e62557 ---- /dev/null -+++ b/Documentation/boards/arm-qemu-vexpress.rst -@@ -0,0 +1,20 @@ -+QEMU vexpress -+======= -+ -+ARM Qemu vexpress -+----------------- -+ -+Running barebox on QEMU vexpress machine -+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+ -+Usage:: -+ -+ $ qemu-system-arm -m 1024M \ -+ -machine vexpress-a9 -cpu cortex-a9 \ -+ -nographic -no-reboot \ -+ -kernel images/barebox-vexpress-ca9.img -+ -+ $ qemu-system-arm -m 1024M \ -+ -machine vexpress-a15 -cpu cortex-a15 \ -+ -nographic -no-reboot \ -+ -kernel images/barebox-vexpress-ca15.img diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0009-vexpress-use-device-tree-provided-by-QEMU-if-availab.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0009-vexpress-use-device-tree-provided-by-QEMU-if-availab.patch deleted file mode 100644 index d6d8171..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0009-vexpress-use-device-tree-provided-by-QEMU-if-availab.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Michael Olbrich -Date: Sat, 10 Sep 2016 17:40:56 +0200 -Subject: [PATCH] vexpress: use device tree provided by QEMU if available - -Signed-off-by: Michael Olbrich ---- - arch/arm/boards/vexpress/lowlevel.c | 20 ++++++++++++++++++-- - 1 file changed, 18 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/boards/vexpress/lowlevel.c b/arch/arm/boards/vexpress/lowlevel.c -index 0a226b295c2a..9fe7c836b7b6 100644 ---- a/arch/arm/boards/vexpress/lowlevel.c -+++ b/arch/arm/boards/vexpress/lowlevel.c -@@ -9,18 +9,34 @@ - #include - #include - #include -+#include - #include - - static inline void start_vexpress_common(void *internal_dt) - { - void *fdt = internal_dt - get_runtime_offset(); -+ unsigned long membase, memsize = SZ_512M; - - arm_cpu_lowlevel_init(); - - if (amba_is_arm_sp804(IOMEM(0x10011000))) -- barebox_arm_entry(0x60000000, SZ_512M, fdt); -+ membase = 0x60000000; - else -- barebox_arm_entry(0x80000000, SZ_512M, fdt); -+ membase = 0x80000000; -+ -+ /* QEMU may put a DTB at the start of RAM */ -+ if (IS_ENABLED(CONFIG_OFDEVICE) && -+ get_unaligned_be32((void*)membase) == FDT_MAGIC) { -+ fdt = (void*)membase; -+ /* -+ * Need to move membase a bit as the PBL wants to relocate -+ * to the start of RAM, which would overwrite the DTB. -+ */ -+ membase += SZ_4M; -+ memsize -= SZ_4M; -+ } -+ -+ barebox_arm_entry(membase, memsize, fdt); - } - - extern char __dtb_vexpress_v2p_ca9_start[]; diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0010-vexpress-add-bootstate-node-to-the-device-tree.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0010-vexpress-add-bootstate-node-to-the-device-tree.patch deleted file mode 100644 index 27cfa0b..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0010-vexpress-add-bootstate-node-to-the-device-tree.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Michael Olbrich -Date: Sat, 10 Sep 2016 17:54:20 +0200 -Subject: [PATCH] vexpress: add bootstate node to the device tree - -Signed-off-by: Michael Olbrich ---- - arch/arm/dts/vexpress-v2p-ca9.dts | 63 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 63 insertions(+) - -diff --git a/arch/arm/dts/vexpress-v2p-ca9.dts b/arch/arm/dts/vexpress-v2p-ca9.dts -index 541840ae22dc..d0975330f205 100644 ---- a/arch/arm/dts/vexpress-v2p-ca9.dts -+++ b/arch/arm/dts/vexpress-v2p-ca9.dts -@@ -6,6 +6,10 @@ - device-path = &barebox_env; - }; - -+ aliases { -+ state = &state; -+ }; -+ - smb@4000000 { - motherboard { - flash@0,00000000 { -@@ -21,6 +25,65 @@ - label = "barebox-environment"; - reg = <0x80000 0x80000>; - }; -+ -+ state_storage: partition@100000 { -+ label = "barebox-state"; -+ reg = <0x100000 0x100000>; -+ }; -+ }; -+ }; -+ }; -+ -+ /* State: mutable part */ -+ state: state { -+ magic = <0x4d433230>; -+ compatible = "barebox,state"; -+ backend-type = "raw"; -+ backend = <&state_storage>; -+ backend-stridesize = <0x40>; -+ backend-storage-type = "circular"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ bootstate { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ system0 { /* the node's name here must match the subnode's name in the 'bootstate' node */ -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ remaining_attempts@0 { -+ reg = <0x0 0x4>; -+ type = "uint32"; -+ default = <3>; -+ }; -+ priority@4 { -+ reg = <0x4 0x4>; -+ type = "uint32"; -+ default = <20>; -+ }; -+ }; -+ -+ system1 { /* the node's name here must match the subnode's name in the 'bootstate' node */ -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ remaining_attempts@8 { -+ reg = <0x8 0x4>; -+ type = "uint32"; -+ default = <3>; -+ }; -+ priority@c { -+ reg = <0xC 0x4>; -+ type = "uint32"; -+ default = <20>; -+ }; -+ }; -+ -+ last_chosen@10 { -+ reg = <0x10 0x4>; -+ type = "uint32"; - }; - }; - }; diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0011-of-base-add-funtion-to-copy-a-device-tree-node.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0011-of-base-add-funtion-to-copy-a-device-tree-node.patch deleted file mode 100644 index d999258..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0011-of-base-add-funtion-to-copy-a-device-tree-node.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Michael Olbrich -Date: Tue, 13 Sep 2016 21:17:12 +0200 -Subject: [PATCH] of: base: add funtion to copy a device tree node - -Signed-off-by: Michael Olbrich ---- - drivers/of/base.c | 16 ++++++++++++++++ - include/of.h | 2 ++ - 2 files changed, 18 insertions(+) - -diff --git a/drivers/of/base.c b/drivers/of/base.c -index fb4d2c03946e..3ca13ae44e5c 100644 ---- a/drivers/of/base.c -+++ b/drivers/of/base.c -@@ -1988,6 +1988,22 @@ out: - return dn; - } - -+struct device_node *of_copy_node(struct device_node *parent, const struct device_node *other) -+{ -+ struct device_node *np, *child; -+ struct property *pp; -+ -+ np = of_new_node(parent, other->name); -+ -+ list_for_each_entry(pp, &other->properties, list) -+ of_new_property(np, pp->name, pp->value, pp->length); -+ -+ for_each_child_of_node(other, child) -+ of_copy_node(np, child); -+ -+ return np; -+} -+ - void of_delete_node(struct device_node *node) - { - struct device_node *n, *nt; -diff --git a/include/of.h b/include/of.h -index 9ba771a395b8..18a423241b0f 100644 ---- a/include/of.h -+++ b/include/of.h -@@ -144,6 +144,8 @@ extern struct device_node *of_new_node(struct device_node *parent, - const char *name); - extern struct device_node *of_create_node(struct device_node *root, - const char *path); -+extern struct device_node *of_copy_node(struct device_node *parent, -+ const struct device_node *other); - extern void of_delete_node(struct device_node *node); - - extern int of_machine_is_compatible(const char *compat); diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0012-ARM-vexpress-add-fixup-handler-for-virtio-mmio-devic.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0012-ARM-vexpress-add-fixup-handler-for-virtio-mmio-devic.patch deleted file mode 100644 index ff407c9..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0012-ARM-vexpress-add-fixup-handler-for-virtio-mmio-devic.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Michael Olbrich -Date: Tue, 13 Sep 2016 21:20:10 +0200 -Subject: [PATCH] ARM: vexpress: add fixup handler for 'virtio,mmio' devices - -Qemu adds 'virtio,mmio' nodes to the device tree. Before passing it to the -bootloader or the Linux kernel. This fixup handler copies these nodes to -the new device tree. - -v2: -- move from general to platform specific init - -Signed-off-by: Michael Olbrich -Signed-off-by: Rouven Czerwinski ---- - arch/arm/boards/vexpress/init.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/arch/arm/boards/vexpress/init.c b/arch/arm/boards/vexpress/init.c -index 1bbc8c347638..946385393f44 100644 ---- a/arch/arm/boards/vexpress/init.c -+++ b/arch/arm/boards/vexpress/init.c -@@ -45,3 +45,32 @@ static int vexpress_core_init(void) - return 0; - } - postcore_initcall(vexpress_core_init); -+ -+static int of_fixup_virtio_mmio(struct device_node *root, void *unused) -+{ -+ struct device_node *barebox_root, *np, *parent; -+ -+ barebox_root = of_get_root_node(); -+ if (root == barebox_root) -+ return 0; -+ -+ for_each_compatible_node_from(np, barebox_root, NULL, "virtio,mmio") { -+ if (of_get_parent(np) == barebox_root) -+ parent = root; -+ else -+ parent = of_find_node_by_path_from(root, -+ of_get_parent(np)->full_name); -+ if (!parent) -+ return -EINVAL; -+ -+ of_copy_node(parent, np); -+ } -+ -+ return 0; -+} -+ -+static int of_register_virtio_mmio_fixup(void) -+{ -+ return of_register_fixup(of_fixup_virtio_mmio, NULL); -+} -+late_initcall(of_register_virtio_mmio_fixup); diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0101-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0101-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch deleted file mode 100644 index 4dfd47c..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0101-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Michael Grzeschik -Date: Fri, 10 Jun 2016 14:02:30 +0200 -Subject: [PATCH] beaglebone: add state entry for mmc0 and mmc1 - -Signed-off-by: Michael Grzeschik ---- - arch/arm/dts/am335x-bone-common.dtsi | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/arch/arm/dts/am335x-bone-common.dtsi b/arch/arm/dts/am335x-bone-common.dtsi -index ef97d906616c..d14c6ded6a55 100644 ---- a/arch/arm/dts/am335x-bone-common.dtsi -+++ b/arch/arm/dts/am335x-bone-common.dtsi -@@ -11,6 +11,21 @@ - linux,stdout-path = &uart0; - }; - -+ bootstate: bootstate { -+ compatible = "barebox,bootstate"; -+ backend-type = "nv"; -+ -+ system0 { -+ default_attempts = <3>; -+ boot = "mmc0"; -+ }; -+ -+ system1 { -+ default_attempts = <3>; -+ boot = "mmc1"; -+ }; -+ }; -+ - cpus { - cpu@0 { - cpu0-supply = <&dcdc2_reg>; diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0201-ARM-imx-add-support-for-Udoo-Neo-full.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0201-ARM-imx-add-support-for-Udoo-Neo-full.patch deleted file mode 100644 index 88be8c1..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0201-ARM-imx-add-support-for-Udoo-Neo-full.patch +++ /dev/null @@ -1,320 +0,0 @@ -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Wed, 14 Jun 2017 18:32:15 +0200 -Subject: [PATCH] ARM: imx: add support for Udoo Neo full -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Uwe Kleine-König -Forwarded: id:20170627190317.19253-1-uwe@kleine-koenig.org ---- - arch/arm/boards/Makefile | 1 + - arch/arm/boards/udoo-neo/Makefile | 2 + - arch/arm/boards/udoo-neo/board.c | 27 +++++ - .../flash-header-mx6sx-udoo-neo_full.imxcfg | 124 +++++++++++++++++++++ - arch/arm/boards/udoo-neo/lowlevel.c | 39 +++++++ - arch/arm/dts/Makefile | 1 + - arch/arm/dts/imx6sx-udoo-neo-full.dts | 4 + - arch/arm/mach-imx/Kconfig | 4 + - arch/arm/mach-imx/include/mach/esdctl.h | 1 + - images/Makefile.imx | 5 + - 10 files changed, 208 insertions(+) - create mode 100644 arch/arm/boards/udoo-neo/Makefile - create mode 100644 arch/arm/boards/udoo-neo/board.c - create mode 100644 arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg - create mode 100644 arch/arm/boards/udoo-neo/lowlevel.c - create mode 100644 arch/arm/dts/imx6sx-udoo-neo-full.dts - -diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile -index d6011adb2815..42dffbda2cc3 100644 ---- a/arch/arm/boards/Makefile -+++ b/arch/arm/boards/Makefile -@@ -134,6 +134,7 @@ obj-$(CONFIG_MACH_TX51) += karo-tx51/ - obj-$(CONFIG_MACH_TX53) += karo-tx53/ - obj-$(CONFIG_MACH_TX6X) += karo-tx6x/ - obj-$(CONFIG_MACH_UDOO) += udoo/ -+obj-$(CONFIG_MACH_UDOO_NEO) += udoo-neo/ - obj-$(CONFIG_MACH_USB_A9260) += usb-a926x/ - obj-$(CONFIG_MACH_USB_A9263) += usb-a926x/ - obj-$(CONFIG_MACH_USB_A9G20) += usb-a926x/ -diff --git a/arch/arm/boards/udoo-neo/Makefile b/arch/arm/boards/udoo-neo/Makefile -new file mode 100644 -index 000000000000..01c7a259e9a5 ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/Makefile -@@ -0,0 +1,2 @@ -+obj-y += board.o -+lwl-y += lowlevel.o -diff --git a/arch/arm/boards/udoo-neo/board.c b/arch/arm/boards/udoo-neo/board.c -new file mode 100644 -index 000000000000..9bf480305d70 ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/board.c -@@ -0,0 +1,27 @@ -+/* -+ * Copyright (C) 2014 Pengutronix, Sascha Hauer -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * version 2, as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include -+#include -+#include -+ -+static int imx6sx_udoneo_coredevices_init(void) -+{ -+ if (!of_machine_is_compatible("fsl,imx6sx-udoo-neo")) -+ return 0; -+ -+ barebox_set_hostname("mx6sx-udooneo"); -+ -+ return 0; -+} -+coredevice_initcall(imx6sx_udoneo_coredevices_init); -diff --git a/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg b/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg -new file mode 100644 -index 000000000000..176aff49b3ec ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg -@@ -0,0 +1,124 @@ -+loadaddr 0x80000000 -+soc imx6 -+dcdofs 0x400 -+ -+/* Enable all clocks */ -+wm 32 0x020c4068 0xffffffff -+wm 32 0x020c406c 0xffffffff -+wm 32 0x020c4070 0xffffffff -+wm 32 0x020c4074 0xffffffff -+wm 32 0x020c4078 0xffffffff -+wm 32 0x020c407c 0xffffffff -+wm 32 0x020c4080 0xffffffff -+wm 32 0x020c4084 0xffffffff -+/********************************************/ -+ -+/* IOMUX */ -+/* DDR IO TYPE */ -+wm 32 0x020e0618 0x000c0000 -+wm 32 0x020e05fc 0x00000000 -+/********************************************/ -+ -+/* CLOCK */ -+wm 32 0x020e032c 0x00000030 -+/********************************************/ -+ -+/* ADDRESS */ -+wm 32 0x020e0300 0x00000020 -+wm 32 0x020e02fc 0x00000020 -+wm 32 0x020e05f4 0x00000020 -+/********************************************/ -+ -+/* CONTROL */ -+wm 32 0x020e0340 0x00000020 -+ -+wm 32 0x020e0320 0x00000000 -+wm 32 0x020e0310 0x00000020 -+wm 32 0x020e0314 0x00000020 -+wm 32 0x020e0614 0x00000020 -+/********************************************/ -+ -+/* DATA STROBE */ -+wm 32 0x020e05f8 0x00020000 -+wm 32 0x020e0330 0x00000028 -+wm 32 0x020e0334 0x00000028 -+wm 32 0x020e0338 0x00000028 -+wm 32 0x020e033c 0x00000028 -+/********************************************/ -+ -+/* DATA */ -+wm 32 0x020e0608 0x00020000 -+wm 32 0x020e060c 0x00000028 -+wm 32 0x020e0610 0x00000028 -+wm 32 0x020e061c 0x00000028 -+wm 32 0x020e0620 0x00000028 -+wm 32 0x020e02ec 0x00000028 -+wm 32 0x020e02f0 0x00000028 -+wm 32 0x020e02f4 0x00000028 -+wm 32 0x020e02f8 0x00000028 -+/********************************************/ -+ -+/* Calibrations */ -+/* ZQ */ -+wm 32 0x021b0800 0xa1390003 -+/********************************************/ -+ -+/* write leveling */ -+wm 32 0x021b080c 0x001E0022 -+wm 32 0x021b0810 0x001C0019 -+/********************************************/ -+ -+/* DQS Read Gate */ -+wm 32 0x021b083c 0x41540150 -+wm 32 0x021b0840 0x01440138 -+/********************************************/ -+ -+/* Read/Write Delay */ -+wm 32 0x021b0848 0x403E4644 -+wm 32 0x021b0850 0x3C3A4038 -+/********************************************/ -+ -+/* read data bit delay */ -+wm 32 0x021b081c 0x33333333 -+wm 32 0x021b0820 0x33333333 -+wm 32 0x021b0824 0x33333333 -+wm 32 0x021b0828 0x33333333 -+/********************************************/ -+ -+/* Complete calibration by forced measurment */ -+wm 32 0x021b08b8 0x00000800 -+/********************************************/ -+ -+/* MMDC init */ -+/* in DDR3, 64-bit mode, only MMDC0 is initiated */ -+wm 32 0x021b0004 0x0002002d -+wm 32 0x021b0008 0x00333030 -+wm 32 0x021b000c 0x676b52f3 -+wm 32 0x021b0010 0xb66d8b63 -+wm 32 0x021b0014 0x01ff00db -+wm 32 0x021b0018 0x00011740 -+wm 32 0x021b001c 0x00008000 -+wm 32 0x021b002c 0x000026d2 -+wm 32 0x021b0030 0x006b1023 -+wm 32 0x021b0040 0x0000005f -+wm 32 0x021b0000 0x83190000 -+/********************************************/ -+ -+/* Initialize MT41K256M16HA-125 */ -+/* MR2 */ -+wm 32 0x021b001c 0x04008032 -+/* MR3 */ -+wm 32 0x021b001c 0x00008033 -+/* MR1 */ -+wm 32 0x021b001c 0x00048031 -+/* MR0 */ -+wm 32 0x021b001c 0x05208030 -+/* DDR device ZQ calibration */ -+wm 32 0x021b001c 0x04008040 -+/********************************************/ -+ -+/* final DDR setup, before operation start */ -+wm 32 0x021b0020 0x00000800 -+wm 32 0x021b0818 0x00011117 -+wm 32 0x021b001c 0x00000000 -+/********************************************/ -diff --git a/arch/arm/boards/udoo-neo/lowlevel.c b/arch/arm/boards/udoo-neo/lowlevel.c -new file mode 100644 -index 000000000000..e78c2685fd78 ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/lowlevel.c -@@ -0,0 +1,39 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static inline void setup_uart(void) -+{ -+ void __iomem *iomuxbase = (void *)MX6_IOMUXC_BASE_ADDR; -+ -+ imx6_ungate_all_peripherals(); -+ -+ writel(0x0, iomuxbase + 0x24); -+ writel(0x1b0b1, iomuxbase + 0x036C); -+ writel(0x0, iomuxbase + 0x28); -+ writel(0x1b0b1, iomuxbase + 0x0370); -+ -+ imx6_uart_setup_ll(); -+ -+ putc_ll('>'); -+} -+ -+extern char __dtb_imx6sx_udoo_neo_full_start[]; -+ -+ENTRY_FUNCTION(start_imx6sx_udoo_neo, r0, r1, r2) -+{ -+ void *fdt; -+ -+ imx6_cpu_lowlevel_init(); -+ -+ if (IS_ENABLED(CONFIG_DEBUG_LL)) -+ setup_uart(); -+ -+ fdt = __dtb_imx6sx_udoo_neo_full_start - get_runtime_offset(); -+ -+ imx6sx_barebox_entry(fdt); -+} -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index b5601a61c56d..0c640174fe5c 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -89,6 +89,7 @@ pbl-dtb-$(CONFIG_MACH_TX6X) += imx6dl-tx6u.dtb.o - pbl-dtb-$(CONFIG_MACH_TX6X) += imx6q-tx6q.dtb.o - pbl-dtb-$(CONFIG_MACH_TURRIS_OMNIA) += armada-385-turris-omnia-bb.dtb.o - pbl-dtb-$(CONFIG_MACH_UDOO) += imx6q-udoo.dtb.o -+pbl-dtb-$(CONFIG_MACH_UDOO_NEO) += imx6sx-udoo-neo-full.dtb.o - pbl-dtb-$(CONFIG_MACH_USI_TOPKICK) += kirkwood-topkick-bb.dtb.o - pbl-dtb-$(CONFIG_MACH_VARISCITE_MX6) += imx6q-var-custom.dtb.o - pbl-dtb-$(CONFIG_MACH_VEXPRESS) += vexpress-v2p-ca9.dtb.o -diff --git a/arch/arm/dts/imx6sx-udoo-neo-full.dts b/arch/arm/dts/imx6sx-udoo-neo-full.dts -new file mode 100644 -index 000000000000..9203d40207c5 ---- /dev/null -+++ b/arch/arm/dts/imx6sx-udoo-neo-full.dts -@@ -0,0 +1,4 @@ -+#include -+ -+/{ -+}; -diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig -index 92440e3a7552..685b7e5d40d7 100644 ---- a/arch/arm/mach-imx/Kconfig -+++ b/arch/arm/mach-imx/Kconfig -@@ -365,6 +365,10 @@ config MACH_UDOO - bool "Freescale i.MX6 UDOO Board" - select ARCH_IMX6 - -+config MACH_UDOO_NEO -+ bool "i.MX6 UDOO Neo Board (full variant)" -+ select ARCH_IMX6SX -+ - config MACH_VARISCITE_MX6 - bool "Variscite i.MX6 Quad SOM" - select ARCH_IMX6 -diff --git a/arch/arm/mach-imx/include/mach/esdctl.h b/arch/arm/mach-imx/include/mach/esdctl.h -index 66dcc8974cfb..bd6092febca4 100644 ---- a/arch/arm/mach-imx/include/mach/esdctl.h -+++ b/arch/arm/mach-imx/include/mach/esdctl.h -@@ -137,6 +137,7 @@ void __noreturn imx51_barebox_entry(void *boarddata); - void __noreturn imx53_barebox_entry(void *boarddata); - void __noreturn imx6q_barebox_entry(void *boarddata); - void __noreturn imx6ul_barebox_entry(void *boarddata); -+#define imx6sx_barebox_entry(boarddata) imx6ul_barebox_entry(boarddata) - void imx_esdctl_disable(void); - #endif - -diff --git a/images/Makefile.imx b/images/Makefile.imx -index e9176022bf38..c5745cefb458 100644 ---- a/images/Makefile.imx -+++ b/images/Makefile.imx -@@ -260,6 +260,11 @@ CFG_start_imx6q_sabresd.pblx.imximg = $(board)/freescale-mx6-sabresd/flash-heade - FILE_barebox-freescale-imx6q-sabresd.img = start_imx6q_sabresd.pblx.imximg - image-$(CONFIG_MACH_SABRESD) += barebox-freescale-imx6q-sabresd.img - -+pblx-$(CONFIG_MACH_UDOO_NEO) += start_imx6sx_udoo_neo -+CFG_start_imx6sx_udoo_neo.pblx.imximg = $(board)/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg -+FILE_barebox-udoo-neo.img = start_imx6sx_udoo_neo.pblx.imximg -+image-$(CONFIG_MACH_UDOO_NEO) += barebox-udoo-neo.img -+ - pblx-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += start_imx6sx_sabresdb - CFG_start_imx6sx_sabresdb.pblx.imximg = $(board)/freescale-mx6sx-sabresdb/flash-header-mx6sx-sabresdb.imxcfg - FILE_barebox-freescale-imx6sx-sabresdb.img = start_imx6sx_sabresdb.pblx.imximg diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/0301-Release-2017.10.0-pengutronix-multi_v7-20171007-1.patch b/configs/platform-v7a/patches/barebox-2017.10.0/0301-Release-2017.10.0-pengutronix-multi_v7-20171007-1.patch deleted file mode 100644 index 77f1a15..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/0301-Release-2017.10.0-pengutronix-multi_v7-20171007-1.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Robert Schwebel -Date: Sat, 7 Oct 2017 21:44:24 +0200 -Subject: [PATCH] Release 2017.10.0/pengutronix/multi_v7/20171007-1 - -Signed-off-by: Robert Schwebel ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 5d1d763905fc..128bf2c550f4 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,7 +1,7 @@ - VERSION = 2017 - PATCHLEVEL = 10 - SUBLEVEL = 0 --EXTRAVERSION = -+EXTRAVERSION =-20171007-1 - NAME = None - - # *DOCUMENTATION* diff --git a/configs/platform-v7a/patches/barebox-2017.10.0/series b/configs/platform-v7a/patches/barebox-2017.10.0/series deleted file mode 100644 index b262d5e..0000000 --- a/configs/platform-v7a/patches/barebox-2017.10.0/series +++ /dev/null @@ -1,30 +0,0 @@ -# umpf-base: v2017.10.0 -# umpf-name: 2017.10.0/pengutronix/multi_v7 -# umpf-version: 2017.10.0/pengutronix/multi_v7/20171007-1 -# umpf-topic: v2017.10.0/topic/vexpress -# umpf-hashinfo: 009b5eb786fa524004b63cb20e1638fe4d4c5458 -# umpf-topic-range: b258642b7db16b6a2a47f958357db597251304c9..009b5eb786fa524004b63cb20e1638fe4d4c5458 -0001-ARM-vexpress-always-build-relocatable-image.patch -0002-of-populate-clock-providers-before-other-devices.patch -0003-clk-versatile-add-basic-clocks.patch -0004-clocksource-sp804-silently-ignore-secondary-instaces.patch -0005-mci-mmci-add-DT-support.patch -0006-ARM-vexpress-switch-to-DT-probe-and-multi-image-buil.patch -0007-ARM-vexpress-regenerate-config.patch -0008-docs-add-qemu-vexpress.patch -0009-vexpress-use-device-tree-provided-by-QEMU-if-availab.patch -0010-vexpress-add-bootstate-node-to-the-device-tree.patch -0011-of-base-add-funtion-to-copy-a-device-tree-node.patch -0012-ARM-vexpress-add-fixup-handler-for-virtio-mmio-devic.patch -# umpf-topic: v2017.10.0/customers/pengutronix/beaglebone -# umpf-hashinfo: 33e1ca174d3cc711f866054207a1dc50fff72267 -# umpf-topic-range: 009b5eb786fa524004b63cb20e1638fe4d4c5458..1e6cd53d033a06735f2941cf5618261924b0440b -0101-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch -# umpf-topic: v2017.10.0/customers/pengutronix/udoo-neo -# umpf-hashinfo: 0e86654e7518ddf10f99f6b5797d47201bb2af98 -# umpf-topic-range: 1e6cd53d033a06735f2941cf5618261924b0440b..7319d2e67e6cb3161682161d821f698d9b9ad8b9 -0201-ARM-imx-add-support-for-Udoo-Neo-full.patch -# umpf-release: 2017.10.0/pengutronix/multi_v7/20171007-1 -# umpf-topic-range: 7319d2e67e6cb3161682161d821f698d9b9ad8b9..61b3c38e81fe1683b2f46f365f0338b479ec4fe5 -0301-Release-2017.10.0-pengutronix-multi_v7-20171007-1.patch -# umpf-end diff --git a/configs/platform-v7a/patches/barebox-2017.11.0/0001-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch b/configs/platform-v7a/patches/barebox-2017.11.0/0001-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch new file mode 100644 index 0000000..4dfd47c --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2017.11.0/0001-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch @@ -0,0 +1,35 @@ +From: Michael Grzeschik +Date: Fri, 10 Jun 2016 14:02:30 +0200 +Subject: [PATCH] beaglebone: add state entry for mmc0 and mmc1 + +Signed-off-by: Michael Grzeschik +--- + arch/arm/dts/am335x-bone-common.dtsi | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/arch/arm/dts/am335x-bone-common.dtsi b/arch/arm/dts/am335x-bone-common.dtsi +index ef97d906616c..d14c6ded6a55 100644 +--- a/arch/arm/dts/am335x-bone-common.dtsi ++++ b/arch/arm/dts/am335x-bone-common.dtsi +@@ -11,6 +11,21 @@ + linux,stdout-path = &uart0; + }; + ++ bootstate: bootstate { ++ compatible = "barebox,bootstate"; ++ backend-type = "nv"; ++ ++ system0 { ++ default_attempts = <3>; ++ boot = "mmc0"; ++ }; ++ ++ system1 { ++ default_attempts = <3>; ++ boot = "mmc1"; ++ }; ++ }; ++ + cpus { + cpu@0 { + cpu0-supply = <&dcdc2_reg>; diff --git a/configs/platform-v7a/patches/barebox-2017.11.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch b/configs/platform-v7a/patches/barebox-2017.11.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch new file mode 100644 index 0000000..b00f641 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2017.11.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch @@ -0,0 +1,320 @@ +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Wed, 14 Jun 2017 18:32:15 +0200 +Subject: [PATCH] ARM: imx: add support for Udoo Neo full +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Uwe Kleine-König +Forwarded: id:20170627190317.19253-1-uwe@kleine-koenig.org +--- + arch/arm/boards/Makefile | 1 + + arch/arm/boards/udoo-neo/Makefile | 2 + + arch/arm/boards/udoo-neo/board.c | 27 +++++ + .../flash-header-mx6sx-udoo-neo_full.imxcfg | 124 +++++++++++++++++++++ + arch/arm/boards/udoo-neo/lowlevel.c | 39 +++++++ + arch/arm/dts/Makefile | 1 + + arch/arm/dts/imx6sx-udoo-neo-full.dts | 4 + + arch/arm/mach-imx/Kconfig | 4 + + arch/arm/mach-imx/include/mach/esdctl.h | 1 + + images/Makefile.imx | 5 + + 10 files changed, 208 insertions(+) + create mode 100644 arch/arm/boards/udoo-neo/Makefile + create mode 100644 arch/arm/boards/udoo-neo/board.c + create mode 100644 arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg + create mode 100644 arch/arm/boards/udoo-neo/lowlevel.c + create mode 100644 arch/arm/dts/imx6sx-udoo-neo-full.dts + +diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile +index 456e6fea4b69..db3f383110f7 100644 +--- a/arch/arm/boards/Makefile ++++ b/arch/arm/boards/Makefile +@@ -135,6 +135,7 @@ obj-$(CONFIG_MACH_TX51) += karo-tx51/ + obj-$(CONFIG_MACH_TX53) += karo-tx53/ + obj-$(CONFIG_MACH_TX6X) += karo-tx6x/ + obj-$(CONFIG_MACH_UDOO) += udoo/ ++obj-$(CONFIG_MACH_UDOO_NEO) += udoo-neo/ + obj-$(CONFIG_MACH_USB_A9260) += usb-a926x/ + obj-$(CONFIG_MACH_USB_A9263) += usb-a926x/ + obj-$(CONFIG_MACH_USB_A9G20) += usb-a926x/ +diff --git a/arch/arm/boards/udoo-neo/Makefile b/arch/arm/boards/udoo-neo/Makefile +new file mode 100644 +index 000000000000..01c7a259e9a5 +--- /dev/null ++++ b/arch/arm/boards/udoo-neo/Makefile +@@ -0,0 +1,2 @@ ++obj-y += board.o ++lwl-y += lowlevel.o +diff --git a/arch/arm/boards/udoo-neo/board.c b/arch/arm/boards/udoo-neo/board.c +new file mode 100644 +index 000000000000..9bf480305d70 +--- /dev/null ++++ b/arch/arm/boards/udoo-neo/board.c +@@ -0,0 +1,27 @@ ++/* ++ * Copyright (C) 2014 Pengutronix, Sascha Hauer ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * version 2, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++ ++static int imx6sx_udoneo_coredevices_init(void) ++{ ++ if (!of_machine_is_compatible("fsl,imx6sx-udoo-neo")) ++ return 0; ++ ++ barebox_set_hostname("mx6sx-udooneo"); ++ ++ return 0; ++} ++coredevice_initcall(imx6sx_udoneo_coredevices_init); +diff --git a/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg b/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg +new file mode 100644 +index 000000000000..176aff49b3ec +--- /dev/null ++++ b/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg +@@ -0,0 +1,124 @@ ++loadaddr 0x80000000 ++soc imx6 ++dcdofs 0x400 ++ ++/* Enable all clocks */ ++wm 32 0x020c4068 0xffffffff ++wm 32 0x020c406c 0xffffffff ++wm 32 0x020c4070 0xffffffff ++wm 32 0x020c4074 0xffffffff ++wm 32 0x020c4078 0xffffffff ++wm 32 0x020c407c 0xffffffff ++wm 32 0x020c4080 0xffffffff ++wm 32 0x020c4084 0xffffffff ++/********************************************/ ++ ++/* IOMUX */ ++/* DDR IO TYPE */ ++wm 32 0x020e0618 0x000c0000 ++wm 32 0x020e05fc 0x00000000 ++/********************************************/ ++ ++/* CLOCK */ ++wm 32 0x020e032c 0x00000030 ++/********************************************/ ++ ++/* ADDRESS */ ++wm 32 0x020e0300 0x00000020 ++wm 32 0x020e02fc 0x00000020 ++wm 32 0x020e05f4 0x00000020 ++/********************************************/ ++ ++/* CONTROL */ ++wm 32 0x020e0340 0x00000020 ++ ++wm 32 0x020e0320 0x00000000 ++wm 32 0x020e0310 0x00000020 ++wm 32 0x020e0314 0x00000020 ++wm 32 0x020e0614 0x00000020 ++/********************************************/ ++ ++/* DATA STROBE */ ++wm 32 0x020e05f8 0x00020000 ++wm 32 0x020e0330 0x00000028 ++wm 32 0x020e0334 0x00000028 ++wm 32 0x020e0338 0x00000028 ++wm 32 0x020e033c 0x00000028 ++/********************************************/ ++ ++/* DATA */ ++wm 32 0x020e0608 0x00020000 ++wm 32 0x020e060c 0x00000028 ++wm 32 0x020e0610 0x00000028 ++wm 32 0x020e061c 0x00000028 ++wm 32 0x020e0620 0x00000028 ++wm 32 0x020e02ec 0x00000028 ++wm 32 0x020e02f0 0x00000028 ++wm 32 0x020e02f4 0x00000028 ++wm 32 0x020e02f8 0x00000028 ++/********************************************/ ++ ++/* Calibrations */ ++/* ZQ */ ++wm 32 0x021b0800 0xa1390003 ++/********************************************/ ++ ++/* write leveling */ ++wm 32 0x021b080c 0x001E0022 ++wm 32 0x021b0810 0x001C0019 ++/********************************************/ ++ ++/* DQS Read Gate */ ++wm 32 0x021b083c 0x41540150 ++wm 32 0x021b0840 0x01440138 ++/********************************************/ ++ ++/* Read/Write Delay */ ++wm 32 0x021b0848 0x403E4644 ++wm 32 0x021b0850 0x3C3A4038 ++/********************************************/ ++ ++/* read data bit delay */ ++wm 32 0x021b081c 0x33333333 ++wm 32 0x021b0820 0x33333333 ++wm 32 0x021b0824 0x33333333 ++wm 32 0x021b0828 0x33333333 ++/********************************************/ ++ ++/* Complete calibration by forced measurment */ ++wm 32 0x021b08b8 0x00000800 ++/********************************************/ ++ ++/* MMDC init */ ++/* in DDR3, 64-bit mode, only MMDC0 is initiated */ ++wm 32 0x021b0004 0x0002002d ++wm 32 0x021b0008 0x00333030 ++wm 32 0x021b000c 0x676b52f3 ++wm 32 0x021b0010 0xb66d8b63 ++wm 32 0x021b0014 0x01ff00db ++wm 32 0x021b0018 0x00011740 ++wm 32 0x021b001c 0x00008000 ++wm 32 0x021b002c 0x000026d2 ++wm 32 0x021b0030 0x006b1023 ++wm 32 0x021b0040 0x0000005f ++wm 32 0x021b0000 0x83190000 ++/********************************************/ ++ ++/* Initialize MT41K256M16HA-125 */ ++/* MR2 */ ++wm 32 0x021b001c 0x04008032 ++/* MR3 */ ++wm 32 0x021b001c 0x00008033 ++/* MR1 */ ++wm 32 0x021b001c 0x00048031 ++/* MR0 */ ++wm 32 0x021b001c 0x05208030 ++/* DDR device ZQ calibration */ ++wm 32 0x021b001c 0x04008040 ++/********************************************/ ++ ++/* final DDR setup, before operation start */ ++wm 32 0x021b0020 0x00000800 ++wm 32 0x021b0818 0x00011117 ++wm 32 0x021b001c 0x00000000 ++/********************************************/ +diff --git a/arch/arm/boards/udoo-neo/lowlevel.c b/arch/arm/boards/udoo-neo/lowlevel.c +new file mode 100644 +index 000000000000..e78c2685fd78 +--- /dev/null ++++ b/arch/arm/boards/udoo-neo/lowlevel.c +@@ -0,0 +1,39 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static inline void setup_uart(void) ++{ ++ void __iomem *iomuxbase = (void *)MX6_IOMUXC_BASE_ADDR; ++ ++ imx6_ungate_all_peripherals(); ++ ++ writel(0x0, iomuxbase + 0x24); ++ writel(0x1b0b1, iomuxbase + 0x036C); ++ writel(0x0, iomuxbase + 0x28); ++ writel(0x1b0b1, iomuxbase + 0x0370); ++ ++ imx6_uart_setup_ll(); ++ ++ putc_ll('>'); ++} ++ ++extern char __dtb_imx6sx_udoo_neo_full_start[]; ++ ++ENTRY_FUNCTION(start_imx6sx_udoo_neo, r0, r1, r2) ++{ ++ void *fdt; ++ ++ imx6_cpu_lowlevel_init(); ++ ++ if (IS_ENABLED(CONFIG_DEBUG_LL)) ++ setup_uart(); ++ ++ fdt = __dtb_imx6sx_udoo_neo_full_start - get_runtime_offset(); ++ ++ imx6sx_barebox_entry(fdt); ++} +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 4f13d4e37279..a681c9839229 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -90,6 +90,7 @@ pbl-dtb-$(CONFIG_MACH_TX6X) += imx6dl-tx6u.dtb.o + pbl-dtb-$(CONFIG_MACH_TX6X) += imx6q-tx6q.dtb.o + pbl-dtb-$(CONFIG_MACH_TURRIS_OMNIA) += armada-385-turris-omnia-bb.dtb.o + pbl-dtb-$(CONFIG_MACH_UDOO) += imx6q-udoo.dtb.o ++pbl-dtb-$(CONFIG_MACH_UDOO_NEO) += imx6sx-udoo-neo-full.dtb.o + pbl-dtb-$(CONFIG_MACH_USI_TOPKICK) += kirkwood-topkick-bb.dtb.o + pbl-dtb-$(CONFIG_MACH_VARISCITE_MX6) += imx6q-var-custom.dtb.o + pbl-dtb-$(CONFIG_MACH_VEXPRESS) += vexpress-v2p-ca9.dtb.o +diff --git a/arch/arm/dts/imx6sx-udoo-neo-full.dts b/arch/arm/dts/imx6sx-udoo-neo-full.dts +new file mode 100644 +index 000000000000..9203d40207c5 +--- /dev/null ++++ b/arch/arm/dts/imx6sx-udoo-neo-full.dts +@@ -0,0 +1,4 @@ ++#include ++ ++/{ ++}; +diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig +index 1578875e95ab..cc9d94dea56d 100644 +--- a/arch/arm/mach-imx/Kconfig ++++ b/arch/arm/mach-imx/Kconfig +@@ -365,6 +365,10 @@ config MACH_UDOO + bool "Freescale i.MX6 UDOO Board" + select ARCH_IMX6 + ++config MACH_UDOO_NEO ++ bool "i.MX6 UDOO Neo Board (full variant)" ++ select ARCH_IMX6SX ++ + config MACH_VARISCITE_MX6 + bool "Variscite i.MX6 Quad SOM" + select ARCH_IMX6 +diff --git a/arch/arm/mach-imx/include/mach/esdctl.h b/arch/arm/mach-imx/include/mach/esdctl.h +index 66dcc8974cfb..bd6092febca4 100644 +--- a/arch/arm/mach-imx/include/mach/esdctl.h ++++ b/arch/arm/mach-imx/include/mach/esdctl.h +@@ -137,6 +137,7 @@ void __noreturn imx51_barebox_entry(void *boarddata); + void __noreturn imx53_barebox_entry(void *boarddata); + void __noreturn imx6q_barebox_entry(void *boarddata); + void __noreturn imx6ul_barebox_entry(void *boarddata); ++#define imx6sx_barebox_entry(boarddata) imx6ul_barebox_entry(boarddata) + void imx_esdctl_disable(void); + #endif + +diff --git a/images/Makefile.imx b/images/Makefile.imx +index 76e91ebd7d2e..290c9cb61e3d 100644 +--- a/images/Makefile.imx ++++ b/images/Makefile.imx +@@ -260,6 +260,11 @@ CFG_start_imx6q_sabresd.pblx.imximg = $(board)/freescale-mx6-sabresd/flash-heade + FILE_barebox-freescale-imx6q-sabresd.img = start_imx6q_sabresd.pblx.imximg + image-$(CONFIG_MACH_SABRESD) += barebox-freescale-imx6q-sabresd.img + ++pblx-$(CONFIG_MACH_UDOO_NEO) += start_imx6sx_udoo_neo ++CFG_start_imx6sx_udoo_neo.pblx.imximg = $(board)/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg ++FILE_barebox-udoo-neo.img = start_imx6sx_udoo_neo.pblx.imximg ++image-$(CONFIG_MACH_UDOO_NEO) += barebox-udoo-neo.img ++ + pblx-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += start_imx6sx_sabresdb + CFG_start_imx6sx_sabresdb.pblx.imximg = $(board)/freescale-mx6sx-sabresdb/flash-header-mx6sx-sabresdb.imxcfg + FILE_barebox-freescale-imx6sx-sabresdb.img = start_imx6sx_sabresdb.pblx.imximg diff --git a/configs/platform-v7a/patches/barebox-2017.11.0/0201-Release-2017.11.0-pengutronix-multi_v7-20171113-1.patch b/configs/platform-v7a/patches/barebox-2017.11.0/0201-Release-2017.11.0-pengutronix-multi_v7-20171113-1.patch new file mode 100644 index 0000000..f0fea33 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2017.11.0/0201-Release-2017.11.0-pengutronix-multi_v7-20171113-1.patch @@ -0,0 +1,22 @@ +From: Robert Schwebel +Date: Mon, 13 Nov 2017 14:55:03 +0100 +Subject: [PATCH] Release 2017.11.0/pengutronix/multi_v7/20171113-1 + +Signed-off-by: Robert Schwebel +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index e8ee515622e7..1563ef4aa405 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + VERSION = 2017 + PATCHLEVEL = 11 + SUBLEVEL = 0 +-EXTRAVERSION = ++EXTRAVERSION =-20171113-1 + NAME = None + + # *DOCUMENTATION* diff --git a/configs/platform-v7a/patches/barebox-2017.11.0/series b/configs/platform-v7a/patches/barebox-2017.11.0/series new file mode 100644 index 0000000..dcfd4aa --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2017.11.0/series @@ -0,0 +1,15 @@ +# umpf-base: v2017.11.0 +# umpf-name: 2017.11.0/pengutronix/multi_v7 +# umpf-version: 2017.11.0/pengutronix/multi_v7/20171113-1 +# umpf-topic: v2017.11.0/customers/pengutronix/beaglebone +# umpf-hashinfo: cbd9e4ded858e431ffb6854377ff36272be65392 +# umpf-topic-range: 5f5decec00df364859fd375dde8c0e2c148447d1..cbd9e4ded858e431ffb6854377ff36272be65392 +0001-beaglebone-add-state-entry-for-mmc0-and-mmc1.patch +# umpf-topic: v2017.11.0/customers/pengutronix/udoo-neo +# umpf-hashinfo: dc2cecfcb78ae484ac4b79d804d3218feca79867 +# umpf-topic-range: cbd9e4ded858e431ffb6854377ff36272be65392..b99f3dca4928f97e38ceb85ee3f69b469beaa29d +0101-ARM-imx-add-support-for-Udoo-Neo-full.patch +# umpf-release: 2017.11.0/pengutronix/multi_v7/20171113-1 +# umpf-topic-range: b99f3dca4928f97e38ceb85ee3f69b469beaa29d..836b26d5e8fdd7e1d20a39c96f575635acc23864 +0201-Release-2017.11.0-pengutronix-multi_v7-20171113-1.patch +# umpf-end -- cgit v1.2.3