summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/kernel-vars.mk2
-rw-r--r--package/u-boot/Makefile9
-rw-r--r--package/u-boot/files/boot.script.opi5
-rwxr-xr-xscripts/install.sh15
-rw-r--r--target/arm/Makefile10
-rw-r--r--target/arm/kernel/orange-pi09
-rw-r--r--target/arm/systems/orange-pi024
-rw-r--r--target/config/Config.in.kernelcfg1
-rw-r--r--target/linux/config/Config.in.serial4
9 files changed, 74 insertions, 5 deletions
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index 5595693b4..72fc56693 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -23,7 +23,7 @@ else
KERNEL_MAKE_OPTS+= HOSTCFLAGS='${HOST_CFLAGS}'
endif
-ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
+ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO)$(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
KERNEL_MAKE_OPTS+= LOADADDR=0x40008000
endif
diff --git a/package/u-boot/Makefile b/package/u-boot/Makefile
index dd8f8868d..866f8a81a 100644
--- a/package/u-boot/Makefile
+++ b/package/u-boot/Makefile
@@ -16,7 +16,7 @@ PKG_SITES:= ftp://ftp.denx.de/pub/u-boot/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SYSTEM_DEPENDS:= beaglebone-black raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64
+PKG_SYSTEM_DEPENDS:= beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
@@ -49,6 +49,10 @@ ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
CONFIG:= Bananapro_defconfig
UBOOT:= u-boot-sunxi-with-spl.bin
endif
+ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
+CONFIG:= orangepi_zero_defconfig
+UBOOT:= u-boot-sunxi-with-spl.bin
+endif
ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
CONFIG:= am335x_evm_defconfig
UBOOT:= u-boot.img
@@ -101,6 +105,9 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
$(INSTALL_BIN) ./files/boot.script.bpi $(FW_DIR)
endif
+ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
+ $(INSTALL_BIN) ./files/boot.script.opi $(FW_DIR)
+endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
$(INSTALL_BIN) ./files/boot.script.clearfog $(FW_DIR)
endif
diff --git a/package/u-boot/files/boot.script.opi b/package/u-boot/files/boot.script.opi
new file mode 100644
index 000000000..58dbf8fae
--- /dev/null
+++ b/package/u-boot/files/boot.script.opi
@@ -0,0 +1,5 @@
+setenv fdt_high ffffffff
+setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p1 rootwait
+ext4load mmc 0:1 $kernel_addr_r boot/kernel
+ext4load mmc 0:1 $fdt_addr_r boot/sun8i-h2-plus-orangepi-zero.dtb
+bootz $kernel_addr_r - $fdt_addr_r
diff --git a/scripts/install.sh b/scripts/install.sh
index a1a4cf96c..09baffcdc 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -144,7 +144,7 @@ tgt=$2
src=$3
case $target {
-(banana-pro|pcengines-apu|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|solidrun-imx6|solidrun-clearfog|default) ;;
+(banana-pro|orange-pi0|pcengines-apu|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|solidrun-imx6|solidrun-clearfog|default) ;;
(*)
print -u2 "Unknown target '$target', exiting"
exit 1 ;;
@@ -511,7 +511,7 @@ fi
fwdir=$(dirname "$src")
case $target {
-(banana-pro)
+(banana-pro|orange-pi0)
dd if="$fwdir/u-boot-sunxi-with-spl.bin" of="$tgt" bs=1024 seek=8 > /dev/null 2>&1
;;
(solidrun-clearfog)
@@ -541,7 +541,7 @@ if (( datafssz )); then
(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64)
echo "/dev/mmcblk0p3 /data ext4 rw 0 0" >> "$R"/etc/fstab
;;
- (banana-pro|solidrun-imx6|solidrun-clearfog)
+ (banana-pro|orange-pi0|solidrun-imx6|solidrun-clearfog)
echo "/dev/mmcblk0p2 /data ext4 rw 0 0" >> "$R"/etc/fstab
;;
}
@@ -584,6 +584,15 @@ case $target {
-n "SolidrunImx6" \
-d $fwdir/boot.script.imx6 $R/boot/boot.scr.uimg
;;
+(orange-pi0)
+ for x in "$fwdir"/*.dtb; do
+ [[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
+ break
+ done
+ mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
+ -n "OrangePI Zero" \
+ -d $fwdir/boot.script.opi $R/boot/boot.scr.uimg
+ ;;
(banana-pro)
for x in "$fwdir"/*.dtb; do
[[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
diff --git a/target/arm/Makefile b/target/arm/Makefile
index d613e23f3..4e600888f 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -78,6 +78,12 @@ ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
@echo "Use following command to install with a writable data partition"
@echo "sudo ./scripts/install.sh -d 256 banana-pro /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
endif
+ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh orange-pi0 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Use following command to install with a writable data partition"
+ @echo "sudo ./scripts/install.sh -d 256 orange-pi0 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
@@ -182,6 +188,10 @@ ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
sun7i-a20-bananapro.dtb $(MAKE_TRACE)
endif
+ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
+ env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
+ sun8i-h2-plus-orangepi-zero.dtb $(MAKE_TRACE)
+endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $(MAKE_TRACE)
diff --git a/target/arm/kernel/orange-pi0 b/target/arm/kernel/orange-pi0
new file mode 100644
index 000000000..6fc00e228
--- /dev/null
+++ b/target/arm/kernel/orange-pi0
@@ -0,0 +1,9 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN8I=y
+CONFIG_ATAGS=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_CMDLINE_FORCE=y
diff --git a/target/arm/systems/orange-pi0 b/target/arm/systems/orange-pi0
new file mode 100644
index 000000000..9abc2100d
--- /dev/null
+++ b/target/arm/systems/orange-pi0
@@ -0,0 +1,24 @@
+config ADK_TARGET_SYSTEM_ORANGE_PI0
+ bool "Orange PI Zero"
+ depends on ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_A7
+ select ADK_TARGET_CPU_WITH_NEON
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ select ADK_PACKAGE_U_BOOT
+ select ADK_HOST_BUILD_U_BOOT
+ help
+ Orange PI Zero
+
diff --git a/target/config/Config.in.kernelcfg b/target/config/Config.in.kernelcfg
index 55a87bee0..3040906f9 100644
--- a/target/config/Config.in.kernelcfg
+++ b/target/config/Config.in.kernelcfg
@@ -35,6 +35,7 @@ config ADK_TARGET_KERNEL_DEFCONFIG
default "orca_defconfig" if ADK_TARGET_SYSTEM_ANDES_AG101P
default "bb.org_defconfig" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "j2_defconfig" if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
+ default "sunxi_defconfig" if ADK_TARGET_SYSTEM_ORANGE_PI0
default ""
config ADK_TARGET_KERNEL_CUSTOMCONFIG_PATH
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index 26d10c71e..5b7174a80 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -89,9 +89,11 @@ config ADK_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
|| ADK_TARGET_SYSTEM_QEMU_OR1K \
+ || ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SOM_C6745
select ADK_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_KERNEL_SERIAL_8250_CONSOLE
select ADK_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
@@ -118,6 +120,7 @@ config ADK_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_MIKROTIK_RB532 \
|| ADK_TARGET_SYSTEM_MIKROTIK_RB4XX \
|| ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG \
+ || ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SOM_C6745
default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7
default y if ADK_TARGET_SYSTEM_IMGTEC_CI20
@@ -143,6 +146,7 @@ config ADK_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
default y if ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ default y if ADK_TARGET_SYSTEM_ORANGE_PI0
default y if ADK_TARGET_SYSTEM_SOM_C6745
default n
help