From 2d0aa2b66450a2dd5945693a93fee8de60107aef Mon Sep 17 00:00:00 2001 From: vojo Date: Tue, 13 Feb 2018 13:54:30 +0100 Subject: Initial support Grapeboard prototype for LSDK 17.12 diff --git a/grapeboard_support_lsdk-1712.patch b/grapeboard_support_lsdk-1712.patch new file mode 100644 index 0000000..c1c27ed --- /dev/null +++ b/grapeboard_support_lsdk-1712.patch @@ -0,0 +1,326 @@ +diff --git a/configs/build_lsdk.cfg b/configs/build_lsdk.cfg +index a3cf0ed..671ff60 100644 +--- a/configs/build_lsdk.cfg ++++ b/configs/build_lsdk.cfg +@@ -7,10 +7,10 @@ GIT_REPOSITORY_URL="https://github.com/qoriq-open-source" + lsdk_version=1712 + + # set default components to be built automatically +-CONFIG_BUILD_RCW=y +-CONFIG_BUILD_UBOOT=y +-CONFIG_BUILD_UEFI=y +-CONFIG_BUILD_PPA=y ++CONFIG_BUILD_RCW=n ++CONFIG_BUILD_UBOOT=n ++CONFIG_BUILD_UEFI=n ++CONFIG_BUILD_PPA=n + CONFIG_BUILD_LINUX=y + CONFIG_BUILD_RESTOOL=y + CONFIG_BUILD_FLIB=y +@@ -37,16 +37,18 @@ CONFIG_BUILD_CRCONF=y + CONFIG_BUILD_EDGESCALE_EDS=n + CONFIG_BUILD_EDS_KUBELET=n + CONFIG_BUILD_EDS_PUPPET=n ++CONFIG_BUILD_RTL8723BU=y + + # default machines list +-CONFIG_MACHINE_LS1012ARDB=y +-CONFIG_MACHINE_LS1012AFRDM=y +-CONFIG_MACHINE_LS1021ATWR=y +-CONFIG_MACHINE_LS1043ARDB=y +-CONFIG_MACHINE_LS1046ARDB=y +-CONFIG_MACHINE_LS1088ARDB=y +-CONFIG_MACHINE_LS2088ARDB=y ++CONFIG_MACHINE_LS1012ARDB=n ++CONFIG_MACHINE_LS1012AFRDM=n ++CONFIG_MACHINE_LS1021ATWR=n ++CONFIG_MACHINE_LS1043ARDB=n ++CONFIG_MACHINE_LS1046ARDB=n ++CONFIG_MACHINE_LS1088ARDB=n ++CONFIG_MACHINE_LS2088ARDB=n + CONFIG_MACHINE_LA1575ARDB=n ++CONFIG_MACHINE_GRAPEBOARD=y + + # default build option + BUILD_GUESTRFS=y +@@ -69,7 +71,7 @@ fbdockerimgversion=16.04 + + # component repository list + firmware_repo_list="u-boot rcw rcw-bin qoriq-uefi-binary qoriq-fm-ucode mc-utils qoriq-mc-binary ppa-generic qoriq-qe-ucode qoriq-firmware-cortina qoriq-engine-pfe-bin" +-linux_repo_list="linux cryptodev-linux lttng-modules" ++linux_repo_list="linux cryptodev-linux lttng-modules rtl8723bu" + apps_repo_list="restool flib fmlib fmc openssl odp ofp dpdk ovs-dpdk gpp-aioptool cst aiopsl ptpd ceetm qbman_userspace eth-config crconf optee_os optee_client optee_test edgescale-eds eds-kubelet eds-puppet" + + # default git tree and branch +@@ -78,8 +80,8 @@ default_linux_tree=linux + + # linux config list + BUILD_DUAL_KERNEL=y +-linux_config_list_arm64="defconfig lsdk.config" +-linux_config_list_arm32v8="multi_v7_defconfig multi_v7_lpae.config multi_v8.config lsdk.config" ++linux_config_list_arm64="defconfig lsdk.config grapeboard_wireless.config" ++linux_config_list_arm32v8="multi_v7_defconfig multi_v7_lpae.config multi_v8.config lsdk.config grapeboard_wireless.config" + linux_config_list_arm32v7="multi_v7_defconfig multi_v7_lpae.config lsdk.config" + + # uefi machine list +@@ -107,11 +109,15 @@ qoriq_engine_pfe_bin_url=https://github.com/nxp/qoriq-engine-pfe-bin.git + qoriq_engine_pfe_bin_tag=LSDK-17.12 + + # linux git tree +-linux_tag=LSDK-17.12-V4.9 ++linux_url=http://git.scalys.com/lsdk/linux ++linux_branch=grapeboard-proto ++# url will be changed on final release + secondary_linux_tag=LSDK-17.12-V4.4 + cryptodev_linux_tag=LSDK-17.12 + lttng_modules_url=git://git.lttng.org/lttng-modules.git + lttng_modules_tag=v2.10.2 ++rtl8723bu_url=https://github.com/lwfinger/rtl8723bu.git ++rtl8723bu_branch=master + + # apps git tree + restool_tag=LSDK-17.12 +diff --git a/manifest/grapeboard.manifest b/manifest/grapeboard.manifest +new file mode 100755 +index 0000000..a5d9bcd +--- /dev/null ++++ b/manifest/grapeboard.manifest +@@ -0,0 +1,39 @@ ++# [general] ++machine=grapeboard ++ ++# [firmware images] ++rcw_qspi=null ++rcw_qspi_sec=null ++uboot_qspiboot=null ++uboot_qspiboot_sec=null ++secureboot_headers_qspi=null ++uefi_norboot=null ++uefi_sdboot=null ++uefi_env=null ++ppa=build/firmware/ppa/soc-ls1012/ppa.itb ++pfe_fw=build/firmware/engine-pfe-bin/ls1012a/u-boot/pfe_fw_sbl.itb ++pfe_kernel=build/firmware/engine-pfe-bin/ls1012a/slow_path/ppfe*.elf ++fman_ucode=null ++qe_firmware=null ++phy_firmware=null ++dpaa2_mc_fw=null ++dpaa2_mc_dpc=null ++dpaa2_mc_dpl=null ++rtl8723bu_fw=build/linux/linux/arm64/lib/firmware/rtl_bt/rtl8723b_fw.bin ++ ++# [linux, dtb, rfs] ++kernel_img=build/linux/kernel/arm64/Image ++kernel_uimg=build/linux/kernel/arm64/uImage ++kernel_vmlinux=build/linux/kernel/arm32/vmlinux ++device_tree=build/linux/kernel/arm64/grapeboard.dtb ++ramdiskrfs=build/images/ramdisk_rootfs_arm64.ext4.gz.uboot ++kernelrfs_continuous=yes ++ ++# [distro autoboot script] ++uboot_scr=null ++bootscript_dec=null ++ ++distroboot=null ++ ++# [secure boot scripts in cst] ++qspi_script=scripts/platforms/ls104x_1012_qspi.sh +diff --git a/packages/apt-packages/additional_packages_list_full_grapeboard b/packages/apt-packages/additional_packages_list_full_grapeboard +new file mode 100644 +index 0000000..e98cd53 +--- /dev/null ++++ b/packages/apt-packages/additional_packages_list_full_grapeboard +@@ -0,0 +1,22 @@ ++# full additional package list ++ ++additional_packages_list="apt git gcc vim ethtool wget ftp make makedev ++ build-essential gdb u-boot-tools device-tree-compiler python python-dev ++ zip libxml2-dev libsensors4-dev libssl-dev libedit-dev liblzma-dev tree ++ binutils-dev autoconf automake dh-autoreconf libnuma-dev libpcap-dev lxc ++ gdb bc qemu-kvm libvirt-bin virt-manager bridge-utils libtool lm-sensors ++ libncurses5-dev bison libelf-dev curl docker.io libcunit1-dev python-pip ++ iperf netperf flex autotools-dev openssh-server openssh-client hugepages ++ tcpdump vlan ifenslave linux-tools-generic blktrace tftp-hpa tftpd-hpa ++ strace debootstrap sysfsutils cpufrequtils iozone3 fio mdadm vsftpd telnet ++ ipsec-tools lmbench sysstat in.telnetd watchdog glibc-locale rdate lxd ++ initramfs-tools libtclap-dev i2c-tools mtd-utils dosfstools lttng-tools ++ net-tools xterm can-utils bluez iw wpasupplicant" ++ ++ ++# install extrinsic package needed by user but unavailable from official ubuntu ++extrinsic_packages_list="" ++ ++ ++# setup source packages depended by some custom components. ++source_packages_list="iproute2" +diff --git a/packages/installer/linux_arm32.its b/packages/installer/linux_arm32.its +index e85769c..7e88acd 100644 +--- a/packages/installer/linux_arm32.its ++++ b/packages/installer/linux_arm32.its +@@ -88,6 +88,15 @@ + compression = "none"; + load = <0x9ffe0000>; + }; ++ ++ grapeboard-dtb { ++ description = "Flattened Device Tree blob"; ++ data = /incbin/("../../build/linux/kernel/arm32/grapeboard.dtb"); ++ type = "flat_dt"; ++ arch = "arm"; ++ compression = "none"; ++ load = <0x9ffe0000>; ++ }; + }; + + configurations { +@@ -125,5 +134,12 @@ + fdt = "ls1012afrdm-dtb"; + ramdisk = "initrd-installer"; + }; ++ ++ grapeboard { ++ description = "Boot Linux kernel"; ++ kernel = "kernel-v8"; ++ fdt = "grapeboard-dtb"; ++ ramdisk = "initrd-installer"; ++ }; + }; + }; +diff --git a/packages/installer/linux_arm64.its b/packages/installer/linux_arm64.its +index 5b5d507..dc19b1a 100644 +--- a/packages/installer/linux_arm64.its ++++ b/packages/installer/linux_arm64.its +@@ -129,6 +129,19 @@ + algo = "crc32"; + }; + }; ++ ++ grapeboard-dtb { ++ description = "grapeboard-dtb"; ++ data = /incbin/("../../build/linux/kernel/arm64/grapeboard.dtb"); ++ type = "flat_dt"; ++ arch = "arm64"; ++ os = "linux"; ++ compression = "none"; ++ load = <0x90000000>; ++ hash@1 { ++ algo = "crc32"; ++ }; ++ }; + }; + + configurations { +@@ -181,5 +194,12 @@ + fdt = "ls1012afrdm-dtb"; + }; + ++ grapeboard { ++ description = "config for grapeboard"; ++ kernel = "kernel"; ++ ramdisk = "initrd-installer"; ++ fdt = "grapeboard-dtb"; ++ }; ++ + }; + }; +diff --git a/packages/linux/Makefile b/packages/linux/Makefile +index 00067e1..ff65d31 100644 +--- a/packages/linux/Makefile ++++ b/packages/linux/Makefile +@@ -10,7 +10,9 @@ include $(TOPDIR)/include/repo.mk + + LINUX_REPO_LIST = $(KERNEL_TREE) cryptodev-linux + +-all: setup-repo build-linux ++ ++ ++all: setup-repo build-linux rtl8723bu + + setup-repo: + @$(call fetch-git-tree,$(KERNEL_TREE)) +@@ -44,11 +46,12 @@ ifeq ($(CONFIG_BUILD_LINUX), y) + freescale/fsl-ls1046a-rdb-sdk.dtb freescale/fsl-ls1012a-rdb.dtb \ + freescale/fsl-ls1012a-frdm.dtb -C $(KERNEL_PATH) O=$$opdir; fi && \ + if [ $(DESTARCH) = arm64 ]; then cp $$opdir/arch/$$locarch/boot/Image* \ +- $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH); fi && \ ++ $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH) && \ ++ mkimage -A $(DESTARCH) -O linux -T kernel -C gzip -a 0x80080000 -e 0x80080000 -n Linux -d $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/Image.gz $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/uImage; fi && \ + if [ $(DESTARCH) = arm32 ]; then cp $$opdir/arch/$$locarch/boot/uImage \ + $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/uImage.$$extname; \ + cp $$opdir/arch/$$locarch/boot/zImage $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/zImage.$$extname; fi && \ +- ls $$opdir/arch/$$locarch/boot/dts/$$dtbstr | grep -E 'rdb|frdm|twr|qds' | xargs -I {} cp {} \ ++ ls $$opdir/arch/$$locarch/boot/dts/$$dtbstr | grep -E 'rdb|frdm|twr|qds|grapeboard' | xargs -I {} cp {} \ + $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH) && \ + if [ $(DESTARCH) = arm32 ]; then rm -f $(TOPDIR)/build/linux/$(KERNEL_TREE)/arm32/fsl-ls2*.dtb; fi && \ + cd $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH) && if [ -f fsl-ls1043a-rdb-sdk.dtb ]; then \ +@@ -99,11 +102,28 @@ ifeq ($(CONFIG_BUILD_LTTNG), y) + @if [ ! -d $(TOPDIR)/build/linux/kernel/$(DESTARCH) ]; then cd $(TOPDIR) && \ + flex-builder -c linux -a $(DESTARCH) -f $(CONFIGLIST) && cd -; fi && \ + cd lttng-modules && echo -e "\nBuilding LTTng modules ..." && \ +- $(MAKE) KERNELDIR=$(KERNEL_PATH) && \ ++ $(MAKE) KERNELDIR=$(KERNEL_PATH) && \l + $(MAKE) KERNELDIR=$(KERNEL_PATH) modules_install && \ + echo build LTTng modules done! + endif + ++.PHONY: rtl8723bu ++rtl8723bu: ++ifeq ($(CONFIG_BUILD_RTL8723BU), y) ++ @$(call fetch-git-tree,rtl8723bu) ++ @$(call fetch-git-tree,$(KERNEL_TREE)) ++ @if [ ! -d $(TOPDIR)/build/linux/kernel/$(DESTARCH) ]; then cd $(TOPDIR) && \ ++ flex-builder -c linux -a $(DESTARCH) -f $(CONFIGLIST) && cd -; fi && \ ++ echo -e "\nBuilding RTL8723BU module ..." && \ ++ sed -i 's/EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE/#EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE/g' rtl8723bu/Makefile && \ ++ cd rtl8723bu && \ ++ curbrch=`cd $(KERNEL_PATH) && git branch -v | grep '^*' | cut -d' ' -f2` && \ ++ $(MAKE) KSRC=$(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/output/$$curbrch && \ ++ $(MAKE) -C $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/output/$$curbrch M=$(TOPDIR)/packages/linux/rtl8723bu modules_install && \ ++ install rtl8723b_fw.bin -D $(TOPDIR)/build/linux/$(KERNEL_TREE)/$(DESTARCH)/lib/firmware/rtl_bt/rtl8723b_fw.bin && \ ++ echo build and installed RTL8723BU module+firmware done! ++endif ++ + + repo_fetch: + @echo -e "\nfetch linux repositories ..." +diff --git a/tools/flex-builder b/tools/flex-builder +index 5a70197..6d2b25c 100755 +--- a/tools/flex-builder ++++ b/tools/flex-builder +@@ -805,7 +805,7 @@ merge_components() { + fi + + #install PFE firmware to $RFSDIR/lib/firmware +- if [ $CONFIG_MACHINE_LS1012ARDB = y -o $CONFIG_MACHINE_LS1012AFRDM = y ]; then ++ if [ $CONFIG_MACHINE_LS1012ARDB = y -o $CONFIG_MACHINE_LS1012AFRDM = y -o $CONFIG_MACHINE_GRAPEBOARD = y ]; then + if [ ! -f $TOPDIR/build/firmware/qoriq-engine-pfe-bin/ls1012a/slow_path/ppfe_class_ls1012a.elf ]; then + flex-builder -c qoriq-engine-pfe-bin + fi +@@ -816,6 +816,27 @@ merge_components() { + tar cvzf $TOPDIR/build/images/linux-lib-firmware.tgz firmware + cd $TOPDIR + fi ++ ++ #install RTL8723BU firmware to $RFSDIR/lib/firmware/ ++ if [ $CONFIG_MACHINE_GRAPEBOARD = y ]; then ++ if [ ! -f $TOPDIR/build/linux/linux/arm64/lib/firmware/rtl_bt/rtl8723b_fw.bin ]; then ++ flex-builder -c linux -a arm64 -m grapeboard ++ fi ++ sudo mkdir -p $RFSDIR/lib/firmware/rtl_bt ++ . $TOPDIR/manifest/grapeboard.manifest ++ sudo cp -f $TOPDIR/$rtl8723bu_fw $RFSDIR/lib/firmware/rtl_bt/ ++ fi ++ ++ ++ #install kernel, and dtb to $RFSDIR/boot/ ++ if [ $CONFIG_MACHINE_GRAPEBOARD = y ]; then ++ if [ ! -f $TOPDIR/build/linux/kernel/$DESTARCH/grapeboard.dtb -o ! -f $TOPDIR/build/linux/kernel/$DESTARCH/uImage ]; then ++ flex-builder -c linux -a arm64 -m grapeboard ++ fi ++ sudo mkdir -p $RFSDIR/boot/ ++ sudo cp -f $TOPDIR/build/linux/kernel/$DESTARCH/uImage $RFSDIR/boot/ ++ sudo cp -f $TOPDIR/build/linux/kernel/$DESTARCH/grapeboard.dtb $RFSDIR/boot/ ++ fi + + if [ -f $TOPDIR/build/linux/kernel/$DESTARCH/perf ]; then + sudo cp -f $TOPDIR/build/linux/kernel/$DESTARCH/perf $RFSDIR/usr/bin -- cgit v0.10.2