diff options
author | Rouven Czerwinski <r.czerwinski@pengutronix.de> | 2019-03-07 14:22:01 +0100 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2019-03-07 16:36:20 +0100 |
commit | 11c0d12c8a583ff05c00f8eac5a7421ae00dcbab (patch) | |
tree | 069b7479e33a148e0ed52e46af55ee10287ccd1c /configs/platform-v7a/patches | |
parent | a9b4c4db8f213c9109daa805e208e594024e0597 (diff) | |
download | DistroKit-11c0d12c8a583ff05c00f8eac5a7421ae00dcbab.tar.gz DistroKit-11c0d12c8a583ff05c00f8eac5a7421ae00dcbab.tar.xz |
platform-v7a: barebox bump v2019.01.0 → v2019.03.0
Patch free, baby!
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
Diffstat (limited to 'configs/platform-v7a/patches')
12 files changed, 0 insertions, 789 deletions
diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0001-ARM-rpi-fix-typo-in-rpi-common.c.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0001-ARM-rpi-fix-typo-in-rpi-common.c.patch deleted file mode 100644 index b45621a..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0001-ARM-rpi-fix-typo-in-rpi-common.c.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Wed, 12 Dec 2018 16:43:06 +0100 -Subject: [PATCH] ARM: rpi: fix typo in rpi-common.c - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/boards/raspberry-pi/rpi-common.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c -index 650b26ce7dcc..840f525bbbf6 100644 ---- a/arch/arm/boards/raspberry-pi/rpi-common.c -+++ b/arch/arm/boards/raspberry-pi/rpi-common.c -@@ -73,7 +73,7 @@ static int rpi_get_arm_mem(u32 *size) - return 0; - } - --static struct clk *rpi_register_firmare_clock(u32 clock_id, const char *name) -+static struct clk *rpi_register_firmware_clock(u32 clock_id, const char *name) - { - BCM2835_MBOX_STACK_ALIGN(struct msg_get_clock_rate, msg); - int ret; -@@ -286,7 +286,7 @@ static int rpi_clock_init(void) - { - struct clk *clk; - -- clk = rpi_register_firmare_clock(BCM2835_MBOX_CLOCK_ID_EMMC, -+ clk = rpi_register_firmware_clock(BCM2835_MBOX_CLOCK_ID_EMMC, - "bcm2835_mci0"); - if (IS_ERR(clk)) - return PTR_ERR(clk); diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0002-ARM-rpi-move-clks-into-board-specific-rpi-common.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0002-ARM-rpi-move-clks-into-board-specific-rpi-common.patch deleted file mode 100644 index 8e72b19..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0002-ARM-rpi-move-clks-into-board-specific-rpi-common.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Wed, 12 Dec 2018 16:43:45 +0100 -Subject: [PATCH] ARM: rpi: move clks into board specific rpi-common - -We don't know if the firmware running on the raspberry pi is the same firmware -which is running on all bcm283x devices. -Therefore move the console clock initialization into the rpi-common.c board file. -A future commit will use this function to retrieve the miniuart clock from the -raspberry pi firmware. -No functional changes. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/boards/raspberry-pi/rpi-common.c | 19 +++++++++++++++++++ - arch/arm/mach-bcm283x/core.c | 19 ------------------- - 2 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c -index 840f525bbbf6..887f096f7e4e 100644 ---- a/arch/arm/boards/raspberry-pi/rpi-common.c -+++ b/arch/arm/boards/raspberry-pi/rpi-common.c -@@ -298,6 +298,25 @@ static int rpi_clock_init(void) - } - postconsole_initcall(rpi_clock_init); - -+static int rpi_console_clock_init(void) -+{ -+ struct clk *clk; -+ -+ clk = clk_fixed("apb_pclk", 0); -+ clk_register_clkdev(clk, "apb_pclk", NULL); -+ -+ clk = clk_fixed("uart0-pl0110", 3 * 1000 * 1000); -+ clk_register_clkdev(clk, NULL, "uart0-pl0110"); -+ clkdev_add_physbase(clk, 0x20201000, NULL); -+ clkdev_add_physbase(clk, 0x3f201000, NULL); -+ -+ clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000); -+ clk_register_clkdev(clk, NULL, "bcm2835-cs"); -+ -+ return 0; -+} -+postcore_initcall(rpi_console_clock_init); -+ - static int rpi_env_init(void) - { - struct stat s; -diff --git a/arch/arm/mach-bcm283x/core.c b/arch/arm/mach-bcm283x/core.c -index f1dcda86f7f0..f2528cf1f150 100644 ---- a/arch/arm/mach-bcm283x/core.c -+++ b/arch/arm/mach-bcm283x/core.c -@@ -31,25 +31,6 @@ - #include <mach/core.h> - #include <linux/amba/bus.h> - --static int bcm2835_clk_init(void) --{ -- struct clk *clk; -- -- clk = clk_fixed("apb_pclk", 0); -- clk_register_clkdev(clk, "apb_pclk", NULL); -- -- clk = clk_fixed("uart0-pl0110", 3 * 1000 * 1000); -- clk_register_clkdev(clk, NULL, "uart0-pl0110"); -- clkdev_add_physbase(clk, 0x20201000, NULL); -- clkdev_add_physbase(clk, 0x3f201000, NULL); -- -- clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000); -- clk_register_clkdev(clk, NULL, "bcm2835-cs"); -- -- return 0; --} --postcore_initcall(bcm2835_clk_init); -- - void bcm2835_add_device_sdram(u32 size) - { - if (!size) diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0003-ARM-rpi-retrieve-miniuart-clock-from-firmware.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0003-ARM-rpi-retrieve-miniuart-clock-from-firmware.patch deleted file mode 100644 index 8c7a5f5..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0003-ARM-rpi-retrieve-miniuart-clock-from-firmware.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Thu, 13 Dec 2018 07:23:37 +0100 -Subject: [PATCH] ARM: rpi: retrieve miniuart clock from firmware - -The miniuart uses the core clock as the clock source. This clock is fixed by the -firmware to 250Mhz if enable_uart=1 is set in the config.txt file. -However a user could still choose to overclock the core frequency, -which would result in wrong baudrates computed by barebox. -Retrieve the core clock frequency from the firmware to allow all potential -firmware configurations to work with barebox. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/boards/raspberry-pi/rpi-common.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c -index 887f096f7e4e..f22239c7ccb6 100644 ---- a/arch/arm/boards/raspberry-pi/rpi-common.c -+++ b/arch/arm/boards/raspberry-pi/rpi-common.c -@@ -310,6 +310,13 @@ static int rpi_console_clock_init(void) - clkdev_add_physbase(clk, 0x20201000, NULL); - clkdev_add_physbase(clk, 0x3f201000, NULL); - -+ clk = rpi_register_firmware_clock(BCM2835_MBOX_CLOCK_ID_CORE, -+ "uart1-8250"); -+ if (IS_ERR(clk)) -+ return PTR_ERR(clk); -+ -+ clkdev_add_physbase(clk, 0x3f215040, NULL); -+ - clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000); - clk_register_clkdev(clk, NULL, "bcm2835-cs"); - diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0004-serial_ns16550-handle-default-reg-io-width.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0004-serial_ns16550-handle-default-reg-io-width.patch deleted file mode 100644 index 568d74d..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0004-serial_ns16550-handle-default-reg-io-width.patch +++ /dev/null @@ -1,78 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Tue, 11 Dec 2018 11:28:33 +0100 -Subject: [PATCH] serial_ns16550: handle default reg-io-width - -According to the device tree bindings for 8250, width is an optional property. -Default to 1 which is the same default value as used by the kernel. -Before this change the driver would not work for device trees which do not -include the optional binding. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - drivers/serial/serial_ns16550.c | 46 ++++++++++++++++++++--------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c -index 4d73ea8b8740..8ddcfdbefc1d 100644 ---- a/drivers/serial/serial_ns16550.c -+++ b/drivers/serial/serial_ns16550.c -@@ -297,36 +297,36 @@ static int ns16550_tstc(struct console_device *cdev) - static void ns16550_probe_dt(struct device_d *dev, struct ns16550_priv *priv) - { - struct device_node *np = dev->device_node; -- u32 width; -+ u32 width = 1; - - if (!IS_ENABLED(CONFIG_OFDEVICE)) - return; - - of_property_read_u32(np, "clock-frequency", &priv->plat.clock); - of_property_read_u32(np, "reg-shift", &priv->plat.shift); -- if (!of_property_read_u32(np, "reg-io-width", &width)) -- switch (width) { -- case 1: -- priv->read_reg = ns16550_read_reg_mmio_8; -- priv->write_reg = ns16550_write_reg_mmio_8; -- break; -- case 2: -- priv->read_reg = ns16550_read_reg_mmio_16; -- priv->write_reg = ns16550_write_reg_mmio_16; -- break; -- case 4: -- if (of_device_is_big_endian(np)) { -- priv->read_reg = ns16550_read_reg_mmio_32be; -- priv->write_reg = ns16550_write_reg_mmio_32be; -- } else { -- priv->read_reg = ns16550_read_reg_mmio_32; -- priv->write_reg = ns16550_write_reg_mmio_32; -- } -- break; -- default: -- dev_err(dev, "unsupported reg-io-width (%d)\n", -- width); -+ of_property_read_u32(np, "reg-io-width", &width); -+ switch (width) { -+ case 1: -+ priv->read_reg = ns16550_read_reg_mmio_8; -+ priv->write_reg = ns16550_write_reg_mmio_8; -+ break; -+ case 2: -+ priv->read_reg = ns16550_read_reg_mmio_16; -+ priv->write_reg = ns16550_write_reg_mmio_16; -+ break; -+ case 4: -+ if (of_device_is_big_endian(np)) { -+ priv->read_reg = ns16550_read_reg_mmio_32be; -+ priv->write_reg = ns16550_write_reg_mmio_32be; -+ } else { -+ priv->read_reg = ns16550_read_reg_mmio_32; -+ priv->write_reg = ns16550_write_reg_mmio_32; - } -+ break; -+ default: -+ dev_err(dev, "unsupported reg-io-width (%d)\n", -+ width); -+ } - } - - static struct ns16550_drvdata ns16450_drvdata = { diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch deleted file mode 100644 index 37a4df8..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Tue, 11 Dec 2018 10:50:44 +0100 -Subject: [PATCH] serial_ns16550: add raspberry pi compatible and init - -Add the compatible for the Raspberry Pi AUX UART and an init function which -enables it via the aux register and configures the correct shift value. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - drivers/serial/serial_ns16550.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c -index 8ddcfdbefc1d..ccd082e495c3 100644 ---- a/drivers/serial/serial_ns16550.c -+++ b/drivers/serial/serial_ns16550.c -@@ -253,6 +253,23 @@ static void ns16550_jz_init_port(struct console_device *cdev) - ns16550_serial_init_port(cdev); - } - -+#define BCM2836_AUX_CLOCK_ENB 0x3f215004 /* BCM2835 AUX Clock enable register */ -+#define BCM2836_AUX_CLOCK_EN_UART BIT(0) /* Bit 0 enables the Miniuart */ -+ -+static void rpi_init_port(struct console_device *cdev) -+{ -+ struct ns16550_priv *priv = to_ns16550_priv(cdev); -+ -+ writeb(BCM2836_AUX_CLOCK_EN_UART, BCM2836_AUX_CLOCK_ENB); -+ priv->plat.shift = 2; -+ /* -+ * We double the clock rate since the 16550 will divide by 16 -+ * (instead of 8 required by the BCM2835 peripheral manual) -+ */ -+ priv->plat.clock = priv->plat.clock*2; -+ ns16550_serial_init_port(cdev); -+} -+ - /*********** Exposed Functions **********************************/ - - /** -@@ -353,6 +370,11 @@ static __maybe_unused struct ns16550_drvdata tegra_drvdata = { - .linux_console_name = "ttyS", - }; - -+static __maybe_unused struct ns16550_drvdata rpi_drvdata = { -+ .init_port = rpi_init_port, -+ .linux_console_name = "ttyS", -+}; -+ - static int ns16550_init_iomem(struct device_d *dev, struct ns16550_priv *priv) - { - struct resource *iores; -@@ -527,6 +549,12 @@ static struct of_device_id ns16550_serial_dt_ids[] = { - .compatible = "ingenic,jz4740-uart", - .data = &jz_drvdata, - }, -+#endif -+#if IS_ENABLED(CONFIG_MACH_RPI_COMMON) -+ { -+ .compatible = "brcm,bcm2835-aux-uart", -+ .data = &rpi_drvdata, -+ }, - #endif - { - /* sentinel */ diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0006-ARM-rpi-add-NS16550-support.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0006-ARM-rpi-add-NS16550-support.patch deleted file mode 100644 index fed00ac..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0006-ARM-rpi-add-NS16550-support.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Wed, 19 Dec 2018 12:09:23 +0100 -Subject: [PATCH] ARM: rpi: add NS16550 support - -Since the 16550 driver now supports the RPI3 miniuart, enable it in the default - config. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/configs/rpi_defconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/configs/rpi_defconfig b/arch/arm/configs/rpi_defconfig -index 2bb615849324..dc5ab1fe17f6 100644 ---- a/arch/arm/configs/rpi_defconfig -+++ b/arch/arm/configs/rpi_defconfig -@@ -63,6 +63,7 @@ CONFIG_CMD_OF_PROPERTY=y - CONFIG_CMD_OFTREE=y - CONFIG_CMD_TIME=y - CONFIG_SERIAL_AMBA_PL011=y -+CONFIG_DRIVER_SERIAL_NS16550=y - CONFIG_MCI=y - CONFIG_MCI_BCM283X=y - CONFIG_LED=y diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0007-ARM-rpi-choose-miniuart-as-stdout.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0007-ARM-rpi-choose-miniuart-as-stdout.patch deleted file mode 100644 index 126fe01..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0007-ARM-rpi-choose-miniuart-as-stdout.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Tue, 11 Dec 2018 10:48:02 +0100 -Subject: [PATCH] ARM: rpi: choose miniuart as stdout - -Since we now support the miniuart, enable it as the default stdout port. -With this change the device tree overlay to switch the miniuart to bluetooth is -no longer necessary. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/dts/bcm2837-rpi-3.dts | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/arch/arm/dts/bcm2837-rpi-3.dts b/arch/arm/dts/bcm2837-rpi-3.dts -index d6ffc369122c..194b41c23b77 100644 ---- a/arch/arm/dts/bcm2837-rpi-3.dts -+++ b/arch/arm/dts/bcm2837-rpi-3.dts -@@ -2,15 +2,10 @@ - - / { - chosen { -- stdout-path = &uart0; -+ stdout-path = &uart1; - }; - - memory { - reg = <0x0 0x0>; - }; - }; -- --&uart0 { -- status = "okay"; -- /delete-node/ bluetooth; --}; diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0008-doc-bcm283x-remove-miniuart-overlay-instruction.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0008-doc-bcm283x-remove-miniuart-overlay-instruction.patch deleted file mode 100644 index 9d43761..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0008-doc-bcm283x-remove-miniuart-overlay-instruction.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Wed, 12 Dec 2018 15:06:49 +0100 -Subject: [PATCH] doc: bcm283x: remove miniuart overlay instruction - -Since we now use the miniuart on the raspberry pi 3, the miniuart overlay is no -longer needed. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - Documentation/boards/bcm2835.rst | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Documentation/boards/bcm2835.rst b/Documentation/boards/bcm2835.rst -index 79ea0ff7a78b..ea80d5834861 100644 ---- a/Documentation/boards/bcm2835.rst -+++ b/Documentation/boards/bcm2835.rst -@@ -22,7 +22,6 @@ Raspberry Pi - - kernel=barebox.img - enable_uart=1 -- dtoverlay=pi3-miniuart-bt - - (For more information, refer to the `documentation for config.txt`_.) - diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0009-ARM-rpi-use-defines-for-uart-bases.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0009-ARM-rpi-use-defines-for-uart-bases.patch deleted file mode 100644 index e2b3607..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0009-ARM-rpi-use-defines-for-uart-bases.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Tue, 18 Dec 2018 11:41:38 +0100 -Subject: [PATCH] ARM: rpi: use defines for uart bases - -Previously the clkdev_add_phybase was called on magic register values, -add defines which clarify the device for which the phybase clkdev is created. - -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - arch/arm/boards/raspberry-pi/rpi-common.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c -index f22239c7ccb6..219c9c7d2b9e 100644 ---- a/arch/arm/boards/raspberry-pi/rpi-common.c -+++ b/arch/arm/boards/raspberry-pi/rpi-common.c -@@ -298,6 +298,10 @@ static int rpi_clock_init(void) - } - postconsole_initcall(rpi_clock_init); - -+#define BCM2835_PL011_BASE 0x20201000 -+#define BCM2836_PL011_BASE 0x3f201000 -+#define BCM2836_MINIUART_BASE 0x3f215040 -+ - static int rpi_console_clock_init(void) - { - struct clk *clk; -@@ -307,15 +311,15 @@ static int rpi_console_clock_init(void) - - clk = clk_fixed("uart0-pl0110", 3 * 1000 * 1000); - clk_register_clkdev(clk, NULL, "uart0-pl0110"); -- clkdev_add_physbase(clk, 0x20201000, NULL); -- clkdev_add_physbase(clk, 0x3f201000, NULL); -+ clkdev_add_physbase(clk, BCM2835_PL011_BASE, NULL); -+ clkdev_add_physbase(clk, BCM2836_PL011_BASE, NULL); - - clk = rpi_register_firmware_clock(BCM2835_MBOX_CLOCK_ID_CORE, - "uart1-8250"); - if (IS_ERR(clk)) - return PTR_ERR(clk); - -- clkdev_add_physbase(clk, 0x3f215040, NULL); -+ clkdev_add_physbase(clk, BCM2836_MINIUART_BASE, NULL); - - clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000); - clk_register_clkdev(clk, NULL, "bcm2835-cs"); diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch deleted file mode 100644 index 293e09e..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0101-ARM-imx-add-support-for-Udoo-Neo-full.patch +++ /dev/null @@ -1,332 +0,0 @@ -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de> -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 - -Original patch from Uwe Kleine-König, I fixed the -review comments and the imxcfg file to use the udoo neo values. - -I also tested the support on the udoo neo full board. - -Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> -Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> ---- - 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 | 131 +++++++++++++++++++++ - 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, 215 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 3bf176b14dc2..953a6eec12e4 100644 ---- a/arch/arm/boards/Makefile -+++ b/arch/arm/boards/Makefile -@@ -139,6 +139,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 <common.h> -+#include <init.h> -+#include <linux/clk.h> -+ -+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..39f2a8a221f7 ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg -@@ -0,0 +1,131 @@ -+/* -+ * These values are taken from: -+ * repository: https://github.com/UDOOboard/uboot-imx -+ * branch: udoo/2015.04.imx -+ * file: board/udoo/udoo_neo/udoo_neo.cfg -+ */ -+ -+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 0x000E000B -+wm 32 0x021b0810 0x000E0010 -+/********************************************/ -+ -+/* DQS Read Gate */ -+wm 32 0x021b083c 0x41600158 -+wm 32 0x021b0840 0x01500140 -+/********************************************/ -+ -+/* Read/Write Delay */ -+wm 32 0x021b0848 0x3A383E3E -+wm 32 0x021b0850 0x3A383C38 -+/********************************************/ -+ -+/* 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..bb6b7d833278 ---- /dev/null -+++ b/arch/arm/boards/udoo-neo/lowlevel.c -@@ -0,0 +1,39 @@ -+#include <debug_ll.h> -+#include <common.h> -+#include <linux/sizes.h> -+#include <mach/generic.h> -+#include <asm/barebox-arm-head.h> -+#include <asm/barebox-arm.h> -+#include <mach/esdctl.h> -+ -+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 c08b35a10132..1c6bfd900b99 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -99,6 +99,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 <arm/imx6sx-udoo-neo-full.dts> -+ -+/{ -+}; -diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig -index d9b60053db03..53226c55944f 100644 ---- a/arch/arm/mach-imx/Kconfig -+++ b/arch/arm/mach-imx/Kconfig -@@ -384,6 +384,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 bc6c7339535e..18c4a2836007 100644 ---- a/arch/arm/mach-imx/include/mach/esdctl.h -+++ b/arch/arm/mach-imx/include/mach/esdctl.h -@@ -141,6 +141,7 @@ void __noreturn imx6ul_barebox_entry(void *boarddata); - void __noreturn vf610_barebox_entry(void *boarddata); - void __noreturn imx8mq_barebox_entry(void *boarddata); - void __noreturn imx7d_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 8b8a5452b770..4f6fd0489688 100644 ---- a/images/Makefile.imx -+++ b/images/Makefile.imx -@@ -254,6 +254,11 @@ CFG_start_imx6q_sabresd.pblb.imximg = $(board)/freescale-mx6-sabresd/flash-heade - FILE_barebox-freescale-imx6q-sabresd.img = start_imx6q_sabresd.pblb.imximg - image-$(CONFIG_MACH_SABRESD) += barebox-freescale-imx6q-sabresd.img - -+pblb-$(CONFIG_MACH_UDOO_NEO) += start_imx6sx_udoo_neo -+CFG_start_imx6sx_udoo_neo.pblb.imximg = $(board)/udoo-neo/flash-header-mx6sx-udoo-neo_full.imxcfg -+FILE_barebox-udoo-neo.img = start_imx6sx_udoo_neo.pblb.imximg -+image-$(CONFIG_MACH_UDOO_NEO) += barebox-udoo-neo.img -+ - pblb-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += start_imx6sx_sabresdb - CFG_start_imx6sx_sabresdb.pblb.imximg = $(board)/freescale-mx6sx-sabresdb/flash-header-mx6sx-sabresdb.imxcfg - FILE_barebox-freescale-imx6sx-sabresdb.img = start_imx6sx_sabresdb.pblb.imximg diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/0201-Release-2019.01.0-customers-pengutronix-multi_v7-201.patch b/configs/platform-v7a/patches/barebox-2019.01.0/0201-Release-2019.01.0-customers-pengutronix-multi_v7-201.patch deleted file mode 100644 index db1f38e..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/0201-Release-2019.01.0-customers-pengutronix-multi_v7-201.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Rouven Czerwinski <r.czerwinski@pengutronix.de> -Date: Fri, 18 Jan 2019 11:36:33 +0100 -Subject: [PATCH] Release 2019.01.0/customers/pengutronix/multi_v7/20190118-1 - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index d6423b84fef0..6617637ca045 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,7 +1,7 @@ - VERSION = 2019 - PATCHLEVEL = 01 - SUBLEVEL = 0 --EXTRAVERSION = -+EXTRAVERSION =-20190118-1 - NAME = None - - # *DOCUMENTATION* diff --git a/configs/platform-v7a/patches/barebox-2019.01.0/series b/configs/platform-v7a/patches/barebox-2019.01.0/series deleted file mode 100644 index 638a7d9..0000000 --- a/configs/platform-v7a/patches/barebox-2019.01.0/series +++ /dev/null @@ -1,23 +0,0 @@ -# umpf-base: v2019.01.0 -# umpf-name: 2019.01.0/customers/pengutronix/multi_v7 -# umpf-version: 2019.01.0/customers/pengutronix/multi_v7/20190118-1 -# umpf-topic: v2018.12.0/topic/rpi3_miniuart -# umpf-hashinfo: 9320eb666c0057ffb3b7475108a16c76623a527d -# umpf-topic-range: 60e12093cf3288086b62612bb3cf565a0b4320aa..d913f77a69b2fe9021c6b41266373e357aa1b598 -0001-ARM-rpi-fix-typo-in-rpi-common.c.patch -0002-ARM-rpi-move-clks-into-board-specific-rpi-common.patch -0003-ARM-rpi-retrieve-miniuart-clock-from-firmware.patch -0004-serial_ns16550-handle-default-reg-io-width.patch -0005-serial_ns16550-add-raspberry-pi-compatible-and-init.patch -0006-ARM-rpi-add-NS16550-support.patch -0007-ARM-rpi-choose-miniuart-as-stdout.patch -0008-doc-bcm283x-remove-miniuart-overlay-instruction.patch -0009-ARM-rpi-use-defines-for-uart-bases.patch -# umpf-topic: v2019.01.0/customers/pengutronix/udoo-neo -# umpf-hashinfo: 999a56255a0ddad3f9c5344b940987f63eec39b4 -# umpf-topic-range: d913f77a69b2fe9021c6b41266373e357aa1b598..69e5b7ada0621fe116216820ac4d1f04c3dad2c2 -0101-ARM-imx-add-support-for-Udoo-Neo-full.patch -# umpf-release: 2019.01.0/customers/pengutronix/multi_v7/20190118-1 -# umpf-topic-range: 69e5b7ada0621fe116216820ac4d1f04c3dad2c2..8bb76e29ee661a3dfb57117bb8fe8cfe5e3cc617 -0201-Release-2019.01.0-customers-pengutronix-multi_v7-201.patch -# umpf-end |