[U-Boot] [PATCH v2] sunxi: add support for Banana Pi M2 Zero board

Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit 512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one powering-only) and a miniHDMI port.
DTS file is from Linux kernel with removing some nodes that are not needed in u-boot or not merged into u-boot yet.
Signed-off-by: Icenowy Zheng icenowy@aosc.io Signed-off-by: Jun Nie jun.nie@linaro.org --- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 68 +++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/bananapi_m2_zero_defconfig | 15 ++++++ 4 files changed, 89 insertions(+) create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts create mode 100644 configs/bananapi_m2_zero_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 20a4c37..8d6fab2 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ sun8i-a83t-cubietruck-plus.dtb \ sun8i-a83t-tbs-a711.dts dtb-$(CONFIG_MACH_SUN8I_H3) += \ + sun8i-h2-plus-bananapi-m2-zero.dtb \ sun8i-h2-plus-orangepi-zero.dtb \ sun8i-h3-bananapi-m2-plus.dtb \ sun8i-h3-libretech-all-h3-cc.dtb \ diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts new file mode 100644 index 0000000..92e8cf4 --- /dev/null +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2017 Icenowy Zheng icenowy@aosc.io + * + * Based on sun8i-h3-bananapi-m2-plus.dts, which is: + * Copyright (C) 2016 Chen-Yu Tsai wens@csie.org + */ + +/dts-v1/; +#include "sun8i-h3.dtsi" +#include "sunxi-common-regulators.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "Banana Pi BPI-M2-Zero"; + compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus"; + + aliases { + serial0 = &uart0; + serial1 = &uart1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + pwr_led { + label = "bananapi-m2-zero:red:pwr"; + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ + default-state = "on"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + sw4 { + label = "power"; + linux,code = <BTN_0>; + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&mmc0 { + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; + /* + * On the production batch of this board the card detect GPIO is + * high active (card inserted), although on the early samples it's + * low active. + */ + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ + status = "okay"; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS index 5eb8bbe..0d904d9 100644 --- a/board/sunxi/MAINTAINERS +++ b/board/sunxi/MAINTAINERS @@ -363,6 +363,11 @@ M: Icenowy Zheng icenowy@aosc.io S: Maintained F: configs/Sinovoip_BPI_M2_Plus_defconfig
+SINOVOIP BPI M2 ZERO BOARD +M: Icenowy Zheng icenowy@aosc.io +S: Maintained +F: configs/Sinovoip_BPI_M2_Zero_defconfig + SINOVOIP BPI M3 A83T BOARD M: VishnuPatekar vishnupatekar0510@gmail.com S: Maintained diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 0000000..b919d8b --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,15 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SYS_TEXT_BASE=0x4a000000 +CONFIG_MACH_SUN8I_H3=y +CONFIG_DRAM_CLK=408 +CONFIG_DRAM_ZQ=3881979 +CONFIG_DRAM_ODT_EN=y +CONFIG_MMC0_CD_PIN="" +CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_SPL=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set

Hi,
On Thu, May 24, 2018 at 12:38:19PM +0800, Jun Nie wrote:
Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit 512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one powering-only) and a miniHDMI port.
DTS file is from Linux kernel with removing some nodes that are not needed in u-boot or not merged into u-boot yet.
Signed-off-by: Icenowy Zheng icenowy@aosc.io Signed-off-by: Jun Nie jun.nie@linaro.org
Don't forget to CC me on the sunxi-related patches.
arch/arm/dts/Makefile | 1 + arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 68 +++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/bananapi_m2_zero_defconfig | 15 ++++++ 4 files changed, 89 insertions(+) create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts create mode 100644 configs/bananapi_m2_zero_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 20a4c37..8d6fab2 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ sun8i-a83t-cubietruck-plus.dtb \ sun8i-a83t-tbs-a711.dts dtb-$(CONFIG_MACH_SUN8I_H3) += \
- sun8i-h2-plus-bananapi-m2-zero.dtb \ sun8i-h2-plus-orangepi-zero.dtb \ sun8i-h3-bananapi-m2-plus.dtb \ sun8i-h3-libretech-all-h3-cc.dtb \
diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts new file mode 100644 index 0000000..92e8cf4 --- /dev/null +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- Copyright (C) 2017 Icenowy Zheng icenowy@aosc.io
- Based on sun8i-h3-bananapi-m2-plus.dts, which is:
- Copyright (C) 2016 Chen-Yu Tsai wens@csie.org
- */
+/dts-v1/; +#include "sun8i-h3.dtsi" +#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h>
+/ {
- model = "Banana Pi BPI-M2-Zero";
- compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
- aliases {
serial0 = &uart0;
serial1 = &uart1;
- };
- chosen {
stdout-path = "serial0:115200n8";
- };
- leds {
compatible = "gpio-leds";
pwr_led {
label = "bananapi-m2-zero:red:pwr";
gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
default-state = "on";
};
- };
- gpio_keys {
compatible = "gpio-keys";
sw4 {
label = "power";
linux,code = <BTN_0>;
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
};
- };
+};
+&mmc0 {
- vmmc-supply = <®_vcc3v3>;
- bus-width = <4>;
- /*
* On the production batch of this board the card detect GPIO is
* high active (card inserted), although on the early samples it's
* low active.
*/
- cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
- status = "okay";
+};
+&uart0 {
- status = "okay";
+};
+&uart1 {
- status = "okay";
+};
Why not using straight the DT from linux here? There's a couple of things missing from this one (the pinctrl nodes, for example).
diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS index 5eb8bbe..0d904d9 100644 --- a/board/sunxi/MAINTAINERS +++ b/board/sunxi/MAINTAINERS @@ -363,6 +363,11 @@ M: Icenowy Zheng icenowy@aosc.io S: Maintained F: configs/Sinovoip_BPI_M2_Plus_defconfig
+SINOVOIP BPI M2 ZERO BOARD +M: Icenowy Zheng icenowy@aosc.io +S: Maintained +F: configs/Sinovoip_BPI_M2_Zero_defconfig
SINOVOIP BPI M3 A83T BOARD M: VishnuPatekar vishnupatekar0510@gmail.com S: Maintained diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 0000000..b919d8b --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,15 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SYS_TEXT_BASE=0x4a000000
Did you run savedefconfig recently? That should be the default nowadays.
+CONFIG_MACH_SUN8I_H3=y +CONFIG_DRAM_CLK=408 +CONFIG_DRAM_ZQ=3881979 +CONFIG_DRAM_ODT_EN=y +CONFIG_MMC0_CD_PIN=""
That doesn't match the DT.
Maxime

2018-05-24 15:54 GMT+08:00 Maxime Ripard maxime.ripard@bootlin.com:
Hi,
On Thu, May 24, 2018 at 12:38:19PM +0800, Jun Nie wrote:
Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit 512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one powering-only) and a miniHDMI port.
DTS file is from Linux kernel with removing some nodes that are not needed in u-boot or not merged into u-boot yet.
Signed-off-by: Icenowy Zheng icenowy@aosc.io Signed-off-by: Jun Nie jun.nie@linaro.org
Don't forget to CC me on the sunxi-related patches.
Sure, will add your email in the script.
arch/arm/dts/Makefile | 1 + arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 68 +++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/bananapi_m2_zero_defconfig | 15 ++++++ 4 files changed, 89 insertions(+) create mode 100644 arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts create mode 100644 configs/bananapi_m2_zero_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 20a4c37..8d6fab2 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -338,6 +338,7 @@ dtb-$(CONFIG_MACH_SUN8I_A83T) += \ sun8i-a83t-cubietruck-plus.dtb \ sun8i-a83t-tbs-a711.dts dtb-$(CONFIG_MACH_SUN8I_H3) += \
sun8i-h2-plus-bananapi-m2-zero.dtb \ sun8i-h2-plus-orangepi-zero.dtb \ sun8i-h3-bananapi-m2-plus.dtb \ sun8i-h3-libretech-all-h3-cc.dtb \
diff --git a/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts new file mode 100644 index 0000000..92e8cf4 --- /dev/null +++ b/arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- Copyright (C) 2017 Icenowy Zheng icenowy@aosc.io
- Based on sun8i-h3-bananapi-m2-plus.dts, which is:
- Copyright (C) 2016 Chen-Yu Tsai wens@csie.org
- */
+/dts-v1/; +#include "sun8i-h3.dtsi" +#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h>
+/ {
model = "Banana Pi BPI-M2-Zero";
compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
chosen {
stdout-path = "serial0:115200n8";
};
leds {
compatible = "gpio-leds";
pwr_led {
label = "bananapi-m2-zero:red:pwr";
gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
default-state = "on";
};
};
gpio_keys {
compatible = "gpio-keys";
sw4 {
label = "power";
linux,code = <BTN_0>;
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
};
};
+};
+&mmc0 {
vmmc-supply = <®_vcc3v3>;
bus-width = <4>;
/*
* On the production batch of this board the card detect GPIO is
* high active (card inserted), although on the early samples it's
* low active.
*/
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
status = "okay";
+};
+&uart0 {
status = "okay";
+};
+&uart1 {
status = "okay";
+};
Why not using straight the DT from linux here? There's a couple of things missing from this one (the pinctrl nodes, for example).
I had thought that pinctrl is not merged yet in u-boot per the comments for patch V1. Will keep it in next version.
WIFI is removed because it shall not work in u-boot.
ehci0/ohci0 are removed because they are still missing in h3.dtsi.
diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS index 5eb8bbe..0d904d9 100644 --- a/board/sunxi/MAINTAINERS +++ b/board/sunxi/MAINTAINERS @@ -363,6 +363,11 @@ M: Icenowy Zheng icenowy@aosc.io S: Maintained F: configs/Sinovoip_BPI_M2_Plus_defconfig
+SINOVOIP BPI M2 ZERO BOARD +M: Icenowy Zheng icenowy@aosc.io +S: Maintained +F: configs/Sinovoip_BPI_M2_Zero_defconfig
SINOVOIP BPI M3 A83T BOARD M: VishnuPatekar vishnupatekar0510@gmail.com S: Maintained diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 0000000..b919d8b --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,15 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SYS_TEXT_BASE=0x4a000000
Did you run savedefconfig recently? That should be the default nowadays.
Yes, this config is copied from saved defconfig. I rebased to denx/next to generate patch. Or I should prepare the patch based on denx/master?
+CONFIG_MACH_SUN8I_H3=y +CONFIG_DRAM_CLK=408 +CONFIG_DRAM_ZQ=3881979 +CONFIG_DRAM_ODT_EN=y +CONFIG_MMC0_CD_PIN=""
That doesn't match the DT.
Right. I see Kconfig default cd_pin is PF6. Not sure why this line is generated. Will remove it in next version.
Maxime
-- Maxime Ripard, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com

On Thu, May 24, 2018 at 04:22:53PM +0800, Jun Nie wrote:
Why not using straight the DT from linux here? There's a couple of things missing from this one (the pinctrl nodes, for example).
I had thought that pinctrl is not merged yet in u-boot per the comments for patch V1. Will keep it in next version.
WIFI is removed because it shall not work in u-boot.
It doesn't really matter, the hardware is the same and the DT should be the same as well, even though U-Boot will not use it to its full extent. There's even some people using directly the U-Boot DT to boot Linux. In this case, you wouldn't get all the features supported in Linux either.
ehci0/ohci0 are removed because they are still missing in h3.dtsi.
You can sync the H3 DTSI with Linux as well then, we probably didn't do it for quite some time.
diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS index 5eb8bbe..0d904d9 100644 --- a/board/sunxi/MAINTAINERS +++ b/board/sunxi/MAINTAINERS @@ -363,6 +363,11 @@ M: Icenowy Zheng icenowy@aosc.io S: Maintained F: configs/Sinovoip_BPI_M2_Plus_defconfig
+SINOVOIP BPI M2 ZERO BOARD +M: Icenowy Zheng icenowy@aosc.io +S: Maintained +F: configs/Sinovoip_BPI_M2_Zero_defconfig
SINOVOIP BPI M3 A83T BOARD M: VishnuPatekar vishnupatekar0510@gmail.com S: Maintained diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig new file mode 100644 index 0000000..b919d8b --- /dev/null +++ b/configs/bananapi_m2_zero_defconfig @@ -0,0 +1,15 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SYS_TEXT_BASE=0x4a000000
Did you run savedefconfig recently? That should be the default nowadays.
Yes, this config is copied from saved defconfig. I rebased to denx/next to generate patch. Or I should prepare the patch based on denx/master?
This should have been solved by 341c05865478, which is part of v2018.05
Maxime
participants (2)
-
Jun Nie
-
Maxime Ripard