From bfeb8323e05852b960c84d49c5c2f34c8049e3e0 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 23 Jul 2017 15:35:59 +0200 Subject: add sample for orange-pi zero --- mk/kernel-vars.mk | 2 +- package/u-boot/Makefile | 9 ++++++++- package/u-boot/files/boot.script.opi | 5 +++++ scripts/install.sh | 15 ++++++++++++--- target/arm/Makefile | 10 ++++++++++ target/arm/kernel/orange-pi0 | 9 +++++++++ target/arm/systems/orange-pi0 | 24 ++++++++++++++++++++++++ target/config/Config.in.kernelcfg | 1 + target/linux/config/Config.in.serial | 4 ++++ 9 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 package/u-boot/files/boot.script.opi create mode 100644 target/arm/kernel/orange-pi0 create mode 100644 target/arm/systems/orange-pi0 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 -- cgit v1.2.3