Add a package for u-boot on the OrangePi Lite2.

This commit is contained in:
thorpej 2020-04-04 15:20:34 +00:00
parent c92a9b3913
commit 254070e7e7
12 changed files with 309 additions and 5 deletions

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.868 2020/03/21 19:26:59 adam Exp $
# $NetBSD: Makefile,v 1.869 2020/04/04 15:20:34 thorpej Exp $
#
COMMENT= System utilities
@ -663,6 +663,7 @@ SUBDIR+= u-boot-odroid-c2
SUBDIR+= u-boot-odroid-xu3
SUBDIR+= u-boot-orangepi-2
SUBDIR+= u-boot-orangepi-lite
SUBDIR+= u-boot-orangepi-lite2
SUBDIR+= u-boot-orangepi-one
SUBDIR+= u-boot-orangepi-plus2e
SUBDIR+= u-boot-orangepi-zero

View file

@ -0,0 +1,5 @@
U-Boot is a bootloader for embedded boards based on PowerPC, ARM, MIPS and
several other processors, which can be installed in a boot ROM and used to
initialize and test the hardware or to download and run application code.
This package provides U-Boot for the Xunlong Orange Pi Lite 2.

View file

@ -0,0 +1,16 @@
# $NetBSD: Makefile,v 1.1 2020/04/04 15:20:35 thorpej Exp $
UBOOT_TARGET= orangepi-lite2
UBOOT_CONFIG= orangepi_lite2_defconfig
UBOOT_BIN= u-boot-sunxi-with-spl.bin
UBOOT_INSTALLBOOT_PLIST= installboot.plist
post-extract:
${CP} ${PREFIX}/share/arm-trusted-firmware/sun50i-h6/bl31.bin ${WRKSRC}
post-build:
${CAT} ${WRKSRC}/spl/sunxi-spl.bin ${WRKSRC}/u-boot.itb > ${WRKSRC}/u-boot-sunxi-with-spl.bin
.include "../../sysutils/arm-trusted-firmware-sun50i-h6/buildlink3.mk"
.include "../../sysutils/u-boot/u-boot-arm64.mk"

View file

@ -0,0 +1,3 @@
@comment $NetBSD: PLIST,v 1.1 2020/04/04 15:20:35 thorpej Exp $
share/u-boot/orangepi-lite2/installboot.plist
share/u-boot/orangepi-lite2/u-boot-sunxi-with-spl.bin

View file

@ -0,0 +1,47 @@
<!-- $NetBSD: installboot.plist,v 1.1 2020/04/04 15:20:35 thorpej Exp $ -->
<!--
Copyright (c) 2019 The NetBSD Foundation, Inc.
All rights reserved.
This code is derived from software contributed to The NetBSD Foundation
by Jason R. Thorpe.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-->
<plist>
<dict>
<key>xunlong,orangepi-lite2</key>
<dict>
<key>description</key>
<string>Xunlong Orange Pi Lite2</string>
<key>u-boot-install</key>
<array>
<dict>
<key>file-name</key>
<string>u-boot-sunxi-with-spl.bin</string>
<key>image-offset</key>
<integer>8192</integer>
</dict>
</array>
</dict>
</dict>
</plist>

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.28 2020/03/15 14:09:48 uwe Exp $
# $NetBSD: Makefile,v 1.29 2020/04/04 15:20:35 thorpej Exp $
#
.include "../../sysutils/u-boot/u-boot-version.mk"
@ -56,6 +56,7 @@ DEPENDS+= u-boot-odroid-c2-[0-9]*:../../sysutils/u-boot-odroid-c2
DEPENDS+= u-boot-odroid-xu3-[0-9]*:../../sysutils/u-boot-odroid-xu3
DEPENDS+= u-boot-orangepi-2-[0-9]*:../../sysutils/u-boot-orangepi-2
DEPENDS+= u-boot-orangepi-lite-[0-9]*:../../sysutils/u-boot-orangepi-lite
DEPENDS+= u-boot-orangepi-lite2-[0-9]*:../../sysutils/u-boot-orangepi-lite2
DEPENDS+= u-boot-orangepi-one-[0-9]*:../../sysutils/u-boot-orangepi-one
DEPENDS+= u-boot-orangepi-plus2e-[0-9]*:../../sysutils/u-boot-orangepi-plus2e
DEPENDS+= u-boot-orangepi-zero-[0-9]*:../../sysutils/u-boot-orangepi-zero

View file

@ -1,4 +1,4 @@
$NetBSD: distinfo,v 1.31 2020/03/30 16:30:54 riastradh Exp $
$NetBSD: distinfo,v 1.32 2020/04/04 15:20:35 thorpej Exp $
SHA1 (u-boot-2018.11.tar.bz2) = e58e86c633ad3e2613196e0c0b0a7760ae5966d6
RMD160 (u-boot-2018.11.tar.bz2) = f63c67750951d0e2883935a5d4cc3252f51a5453
@ -6,11 +6,14 @@ SHA512 (u-boot-2018.11.tar.bz2) = 1ea0bbb5f5e6d4c60b3a6bd345d1fa6e9da025daf36f47
Size (u-boot-2018.11.tar.bz2) = 13045125 bytes
SHA1 (patch-Makefile) = 5b86d70e05620cc3133faf508e983e2fe6ca6603
SHA1 (patch-arch_arm_cpu_armv8_Kconfig) = 63cbbf2e3cebd46793fc03cc8e62297f6dc01aa9
SHA1 (patch-arch_arm_dts_Makefile) = a64a01255af3d2a744fe7b923c66fd8ce0f9d489
SHA1 (patch-arch_arm_dts_Makefile) = 1941cb6e1300f14b624d8a3126a09def8654f8e4
SHA1 (patch-arch_arm_dts_sun50i-h6-orangepi-one-plus.dts) = 0baa27eb56458be290a7cfcc81ca606f6439b1cf
SHA1 (patch-arch_arm_dts_sun8i-h2-plus-bananapi-m2-zero.dts) = aaa530a5f520eea0cb5dcece0b730e23db59eb40
SHA1 (patch-arch_arm_dts_sun8i-h2-plus-bananapi-p2-zero.dts) = 8c78d0e0877aa9784fa209af2e16e80cb1110364
SHA1 (patch-arch_arm_dts_sun8i-h3-nanopi-duo2.dts) = ec4927bb5f024f9aca6f71890c4bc14dc53e8ba7
SHA1 (patch-arch_arm_dts_sun8i-h3-nanopi-r1.dts) = a192c05c31038cf11354dd4a32d94b5b62945661
SHA1 (patch-arch_arm_include_asm_arch-sunxi_cpu_sun50i_h6.h) = 49c6373884852aeff535830f21c12e807ed74988
SHA1 (patch-arch_arm_mach-sunxi_board.c) = 1e707066636b4ddf57fb5d3b9319371812de6d74
SHA1 (patch-arch_powerpc_include_asm_byteorder.h) = 8cab2805c6b21c986f7b4e2c38db11dfcea28c42
SHA1 (patch-configs_A20-OLinuXino-Lime2-eMMC_defconfig) = 425ae3a82ce9006dbd734f41f7d49bb3587b1493
SHA1 (patch-configs_A20-OLinuXino-Lime2_defconfig) = 9eecb0a44ec9ddda2425b042c219f59ba546a494
@ -19,6 +22,7 @@ SHA1 (patch-configs_bananapi_p2_zero_defconfig) = 6468b3246cbf35d10320c8a974fc06
SHA1 (patch-configs_jetson-tk1_defconfig) = e25d89b9440f9bb4486ac22fc47083ed24abdd95
SHA1 (patch-configs_nanopi__duo2__defconfig) = 1464c4eb5d31779caa5714386891ae60b25c1825
SHA1 (patch-configs_nanopi__r1__defconfig) = deb0edece928cd0a761451b034757a31cb17760f
SHA1 (patch-configs_orangepi_lite2_defconfig) = e3426f649bb6e8ab2045a5f1cbe32e83b14cb8ef
SHA1 (patch-configs_p2371-2180_defconfig) = 2a3f1ad4f9963af403c2c9f2f01b892bbe55188c
SHA1 (patch-drivers_video_sunxi_sunxi__display.c) = 8e6a6a781cce25af5cba289fc2ca76e30b62aff6
SHA1 (patch-include_configs_tegra-common-post.h) = dfc081d2a3f7cd32e340b03f6c77c629bffd29b4

View file

@ -1,10 +1,11 @@
$NetBSD: patch-arch_arm_dts_Makefile,v 1.6 2019/10/08 20:48:49 bad Exp $
$NetBSD: patch-arch_arm_dts_Makefile,v 1.7 2020/04/04 15:20:35 thorpej Exp $
Add device tree files for:
- Banana Pi BPI-M2 Zero
- Banana Pi BPI-P2 Zero
- FriendlyArm NanoPi R1
- FriendlyArm NanoPi Duo2
- OrangePi Lite 2
--- arch/arm/dts/Makefile.orig 2018-11-14 16:10:06.000000000 +0000
+++ arch/arm/dts/Makefile
@ -26,3 +27,11 @@ Add device tree files for:
sun8i-h3-nanopi-neo.dtb \
sun8i-h3-nanopi-neo-air.dtb \
sun8i-h3-orangepi-2.dtb \
@@ -396,6 +400,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \
sun50i-h5-orangepi-zero-plus2.dtb
dtb-$(CONFIG_MACH_SUN50I_H6) += \
sun50i-h6-orangepi-one-plus.dtb \
+ sun50i-h6-orangepi-lite2.dtb \
sun50i-h6-pine-h64.dtb
dtb-$(CONFIG_MACH_SUN50I) += \
sun50i-a64-amarula-relic.dtb \

View file

@ -0,0 +1,157 @@
$NetBSD: patch-arch_arm_dts_sun50i-h6-orangepi-one-plus.dts,v 1.1 2020/04/04 15:20:35 thorpej Exp $
Add device tree for the OrangePi Lite 2.
--- /dev/null 2020-03-25 00:28:05.000000000 +0000
+++ arch/arm/dts/sun50i-h6-orangepi-lite2.dts
@@ -0,0 +1,150 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2018 Amarula Solutions
+ * Author: Jagan Teki <jagan@amarulasolutions.com>
+ */
+
+/dts-v1/;
+
+#include "sun50i-h6.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ model = "OrangePi Lite 2";
+ compatible = "xunlong,orangepi-lite2", "allwinner,sun50i-h6";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+&mmc0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins>;
+ vmmc-supply = <&reg_cldo1>;
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&r_i2c {
+ status = "okay";
+
+ axp805: pmic@36 {
+ compatible = "x-powers,axp805", "x-powers,axp806";
+ reg = <0x36>;
+ interrupt-parent = <&r_intc>;
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ x-powers,self-working-mode;
+
+ regulators {
+ reg_aldo1: aldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-pl";
+ };
+
+ reg_aldo2: aldo2 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-ac200";
+ };
+
+ reg_aldo3: aldo3 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc25-dram";
+ };
+
+ reg_bldo1: bldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcc-bias-pll";
+ };
+
+ reg_bldo2: bldo2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcc-efuse-pcie-hdmi-io";
+ };
+
+ reg_bldo3: bldo3 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcc-dcxoio";
+ };
+
+ bldo4 {
+ /* unused */
+ };
+
+ reg_cldo1: cldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-3v3";
+ };
+
+ reg_cldo2: cldo2 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-wifi-1";
+ };
+
+ reg_cldo3: cldo3 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-wifi-2";
+ };
+
+ reg_dcdca: dcdca {
+ regulator-always-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1160000>;
+ regulator-name = "vdd-cpu";
+ };
+
+ reg_dcdcc: dcdcc {
+ regulator-min-microvolt = <810000>;
+ regulator-max-microvolt = <1080000>;
+ regulator-name = "vdd-gpu";
+ };
+
+ reg_dcdcd: dcdcd {
+ regulator-always-on;
+ regulator-min-microvolt = <960000>;
+ regulator-max-microvolt = <960000>;
+ regulator-name = "vdd-sys";
+ };
+
+ reg_dcdce: dcdce {
+ regulator-always-on;
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-name = "vcc-dram";
+ };
+
+ sw {
+ /* unused */
+ };
+ };
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_ph_pins>;
+ status = "okay";
+};

View file

@ -0,0 +1,15 @@
$NetBSD: patch-arch_arm_include_asm_arch-sunxi_cpu_sun50i_h6.h,v 1.1 2020/04/04 15:20:35 thorpej Exp $
Define SUNXI_R_WDOG_BASE; used for an H6-specific workaround for a
broken watchdog timer which breaks reboot/reset.
--- arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h.orig 2020-03-27 00:39:23.000000000 +0000
+++ arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
@@ -60,6 +60,7 @@
#define SUNXI_RTC_BASE 0x07000000
#define SUNXI_R_CPUCFG_BASE 0x07000400
#define SUNXI_PRCM_BASE 0x07010000
+#define SUNXI_R_WDOG_BASE 0x07020400
#define SUNXI_R_PIO_BASE 0x07022000
#define SUNXI_R_UART_BASE 0x07080000
#define SUNXI_R_TWI_BASE 0x07081400

View file

@ -0,0 +1,22 @@
$NetBSD: patch-arch_arm_mach-sunxi_board.c,v 1.1 2020/04/04 15:20:35 thorpej Exp $
H6-specific workaround for a broken watchdog timer which breaks
reboot/reset. Use R_WDOG instead.
--- arch/arm/mach-sunxi/board.c.orig 2020-03-27 00:42:23.478886897 +0000
+++ arch/arm/mach-sunxi/board.c 2020-03-27 00:46:14.553859057 +0000
@@ -287,8 +287,14 @@ void reset_cpu(ulong addr)
writel(WDT_MODE_RESET_EN | WDT_MODE_EN, &wdog->mode);
}
#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
+#if defined(CONFIG_MACH_SUN50I_H6)
+ /* WDOG is broken for H6 use the R_WDOG instead */
+ static const struct sunxi_wdog *wdog =
+ (struct sunxi_wdog *)SUNXI_R_WDOG_BASE;
+#else
static const struct sunxi_wdog *wdog =
((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->wdog;
+#endif
/* Set the watchdog for its shortest interval (.5s) and wait */
writel(WDT_CFG_RESET, &wdog->cfg);

View file

@ -0,0 +1,24 @@
$NetBSD: patch-configs_orangepi_lite2_defconfig,v 1.1 2020/04/04 15:20:35 thorpej Exp $
Add orangepi_lite2_defconfig.
--- /dev/null 2020-03-25 00:30:06.000000000 +0000
+++ configs/orangepi_lite2_defconfig
@@ -0,0 +1,17 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN50I_H6=y
+CONFIG_SUNXI_DRAM_H6_LPDDR3=y
+CONFIG_SUNXI_DRAM_DDR3=n
+CONFIG_DRAM_ODT_EN=y
+CONFIG_MMC0_CD_PIN="PF6"
+CONFIG_HDMI_DDC_EN="PH2"
+# CONFIG_PSCI_RESET is not set
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-lite2"
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SPL=y
+# 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