diff --git a/board/tinkerboard/cpinitramfs.sh b/board/tinkerboard/cpinitramfs.sh new file mode 100755 index 0000000000..ec58579d60 --- /dev/null +++ b/board/tinkerboard/cpinitramfs.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cp $IMG_DIR/rootfs.cpio.gz $BOARD_DIR/initrd.gz + diff --git a/board/tinkerboard/extlinux/extlinux.conf b/board/tinkerboard/extlinux/extlinux.conf new file mode 100755 index 0000000000..c66bcf9569 --- /dev/null +++ b/board/tinkerboard/extlinux/extlinux.conf @@ -0,0 +1,5 @@ +label kernel-4.4 + kernel /zImage + fdt /rk3288-miniarm.dtb + append console=tty1 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk quiet loglevel=1 ipv6.disable=1 + diff --git a/board/tinkerboard/hw_intf.conf b/board/tinkerboard/hw_intf.conf new file mode 100755 index 0000000000..3f28bb0219 --- /dev/null +++ b/board/tinkerboard/hw_intf.conf @@ -0,0 +1,20 @@ + +#Hardware Interface Config + +intf:spi0=off +intf:uart2=off +intf:uart3=on +intf:uart4=on +intf:pcm_i2s=on +intf:i2c1=on +intf:i2c4=on +intf:spi2=on +intf:pwm2=on +intf:pwm3=on +intf:uart1=on + +#DTS Overlay Config +# 1. check the name.dtbo in /boot/overlays +# 2. add intf:dtoverlay=name as below + +#intf:dtoverlay=i2c diff --git a/board/tinkerboard/initrd.gz b/board/tinkerboard/initrd.gz new file mode 100644 index 0000000000..d5f4c29f6c Binary files /dev/null and b/board/tinkerboard/initrd.gz differ diff --git a/board/tinkerboard/linux-fix-ethernet-operstate.patch b/board/tinkerboard/linux-fix-ethernet-operstate.patch new file mode 100644 index 0000000000..b066366422 --- /dev/null +++ b/board/tinkerboard/linux-fix-ethernet-operstate.patch @@ -0,0 +1,13 @@ +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +index 2844b497464d..a4b0bb432368 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +@@ -3060,6 +3060,8 @@ int stmmac_dvr_probe(struct device *device, + goto error_netdev_register; + } + ++ netif_carrier_off(ndev); ++ + wake_lock_init(&priv->plat->wol_wake_lock, WAKE_LOCK_SUSPEND, "wol_wake_lock"); + + return ret; diff --git a/board/tinkerboard/mkimage.sh b/board/tinkerboard/mkimage.sh new file mode 100755 index 0000000000..60b7b2e5fe --- /dev/null +++ b/board/tinkerboard/mkimage.sh @@ -0,0 +1,12 @@ +#!/bin/bash -e + +BOARD_DIR=$(dirname $0) +COMMON_DIR=$BOARD_DIR/../common + +export BOARD=$(basename $BOARD_DIR) +export IMG_DIR=$BOARD_DIR/../../output/$BOARD/images/ +export UBOOT_BIN=$BOARD_DIR/u-boot.img +export UBOOT_SEEK=64 + +$COMMON_DIR/mkimage.sh + diff --git a/board/tinkerboard/overlay-initramfs/remove_initramfs b/board/tinkerboard/overlay-initramfs/remove_initramfs new file mode 100755 index 0000000000..c0d168d40a --- /dev/null +++ b/board/tinkerboard/overlay-initramfs/remove_initramfs @@ -0,0 +1,4 @@ +#!/bin/sh + +sed 's/\([ ]*\)\(initrd.*\)/\1#\2/g' /boot/extlinux/extlinux.conf + diff --git a/board/tinkerboard/overlay/etc/board b/board/tinkerboard/overlay/etc/board new file mode 100644 index 0000000000..ab6c50ec68 --- /dev/null +++ b/board/tinkerboard/overlay/etc/board @@ -0,0 +1 @@ +tinkerboard diff --git a/board/tinkerboard/overlay/etc/init.d/boardsn b/board/tinkerboard/overlay/etc/init.d/boardsn new file mode 100755 index 0000000000..16881c26f7 --- /dev/null +++ b/board/tinkerboard/overlay/etc/init.d/boardsn @@ -0,0 +1,5 @@ +#!/bin/bash + +sn=$(cat /proc/cpuinfo | grep Serial | tr -d ' ' | cut -d ':' -f 2) +echo ${sn: -8} + diff --git a/board/tinkerboard/overlay/usr/libexec/fw-prepare-boot b/board/tinkerboard/overlay/usr/libexec/fw-prepare-boot new file mode 100755 index 0000000000..f77bc72d94 --- /dev/null +++ b/board/tinkerboard/overlay/usr/libexec/fw-prepare-boot @@ -0,0 +1,5 @@ +#!/bin/bash + +cat /boot/extlinux/extlinux.conf | grep -v 'initrd' > /boot/extlinux/extlinux.conf +echo " initrd /initrd.gz" >> /boot/extlinux/extlinux.conf + diff --git a/board/tinkerboard/postscript.sh b/board/tinkerboard/postscript.sh new file mode 100755 index 0000000000..41b396f5b8 --- /dev/null +++ b/board/tinkerboard/postscript.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +cp $IMG_DIR/zImage $BOOT_DIR +cp $IMG_DIR/rk3288-miniarm.dtb $BOOT_DIR +cp $BOARD_DIR/hw_intf.conf $BOOT_DIR +cp -r $BOARD_DIR/extlinux $BOOT_DIR + diff --git a/board/tinkerboard/u-boot.img b/board/tinkerboard/u-boot.img new file mode 100644 index 0000000000..1afae77ea0 Binary files /dev/null and b/board/tinkerboard/u-boot.img differ diff --git a/configs/tinkerboard_defconfig b/configs/tinkerboard_defconfig new file mode 100644 index 0000000000..db9ee4a4d2 --- /dev/null +++ b/configs/tinkerboard_defconfig @@ -0,0 +1,79 @@ +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-bananapim1" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="board/common/overlay board/bananapim1/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/TinkerBoard/debian_kernel/archive/4cf992a71ecfed2a817219cf83aba5bf8c5d1d69.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="miniarm-rk3288" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-miniarm" +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_B43_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_USB_MODESWITCH_DATA=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBSSH2=y +BR2_PACKAGE_LIBFUSE=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_CURL=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_PCRE=y +BR2_PACKAGE_PCRE_UCP=y +BR2_PACKAGE_AUTOSSH=y +BR2_PACKAGE_CRDA=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_NETCAT=y +BR2_PACKAGE_NET_TOOLS=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_PPPD=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y +BR2_PACKAGE_WPA_SUPPLICANT_EAP=y +BR2_PACKAGE_WPA_SUPPLICANT_WPS=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_LOGROTATE=y +BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_NANO=y +BR2_PACKAGE_HOST_DTC=y +BR2_PACKAGE_HOST_SUNXI_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/configs/tinkerboard_initramfs_defconfig b/configs/tinkerboard_initramfs_defconfig new file mode 100644 index 0000000000..d93c80bc28 --- /dev/null +++ b/configs/tinkerboard_initramfs_defconfig @@ -0,0 +1,16 @@ +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-tinkerboard-initramfs" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/tinkerboard/overlay-initramfs" +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" +BR2_PACKAGE_UTIL_LINUX=y +BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_PACKAGE_HOST_UBOOT_TOOLS=y