# Compilation cache
BR2_CCACHE=y
BR2_CCACHE_DIR="$(HOME)/.buildroot-ccache-saxon_default"
BR2_DL_DIR="$(HOME)/.buildroot-dl"

# Target options
BR2_riscv=y
BR2_RISCV_32=y

# Instruction Set Extensions
BR2_riscv_custom=y
BR2_RISCV_ISA_CUSTOM_RVM=y
BR2_RISCV_ISA_CUSTOM_RVA=y
BR2_RISCV_ISA_CUSTOM_RVC=n
BR2_RISCV_ISA_CUSTOM_RVF=y
BR2_RISCV_ISA_CUSTOM_RVD=y
BR2_RISCV_ABI_ILP32D=y

# GCC
BR2_GCC_VERSION_8_X=y
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y

# System
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttySL0"
BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y

# Filesystem
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_SIZE="350M"

BR2_PACKAGE_HOST_GENIMAGE=y

# Net
#BR2_SYSTEM_DHCP="eth0"

# Linux headers
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_LATEST_VERSION=n
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/torvalds/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v5.10"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="v5.10"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
#BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/linux/linux.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/linux/linux-tsemac.config"
BR2_LINUX_KERNEL_VMLINUX=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
#BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/linux/linux.dts $(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/dts/sapphire.dtsi"
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/linux/linux.dts $(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/dts/sapphire-tsemac.dtsi"

# Rootfs customisation
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/rootfs_overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/post_build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/post_create_fs.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="ti180m484"

# U-BOOT
BR2_TARGET_UBOOT=y
BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/u-boot/uboot_defconfig"
#BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/u-boot/uboot.dts $(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/dts/sapphire.dtsi"
BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/u-boot/uboot.dts $(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/common/dts/sapphire-tsemac.dtsi"

# OPENSBI
BR2_TARGET_OPENSBI=y
BR2_TARGET_OPENSBI_PLAT="ti180m484"
BR2_TARGET_OPENSBI_PLAT_PATH="$(BR2_EXTERNAL_EFINIX_PATH)/boards/efinix/ti180m484/opensbi"

# Flashing
BR2_PACKAGE_MTD=y
BR2_PACKAGE_MTD_FLASH_ERASE=y
BR2_PACKAGE_MTD_TESTS=y
BR2_PACKAGE_MTD_FLASH_SPEED=y
BR2_PACKAGE_MTD_FLASH_TORTURE=y

# Extra packages
BR2_PACKAGE_DHRYSTONE=y
BR2_PACKAGE_MICROPYTHON=n
BR2_PACKAGE_PYTHON=n
BR2_PACKAGE_PYTHON_SPIDEV=n
BR2_PACKAGE_SL=y
BR2_PACKAGE_HELLO=n
BR2_PACKAGE_NANO=y

BR2_PACKAGE_LMBENCH=y
BR2_PACKAGE_RAMSPEED=y
BR2_PACKAGE_STRESS_NG=y

BR2_GCC_CROSS_CXX=y
BR2_INSTALL_LIBSTDCPP=y
BR2_PACKAGE_IPERF=y
BR2_PACKAGE_IPERF3=y

BR2_PACKAGE_HTOP=y
BR2_PACKAGE_LYNX=y
BR2_PACKAGE_LINKS=y

BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=n
BR2_PACKAGE_LIBATOMIC_OPS=n
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBOPENSSL=y
BR2_PACKAGE_OPENSSH=y

BR2_PACKAGE_RNG_TOOLS=n
BR2_PACKAGE_HAVEGED=n

BR2_PACKAGE_DROPBEAR=n
BR2_PACKAGE_SSHPASS=n

BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=n
BR2_PACKAGE_BASH=n

BR2_PACKAGE_CANNY=y

# Patches
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_EFINIX_PATH)/patches/"

# Kernel module
BR2_PACKAGE_HELLOWORLD=y
BR2_PACKAGE_GPIO=y
BR2_PACKAGE_GPIO_APP=y

# (aw)
#BR2_PACKAGE_OPENCV3=y
#BR2_PACKAGE_OPENCV3_LIB_IMGCODECS=y
#BR2_PACKAGE_OPENCV3_LIB_IMGPROC=y
#BR2_PACKAGE_OPENCV3_LIB_OBJDETECT=y
#BR2_PACKAGE_OPENCV3_LIB_PHOTO=y
#BR2_PACKAGE_OPENCV3_LIB_VIDEOIO=y
#BR2_PACKAGE_OPENCV3_LIB_VIDEO=y
#BR2_PACKAGE_OPENCV3_BUILD_TESTS=y
#BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS=y
#BR2_PACKAGE_OPENCV3_WITH_JPEG=y
#BR2_PACKAGE_OPENCV3_INSTALL_DATA=y

BR2_PACKAGE_DBEAXILITE=y
BR2_PACKAGE_DBEAXISHMEM=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_GNUTLS=y
BR2_PACKAGE_NETTLE=yB
BR2_PACKAGE_SQLITE=y
BR2_PACKAGE_LIBPNG=y
BR2_PACKAGE_JSONCPP=y
BR2_PACKAGE_LIBXML2=y
BR2_PACKAGE_LIBMICROHTTPD=y
BR2_PACKAGE_LIBMICROHTTPD_SSL=y
BR2_PACKAGE_GMP=y
BR2_PACKAGE_LIBTASN1=y
BR2_PACKAGE_PCRE=y

BR2_PTHREAD_DEBUG=y

#BR2_PACKAGE_GDB=y
#BR2_PACKAGE_GDB_SERVER=y # try to compile and deploy version starting from gdb 10 externally

BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2FSCK=y