android
2024-06-16 f070c462a936f401b7ab915b42dea4e0f662bb81
Add Linux SDK build shell script

Signed-off-by: android <android@lingyun.com>
3 files added
459 ■■■■■ changed files
config.json 14 ●●●●● patch | view | raw | blame | history
linux_sdk/build.sh 178 ●●●●● patch | view | raw | blame | history
linux_sdk/patches/kernel.patch 267 ●●●●● patch | view | raw | blame | history
config.json
New file
@@ -0,0 +1,14 @@
{
    "board":"IGKBoard-RK3568",
    "linux":
    {
        "sdk_ver":"sdkv1.4.0_linux5.10",
        "sdk_path":"/srv/ftp/rockchip/bsp/rk3568_linuxsdk/",
        "distro":"buildroot"
    },
    "android":
    {
        "sdk_ver":"android-13.0-mid-rkr6",
        "sdk_path":"/srv/ftp/rockchip/bsp/rk3568_android/android13_sdk/"
    }
}
linux_sdk/build.sh
New file
@@ -0,0 +1,178 @@
#!/bin/bash
# this project absolute path
PRJ_PATH=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
# top project absolute path
TOP_PATH=$(realpath $PRJ_PATH/..)
# SDK build workspace
SDK_DIR=sdk_build
# binaries build prefix install path
PRFX_PATH=$PRJ_PATH/install
# binaries finally install path if needed
#INST_PATH=/tftp
# download taballs path
TARBALL_PATH=$PRJ_PATH/tarballs
# config file path
CONF_FILE=$TOP_PATH/config.json
# shell script will exit once get command error
set -e
#+-------------------------+
#| Shell script functions  |
#+-------------------------+
function pr_error() {
    echo -e "\033[40;31m $1 \033[0m"
}
function pr_warn() {
    echo -e "\033[40;33m $1 \033[0m"
}
function pr_info() {
    echo -e "\033[40;32m $1 \033[0m"
}
# decompress a packet to destination path
function do_unpack()
{
    tarball=$1
    dstpath=`pwd`
    if [[ $# == 2 ]] ; then
        dstpath=$2
    fi
    pr_info "decompress $tarball => $dstpath"
    mkdir -p $dstpath
    case $tarball in
        *.tar.gz)
            tar -xzf $tarball -C $dstpath
            ;;
        *.tgz)
            tar -xzf $tarball -C $dstpath
            ;;
        *.tar.bz2)
            tar -xjf $tarball -C $dstpath
            ;;
        *.tar.xz)
            tar -xJf $tarball -C $dstpath
            ;;
        *.tar.zst)
            tar -I zstd -xf $tarball -C $dstpath
            ;;
        *.tar)
            tar -xf $tarball -C $dstpath
            ;;
        *.zip)
            unzip -qo $tarball -d $dstpath
            ;;
        *)
            pr_error "decompress Unsupport packet: $tarball"
            return 1;
            ;;
    esac
}
# parser configure file and export environment variable
function export_env()
{
    export BOARD=`jq -r ".board" $CONF_FILE | tr 'A-Z' 'a-z'`
    export SDK_VER=`jq -r ".linux.sdk_ver" $CONF_FILE`
    export SDK_PATH=`jq -r ".linux.sdk_path" $CONF_FILE`
    export DISTRO=`jq -r ".linux.distro" $CONF_FILE | tr 'A-Z' 'a-z'`
    export ARCH=arm64
    if [[ $BOARD =~ igkboard-rk3568 ]] ; then
        LUNCH_BOARD=rockchip_rk3568_evb1_ddr4_v10_defconfig
    fi
    PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}' | cut -d. -f1)
    if [ $PYTHON_VERSION != "3" ] ; then
        PYTHON_VERSION=$(python --version 2>&1)
        pr_error "ERROR: This SDK build need Python3, current version is $PYTHON_VERSION"
        pr_warn "You can use 'sudo update-alternatives --config python' command to switch it"
        exit
    fi
}
function do_fetch()
{
    SDK_FPATH=$SDK_PATH/$SDK_VER
    PATCH_FLAG="$SDK_DIR/kernel/arch/arm64/configs/rockchip_linux_defconfig"
    if [ -e $PATCH_FLAG ] ;  then
        pr_warn "SDK source code fetched already, skip do fetch"
        return ;
    fi
    if [ ! -d $SDK_DIR/.repo ] ; then
        SDK_FILE=`ls $SDK_FPATH/*.tar.bz2 | head -n 1`
        if [ ! -d $SDK_FPATH ] ; then
            pr_error "ERROR: SDK package folder '$SDK_FPATH' doesn't exist!"
            exit
        fi
        pr_info "decompress SDK tarball $SDK_FILE..."
        do_unpack $SDK_FILE $SDK_DIR
    fi
    cd $SDK_DIR
    if [ ! -e $PATCH_FLAG ] ; then
        pr_info "repo sync to checkout source code..."
        ./.repo/repo/repo sync -l
    fi
    if ! grep -q '^CONFIG_CAN=y' $PATCH_FLAG ; then
        pr_info "patch for linux kernel..."
        cd kernel
        patch -p1 < $PRJ_PATH/patch/kernel.patch
    fi
}
function do_build()
{
    pr_info "Choose your board"
    cd $SDK_DIR
    ./build.sh lunch:${LUNCH_BOARD}
    RK_ROOTFS_SYSTEM=$DISTRO ./build.sh
    pr_info "System image will be installed to $PRJ_PATH/$SDK_DIR/rockdev"
    ls ./rockdev
}
#+-------------------------+
#| Shell script body entry |
#+-------------------------+
export_env
pr_warn "start build linux kernel for ${BOARD}"
do_fetch
do_build
linux_sdk/patches/kernel.patch
New file
@@ -0,0 +1,267 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
index f13c2387f1d2..df730a87027e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
@@ -348,7 +348,7 @@ wireless_wlan: wireless-wlan {
         rockchip,grf = <&grf>;
         wifi_chip_type = "ap6398s";
         WIFI,poweren_gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
-        status = "okay";
+        status = "disabled";
     };
     wireless_bluetooth: wireless-bluetooth {
@@ -363,7 +363,7 @@ wireless_bluetooth: wireless-bluetooth {
         BT,reset_gpio    = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
         BT,wake_gpio     = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
         BT,wake_host_irq = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
-        status = "okay";
+        status = "disabled";
     };
     test-power {
@@ -681,15 +681,15 @@ dsi0_panel: panel@0 {
         disp_timings0: display-timings {
             native-mode = <&dsi0_timing0>;
             dsi0_timing0: timing0 {
-                clock-frequency = <132000000>;
-                hactive = <1080>;
-                vactive = <1920>;
-                hfront-porch = <15>;
-                hsync-len = <2>;
-                hback-porch = <30>;
-                vfront-porch = <15>;
-                vsync-len = <2>;
-                vback-porch = <15>;
+                clock-frequency = <149600000>;
+                hactive = <1920>;
+                vactive = <1080>;
+                hfront-porch = <48>;
+                hsync-len = <32>;
+                hback-porch = <147>;
+                vfront-porch = <3>;
+                vsync-len = <6>;
+                vback-porch = <51>;
                 hsync-active = <0>;
                 vsync-active = <0>;
                 de-active = <0>;
@@ -1375,13 +1375,15 @@ rk809_codec: codec {
 &i2c1 {
     status = "okay";
-    gt1x: gt1x@14 {
-        compatible = "goodix,gt1x";
-        reg = <0x14>;
+    ili251x@41 {
+        compatible = "ilitek,ili251x";
+        reg = <0x41>;
         pinctrl-names = "default";
         pinctrl-0 = <&touch_gpio>;
-        goodix,rst-gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
-        goodix,irq-gpio = <&gpio0 RK_PB5 IRQ_TYPE_LEVEL_LOW>;
+        interrupt-parent = <&gpio0>;
+        interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+        reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
+        max-fingers = <6>;
     };
 };
@@ -1545,9 +1547,9 @@ &pmu_io_domains {
     pmuio2-supply = <&vcc3v3_pmu>;
     vccio1-supply = <&vccio_acodec>;
     vccio3-supply = <&vccio_sd>;
-    vccio4-supply = <&vcc_3v3>;
+    vccio4-supply = <&vcc_1v8>;
     vccio5-supply = <&vcc_3v3>;
-    vccio6-supply = <&vcc_3v3>;
+    vccio6-supply = <&vcc_1v8>;
     vccio7-supply = <&vcc_3v3>;
 };
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux.dts
index b6b618bb561a..36cd17a68309 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux.dts
@@ -15,3 +15,50 @@ &vp0 {
 &vp1 {
     cursor-win-id = <ROCKCHIP_VOP2_CLUSTER1>;
 };
+
+&uart3{
+        dma-names = "tx", "rx";
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart3m1_xfer>;
+        status = "okay";
+};
+
+&uart4{
+        dma-names = "tx", "rx";
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart4m1_xfer>;
+        status = "okay";
+};
+
+&uart9 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart9m1_xfer &rs485_ctrl>;
+        status = "okay";
+};
+
+&can0 {
+        compatible = "rockchip,rk3568-can-2.0";
+        assigned-clocks = <&cru CLK_CAN0>;
+        assigned-clock-rates = <150000000>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&can0m1_pins>;
+        status = "okay";
+};
+
+&can1 {
+        compatible = "rockchip,rk3568-can-2.0";
+        assigned-clocks = <&cru CLK_CAN1>;
+        assigned-clock-rates = <150000000>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&can1m1_pins>;
+        status = "okay";
+};
+
+&pinctrl {
+
+    rs485 {
+        rs485_ctrl: rs485-ctrl {
+            rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+        };
+    };
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
index dc9ad4236dd3..ec5a5f7bcf6c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
@@ -186,15 +186,15 @@ &dsi1_panel {
 &edp {
     hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
-    status = "okay";
+    status = "disabled";
 };
 &edp_phy {
-    status = "okay";
+    status = "disabled";
 };
 &edp_in_vp0 {
-    status = "okay";
+    status = "disabled";
 };
 &edp_in_vp1 {
@@ -259,10 +259,11 @@ &gmac1m1_rgmii_clk
  * power-supply should switche to vcc3v3_lcd1_n
  * when mipi panel is connected to dsi1.
  */
+/*
 &gt1x {
     power-supply = <&vcc3v3_lcd0_n>;
 };
-
+*/
 &i2c4 {
     status = "okay";
     gc8034: gc8034@37 {
@@ -356,13 +357,13 @@ &video_phy1 {
 };
 &pcie30phy {
-    status = "okay";
+    status = "disabled";
 };
 &pcie3x2 {
     reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
     vpcie3v3-supply = <&vcc3v3_pcie>;
-    status = "okay";
+    status = "disabled";
 };
 &pinctrl {
@@ -424,7 +425,7 @@ &route_dsi0 {
 };
 &route_edp {
-    status = "okay";
+    status = "disabled";
     connect = <&vp0_out_edp>;
 };
@@ -489,5 +490,5 @@ &wireless_bluetooth {
     BT,reset_gpio    = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
     BT,wake_gpio     = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
     BT,wake_host_irq = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
-    status = "okay";
+    status = "disabled";
 };
diff --git a/arch/arm64/configs/rockchip_linux_defconfig b/arch/arm64/configs/rockchip_linux_defconfig
index 688203de6bae..47da208d49e3 100644
--- a/arch/arm64/configs/rockchip_linux_defconfig
+++ b/arch/arm64/configs/rockchip_linux_defconfig
@@ -60,13 +60,10 @@ CONFIG_ARMV8_DEPRECATED=y
 CONFIG_SWP_EMULATION=y
 CONFIG_CP15_BARRIER_EMULATION=y
 CONFIG_SETEND_EMULATION=y
-# CONFIG_ARM64_PTR_AUTH is not set
 # CONFIG_ARM64_AMU_EXTN is not set
-# CONFIG_ARM64_TLB_RANGE is not set
 # CONFIG_ARM64_BTI is not set
 # CONFIG_ARM64_E0PD is not set
 # CONFIG_ARCH_RANDOM is not set
-# CONFIG_ARM64_MTE is not set
 # CONFIG_ARM64_SVE is not set
 CONFIG_ARM64_PSEUDO_NMI=y
 CONFIG_PM_DEBUG=y
@@ -120,6 +117,9 @@ CONFIG_SYN_COOKIES=y
 CONFIG_NETFILTER=y
 CONFIG_IP_NF_IPTABLES=y
 CONFIG_IP_NF_MANGLE=y
+CONFIG_CAN=y
+CONFIG_CAN_ROCKCHIP=y
+CONFIG_CANFD_ROCKCHIP=y
 CONFIG_BT=y
 CONFIG_BT_RFCOMM=y
 CONFIG_BT_HIDP=y
@@ -212,8 +212,19 @@ CONFIG_STMMAC_ETH=y
 CONFIG_MOTORCOMM_PHY=y
 CONFIG_ROCKCHIP_PHY=y
 CONFIG_RK630_PHY=y
+CONFIG_PPP=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=y
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOE=y
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
 CONFIG_USB_RTL8150=y
 CONFIG_USB_RTL8152=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_CDC_MBIM=y
 CONFIG_WL_ROCKCHIP=y
 CONFIG_WIFI_BUILD_MODULE=y
 CONFIG_AP6XXX=m
@@ -230,6 +241,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ATMEL_MXT=y
 CONFIG_TOUCHSCREEN_GSL3673=y
 CONFIG_TOUCHSCREEN_GT1X=y
+CONFIG_TOUCHSCREEN_ILI210X=y
 CONFIG_TOUCHSCREEN_ELAN=y
 CONFIG_TOUCHSCREEN_USB_COMPOSITE=y
 CONFIG_ROCKCHIP_REMOTECTL=y
@@ -628,7 +640,6 @@ CONFIG_CRYPTO_USER_API_HASH=y
 CONFIG_CRYPTO_USER_API_SKCIPHER=y
 CONFIG_CRYPTO_DEV_ROCKCHIP=y
 CONFIG_CRYPTO_DEV_ROCKCHIP_DEV=y
-CONFIG_CRC_CCITT=y
 CONFIG_CRC_T10DIF=y
 CONFIG_CRC7=y
 # CONFIG_XZ_DEC_X86 is not set