mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-21 20:08:24 +00:00
uboot-mvebu: add support for espressobin
This builds two u-boot binaries: one for boards without eMMC and one with. Signed-off-by: Andre Heider <a.heider@gmail.com> Signed-off-by: maurerr <mariusd84@gmail.com>
This commit is contained in:
parent
bdbc136bbe
commit
f3c9d1b7bc
@ -36,6 +36,21 @@ define U-Boot/helios4
|
||||
UBOOT_IMAGE:=u-boot-spl.kwb
|
||||
endef
|
||||
|
||||
define U-Boot/espressobin
|
||||
NAME:=Marvell ESPRESSObin
|
||||
BUILD_DEVICES:=globalscale_espressobin globalscale_espressobin-v7
|
||||
BUILD_SUBTARGET:=cortexa53
|
||||
UBOOT_CONFIG:=mvebu_espressobin-88f3720
|
||||
endef
|
||||
|
||||
define U-Boot/espressobin-emmc
|
||||
NAME:=Marvell ESPRESSObin
|
||||
BUILD_DEVICES:=globalscale_espressobin-emmc globalscale_espressobin-v7-emmc
|
||||
BUILD_SUBTARGET:=cortexa53
|
||||
UBOOT_CONFIG:=mvebu_espressobin-88f3720
|
||||
UBOOT_MAKE_FLAGS+=DEVICE_TREE=armada-3720-espressobin-emmc
|
||||
endef
|
||||
|
||||
define U-Boot/uDPU
|
||||
NAME:=Methode uDPU
|
||||
BUILD_DEVICES:=methode_udpu
|
||||
@ -45,6 +60,8 @@ endef
|
||||
UBOOT_TARGETS:= \
|
||||
clearfog \
|
||||
helios4 \
|
||||
espressobin \
|
||||
espressobin-emmc \
|
||||
uDPU
|
||||
|
||||
Build/Exports:=$(Host/Exports)
|
||||
|
@ -0,0 +1,43 @@
|
||||
From 264c45575ec6a3d507dc4e43954b8a78283aca6c Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Thu, 10 Sep 2020 17:58:43 +0200
|
||||
Subject: [PATCH] mmc: xenon_sdhci: Add missing common host capabilities
|
||||
|
||||
Use mmc_of_parse() to set the common host properties. That includes
|
||||
"bus-width", so parsing it can be removed from the driver.
|
||||
|
||||
But more importantly, "non-removable" is now respected, which fixes
|
||||
the usage of eMMC.
|
||||
|
||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
||||
---
|
||||
drivers/mmc/xenon_sdhci.c | 18 ++++--------------
|
||||
1 file changed, 4 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/drivers/mmc/xenon_sdhci.c
|
||||
+++ b/drivers/mmc/xenon_sdhci.c
|
||||
@@ -485,20 +485,10 @@ static int xenon_sdhci_probe(struct udev
|
||||
armada_3700_soc_pad_voltage_set(host);
|
||||
|
||||
host->host_caps = MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_DDR_52MHz;
|
||||
- switch (fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "bus-width",
|
||||
- 1)) {
|
||||
- case 8:
|
||||
- host->host_caps |= MMC_MODE_8BIT;
|
||||
- break;
|
||||
- case 4:
|
||||
- host->host_caps |= MMC_MODE_4BIT;
|
||||
- break;
|
||||
- case 1:
|
||||
- break;
|
||||
- default:
|
||||
- printf("Invalid \"bus-width\" value\n");
|
||||
- return -EINVAL;
|
||||
- }
|
||||
+
|
||||
+ ret = mmc_of_parse(dev, &plat->cfg);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
|
||||
host->ops = &xenon_sdhci_ops;
|
||||
|
@ -0,0 +1,45 @@
|
||||
From 753947e2c374820dcbc9c86626812aeb7d460653 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Fri, 4 Sep 2020 16:34:22 +0200
|
||||
Subject: [PATCH] arm64: dts: armada-3720-espressobin: use Linux
|
||||
model/compatible strings
|
||||
|
||||
Fix the actual board vendor and ease synching dts files from Linux.
|
||||
---
|
||||
arch/arm/dts/armada-3720-espressobin.dts | 4 ++--
|
||||
board/Marvell/mvebu_armada-37xx/board.c | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/arch/arm/dts/armada-3720-espressobin.dts
|
||||
+++ b/arch/arm/dts/armada-3720-espressobin.dts
|
||||
@@ -50,8 +50,8 @@
|
||||
#include "armada-372x.dtsi"
|
||||
|
||||
/ {
|
||||
- model = "Marvell Armada 3720 Community Board ESPRESSOBin";
|
||||
- compatible = "marvell,armada-3720-espressobin", "marvell,armada3720", "marvell,armada3710";
|
||||
+ model = "Globalscale Marvell ESPRESSOBin Board";
|
||||
+ compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
--- a/board/Marvell/mvebu_armada-37xx/board.c
|
||||
+++ b/board/Marvell/mvebu_armada-37xx/board.c
|
||||
@@ -201,7 +201,7 @@ static int mii_multi_chip_mode_write(str
|
||||
/* Bring-up board-specific network stuff */
|
||||
int board_network_enable(struct mii_dev *bus)
|
||||
{
|
||||
- if (!of_machine_is_compatible("marvell,armada-3720-espressobin"))
|
||||
+ if (!of_machine_is_compatible("globalscale,espressobin"))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@@ -253,7 +253,7 @@ int ft_board_setup(void *blob, struct bd
|
||||
int part_off;
|
||||
|
||||
/* Fill SPI MTD partitions for Linux kernel on Espressobin */
|
||||
- if (!of_machine_is_compatible("marvell,armada-3720-espressobin"))
|
||||
+ if (!of_machine_is_compatible("globalscale,espressobin"))
|
||||
return 0;
|
||||
|
||||
spi_off = fdt_node_offset_by_compatible(blob, -1, "jedec,spi-nor");
|
@ -0,0 +1,369 @@
|
||||
From ee59573dd531df96de0d9dc8e79b34ed3716c864 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Fri, 4 Sep 2020 15:38:58 +0200
|
||||
Subject: [PATCH] arm64: dts: armada-3720-espressobin: split common parts to
|
||||
.dtsi
|
||||
|
||||
Move most of the dts to the new common
|
||||
arch/arm/dts/armada-3720-espressobin.dtsi file, just like Linux has.
|
||||
|
||||
The dts itself is imported from Linux.
|
||||
|
||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
||||
---
|
||||
arch/arm/dts/armada-3720-espressobin.dts | 190 ++----------------
|
||||
...sobin.dts => armada-3720-espressobin.dtsi} | 3 -
|
||||
2 files changed, 20 insertions(+), 173 deletions(-)
|
||||
rewrite arch/arm/dts/armada-3720-espressobin.dts (95%)
|
||||
copy arch/arm/dts/{armada-3720-espressobin.dts => armada-3720-espressobin.dtsi} (96%)
|
||||
|
||||
--- a/arch/arm/dts/armada-3720-espressobin.dts
|
||||
+++ b/arch/arm/dts/armada-3720-espressobin.dts
|
||||
@@ -1,170 +1,20 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
- * Device Tree file for Marvell Armada 3720 community board
|
||||
- * (ESPRESSOBin)
|
||||
+ * Device Tree file for Globalscale Marvell ESPRESSOBin Board
|
||||
* Copyright (C) 2016 Marvell
|
||||
*
|
||||
- * Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
- * Konstantin Porotchkin <kostap@marvell.com>
|
||||
+ * Romain Perier <romain.perier@free-electrons.com>
|
||||
*
|
||||
- * This file is dual-licensed: you can use it either under the terms
|
||||
- * of the GPL or the X11 license, at your option. Note that this dual
|
||||
- * licensing only applies to this file, and not this project as a
|
||||
- * whole.
|
||||
- *
|
||||
- * a) This file is free software; you can redistribute it and/or
|
||||
- * modify it under the terms of the GNU General Public License as
|
||||
- * published by the Free Software Foundation; either version 2 of the
|
||||
- * License, or (at your option) any later version.
|
||||
- *
|
||||
- * This file 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.
|
||||
- *
|
||||
- * Or, alternatively
|
||||
- *
|
||||
- * b) Permission is hereby granted, free of charge, to any person
|
||||
- * obtaining a copy of this software and associated documentation
|
||||
- * files (the "Software"), to deal in the Software without
|
||||
- * restriction, including without limitation the rights to use
|
||||
- * copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
- * sell copies of the Software, and to permit persons to whom the
|
||||
- * Software is furnished to do so, subject to the following
|
||||
- * conditions:
|
||||
- *
|
||||
- * The above copyright notice and this permission notice shall be
|
||||
- * included in all copies or substantial portions of the Software.
|
||||
- *
|
||||
- * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
|
||||
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
|
||||
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
- * OTHER DEALINGS IN THE SOFTWARE.
|
||||
+ */
|
||||
+/*
|
||||
+ * Schematic available at http://espressobin.net/wp-content/uploads/2017/08/ESPRESSObin_V5_Schematics.pdf
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
-#include "armada-372x.dtsi"
|
||||
+#include "armada-3720-espressobin.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Globalscale Marvell ESPRESSOBin Board";
|
||||
compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710";
|
||||
-
|
||||
- chosen {
|
||||
- stdout-path = "serial0:115200n8";
|
||||
- };
|
||||
-
|
||||
- aliases {
|
||||
- ethernet0 = ð0;
|
||||
- i2c0 = &i2c0;
|
||||
- spi0 = &spi0;
|
||||
- };
|
||||
-
|
||||
- memory {
|
||||
- device_type = "memory";
|
||||
- reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
|
||||
- };
|
||||
-
|
||||
- vcc_sd_reg0: regulator@0 {
|
||||
- compatible = "regulator-gpio";
|
||||
- regulator-name = "vcc_sd0";
|
||||
- regulator-min-microvolt = <1800000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
- regulator-type = "voltage";
|
||||
- states = <1800000 0x1
|
||||
- 3300000 0x0>;
|
||||
- gpios = <&gpionb 4 GPIO_ACTIVE_HIGH>;
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-&comphy {
|
||||
- max-lanes = <3>;
|
||||
- phy0 {
|
||||
- phy-type = <PHY_TYPE_USB3_HOST0>;
|
||||
- phy-speed = <PHY_SPEED_5G>;
|
||||
- };
|
||||
-
|
||||
- phy1 {
|
||||
- phy-type = <PHY_TYPE_PEX0>;
|
||||
- phy-speed = <PHY_SPEED_2_5G>;
|
||||
- };
|
||||
-
|
||||
- phy2 {
|
||||
- phy-type = <PHY_TYPE_SATA0>;
|
||||
- phy-speed = <PHY_SPEED_5G>;
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-ð0 {
|
||||
- status = "okay";
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
|
||||
- phy-mode = "rgmii";
|
||||
- phy_addr = <0x1>;
|
||||
- fixed-link {
|
||||
- speed = <1000>;
|
||||
- full-duplex;
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-&i2c0 {
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&i2c1_pins>;
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-/* CON3 */
|
||||
-&sata {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&sdhci0 {
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&sdio_pins>;
|
||||
- bus-width = <4>;
|
||||
- cd-gpios = <&gpionb 3 GPIO_ACTIVE_LOW>;
|
||||
- vqmmc-supply = <&vcc_sd_reg0>;
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&spi0 {
|
||||
- status = "okay";
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&spi_quad_pins>;
|
||||
-
|
||||
- spi-flash@0 {
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <1>;
|
||||
- compatible = "st,m25p128", "jedec,spi-nor";
|
||||
- reg = <0>; /* Chip select 0 */
|
||||
- spi-max-frequency = <50000000>;
|
||||
- m25p,fast-read;
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-/* Exported on the micro USB connector CON32 through an FTDI */
|
||||
-&uart0 {
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&uart1_pins>;
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-/* CON29 */
|
||||
-&usb2 {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-/* CON31 */
|
||||
-&usb3 {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&pcie0 {
|
||||
- pinctrl-names = "default";
|
||||
- pinctrl-0 = <&pcie_pins>;
|
||||
- reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
|
||||
- status = "okay";
|
||||
};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/armada-3720-espressobin.dtsi
|
||||
@@ -0,0 +1,167 @@
|
||||
+/*
|
||||
+ * Device Tree file for Marvell Armada 3720 community board
|
||||
+ * (ESPRESSOBin)
|
||||
+ * Copyright (C) 2016 Marvell
|
||||
+ *
|
||||
+ * Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
+ * Konstantin Porotchkin <kostap@marvell.com>
|
||||
+ *
|
||||
+ * This file is dual-licensed: you can use it either under the terms
|
||||
+ * of the GPL or the X11 license, at your option. Note that this dual
|
||||
+ * licensing only applies to this file, and not this project as a
|
||||
+ * whole.
|
||||
+ *
|
||||
+ * a) This file is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of the
|
||||
+ * License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This file 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.
|
||||
+ *
|
||||
+ * Or, alternatively
|
||||
+ *
|
||||
+ * b) Permission is hereby granted, free of charge, to any person
|
||||
+ * obtaining a copy of this software and associated documentation
|
||||
+ * files (the "Software"), to deal in the Software without
|
||||
+ * restriction, including without limitation the rights to use
|
||||
+ * copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
+ * sell copies of the Software, and to permit persons to whom the
|
||||
+ * Software is furnished to do so, subject to the following
|
||||
+ * conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be
|
||||
+ * included in all copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
|
||||
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
|
||||
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
+ * OTHER DEALINGS IN THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "armada-372x.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet0 = ð0;
|
||||
+ i2c0 = &i2c0;
|
||||
+ spi0 = &spi0;
|
||||
+ };
|
||||
+
|
||||
+ memory {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
|
||||
+ };
|
||||
+
|
||||
+ vcc_sd_reg0: regulator@0 {
|
||||
+ compatible = "regulator-gpio";
|
||||
+ regulator-name = "vcc_sd0";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-type = "voltage";
|
||||
+ states = <1800000 0x1
|
||||
+ 3300000 0x0>;
|
||||
+ gpios = <&gpionb 4 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&comphy {
|
||||
+ max-lanes = <3>;
|
||||
+ phy0 {
|
||||
+ phy-type = <PHY_TYPE_USB3_HOST0>;
|
||||
+ phy-speed = <PHY_SPEED_5G>;
|
||||
+ };
|
||||
+
|
||||
+ phy1 {
|
||||
+ phy-type = <PHY_TYPE_PEX0>;
|
||||
+ phy-speed = <PHY_SPEED_2_5G>;
|
||||
+ };
|
||||
+
|
||||
+ phy2 {
|
||||
+ phy-type = <PHY_TYPE_SATA0>;
|
||||
+ phy-speed = <PHY_SPEED_5G>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+ð0 {
|
||||
+ status = "okay";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy_addr = <0x1>;
|
||||
+ fixed-link {
|
||||
+ speed = <1000>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* CON3 */
|
||||
+&sata {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&sdhci0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdio_pins>;
|
||||
+ bus-width = <4>;
|
||||
+ cd-gpios = <&gpionb 3 GPIO_ACTIVE_LOW>;
|
||||
+ vqmmc-supply = <&vcc_sd_reg0>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&spi0 {
|
||||
+ status = "okay";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi_quad_pins>;
|
||||
+
|
||||
+ spi-flash@0 {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ compatible = "st,m25p128", "jedec,spi-nor";
|
||||
+ reg = <0>; /* Chip select 0 */
|
||||
+ spi-max-frequency = <50000000>;
|
||||
+ m25p,fast-read;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* Exported on the micro USB connector CON32 through an FTDI */
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* CON29 */
|
||||
+&usb2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* CON31 */
|
||||
+&usb3 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pcie0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie_pins>;
|
||||
+ reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
|
||||
+ status = "okay";
|
||||
+};
|
@ -0,0 +1,89 @@
|
||||
From 83908b6e2e5a7d7b0f4d040ffb4bf3ce6807b8fe Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Fri, 4 Sep 2020 15:44:41 +0200
|
||||
Subject: [PATCH] arm64: dts: a3720: add support for boards with populated emmc
|
||||
|
||||
Import armada-3720-espressobin-emmc.dts from Linux, but use sdhc1 for
|
||||
emmc, since sdhc0 is used for the sd card.
|
||||
|
||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
||||
---
|
||||
arch/arm/dts/Makefile | 1 +
|
||||
arch/arm/dts/armada-3720-espressobin-emmc.dts | 44 +++++++++++++++++++
|
||||
doc/README.marvell | 7 ++-
|
||||
3 files changed, 50 insertions(+), 2 deletions(-)
|
||||
create mode 100644 arch/arm/dts/armada-3720-espressobin-emmc.dts
|
||||
|
||||
--- a/arch/arm/dts/Makefile
|
||||
+++ b/arch/arm/dts/Makefile
|
||||
@@ -202,6 +202,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harm
|
||||
dtb-$(CONFIG_ARCH_MVEBU) += \
|
||||
armada-3720-db.dtb \
|
||||
armada-3720-espressobin.dtb \
|
||||
+ armada-3720-espressobin-emmc.dtb \
|
||||
armada-3720-turris-mox.dtb \
|
||||
armada-3720-uDPU.dtb \
|
||||
armada-375-db.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/armada-3720-espressobin-emmc.dts
|
||||
@@ -0,0 +1,44 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Device Tree file for Globalscale Marvell ESPRESSOBin Board with eMMC
|
||||
+ * Copyright (C) 2018 Marvell
|
||||
+ *
|
||||
+ * Romain Perier <romain.perier@free-electrons.com>
|
||||
+ * Konstantin Porotchkin <kostap@marvell.com>
|
||||
+ *
|
||||
+ */
|
||||
+/*
|
||||
+ * Schematic available at http://espressobin.net/wp-content/uploads/2017/08/ESPRESSObin_V5_Schematics.pdf
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "armada-3720-espressobin.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Globalscale Marvell ESPRESSOBin Board (eMMC)";
|
||||
+ compatible = "globalscale,espressobin-emmc", "globalscale,espressobin",
|
||||
+ "marvell,armada3720", "marvell,armada3710";
|
||||
+};
|
||||
+
|
||||
+/* U11 */
|
||||
+&sdhci1 {
|
||||
+ non-removable;
|
||||
+ bus-width = <8>;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ mmc-hs400-1_8v;
|
||||
+ marvell,xenon-emmc;
|
||||
+ marvell,xenon-tun-count = <9>;
|
||||
+ marvell,pad-type = "fixed-1-8v";
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc_pins>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ mmccard: mmccard@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+};
|
||||
--- a/doc/README.marvell
|
||||
+++ b/doc/README.marvell
|
||||
@@ -43,8 +43,11 @@ Build Procedure
|
||||
In order to prevent this, the required device-tree MUST be set during compilation.
|
||||
All device-tree files are located in ./arch/arm/dts/ folder.
|
||||
|
||||
- For other DB boards (MacchiatoBin, EspressoBin and 3700 DB board) compile u-boot with
|
||||
- just default device-tree from defconfig using:
|
||||
+ For the EspressoBin board with populated eMMC device use
|
||||
+ # make DEVICE_TREE=armada-3720-espressobin-emmc
|
||||
+
|
||||
+ For other DB boards (MacchiatoBin, EspressoBin without soldered eMMC and 3700 DB board)
|
||||
+ compile u-boot with just default device-tree from defconfig using:
|
||||
|
||||
# make
|
||||
|
@ -0,0 +1,100 @@
|
||||
From d59406482c1847959305a986376b35e57da28e69 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Heider <a.heider@gmail.com>
|
||||
Date: Sat, 5 Sep 2020 12:45:59 +0200
|
||||
Subject: [PATCH] arm: mvebu: Espressobin: Set environment variable fdtfile
|
||||
|
||||
Required for the generic distro mechanism.
|
||||
|
||||
Linux ships with 4 variants:
|
||||
marvell/armada-3720-espressobin-v7-emmc.dtb
|
||||
marvell/armada-3720-espressobin-v7.dtb
|
||||
marvell/armada-3720-espressobin-emmc.dtb
|
||||
marvell/armada-3720-espressobin.dtb
|
||||
|
||||
Use available information to determine the appropriate filename.
|
||||
|
||||
Tested on a v5 board without eMMC.
|
||||
|
||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
||||
---
|
||||
board/Marvell/mvebu_armada-37xx/board.c | 47 +++++++++++++++++++++
|
||||
configs/mvebu_espressobin-88f3720_defconfig | 1 +
|
||||
2 files changed, 48 insertions(+)
|
||||
|
||||
--- a/board/Marvell/mvebu_armada-37xx/board.c
|
||||
+++ b/board/Marvell/mvebu_armada-37xx/board.c
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
+#include <env.h>
|
||||
#include <i2c.h>
|
||||
#include <init.h>
|
||||
#include <phy.h>
|
||||
@@ -50,6 +51,22 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#define MVEBU_G2_SMI_PHY_CMD_REG (24)
|
||||
#define MVEBU_G2_SMI_PHY_DATA_REG (25)
|
||||
|
||||
+/*
|
||||
+ * Memory Controller Registers
|
||||
+ *
|
||||
+ * Assembled based on public information:
|
||||
+ * https://gitlab.nic.cz/turris/mox-boot-builder/-/blob/master/wtmi/main.c#L332-336
|
||||
+ * https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell/blob/mv_ddr-armada-18.12/drivers/mv_ddr_mc6.h#L309-L332
|
||||
+ *
|
||||
+ * And checked against the written register values for the various topologies:
|
||||
+ * https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell/blob/mv_ddr-armada-atf-mainline/a3700/mv_ddr_tim.h
|
||||
+ */
|
||||
+#define A3700_CH0_MC_CTRL2_REG MVEBU_REGISTER(0x002c4)
|
||||
+#define A3700_MC_CTRL2_SDRAM_TYPE_MASK 0xf
|
||||
+#define A3700_MC_CTRL2_SDRAM_TYPE_OFFS 4
|
||||
+#define A3700_MC_CTRL2_SDRAM_TYPE_DDR3 2
|
||||
+#define A3700_MC_CTRL2_SDRAM_TYPE_DDR4 3
|
||||
+
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
return 0;
|
||||
@@ -63,6 +80,36 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_BOARD_LATE_INIT
|
||||
+int board_late_init(void)
|
||||
+{
|
||||
+ bool ddr4, emmc;
|
||||
+
|
||||
+ if (env_get("fdtfile"))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (!of_machine_is_compatible("globalscale,espressobin"))
|
||||
+ return 0;
|
||||
+
|
||||
+ /* If the memory controller has been configured for DDR4, we're running on v7 */
|
||||
+ ddr4 = ((readl(A3700_CH0_MC_CTRL2_REG) >> A3700_MC_CTRL2_SDRAM_TYPE_OFFS)
|
||||
+ & A3700_MC_CTRL2_SDRAM_TYPE_MASK) == A3700_MC_CTRL2_SDRAM_TYPE_DDR4;
|
||||
+
|
||||
+ emmc = of_machine_is_compatible("globalscale,espressobin-emmc");
|
||||
+
|
||||
+ if (ddr4 && emmc)
|
||||
+ env_set("fdtfile", "marvell/armada-3720-espressobin-v7-emmc.dtb");
|
||||
+ else if (ddr4)
|
||||
+ env_set("fdtfile", "marvell/armada-3720-espressobin-v7.dtb");
|
||||
+ else if (emmc)
|
||||
+ env_set("fdtfile", "marvell/armada-3720-espressobin-emmc.dtb");
|
||||
+ else
|
||||
+ env_set("fdtfile", "marvell/armada-3720-espressobin.dtb");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* Board specific AHCI / SATA enable code */
|
||||
int board_ahci_enable(void)
|
||||
{
|
||||
--- a/configs/mvebu_espressobin-88f3720_defconfig
|
||||
+++ b/configs/mvebu_espressobin-88f3720_defconfig
|
||||
@@ -84,3 +84,4 @@ CONFIG_USB_ETHER_RTL8152=y
|
||||
CONFIG_USB_ETHER_SMSC95XX=y
|
||||
CONFIG_SHA1=y
|
||||
CONFIG_SHA256=y
|
||||
+CONFIG_BOARD_LATE_INIT=y
|
Loading…
Reference in New Issue
Block a user