[yocto] [PATCH 5/7] conf/machine: add rk3399 support

ayaka ayaka at soulik.info
Sun Mar 19 10:48:35 PDT 2017


RK3399 is a new generation powerful SoC from Rockchip, which has
Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU.

Signed-off-by: Jacob Chen <jacob-chen at iotwrt.com>
Signed-off-by: ayaka <ayaka at soulik.info>
---
 conf/machine/excavator-rk3399.conf      | 10 ++++++
 conf/machine/include/rk3399.inc         | 18 +++++++++++
 conf/machine/include/tune-cortexa53.inc | 57 +++++++++++++++++++++++++++++++++
 3 files changed, 85 insertions(+)
 create mode 100644 conf/machine/excavator-rk3399.conf
 create mode 100644 conf/machine/include/rk3399.inc
 create mode 100644 conf/machine/include/tune-cortexa53.inc

diff --git a/conf/machine/excavator-rk3399.conf b/conf/machine/excavator-rk3399.conf
new file mode 100644
index 0000000..c7134d2
--- /dev/null
+++ b/conf/machine/excavator-rk3399.conf
@@ -0,0 +1,10 @@
+# Copyright (C) 2017 Fuzhou Rockchip Electronics Co., Ltd
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+#@TYPE: Machine
+#@NAME: EXCAVATOR 3399
+
+include conf/machine/include/rk3399.inc
+
+KERNEL_DEVICETREE = "rk3399-sapphire-excavator-linux.dtb"
+UBOOT_MACHINE = "evb-rk3399_defconfig"
diff --git a/conf/machine/include/rk3399.inc b/conf/machine/include/rk3399.inc
new file mode 100644
index 0000000..29cdfc4
--- /dev/null
+++ b/conf/machine/include/rk3399.inc
@@ -0,0 +1,18 @@
+# Copyright (C) 2017 Jacob Chen
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SOC_FAMILY = "rk3399"
+
+require conf/machine/include/tune-cortexa53.inc
+require conf/machine/include/soc-family.inc
+
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+SERIAL_CONSOLES = "1500000;ttyS2"
+KERNEL_IMAGETYPE = "Image"
+KBUILD_DEFCONFIG = "multi_v8_defconfig"
+
+PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-rockchip"
+SPL_BINARY ?= "u-boot-spl-nodtb.bin"
+
+IMAGE_FSTYPES = "ext4 rockchip-gpt-img"
+IMAGE_CLASSES += "rockchip-gpt-img"
diff --git a/conf/machine/include/tune-cortexa53.inc b/conf/machine/include/tune-cortexa53.inc
new file mode 100644
index 0000000..8b8d943
--- /dev/null
+++ b/conf/machine/include/tune-cortexa53.inc
@@ -0,0 +1,57 @@
+DEFAULTTUNE ?= "cortexa53-32"
+
+require conf/machine/include/arm/arch-armv8.inc
+
+TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53 ', '',d)}"
+
+TUNEVALID[armv8] = "Enable instructions for ARMv8"
+TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
+
+TUNE_CCARGS .= \
+"-mtune=cortex-a57.cortex-a53"
+
+TUNE_CCARGS_MFPU .= \
+"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon', 'cryptov8' ], True, False, d) else \
+' neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \
+bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
+
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
+
+AVAILTUNES += "armv8"
+TUNE_FEATURES_tune-armv8 = "armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
+
+AVAILTUNES += "armv8-neon"
+TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
+
+AVAILTUNES += "armv8hf"
+TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
+
+AVAILTUNES += "armv8hf-neon"
+TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
+
+# Extra tune selections
+AVAILTUNES += "cortexa53-32"
+ARMPKGARCH_tune-cortexa53-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53-32 = "${TUNE_FEATURES_tune-armv8-neon} cortexa53"
+BASE_LIB_tune-cortexa53-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53-32 = "cortexa53-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-neon} cortexa53-32 cortexa53-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53hf-32"
+ARMPKGARCH_tune-cortexa53hf-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53hf-32 = "${TUNE_FEATURES_tune-armv8hf-neon} cortexa53"
+BASE_LIB_tune-cortexa53hf-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53hf-32 = "cortexa53hf-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53hf-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon} cortexa53hf-32 cortexa53hf-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53-64"
+ARMPKGARCH_tune-cortexa53-64 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53-64 = "${TUNE_FEATURES_tune-aarch64} cortexa53"
+BASE_LIB_tune-cortexa53-64 = "lib64"
+TUNE_PKGARCH_tune-cortexa53-64 = "cortexa53-64"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53-64 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64} cortexa53-64"
-- 
2.7.4




More information about the yocto mailing list