Browse Source

add sample for orange-pi zero

Waldemar Brodkorb 6 years ago
parent
commit
bfeb8323e0

+ 1 - 1
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
 

+ 8 - 1
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

+ 5 - 0
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

+ 12 - 3
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/"

+ 10 - 0
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)

+ 9 - 0
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

+ 24 - 0
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
+

+ 1 - 0
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

+ 4 - 0
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