summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Muellner <christoph.muellner@theobroma-systems.com>2019-08-14 11:47:33 +0200
committerChristoph Muellner <christoph.muellner@theobroma-systems.com>2019-08-23 11:25:44 +0200
commit514d8164a0ae5fdb5e05b5590e48e2c4eedbfbc2 (patch)
tree30778e9c6c4e912756758cc98be4ea8fb3a5d752
parent95f85d17dc0f107add974ac0df30354347074046 (diff)
Add support for the RK3399-Q7 SoM (Puma).2019.05.1-puma
This patch adds support for the RK3399-Q7 SoM (Puma) from Theobroma Systems. Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
-rw-r--r--board/theobroma-systems/puma/boot.cmd68
-rw-r--r--board/theobroma-systems/puma/defaultEnv.txt6
-rw-r--r--board/theobroma-systems/puma/genimage.cfg22
-rwxr-xr-xboard/theobroma-systems/puma/post-build.sh12
-rw-r--r--board/theobroma-systems/puma/userEnv.txt0
-rw-r--r--configs/puma-rk3399_defconfig126
6 files changed, 234 insertions, 0 deletions
diff --git a/board/theobroma-systems/puma/boot.cmd b/board/theobroma-systems/puma/boot.cmd
new file mode 100644
index 0000000000..328b2a3906
--- /dev/null
+++ b/board/theobroma-systems/puma/boot.cmd
@@ -0,0 +1,68 @@
+# mkimage -C none -A arm -T script -d boot.cmd boot.scr
+
+# fallback default values
+load_addr=0x01000000
+fdtfile=dtb
+kernelfile=Image
+initrdfile=uInitrd
+rootdevice=/dev/mmcblk0p1
+rootdevice_flags=rw
+loglevel=7
+
+echo "Boot script running from ${devtype} ${devnum}"
+
+if test ${board_name} = "puma_rk3399"; then
+ if test ${devtype} = "mmc" && test ${devnum} -eq 0;then
+ rootdevice=/dev/mmcblk1p1
+ elif test ${devtype} = "mmc" && test ${devnum} -eq 1;then
+ rootdevice=/dev/mmcblk0p1
+ fi
+fi
+
+if load ${devtype} ${devnum} ${fdt_addr_r} /boot/${board_name}/defaultEnv.txt; then
+ setenv load_path "/boot/${board_name}"
+ echo "Import default environment from /boot/${board_name}/defaultEnv.txt"
+ env import -t ${fdt_addr_r} ${filesize}
+else
+ if load ${devtype} ${devnum} ${fdt_addr_r} /boot/defaultEnv.txt; then
+ setenv load_path "/boot"
+ echo "Import default environment from /boot/defaultEnv.txt"
+ env import -t ${fdt_addr_r} ${filesize}
+ fi
+fi
+
+if load ${devtype} ${devnum} ${load_addr} ${load_path}/userEnv.txt; then
+ echo "Import default environment from ${load_path}/userEnv.txt"
+ env import -t ${load_addr} ${filesize}
+fi
+
+if test -n ${userscript}; then
+ if load ${devtype} ${devnum} ${load_addr} ${load_path}/${userscript}; then
+ echo "Running userscript from ${load_path}/${userscript}"
+ source ${load_addr}
+ fi
+fi
+
+setenv bootargs "root=${rootdevice} ${rootdevice_flags} rootwait ${console} consoleblank=0 loglevel=${loglevel} ${extraargs}"
+
+if load ${devtype} ${devnum} ${fdt_addr_r} ${load_path}/${fdtfile}; then
+ echo "Load devicetree from ${load_path}/${fdtfile}"
+fi
+fdt addr ${fdt_addr_r}
+fdt resize
+
+for overlay_file in ${overlays}; do
+ if load ${devtype} ${devnum} ${load_addr} ${load_path}/overlays/${overlay_file}; then
+ echo "Apply devicetree overlay ${load_path}/overlays/${overlay_file}"
+ fdt apply ${load_addr}
+ fi
+done
+
+load ${devtype} ${devnum} ${kernel_addr_r} ${load_path}/${kernelfile}
+
+if load ${devtype} ${devnum} ${load_addr} ${load_path}/${initrdfile}; then
+ booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
+else
+ echo "Start Kernel without initrd"
+ booti ${kernel_addr_r} - ${fdt_addr_r}
+fi
diff --git a/board/theobroma-systems/puma/defaultEnv.txt b/board/theobroma-systems/puma/defaultEnv.txt
new file mode 100644
index 0000000000..436e6b44cd
--- /dev/null
+++ b/board/theobroma-systems/puma/defaultEnv.txt
@@ -0,0 +1,6 @@
+load_addr=0x01000000
+kernelfile=Image
+fdtfile=rk3399-puma.dtb
+overlays=
+rootdevice_flags=rw
+loglevel=7
diff --git a/board/theobroma-systems/puma/genimage.cfg b/board/theobroma-systems/puma/genimage.cfg
new file mode 100644
index 0000000000..233bc4e2d2
--- /dev/null
+++ b/board/theobroma-systems/puma/genimage.cfg
@@ -0,0 +1,22 @@
+image sdcard.img {
+ hdimage {
+ }
+
+ partition spl {
+ in-partition-table = "no"
+ image = "spl_sd.img"
+ offset = 32K
+ }
+
+ partition u-boot {
+ in-partition-table = "no"
+ image = "u-boot.itb"
+ offset = 256K
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ offset = 2M
+ image = "rootfs.ext4"
+ }
+}
diff --git a/board/theobroma-systems/puma/post-build.sh b/board/theobroma-systems/puma/post-build.sh
new file mode 100755
index 0000000000..93fd341fc2
--- /dev/null
+++ b/board/theobroma-systems/puma/post-build.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -x
+
+MKIMAGE=$HOST_DIR/bin/mkimage
+BOARD_DIR="$(dirname $0)"
+
+install -m 0644 -D $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr
+install -m 0644 -D $BOARD_DIR/defaultEnv.txt $TARGET_DIR/boot/defaultEnv.txt
+install -m 0644 -D $BOARD_DIR/userEnv.txt $TARGET_DIR/boot/userEnv.txt
+
+$MKIMAGE -n rk3399 -T rksd -d $BINARIES_DIR/u-boot-spl.bin ${BINARIES_DIR}/spl_sd.img
diff --git a/board/theobroma-systems/puma/userEnv.txt b/board/theobroma-systems/puma/userEnv.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/board/theobroma-systems/puma/userEnv.txt
diff --git a/configs/puma-rk3399_defconfig b/configs/puma-rk3399_defconfig
new file mode 100644
index 0000000000..30da717b1d
--- /dev/null
+++ b/configs/puma-rk3399_defconfig
@@ -0,0 +1,126 @@
+BR2_aarch64=y
+BR2_cortex_a72_a53=y
+BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+BR2_BINUTILS_VERSION_2_32_X=y
+BR2_GCC_VERSION_8_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
+BR2_GCC_ENABLE_LTO=y
+BR2_GCC_ENABLE_OPENMP=y
+BR2_GCC_ENABLE_GRAPHITE=y
+BR2_PACKAGE_HOST_GDB=y
+BR2_PACKAGE_HOST_GDB_TUI=y
+BR2_PACKAGE_HOST_GDB_PYTHON=y
+BR2_PACKAGE_HOST_GDB_SIM=y
+BR2_GDB_VERSION_8_2=y
+BR2_TARGET_GENERIC_HOSTNAME="rk3399-q7"
+BR2_TARGET_GENERIC_ROOT_PASSWD="root"
+BR2_SYSTEM_DHCP="eth0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/theobroma-systems/puma/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/theobroma-systems/puma/genimage.cfg"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.theobroma-systems.com/puma-linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="puma-release-4.4.167-20190320"
+BR2_LINUX_KERNEL_DEFCONFIG="puma-rk3399"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-puma"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_BZIP2=y
+BR2_PACKAGE_GZIP=y
+BR2_PACKAGE_UNRAR=y
+BR2_PACKAGE_UNZIP=y
+BR2_PACKAGE_XZ=y
+BR2_PACKAGE_GDB=y
+BR2_PACKAGE_GDB_SERVER=y
+BR2_PACKAGE_GDB_DEBUGGER=y
+BR2_PACKAGE_GDB_TUI=y
+BR2_PACKAGE_IOZONE=y
+BR2_PACKAGE_STRACE=y
+BR2_PACKAGE_STRESS=y
+BR2_PACKAGE_BINUTILS=y
+BR2_PACKAGE_BINUTILS_TARGET=y
+BR2_PACKAGE_FLEX=y
+BR2_PACKAGE_GAWK=y
+BR2_PACKAGE_GETTEXT=y
+BR2_PACKAGE_GREP=y
+BR2_PACKAGE_SED=y
+BR2_PACKAGE_TREE=y
+BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
+BR2_PACKAGE_E2TOOLS=y
+BR2_PACKAGE_DEVMEM2=y
+BR2_PACKAGE_DFU_UTIL=y
+BR2_PACKAGE_HDPARM=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_IOSTAT=y
+BR2_PACKAGE_NVME=y
+BR2_PACKAGE_PARTED=y
+BR2_PACKAGE_PICOCOM=y
+BR2_PACKAGE_RTC_TOOLS=y
+BR2_PACKAGE_SETSERIAL=y
+BR2_PACKAGE_SMARTMONTOOLS=y
+BR2_PACKAGE_BC=y
+BR2_PACKAGE_HAVEGED=y
+BR2_PACKAGE_DHCP=y
+BR2_PACKAGE_DHCP_CLIENT=y
+BR2_PACKAGE_IW=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_NET_TOOLS=y
+BR2_PACKAGE_OPENSSH=y
+BR2_PACKAGE_RSYNC=y
+BR2_PACKAGE_SOCAT=y
+BR2_PACKAGE_SSHPASS=y
+BR2_PACKAGE_TCPDUMP=y
+BR2_PACKAGE_OPTEE_BENCHMARK=y
+BR2_PACKAGE_BASH=y
+BR2_PACKAGE_BASH_COMPLETION=y
+BR2_PACKAGE_FILE=y
+BR2_PACKAGE_TMUX=y
+BR2_PACKAGE_WHICH=y
+BR2_PACKAGE_COREUTILS=y
+BR2_PACKAGE_DEBIANUTILS=y
+BR2_PACKAGE_HTOP=y
+BR2_PACKAGE_IRQBALANCE=y
+BR2_PACKAGE_PROCPS_NG=y
+BR2_PACKAGE_PSMISC=y
+BR2_PACKAGE_TAR=y
+BR2_PACKAGE_UTIL_LINUX_FSCK=y
+BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
+BR2_PACKAGE_UTIL_LINUX_KILL=y
+BR2_PACKAGE_UTIL_LINUX_SETTERM=y
+BR2_PACKAGE_LESS=y
+BR2_PACKAGE_MC=y
+BR2_PACKAGE_NANO=y
+# BR2_PACKAGE_NANO_TINY is not set
+BR2_PACKAGE_VIM=y
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y
+BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
+BR2_TARGET_ROOTFS_TAR_XZ=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.theobroma-systems.com/arm-trusted-firmware.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="puma-release-v1.3"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399"
+BR2_TARGET_RK3399_CORTEXM0_FIRMWARE=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://git.theobroma-systems.com/puma-u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="puma-v2019.04"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="puma-rk3399"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_ITB=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_BOOT_SCRIPT=y
+BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="board/theobroma-systems/puma/boot.cmd"
+BR2_PACKAGE_HOST_GENIMAGE=y