sun50i: a64/h5: Add orangepi boards
Subsystems (2)
cover sun50i: a64/h5: Add orangepi boards
From: Jagan Teki <[email protected]>
This series add Allwinner Cortex A-53 boards from OrangePI.
- Orangepi Win/WinPlus
- Orangepi Prime
- Orangepi Zero Plus 2
thanks!
Jagan.
Jagan Teki (5):
sun50i: a64: Add initial Orangepi Win/WinPlus support
arm64: dts: sun50i: Add sun50i-h5.dtsi
arm64: dts: sun50i: h5: orangepi-pc2: Use GPIO flag binding macro
sun50i: h5: Add initial Orangepi Prime support
sun50i: h5: Add initial Orangepi Zero Plus 2 support
arch/arm/dts/Makefile | 5 +- arch/arm/dts/sun50i-a64-orangepi-win.dts | 102 ++++++++++++++++++++++++ arch/arm/dts/sun50i-h5-orangepi-pc2.dts | 38 +-------- arch/arm/dts/sun50i-h5-orangepi-prime.dts | 104 +++++++++++++++++++++++++ arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts | 93 ++++++++++++++++++++++ arch/arm/dts/sun50i-h5.dtsi | 79 +++++++++++++++++++ board/sunxi/MAINTAINERS | 15 ++++ configs/orangepi_prime_defconfig | 17 ++++ configs/orangepi_win_defconfig | 16 ++++ configs/orangepi_zero_plus2_defconfig | 17 ++++ 10 files changed, 451 insertions(+), 35 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-orangepi-win.dts create mode 100644 arch/arm/dts/sun50i-h5-orangepi-prime.dts create mode 100644 arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts create mode 100644 arch/arm/dts/sun50i-h5.dtsi create mode 100644 configs/orangepi_prime_defconfig create mode 100644 configs/orangepi_win_defconfig create mode 100644 configs/orangepi_zero_plus2_defconfig
Signature · 1 line
2.7.4
PATCH 1/5 sun50i: a64: Add initial Orangepi Win/WinPlus support
From: Jagan Teki <[email protected]>
Orangepi Win/WinPlus is an open-source single-board computer using the Allwinner A64 SOC.
A64 Orangepi Win/WinPlus has
- A64 Quad-core Cortex-A53 64bit
- 1GB(Win)/2GB(Win Plus) DDR3 SDRAM
- Debug TTL UART
- Four USB 2.0
- HDMI
- LCD
- Audio and MIC
- Wifi + BT
- IR receiver
- 5V DC power supply
http://www.orangepi.org/OrangePiWin_WinPlus/
Boot from MMC:
--------------
U-Boot SPL 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:32:53)
DRAM: 1024 MiB
Trying to boot from MMC1
NOTICE: BL3-1: Running on A64/H64 (1689) in SRAM A2 (@0x44000) NOTICE: Configuring SPC Controller NOTICE: BL3-1: v1.0(debug):aa75c8d NOTICE: BL3-1: Built : 18:28:27, May 24 2017 NOTICE: Configuring AXP PMIC NOTICE: PMIC: setup successful INFO: BL3-1: Initializing runtime services INFO: BL3-1: Preparing for EL3 exit to normal world INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9
U-Boot 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:32:53 +0000) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: OrangePi Win/Win Plus DRAM: 1 GiB MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: No ethernet found. starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
--- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-orangepi-win.dts | 102 +++++++++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/orangepi_win_defconfig | 16 +++++ 4 files changed, 124 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-orangepi-win.dts create mode 100644 configs/orangepi_win_defconfig
arch/arm/dts/Makefile +1 -0
@@ -317,6 +317,7 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ dtb-$(CONFIG_MACH_SUN50I_H5) += \ sun50i-h5-orangepi-pc2.dtb dtb-$(CONFIG_MACH_SUN50I) += \ + sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb dtb-$(CONFIG_MACH_SUN9I) += \
arch/arm/dts/sun50i-a64-orangepi-win.dts new file +102 -0
102 lines not on this page · raw message
board/sunxi/MAINTAINERS +5 -0
@@ -267,6 +267,11 @@ M: Andre Przywara <[email protected]> S: Maintained F: configs/orangepi_pc2_defconfig +ORANGEPI WIN/WIN PLUS BOARD +M: Jagan Teki <[email protected]> +S: Maintained +F: configs/orangepi_win_defconfig + PINE64 BOARDS M: Andre Przywara <[email protected]> S: Maintained
configs/orangepi_win_defconfig new file +16 -0
@@ -0,0 +1,16 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_MACH_SUN50I=y +CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-orangepi-win" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +CONFIG_SPL=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y
Signature · 1 line
2.7.4
PATCH 1/5 sun50i: a64: Add initial Orangepi Win/WinPlus support
Quoted 17 lines · Jagan Teki
From: Jagan Teki <[email protected]>
Orangepi Win/WinPlus is an open-source single-board computer using the Allwinner A64 SOC.
A64 Orangepi Win/WinPlus has
- A64 Quad-core Cortex-A53 64bit
- 1GB(Win)/2GB(Win Plus) DDR3 SDRAM
- Debug TTL UART
- Four USB 2.0
- HDMI
- LCD
- Audio and MIC
- Wifi + BT
- IR receiver
- 5V DC power supply
Quoted 1 line
Do you have a link to some schematics?
Quoted 21 lines
Boot from MMC:
--------------
U-Boot SPL 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:32:53)
DRAM: 1024 MiB
Trying to boot from MMC1NOTICE: BL3-1: Running on A64/H64 (1689) in SRAM A2 (@0x44000) NOTICE: Configuring SPC Controller NOTICE: BL3-1: v1.0(debug):aa75c8d NOTICE: BL3-1: Built : 18:28:27, May 24 2017 NOTICE: Configuring AXP PMIC NOTICE: PMIC: setup successful INFO: BL3-1: Initializing runtime services INFO: BL3-1: Preparing for EL3 exit to normal world INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9U-Boot 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:32:53 +0000) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: OrangePi Win/Win Plus DRAM: 1 GiB MMC: SUNXI SD/MMC: 0
Quoted 6 lines
*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: No ethernet found.
Any reason you didn't enable this?
If you have applied my A64/Pine64 DT update (v3 is a single patch now), you should copy the new sun50i-a64-pine64-plus-u-boot.dtsi to sun50i-a64-orangepi-win-u-boot.dtsi, that should do the trick. If the Ethernet uses another GPIO or AXP line to enable the PHY, let me know.
Quoted 11 lines
starting USB...
USB0: USB EHCI 1.00 USB1: USB OHCI 1.0scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0Signed-off-by Jagan Teki <[email protected]>--- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-orangepi-win.dts | 102 +++++++++++++++++++++++++++++++
In general we might eventually want to wait what the discussion on the Linux side ends up like, then copy this .dts file.
Quoted 154 lines
board/sunxi/MAINTAINERS | 5 ++ configs/orangepi_win_defconfig | 16 +++++ 4 files changed, 124 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-orangepi-win.dts create mode 100644 configs/orangepi_win_defconfigarch/arm/dts/Makefile +1
-0@@ -317,6 +317,7 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ dtb-$(CONFIG_MACH_SUN50I_H5) += \ sun50i-h5-orangepi-pc2.dtb dtb-$(CONFIG_MACH_SUN50I) += \ + sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb dtb-$(CONFIG_MACH_SUN9I) += \arch/arm/dts/sun50i-a64-orangepi-win.dts new file +102
-0@@ -0,0 +1,102 @@ +/* + * Copyright (C) 2017 Jagan Teki <[email protected]> + * + * 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 library 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 library 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 "AS IS", 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 "sun50i-a64.dtsi" + +#include <dt-bindings/gpio/gpio.h> + +/ { + model = "OrangePi Win/Win Plus"; + compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + soc { + reg_vcc3v3: vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; +}; + +&mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>, <&mmc0_default_cd_pin>; + vmmc-supply = <®_vcc3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; + cd-inverted; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; + status = "okay"; +}; + +&usbphy { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +};board/sunxi/MAINTAINERS +5
-0@@ -267,6 +267,11 @@ M: Andre Przywara <[email protected]> S: Maintained F: configs/orangepi_pc2_defconfig +ORANGEPI WIN/WIN PLUS BOARD +M: Jagan Teki <[email protected]> +S: Maintained +F: configs/orangepi_win_defconfig + PINE64 BOARDS M: Andre Przywara <[email protected]> S: Maintainedconfigs/orangepi_win_defconfig new file +6
-0@@ -0,0 +1,16 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_MACH_SUN50I=y +CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-orangepi-win" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
configs/orangepi_win_defconfig line 16
Quoted 10 lines
configs/orangepi_win_defconfig new file +10
-0+CONFIG_CONSOLE_MUX=y +CONFIG_SPL=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y
This board has SPI flash, so you should absolutely enable the SPL SPI options, as this allows booting from SPI flash, which is a really cool feature. Look at the OrangePi PC 2 config for the needed lines.
So in general this is basically identical to the Pine64 defconfig, apart from the device tree. With the latest U-Boot HEAD we can now put the DT name in the SPL header (for instance in the SPI flash!), add the new DT name to the CONFIG_OF_LIST option and get away without an extra defconfig. This allows to use the very same U-Boot image for the Pine64 and this OrangePi. The SPL board selector function would lookup the board DT name from the SPL header and load the respective .dtb from the FIT image.
Admittedly there is some tooling missing at the moment to make this really a smooth experience, but I wonder if we should explore this approach further. A firmware update tool could read the existing DT name from the current SPL header, update all of the SPL, FIT, ATF and U-Boot binaries, then write that very same DT name back into the SPL header. I have started to hack on something like this, let me know if that sounds interesting.
Cheers,
Andre.
PATCH 2/5 arm64: dts: sun50i: Add sun50i-h5.dtsi
In reply to Jagan TekiFrom: Jagan Teki <[email protected]>
The Allwinner H5 SoC is pin-compatible to the H3 SoC, but uses Cortex-A53 cores instead.
So move the shared cpu based and peripherals nodes into sun50i-h5.dtsi so, that it can shared among the sun50i-h5 board dts files.
--- arch/arm/dts/sun50i-h5-orangepi-pc2.dts | 34 +------------- arch/arm/dts/sun50i-h5.dtsi | 79 +++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 33 deletions(-) create mode 100644 arch/arm/dts/sun50i-h5.dtsi
arch/arm/dts/sun50i-h5-orangepi-pc2.dts +1 -33
@@ -42,40 +42,12 @@ /dts-v1/; -#include "sun8i-h3.dtsi" +#include "sun50i-h5.dtsi" / { model = "OrangePi PC 2"; compatible = "xunlong,orangepi-pc-2", "allwinner,sun50i-h5"; - cpus { - cpu at 0 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 1 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 2 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 3 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - }; - - timer { - compatible = "arm,armv8-timer"; - }; - chosen { stdout-path = "serial0:115200n8"; };
@@ -99,10 +71,6 @@ }; }; -&gic { - compatible = "arm,gic-400"; -}; - &mmc0 { compatible = "allwinner,sun50i-h5-mmc", "allwinner,sun50i-a64-mmc",
arch/arm/dts/sun50i-h5.dtsi new file +79 -0
79 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 2/5 arm64: dts: sun50i: Add sun50i-h5.dtsi
Quoted 8 lines · Jagan Teki
From: Jagan Teki <[email protected]>
The Allwinner H5 SoC is pin-compatible to the H3 SoC, but uses Cortex-A53 cores instead.
So move the shared cpu based and peripherals nodes into
sun50i-h5.dtsiso, that it can shared among the sun50i-h5 board dts files.
That looks like another deviation from the Linux DTs, right? Yesterdays I tried to update U-Boot with the Linux DTs, but this gets nasty because of the entanglement with the H3 and the non-upstream Ethernet support.
Following the new scheme we would need to have a ...-u-boot.dtsi with the Ethernet nodes for *each* board, as some H3 boards use 100Mbit, some have a Gbit PHY, so we can't use a single file to cover both.
Not sure if that means we use two .dtsi files and symbolic links or whether we want to wait until we can have multiple, possibly shared -u-boot.dtsi files to tackle this.
Cheers,
Andre.
Quoted 151 lines
Signed-off-by Jagan Teki <[email protected]>--- arch/arm/dts/sun50i-h5-orangepi-pc2.dts | 34 +------------- arch/arm/dts/sun50i-h5.dtsi | 79 +++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 33 deletions(-) create mode 100644 arch/arm/dts/sun50i-h5.dtsiarch/arm/dts/sun50i-h5-orangepi-pc2.dts +1
-33@@ -42,40 +42,12 @@ /dts-v1/; -#include "sun8i-h3.dtsi" +#include "sun50i-h5.dtsi" / { model = "OrangePi PC 2"; compatible = "xunlong,orangepi-pc-2", "allwinner,sun50i-h5"; - cpus { - cpu at 0 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 1 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 2 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - cpu at 3 { - compatible = "arm,cortex-a53", "arm,armv8"; - enable-method = "psci"; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - }; - - timer { - compatible = "arm,armv8-timer"; - }; - chosen { stdout-path = "serial0:115200n8"; };@@ -99,10 +71,6 @@ }; }; -&gic { - compatible = "arm,gic-400"; -}; - &mmc0 { compatible = "allwinner,sun50i-h5-mmc", "allwinner,sun50i-a64-mmc",arch/arm/dts/sun50i-h5.dtsi new file +79
-0@@ -0,0 +1,79 @@ +/* + * Copyright (c) 2016 ARM Ltd. + * + * 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 library 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 library 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 "AS IS", 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 "sun8i-h3.dtsi" + +/ { + cpus { + cpu at 0 { + compatible = "arm,cortex-a53", "arm,armv8"; + enable-method = "psci"; + }; + cpu at 1 { + compatible = "arm,cortex-a53", "arm,armv8"; + enable-method = "psci"; + }; + cpu at 2 { + compatible = "arm,cortex-a53", "arm,armv8"; + enable-method = "psci"; + }; + cpu at 3 { + compatible = "arm,cortex-a53", "arm,armv8"; + enable-method = "psci"; + }; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + }; +}; + +&gic { + compatible = "arm,gic-400"; +};
PATCH 3/5 arm64: dts: sun50i: h5: orangepi-pc2: Use GPIO flag binding macro
In reply to Jagan TekiFrom: Jagan Teki <[email protected]>
Instead of defining numerical value on GPIO flag
better to use existing binding macro.
--- arch/arm/dts/sun50i-h5-orangepi-pc2.dts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
arch/arm/dts/sun50i-h5-orangepi-pc2.dts +3 -1
@@ -44,6 +44,8 @@ #include "sun50i-h5.dtsi" +#include <dt-bindings/gpio/gpio.h> + / { model = "OrangePi PC 2"; compatible = "xunlong,orangepi-pc-2", "allwinner,sun50i-h5";
@@ -79,7 +81,7 @@ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; vmmc-supply = <®_vcc3v3>; bus-width = <4>; - cd-gpios = <&pio 5 6 0>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; cd-inverted; status = "okay"; };
Signature · 1 line
2.7.4
PATCH 4/5 sun50i: h5: Add initial Orangepi Prime support
In reply to Jagan TekiFrom: Jagan Teki <[email protected]>
Orangepi Prime is an open-source single-board computer using the Allwinner h5 SOC.
H5 Orangepi Prime has
- Quad-core Cortex-A53
- 2GB DDR3
- Debug TTL UART
- 1000M/100M Ethernet RJ45
- Three USB 2.0
- HDMI
- Audio and MIC
- Wifi + BT
- IR receiver
- HDMI
- Wifi + BT
http://www.orangepi.org/OrangePiPrime/
Boot from MMC:
-------------
U-Boot SPL 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:30:14)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE: BL3-1: Running on H5 (1718) in SRAM A2 (@0x44000) NOTICE: Configuring SPC Controller NOTICE: BL3-1: v1.0(debug):aa75c8d NOTICE: BL3-1: Built : 18:28:27, May 24 2017 INFO: BL3-1: Initializing runtime services INFO: BL3-1: Preparing for EL3 exit to normal world INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9
U-Boot 2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:30:14 +0000) Allwinner Technology
CPU: Allwinner H5 (SUN50I) Model: OrangePi Prime DRAM: 2 GiB MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet at 1c30000 starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
--- arch/arm/dts/Makefile | 3 +- arch/arm/dts/sun50i-h5-orangepi-prime.dts | 104 ++++++++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/orangepi_prime_defconfig | 17 +++++ 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/sun50i-h5-orangepi-prime.dts create mode 100644 configs/orangepi_prime_defconfig
arch/arm/dts/Makefile +2 -1
@@ -315,7 +315,8 @@ dtb-$(CONFIG_MACH_SUN8I_R40) += \ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ sun8i-v3s-licheepi-zero.dtb dtb-$(CONFIG_MACH_SUN50I_H5) += \ - sun50i-h5-orangepi-pc2.dtb + sun50i-h5-orangepi-pc2.dtb \ + sun50i-h5-orangepi-prime.dtb dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \
arch/arm/dts/sun50i-h5-orangepi-prime.dts new file +104 -0
104 lines not on this page · raw message
board/sunxi/MAINTAINERS +5 -0
@@ -267,6 +267,11 @@ M: Andre Przywara <[email protected]> S: Maintained F: configs/orangepi_pc2_defconfig +ORANGEPI PRIME BOARD +M: Jagan Teki <[email protected]> +S: Maintained +F: configs/orangepi_prime_defconfig + ORANGEPI WIN/WIN PLUS BOARD M: Jagan Teki <[email protected]> S: Maintained
configs/orangepi_prime_defconfig new file +17 -0
@@ -0,0 +1,17 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_MACH_SUN50I_H5=y +CONFIG_DRAM_CLK=672 +CONFIG_DRAM_ZQ=3881977 +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-prime" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +CONFIG_SPL=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y
Signature · 1 line
2.7.4
PATCH 5/5 sun50i: h5: Add initial Orangepi Zero Plus 2 support
In reply to Jagan TekiFrom: Jagan Teki <[email protected]>
Orangepi Zero Plus 2 is an open-source single-board computer using the Allwinner h5 SOC.
H5 Orangepi Zero Plus 2 has
- Quad-core Cortex-A53
- 512MB DDR3
- Debug TTL UART
- HDMI
- Wifi + BT
- OTG+power supply
http://www.orangepi.org/OrangePiZeroPlus2/
Boot from MMC:
--------------
U-Boot SPL 2017.05-00663-g51233ac-dirty (May 25 2017 - 16:18:41)
DRAM: 512 MiB
Trying to boot from MMC1
NOTICE: BL3-1: Running on H5 (1718) in SRAM A2 (@0x44000) NOTICE: Configuring SPC Controller NOTICE: BL3-1: v1.0(debug):aa75c8d NOTICE: BL3-1: Built : 18:28:27, May 24 2017 INFO: BL3-1: Initializing runtime services INFO: BL3-1: Preparing for EL3 exit to normal world INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9
U-Boot 2017.05-00663-g51233ac-dirty (May 25 2017 - 16:18:41 +0000) Allwinner Technology
CPU: Allwinner H5 (SUN50I) Model: OrangePi Zero Plus2 DRAM: 512 MiB MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet at 1c30000 starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
--- arch/arm/dts/Makefile | 3 +- arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts | 93 ++++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/orangepi_zero_plus2_defconfig | 17 +++++ 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts create mode 100644 configs/orangepi_zero_plus2_defconfig
arch/arm/dts/Makefile +2 -1
@@ -316,7 +316,8 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ sun8i-v3s-licheepi-zero.dtb dtb-$(CONFIG_MACH_SUN50I_H5) += \ sun50i-h5-orangepi-pc2.dtb \ - sun50i-h5-orangepi-prime.dtb + sun50i-h5-orangepi-prime.dtb \ + sun50i-h5-orangepi-zero-plus2.dtb dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \
arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts new file +93 -0
93 lines not on this page · raw message
board/sunxi/MAINTAINERS +5 -0
@@ -262,6 +262,11 @@ M: Icenowy Zheng <[email protected]> S: Maintained F: configs/orangepi_zero_defconfig +ORANGEPI ZERO PLUS 2 BOARD +M: Jagan Teki <[email protected]> +S: Maintained +F: configs/orangepi_zero_plus2_defconfig + ORANGEPI PC 2 BOARD M: Andre Przywara <[email protected]> S: Maintained
configs/orangepi_zero_plus2_defconfig new file +17 -0
@@ -0,0 +1,17 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_MACH_SUN50I_H5=y +CONFIG_DRAM_CLK=672 +CONFIG_DRAM_ZQ=3881977 +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus2" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +CONFIG_SPL=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y
Signature · 1 line
2.7.4
PATCH 5/5 sun50i: h5: Add initial Orangepi Zero Plus 2 support
Quoted 5 lines · Jagan Teki
From: Jagan Teki <[email protected]>
Orangepi Zero Plus 2 is an open-source single-board computer using the Allwinner h5 SOC.
Quoted 7 lines
H5 Orangepi Zero Plus 2 has
- Quad-core Cortex-A53
- 512MB DDR3
- Debug TTL UART
- HDMI
- Wifi + BT
- OTG+power supply
What about the eMMC? The link below says it features 8GB of it. So you should have the appropriate DT node and the defconfig option to allow booting from it.
Quoted 1 line
But in general I think this is somewhat gated by the general H5 DT issue I mentioned in the other mail.
Cheers,
Andre.
Quoted 197 lines
Boot from MMC:
--------------
U-Boot SPL 2017.05-00663-g51233ac-dirty (May 25 2017 - 16:18:41)
DRAM: 512 MiB
Trying to boot from MMC1NOTICE: BL3-1: Running on H5 (1718) in SRAM A2 (@0x44000) NOTICE: Configuring SPC Controller NOTICE: BL3-1: v1.0(debug):aa75c8d NOTICE: BL3-1: Built : 18:28:27, May 24 2017 INFO: BL3-1: Initializing runtime services INFO: BL3-1: Preparing for EL3 exit to normal world INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9U-Boot 2017.05-00663-g51233ac-dirty (May 25 2017 - 16:18:41 +0000) Allwinner Technology
CPU: Allwinner H5 (SUN50I) Model: OrangePi Zero Plus2 DRAM: 512 MiB MMC: SUNXI SD/MMC: 0*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet at 1c30000 starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0Signed-off-by Jagan Teki <[email protected]>--- arch/arm/dts/Makefile | 3 +- arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts | 93 ++++++++++++++++++++++++++ board/sunxi/MAINTAINERS | 5 ++ configs/orangepi_zero_plus2_defconfig | 17 +++++ 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts create mode 100644 configs/orangepi_zero_plus2_defconfigarch/arm/dts/Makefile +2
-1@@ -316,7 +316,8 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ sun8i-v3s-licheepi-zero.dtb dtb-$(CONFIG_MACH_SUN50I_H5) += \ sun50i-h5-orangepi-pc2.dtb \ - sun50i-h5-orangepi-prime.dtb + sun50i-h5-orangepi-prime.dtb \ + sun50i-h5-orangepi-zero-plus2.dtb dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dts new file +93
-0@@ -0,0 +1,93 @@ +/* + * Copyright (C) 2017 Jagan Teki <[email protected]> + * + * 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 library 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 library 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 "AS IS", 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 "sun50i-h5.dtsi" + +#include <dt-bindings/gpio/gpio.h> + + +/ { + model = "OrangePi Zero Plus2"; + compatible = "xunlong,orangepi-zero-plus2", "allwinner,sun50i-h5"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory { + reg = <0x40000000 0x20000000>; + }; + + soc { + reg_vcc3v3: vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; +}; + +&mmc0 { + compatible = "allwinner,sun50i-h5-mmc", + "allwinner,sun50i-a64-mmc", + "allwinner,sun5i-a13-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; + cd-inverted; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; +};board/sunxi/MAINTAINERS +5
-0@@ -262,6 +262,11 @@ M: Icenowy Zheng <[email protected]> S: Maintained F: configs/orangepi_zero_defconfig +ORANGEPI ZERO PLUS 2 BOARD +M: Jagan Teki <[email protected]> +S: Maintained +F: configs/orangepi_zero_plus2_defconfig + ORANGEPI PC 2 BOARD M: Andre Przywara <[email protected]> S: Maintainedconfigs/orangepi_zero_plus2_defconfig new file +17
-0@@ -0,0 +1,17 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_MACH_SUN50I_H5=y +CONFIG_DRAM_CLK=672 +CONFIG_DRAM_ZQ=3881977 +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus2" +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_CONSOLE_MUX=y +CONFIG_SPL=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y
cover sun50i: a64/h5: Add orangepi boards
In reply to Jagan TekiQuoted 7 lines · Jagan Teki
From: Jagan Teki <[email protected]>
This series add Allwinner Cortex A-53 boards from OrangePI.
- Orangepi Win/WinPlus
- Orangepi Prime
- Orangepi Zero Plus 2
Quoted 8 lines
thanks!
Jagan.Jagan Teki (5):
sun50i: a64: Add initial Orangepi Win/WinPlus supportarm64: dts: sun50i: Add
sun50i-h5.dtsi
arm64: dts: sun50i: h5: orangepi-pc2: Use GPIO flag binding macro
These two
Applied to u-boot-sunxi/master
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.