From cdd99cc45b4b0dc5773f948b2e7b01b4aa119645 Mon Sep 17 00:00:00 2001 From: CCU6 Date: Mon, 9 Sep 2024 19:02:41 +0800 Subject: [PATCH 1/3] add support file for lckfb tspi --- .github/workflows/build-armbian.yml | 1 + .../common-files/etc/model_database.conf | 1 + .../lckfb-tspi/bootfs/armbianEnv.txt | 17 ++++ .../firefly-rk3399/lckfb-tspi/bootfs/boot.cmd | 74 ++++++++++++++++++ .../firefly-rk3399/lckfb-tspi/bootfs/boot.scr | Bin 0 -> 3250 bytes .../dtb/rockchip/rk3566-taishanpi-v10.dtb | Bin 0 -> 163463 bytes 6 files changed, 93 insertions(+) create mode 100644 build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt create mode 100644 build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd create mode 100644 build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.scr create mode 100644 build-armbian/armbian-files/platform-files/rockchip/bootfs/dtb/rockchip/rk3566-taishanpi-v10.dtb diff --git a/.github/workflows/build-armbian.yml b/.github/workflows/build-armbian.yml index 6343ba5e14..7494806cd5 100644 --- a/.github/workflows/build-armbian.yml +++ b/.github/workflows/build-armbian.yml @@ -55,6 +55,7 @@ on: - ipc-r - king3399 - kylin3399 + - lckfb-tspi - leez - lx-r3s - mrkaio-m68s diff --git a/build-armbian/armbian-files/common-files/etc/model_database.conf b/build-armbian/armbian-files/common-files/etc/model_database.conf index 17f9f77308..0f1830cd5d 100644 --- a/build-armbian/armbian-files/common-files/etc/model_database.conf +++ b/build-armbian/armbian-files/common-files/etc/model_database.conf @@ -234,6 +234,7 @@ r212 :Ruisen-box :rk3568 :rk3568-ruisen-bo #-------+--------------------------------------------+---------+---------------------------------------+-----------------------------+------------------------------------+--------------------------------+-------------------------------------------+----------------+------------+-------------+----------------+-----------------------------------------------------+--------------------+---------- r301 :Panther-X2 :rk3566 :rk3566-panther-x2.dtb :NA :u-boot.itb :idbloader.img :4GB-LPDDR4,32G-eMMC,64G-TF,2x1Gb-Nic :stable/6.1.y :rockchip :rk3566 :armbianEnv.txt :tdleiyao :panther-x2 :yes r302 :JP-TvBox :rk3566 :rk3566-jp-tvbox.dtb :NA :u-boot.itb :idbloader.img :8GB-LPDDR4,32G-eMMC,SATA,1Gb-Nic :stable/6.1.y :rockchip :rk3566 :armbianEnv.txt :unifreq :jp-tvbox :yes +r303 :lckfb-tspi :rk3566 :rk3566-taishanpi-v10.dtb :NA :u-boot.itb :idbloader.img :2GB-LPDDR4,16G-eMMC,SATA,1Gb-Nic :rk35xx/6.1.y :rockchip :rk3566 :armbianEnv.txt :ccu6 # Rockchip RK3399 Family diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt b/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt new file mode 100644 index 0000000000..dc3c24eef2 --- /dev/null +++ b/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt @@ -0,0 +1,17 @@ +verbosity=7 +bootlogo=true +fdtfile=rockchip/rk3566-taishanpi-v10.dtb +rootdev=/dev/mmcblk0p2 +rootfstype=ext4 +rootflags=rw,errors=remount-ro +console=serial +consoleargs=console=ttyS2,1500000 +usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u +docker_optimizations=on +earlycon=on +earlyconargs=earlycon=uart8250,mmio32,0xfe660000 +extraargs= +extraboardargs=net.ifnames=0 max_loop=128 +overlay_prefix=rk3566 +overlays= +user_overlays= diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd b/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd new file mode 100644 index 0000000000..7cad05ea0a --- /dev/null +++ b/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd @@ -0,0 +1,74 @@ +# DO NOT EDIT THIS FILE +# +# Please edit /boot/armbianEnv.txt to set supported parameters +# + +setenv load_addr "0x39000000" +setenv overlay_error "false" +# default values +setenv rootdev "/dev/mmcblk0p1" +setenv verbosity "1" +setenv console "both" +setenv bootlogo "false" +setenv rootfstype "ext4" +setenv rootflags "rw,errors=remount-ro" +setenv docker_optimizations "on" +setenv earlycon "off" + +echo "Boot script loaded from ${devtype} ${devnum}" + +if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then + load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt + env import -t ${load_addr} ${filesize} +fi + +if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi + +if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi +if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "${consoleargs} console=tty1"; fi +if test "${earlycon}" = "on"; then setenv consoleargs "${earlyconargs} ${consoleargs}"; fi +if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.armbian ${consoleargs}"; fi + +# get PARTUUID of first partition on SD/eMMC the boot script was loaded from +if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi + +setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} rootflags=${rootflags} ${consoleargs} consoleblank=0 loglevel=${verbosity} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" + +if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi + +load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd +load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image + +load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} +fdt addr ${fdt_addr_r} +fdt resize 65536 +for overlay_file in ${overlays}; do + if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" + fi +done +for overlay_file in ${user_overlays}; do + if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then + echo "Applying user provided DT overlay ${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" + fi +done +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} +else + if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then + echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" + source ${load_addr} + fi + if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then + load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr + echo "Applying user provided fixup script (fixup.scr)" + source ${load_addr} + fi +fi +booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} + +# Recompile with: +# mkimage -C none -A arm -T script -n 'flatmax load script' -d /boot/boot.cmd /boot/boot.scr diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.scr b/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.scr new file mode 100644 index 0000000000000000000000000000000000000000..69da6effadf6b7c0b3c355dac84660b83365853f GIT binary patch literal 3250 zcmcIn-EP}96b=S-fQ7!m?hcdy*?`JU(6zu?_@YZP%)q)9tvg^>1}#xGXG+va%88r$ zjrs(;+8gYJcCm9PQnq7P?f#4)mJZJ!&-uhD+aCJEv!}$BrYxr*T!&P(~9m7k> znc=`QVPP;;$_|(=rh=7M<+5*YELa7GTQGH1DQ$TM71ONXmTQ9!B3$F;(xotAS*9UA zyLtG{nft_HRV}%eY&GFpE7ZuDG(5)O8P8cQEi9R=xe3}Dv&i@o;sO326h%6fi?iyy z^@h%-$_TrHcq2?zX_Vv;PnDgwsKL#HE;`(%?!l)`hm;W z3^gxQUD`yeRxeZOg6oN@tSH1=W(9_aSe2~;XIic>DHP^;97Q~xV;0|HT;C~IGAw7V zRRJfrxK&DL-8`0cu|^}2gXP9T!VhYou+lsiH|yP=Jq0`GWz=)HIOG})Y0Wi^A|CV- z^{BC;pteI|@7m--awFdIb(D)urZIV*sdWrPh%;f>RProt5+WQmSfPfHTEA5Eh3j{G z_-?jtDnw5V@7^`#z#uycuI0Ni{5sRrN&hmmc6Hvw3WdGv$#5;0{O6I{#3=9@Is*rU zG@C@|bnM{dHfT4FcjN5sDZsvQZFSANoRhY}3Y&SK9;vazEt$s__J6CW>n0}7@C?b} z<+E4gH*ZFlpmOY_M#LgXSV2<(`1ks9z@Ia_%D1LW3m_HHy|?fChVba_hNe4fJr$ko4TdJ1X$Y4KFkr$gndL zlcIm;1J(0*e`Sn&z3^x6ABwaB_=F z1asuB%z`_%oGhq2v3B$Zj~_jH_&Cb(+zO`{S%N6BU0!0=Pa#uL4_T$F4u>e0($Uz; zbS|oacZd0fP@b5Rjl`whM>7>zzSkTr&#FqUL^*?|Vo+(d6d4{cm*bH6CgVw$<2dT| zTwTZ`+HB>G4D2T>Way7{$1zb4X*^RU|3JAAVt8aWcY%LVGw&fGcU!gkcxA}oBX!w0 z`46hFb;|6NYmb)ksCCzaD|bI)p_7}=nFoMyLf`P7Z{XG0gj3?n4fq3UTc2N1myD`)N;jkpP#qF!9zX5+)cR|4?5gS}494^+ zwH`2^JM*}Uy4|g{W}O?ssUqGM7;cXa_sMmu=@FjKuXw78iYV(^*!dHb6bnJ*3CRVN lIINI713cp)8Hb7|C7d4kZE*@o=6@qlI{mcRdBqk-e*tYJfdK#j literal 0 HcmV?d00001 diff --git a/build-armbian/armbian-files/platform-files/rockchip/bootfs/dtb/rockchip/rk3566-taishanpi-v10.dtb b/build-armbian/armbian-files/platform-files/rockchip/bootfs/dtb/rockchip/rk3566-taishanpi-v10.dtb new file mode 100644 index 0000000000000000000000000000000000000000..5d2a00e784ae5882e961ed0b1d4b5bf267b64f2e GIT binary patch literal 163463 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 literal 0 HcmV?d00001 From 22aac33d1b2d7f8b9cf3910451522d54e47478de Mon Sep 17 00:00:00 2001 From: CCU6 Date: Mon, 9 Sep 2024 19:07:18 +0800 Subject: [PATCH 2/3] add support file for lckfb tspi --- .../armbian-files/common-files/etc/model_database.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-armbian/armbian-files/common-files/etc/model_database.conf b/build-armbian/armbian-files/common-files/etc/model_database.conf index 0f1830cd5d..7e7791a447 100644 --- a/build-armbian/armbian-files/common-files/etc/model_database.conf +++ b/build-armbian/armbian-files/common-files/etc/model_database.conf @@ -234,7 +234,7 @@ r212 :Ruisen-box :rk3568 :rk3568-ruisen-bo #-------+--------------------------------------------+---------+---------------------------------------+-----------------------------+------------------------------------+--------------------------------+-------------------------------------------+----------------+------------+-------------+----------------+-----------------------------------------------------+--------------------+---------- r301 :Panther-X2 :rk3566 :rk3566-panther-x2.dtb :NA :u-boot.itb :idbloader.img :4GB-LPDDR4,32G-eMMC,64G-TF,2x1Gb-Nic :stable/6.1.y :rockchip :rk3566 :armbianEnv.txt :tdleiyao :panther-x2 :yes r302 :JP-TvBox :rk3566 :rk3566-jp-tvbox.dtb :NA :u-boot.itb :idbloader.img :8GB-LPDDR4,32G-eMMC,SATA,1Gb-Nic :stable/6.1.y :rockchip :rk3566 :armbianEnv.txt :unifreq :jp-tvbox :yes -r303 :lckfb-tspi :rk3566 :rk3566-taishanpi-v10.dtb :NA :u-boot.itb :idbloader.img :2GB-LPDDR4,16G-eMMC,SATA,1Gb-Nic :rk35xx/6.1.y :rockchip :rk3566 :armbianEnv.txt :ccu6 +r303 :lckfb-tspi :rk3566 :rk3566-taishanpi-v10.dtb :NA :u-boot.itb :idbloader.img :2GB-LPDDR4,16G-eMMC,SATA,1Gb-Nic :rk35xx/6.1.y :rockchip :rk3566 :armbianEnv.txt :ccu6 :lckfb-tspi :yes # Rockchip RK3399 Family From 5b6b50ee6fa3b1b86d11de3e0e83ce96de3e6672 Mon Sep 17 00:00:00 2001 From: CCU6 Date: Tue, 10 Sep 2024 10:09:55 +0800 Subject: [PATCH 3/3] add support file for lckfb tspi --- .../lckfb-tspi/bootfs/armbianEnv.txt | 0 .../{firefly-rk3399 => }/lckfb-tspi/bootfs/boot.cmd | 0 .../{firefly-rk3399 => }/lckfb-tspi/bootfs/boot.scr | Bin 3 files changed, 0 insertions(+), 0 deletions(-) rename build-armbian/armbian-files/different-files/{firefly-rk3399 => }/lckfb-tspi/bootfs/armbianEnv.txt (100%) rename build-armbian/armbian-files/different-files/{firefly-rk3399 => }/lckfb-tspi/bootfs/boot.cmd (100%) rename build-armbian/armbian-files/different-files/{firefly-rk3399 => }/lckfb-tspi/bootfs/boot.scr (100%) diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt b/build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/armbianEnv.txt similarity index 100% rename from build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/armbianEnv.txt rename to build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/armbianEnv.txt diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd b/build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/boot.cmd similarity index 100% rename from build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.cmd rename to build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/boot.cmd diff --git a/build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.scr b/build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/boot.scr similarity index 100% rename from build-armbian/armbian-files/different-files/firefly-rk3399/lckfb-tspi/bootfs/boot.scr rename to build-armbian/armbian-files/different-files/lckfb-tspi/bootfs/boot.scr