From e2b0ffa22eb7cf158988d241b967a5583942d2ce Mon Sep 17 00:00:00 2001 From: luckfox-eng29 <158533769+luckfox-eng29@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:47:51 +0800 Subject: [PATCH] Pullrequest fix backlight (#291) * project : Merge the board configurations of Luckfox Pico Mini A and Luckfox Pico Mini B; Merge the board configurations of Luckfox Pico Pro and Luckfox pico Max Signed-off-by: eng29 * sysdrv/source/kernel/arch/arm/boot/dts : Merge the device tree configurations of Luckfox Pico Mini A and Luckfox Mini B; Merge the device tree configurations of Luckfox Pico Pro and Luckfox Pico Max Signed-off-by: eng29 * sysdrv/source/uboot : uboot add support for automatically executing custom commands defined by Luckfox Signed-off-by: eng29 * sysdrv/source/kernel : The Luckfox Pico series dynamically loads the BLACKLIGHT_PWM driver, which hides display abnormalities that occur during the screen initialization process Signed-off-by: eng29 * project/cfg/BoardConfig_IPC : Update the BoardConfig file and overlay file of the Luckfox Pico model that supports RGB, so that the BLACKLIGHT_PWM driver will be automatically loaded Signed-off-by: eng29 * project/cfg/BoardConfig_IPC : Add rtl8723bs module support for Luckfox Pico Mini / Luckfox Pico Plus / Luckfox Pico WebBee / Luckfox Pico Pro Max Signed-off-by: eng29 * sysdrv/drv_ko/wifi/insmod_wifi.sh : Add support for identifying rtl8723bs Signed-off-by: eng29 * sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig : Add usb_audio, ch343 and rtl8723bs support Signed-off-by: eng29 * sysdrv/tools/board/buildroot : Enable the pcre2 package by default on startup Signed-off-by: eng29 * project/app/rkipc/rkipc/common/network/network.c : Fix missing DNS issue when bringing up Wi-Fi interface Signed-off-by: eng29 * README.md : Update description README_CN.md : Update description Signed-off-by: eng29 * project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config : Disable UART2_M1 pinmux configuration Signed-off-by: eng29 * project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S99luckfoxconfigload : Remove the function of pressing the boot button to switch the screen model Signed-off-by: eng29 * sysdrv/source/kernel/arch/arm/boot/dts : Standardize the writing format of the dst files Signed-off-by: eng29 --------- Signed-off-by: eng29 --- README.md | 102 ++++++--------- README_CN.md | 102 ++++++--------- .../app/rkipc/rkipc/common/network/network.c | 5 +- project/build.sh | 20 ++- ...ildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk | 4 +- ...droot-RV1106_Luckfox_Pico_86Panel_W-IPC.mk | 4 +- ...Buildroot-RV1106_Luckfox_Pico_Ultra-IPC.mk | 5 +- ...ildroot-RV1106_Luckfox_Pico_Ultra_W-IPC.mk | 5 +- ...Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk} | 2 +- ...uildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk | 117 ------------------ ...D-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk | 117 ------------------ ...ldroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk} | 2 +- ...Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk} | 12 +- ...-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk | 9 +- ...uildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk | 9 +- ...D-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk | 117 ------------------ ...ldroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk} | 13 +- .../etc/init.d/S60micinit | 0 .../etc/init.d/S25backlight | 17 +++ .../etc/init.d/S99luckfoxconfigload | 6 - .../usr/bin/luckfox-config | 24 ++-- .../lib/firmware/rtlbt/rtl8723b_config | Bin 0 -> 55 bytes .../lib/firmware/rtlbt/rtl8723b_fw | Bin 0 -> 51364 bytes .../lib/firmware/rtlwifi/rtl8723bs_nic.bin | Bin 0 -> 32108 bytes sysdrv/drv_ko/wifi/insmod_wifi.sh | 9 ++ .../arm/boot/dts/rv1103-luckfox-pico-ipc.dtsi | 52 ++++---- .../boot/dts/rv1103g-luckfox-pico-mini.dts | 8 +- .../boot/dts/rv1103g-luckfox-pico-plus.dts | 14 ++- .../boot/dts/rv1103g-luckfox-pico-webbee.dts | 2 +- .../arm/boot/dts/rv1103g-luckfox-pico.dts | 30 ++--- .../dts/rv1106-luckfox-pico-86panel-ipc.dtsi | 10 +- .../dts/rv1106-luckfox-pico-pro-max-ipc.dtsi | 64 +++++----- .../dts/rv1106-luckfox-pico-ultra-ipc.dtsi | 27 ++-- .../dts/rv1106g-luckfox-pico-86panel-w.dts | 2 +- .../boot/dts/rv1106g-luckfox-pico-pi-w.dts | 2 +- ...x.dts => rv1106g-luckfox-pico-pro-max.dts} | 16 ++- .../arm/boot/dts/rv1106g-luckfox-pico-pro.dts | 106 ---------------- .../boot/dts/rv1106g-luckfox-pico-ultra-w.dts | 62 +++++----- .../configs/luckfox_rv1106_linux_defconfig | 6 +- .../u-boot/arch/arm/mach-rockchip/Kconfig | 4 + .../u-boot/arch/arm/mach-rockchip/board.c | 13 ++ .../configs/luckfox_rv1106_uboot_defconfig | 3 +- .../configs/rv1106-luckfox-rgb-reset.config | 1 + .../board/buildroot/luckfox_pico_defconfig | 3 + .../board/buildroot/luckfox_pico_w_defconfig | 2 + 45 files changed, 348 insertions(+), 780 deletions(-) rename project/cfg/BoardConfig_IPC/{BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk => BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk} (99%) delete mode 100755 project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk delete mode 100755 project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk rename project/cfg/BoardConfig_IPC/{BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk => BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk} (98%) rename project/cfg/BoardConfig_IPC/{BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk => BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk} (92%) delete mode 100755 project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk rename project/cfg/BoardConfig_IPC/{BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk => BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk} (92%) rename project/cfg/BoardConfig_IPC/overlay/{overlay-luckfox-config => overlay-luckfox-buildroot-init}/etc/init.d/S60micinit (100%) create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-rgb/etc/init.d/S25backlight create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlbt/rtl8723b_config create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlbt/rtl8723b_fw create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlwifi/rtl8723bs_nic.bin rename sysdrv/source/kernel/arch/arm/boot/dts/{rv1106g-luckfox-pico-max.dts => rv1106g-luckfox-pico-pro-max.dts} (93%) delete mode 100755 sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts create mode 100644 sysdrv/source/uboot/u-boot/configs/rv1106-luckfox-rgb-reset.config diff --git a/README.md b/README.md index 68f67ce8a..5ab3675d5 100755 --- a/README.md +++ b/README.md @@ -91,20 +91,18 @@ kernelconfig -config kernel and save defconfig" Lunch menu...pick the Luckfox Pico hardware version: 选择 Luckfox Pico 硬件版本: [0] RV1103_Luckfox_Pico - [1] RV1103_Luckfox_Pico_Mini_A - [2] RV1103_Luckfox_Pico_Mini_B - [3] RV1103_Luckfox_Pico_Plus - [4] RV1103_Luckfox_Pico_WebBee - [5] RV1106_Luckfox_Pico_Pro - [6] RV1106_Luckfox_Pico_Max - [7] RV1106_Luckfox_Pico_Ultra - [8] RV1106_Luckfox_Pico_Ultra_W - [9] RV1106_Luckfox_Pico_Pi - [10] RV1106_Luckfox_Pico_Pi_W - [11] RV1106_Luckfox_Pico_86Panel - [12] RV1106_Luckfox_Pico_86Panel_W - [13] custom - Which would you like? [0~13][default:0]: + [1] RV1103_Luckfox_Pico_Mini + [2] RV1103_Luckfox_Pico_Plus + [3] RV1103_Luckfox_Pico_WebBee + [4] RV1106_Luckfox_Pico_Pro_Max + [5] RV1106_Luckfox_Pico_Ultra + [6] RV1106_Luckfox_Pico_Ultra_W + [7] RV1106_Luckfox_Pico_Pi + [8] RV1106_Luckfox_Pico_Pi_W + [9] RV1106_Luckfox_Pico_86Panel + [10] RV1106_Luckfox_Pico_86Panel_W + [11] custom + Which would you like? [0~11][default:0]: ``` + Output the supported storage media for the corresponding Luckfox-pico hardware model. Enter the corresponding number to proceed to the root filesystem options (press Enter to select option [0] directly).For example, Luckfox Pico Plus. ```shell @@ -129,20 +127,18 @@ kernelconfig -config kernel and save defconfig" Lunch menu...pick the Luckfox Pico hardware version: 选择 Luckfox Pico 硬件版本: [0] RV1103_Luckfox_Pico - [1] RV1103_Luckfox_Pico_Mini_A - [2] RV1103_Luckfox_Pico_Mini_B - [3] RV1103_Luckfox_Pico_Plus - [4] RV1103_Luckfox_Pico_WebBee - [5] RV1106_Luckfox_Pico_Pro - [6] RV1106_Luckfox_Pico_Max - [7] RV1106_Luckfox_Pico_Ultra - [8] RV1106_Luckfox_Pico_Ultra_W - [9] RV1106_Luckfox_Pico_Pi - [10] RV1106_Luckfox_Pico_Pi_W - [11] RV1106_Luckfox_Pico_86Panel - [12] RV1106_Luckfox_Pico_86Panel_W - [13] custom - Which would you like? [0~13][default:0]: 13 + [1] RV1103_Luckfox_Pico_Mini + [2] RV1103_Luckfox_Pico_Plus + [3] RV1103_Luckfox_Pico_WebBee + [4] RV1106_Luckfox_Pico_Pro_Max + [5] RV1106_Luckfox_Pico_Ultra + [6] RV1106_Luckfox_Pico_Ultra_W + [7] RV1106_Luckfox_Pico_Pi + [8] RV1106_Luckfox_Pico_Pi_W + [9] RV1106_Luckfox_Pico_86Panel + [10] RV1106_Luckfox_Pico_86Panel_W + [11] custom + Which would you like? [0~11][default:0]: 11 ---------------------------------------------------------------- 0. BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk boot medium(启动介质): EMMC @@ -208,23 +204,15 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 8. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk + 8. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_A + hardware version(硬件版本): RV1103_Luckfox_Pico_Mini application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 9. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk - boot medium(启动介质): SD_CARD - system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_B - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 10. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk + 9. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_Plus @@ -232,7 +220,7 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 11. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk + 10. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_WebBee @@ -240,31 +228,23 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 12. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk + 11. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Max + hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 13. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk - boot medium(启动介质): SD_CARD - system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Pro - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 14. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk + 12. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_B + hardware version(硬件版本): RV1103_Luckfox_Pico_Mini application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 15. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk + 13. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_Plus @@ -272,7 +252,7 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 16. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk + 14. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_WebBee @@ -280,23 +260,15 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 17. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk + 15. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Max + hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 18. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk - boot medium(启动介质): SPI_NAND - system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Pro - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 19. BoardConfig_IPC/BoardConfig-SPI_NAND-Busybox-RV1106_Luckfox_Pico_Pro_Max-IPC_FASTBOOT.mk + 16. BoardConfig_IPC/BoardConfig-SPI_NAND-Busybox-RV1106_Luckfox_Pico_Pro_Max-IPC_FASTBOOT.mk boot medium(启动介质): SPI_NAND system version(系统版本): Busybox hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max diff --git a/README_CN.md b/README_CN.md index de5567d81..6345beae2 100755 --- a/README_CN.md +++ b/README_CN.md @@ -86,20 +86,18 @@ kernelconfig -config kernel and save defconfig" Lunch menu...pick the Luckfox Pico hardware version: 选择 Luckfox Pico 硬件版本: [0] RV1103_Luckfox_Pico - [1] RV1103_Luckfox_Pico_Mini_A - [2] RV1103_Luckfox_Pico_Mini_B - [3] RV1103_Luckfox_Pico_Plus - [4] RV1103_Luckfox_Pico_WebBee - [5] RV1106_Luckfox_Pico_Pro - [6] RV1106_Luckfox_Pico_Max - [7] RV1106_Luckfox_Pico_Ultra - [8] RV1106_Luckfox_Pico_Ultra_W - [9] RV1106_Luckfox_Pico_Pi - [10] RV1106_Luckfox_Pico_Pi_W - [11] RV1106_Luckfox_Pico_86Panel - [12] RV1106_Luckfox_Pico_86Panel_W - [13] custom - Which would you like? [0~13][default:0]: + [1] RV1103_Luckfox_Pico_Mini + [2] RV1103_Luckfox_Pico_Plus + [3] RV1103_Luckfox_Pico_WebBee + [4] RV1106_Luckfox_Pico_Pro_Max + [5] RV1106_Luckfox_Pico_Ultra + [6] RV1106_Luckfox_Pico_Ultra_W + [7] RV1106_Luckfox_Pico_Pi + [8] RV1106_Luckfox_Pico_Pi_W + [9] RV1106_Luckfox_Pico_86Panel + [10] RV1106_Luckfox_Pico_86Panel_W + [11] custom + Which would you like? [0~11][default:0]: ``` + 输出对应的Luckfox-pico硬件型号支持的存储介质,输入对应编号后进入根文件系统选项(直接回车选择序号[0]选项) 以Luckfox Pico Plus为例 @@ -125,20 +123,18 @@ kernelconfig -config kernel and save defconfig" Lunch menu...pick the Luckfox Pico hardware version: 选择 Luckfox Pico 硬件版本: [0] RV1103_Luckfox_Pico - [1] RV1103_Luckfox_Pico_Mini_A - [2] RV1103_Luckfox_Pico_Mini_B - [3] RV1103_Luckfox_Pico_Plus - [4] RV1103_Luckfox_Pico_WebBee - [5] RV1106_Luckfox_Pico_Pro - [6] RV1106_Luckfox_Pico_Max - [7] RV1106_Luckfox_Pico_Ultra - [8] RV1106_Luckfox_Pico_Ultra_W - [9] RV1106_Luckfox_Pico_Pi - [10] RV1106_Luckfox_Pico_Pi_W - [11] RV1106_Luckfox_Pico_86Panel - [12] RV1106_Luckfox_Pico_86Panel_W - [13] custom - Which would you like? [0~13][default:0]: 13 + [1] RV1103_Luckfox_Pico_Mini + [2] RV1103_Luckfox_Pico_Plus + [3] RV1103_Luckfox_Pico_WebBee + [4] RV1106_Luckfox_Pico_Pro_Max + [5] RV1106_Luckfox_Pico_Ultra + [6] RV1106_Luckfox_Pico_Ultra_W + [7] RV1106_Luckfox_Pico_Pi + [8] RV1106_Luckfox_Pico_Pi_W + [9] RV1106_Luckfox_Pico_86Panel + [10] RV1106_Luckfox_Pico_86Panel_W + [11] custom + Which would you like? [0~11][default:0]: 11 ---------------------------------------------------------------- 0. BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk boot medium(启动介质): EMMC @@ -204,23 +200,15 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 8. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk + 8. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_A + hardware version(硬件版本): RV1103_Luckfox_Pico_Mini application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 9. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk - boot medium(启动介质): SD_CARD - system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_B - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 10. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk + 9. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_Plus @@ -228,7 +216,7 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 11. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk + 10. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_WebBee @@ -236,31 +224,23 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 12. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk + 11. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk boot medium(启动介质): SD_CARD system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Max + hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 13. BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk - boot medium(启动介质): SD_CARD - system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Pro - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 14. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk + 12. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot - hardware version(硬件版本): RV1103_Luckfox_Pico_Mini_B + hardware version(硬件版本): RV1103_Luckfox_Pico_Mini application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 15. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk + 13. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_Plus @@ -268,7 +248,7 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 16. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk + 14. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot hardware version(硬件版本): RV1103_Luckfox_Pico_WebBee @@ -276,23 +256,15 @@ kernelconfig -config kernel and save defconfig" ---------------------------------------------------------------- ---------------------------------------------------------------- - 17. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk + 15. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk boot medium(启动介质): SPI_NAND system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Max + hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max application(应用场景): IPC ---------------------------------------------------------------- ---------------------------------------------------------------- - 18. BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk - boot medium(启动介质): SPI_NAND - system version(系统版本): Buildroot - hardware version(硬件版本): RV1106_Luckfox_Pico_Pro - application(应用场景): IPC - ---------------------------------------------------------------- - - ---------------------------------------------------------------- - 19. BoardConfig_IPC/BoardConfig-SPI_NAND-Busybox-RV1106_Luckfox_Pico_Pro_Max-IPC_FASTBOOT.mk + 16. BoardConfig_IPC/BoardConfig-SPI_NAND-Busybox-RV1106_Luckfox_Pico_Pro_Max-IPC_FASTBOOT.mk boot medium(启动介质): SPI_NAND system version(系统版本): Busybox hardware version(硬件版本): RV1106_Luckfox_Pico_Pro_Max diff --git a/project/app/rkipc/rkipc/common/network/network.c b/project/app/rkipc/rkipc/common/network/network.c index cad3a4e43..6863fac75 100644 --- a/project/app/rkipc/rkipc/common/network/network.c +++ b/project/app/rkipc/rkipc/common/network/network.c @@ -674,7 +674,7 @@ int rk_network_get_cable_state() { struct sockaddr_nl addr; struct nlmsghdr *nh; struct ifinfomsg *ifinfo; - char name[IFNAMSIZ], cmd1[64], cmd2[64]; + char name[IFNAMSIZ], cmd1[64], cmd2[64], cmd3[64]; // struct rtattr *attr; fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); @@ -700,8 +700,10 @@ int rk_network_get_cable_state() { memset(cmd1, 0, 32); memset(cmd2, 0, 32); + memset(cmd3, 0, 32); sprintf(cmd1, "udhcpc -i %s -T 1 -A 0 -b -q", name); sprintf(cmd2, "ifconfig %s 0.0.0.0", name); + sprintf(cmd3, "udhcpc -i eth0 -T 1 -A 0 -b -q"); if (ifinfo->ifi_flags & IFF_LOWER_UP) { status = 1; @@ -709,6 +711,7 @@ int rk_network_get_cable_state() { system("route del default gw 0.0.0.0"); system("cat /dev/null > /etc/resolv.conf"); system(cmd1); + system(cmd3); } else { status = 0; system(cmd2); diff --git a/project/build.sh b/project/build.sh index 3ba518cef..a6eecf642 100755 --- a/project/build.sh +++ b/project/build.sh @@ -149,12 +149,10 @@ function __IS_IN_ARRAY() { function choose_target_board() { local LF_HARDWARE=("RV1103_Luckfox_Pico" - "RV1103_Luckfox_Pico_Mini_A" - "RV1103_Luckfox_Pico_Mini_B" + "RV1103_Luckfox_Pico_Mini" "RV1103_Luckfox_Pico_Plus" "RV1103_Luckfox_Pico_WebBee" - "RV1106_Luckfox_Pico_Pro" - "RV1106_Luckfox_Pico_Max" + "RV1106_Luckfox_Pico_Pro_Max" "RV1106_Luckfox_Pico_Ultra" "RV1106_Luckfox_Pico_Ultra_W" "RV1106_Luckfox_Pico_Pi" @@ -174,17 +172,13 @@ function choose_target_board() { echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico" LUNCH_NUM=$((LUNCH_NUM + 1)) - echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico_Mini_A" - LUNCH_NUM=$((LUNCH_NUM + 1)) - echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico_Mini_B" + echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico_Mini" LUNCH_NUM=$((LUNCH_NUM + 1)) echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico_Plus" LUNCH_NUM=$((LUNCH_NUM + 1)) echo "${space8}${space8}[${LUNCH_NUM}] RV1103_Luckfox_Pico_WebBee" LUNCH_NUM=$((LUNCH_NUM + 1)) - echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_Pro" - LUNCH_NUM=$((LUNCH_NUM + 1)) - echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_Max" + echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_Pro_Max" LUNCH_NUM=$((LUNCH_NUM + 1)) echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_Ultra" LUNCH_NUM=$((LUNCH_NUM + 1)) @@ -280,9 +274,9 @@ function choose_target_board() { # MAX_BM_INDEX=0 #fi - range_sd_card=(0 1) - range_sd_card_spi_nand=(2 3 4 5 6) - range_emmc=(7 8 9 10 11 12) + range_sd_card=(0) + range_sd_card_spi_nand=(1 2 3 4) + range_emmc=(5 6 7 8 9 10) if __IS_IN_ARRAY "$HW_INDEX" "${range_sd_card[@]}"; then echo "${space8}${space8}[0] SD_CARD" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk index cccde3031..76344732d 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel-IPC.mk @@ -24,7 +24,7 @@ export RK_KERNEL_DTS=rv1106g-luckfox-pico-86panel.dts export RK_BOOT_MEDIUM=emmc # Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config +export RK_UBOOT_DEFCONFIG_FRAGMENT="rk-emmc.config rv1106-luckfox-rgb-reset.config" # specify post.sh for delete/overlay files # export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh @@ -125,4 +125,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-86panel" +export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-rgb overlay-luckfox-buildroot-86panel" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel_W-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel_W-IPC.mk index 80f5ff45a..1c9c0cf1f 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel_W-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_86Panel_W-IPC.mk @@ -24,7 +24,7 @@ export RK_KERNEL_DTS=rv1106g-luckfox-pico-86panel-w.dts export RK_BOOT_MEDIUM=emmc # Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config +export RK_UBOOT_DEFCONFIG_FRAGMENT="rk-emmc.config rv1106-luckfox-rgb-reset.config" # specify post.sh for delete/overlay files # export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh @@ -125,4 +125,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-86panel" +export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-rgb overlay-luckfox-buildroot-86panel" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra-IPC.mk index 59844d5e2..220ef0750 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra-IPC.mk @@ -24,7 +24,7 @@ export RK_KERNEL_DTS=rv1106g-luckfox-pico-ultra.dts export RK_BOOT_MEDIUM=emmc # Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config +export RK_UBOOT_DEFCONFIG_FRAGMENT="rk-emmc.config rv1106-luckfox-rgb-reset.config" # specify post.sh for delete/overlay files # export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh @@ -120,5 +120,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow\ - overlay-luckfox-buildroot-rgb" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-rgb" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra_W-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra_W-IPC.mk index b0fa61ed9..7a8cb1aeb 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra_W-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Ultra_W-IPC.mk @@ -24,7 +24,7 @@ export RK_KERNEL_DTS=rv1106g-luckfox-pico-ultra-w.dts export RK_BOOT_MEDIUM=emmc # Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config +export RK_UBOOT_DEFCONFIG_FRAGMENT="rk-emmc.config rv1106-luckfox-rgb-reset.config" # specify post.sh for delete/overlay files # export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh @@ -125,5 +125,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow\ - overlay-luckfox-buildroot-rgb" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-rgb" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk similarity index 99% rename from project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk rename to project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk index 5dad636e1..70e9a1f15 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk @@ -3,7 +3,7 @@ ################################################# # Board Config ################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_A-IPC.mk +export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk # Target CHIP export RK_CHIP=rv1106 diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk deleted file mode 100755 index 6b021feb0..000000000 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -################################################# -# Board Config -################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk -# Target CHIP -export RK_CHIP=rv1106 - -# app config -export RK_APP_TYPE=RKIPC_RV1103 - -# Config CMA size in environment -export RK_BOOTARGS_CMA_SIZE="24M" - -# Kernel dts -export RK_KERNEL_DTS=rv1103g-luckfox-pico-mini.dts - -################################################# -# BOOT_MEDIUM -################################################# - -# Target boot medium -export RK_BOOT_MEDIUM=sd_card - -# Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config - -# specify post.sh for delete/overlay files -# export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh - -# config partition in environment -# RK_PARTITION_CMD_IN_ENV format: -# [,] -# := [@](part-name) -# Note: -# If the first partition offset is not 0x0, it must be added. Otherwise, it needn't adding. -export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs)" - -# config partition's filesystem type (squashfs is readonly) -# emmc: squashfs/ext4 -# nand: squashfs/ubifs -# spi nor: squashfs/jffs2 -# RK_PARTITION_FS_TYPE_CFG format: -# AAAA:/BBBB/CCCC@ext4 -# AAAA ----------> partition name -# /BBBB/CCCC ----> partition mount point -# ext4 ----------> partition filesystem type -export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ext4,userdata@/userdata@ext4,oem@/oem@ext4 - -# config filesystem compress (Just for squashfs or ubifs) -# squashfs: lz4/lzo/lzma/xz/gzip, default xz -# ubifs: lzo/zlib, default lzo -# export RK_SQUASHFS_COMP=xz -# export RK_UBIFS_COMP=lzo - -################################################# -# TARGET_ROOTFS -################################################# - -# Target rootfs -export LF_TARGET_ROOTFS=buildroot - -# Buildroot defconfig -export RK_BUILDROOT_DEFCONFIG=luckfox_pico_defconfig - -################################################# -# Defconfig -################################################# - -# Target arch -export RK_ARCH=arm - -# Target Toolchain Cross Compile -export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf - -#misc image -export RK_MISC=wipe_all-misc.img - -# Uboot defconfig -export RK_UBOOT_DEFCONFIG=luckfox_rv1106_uboot_defconfig - -# Kernel defconfig -export RK_KERNEL_DEFCONFIG=luckfox_rv1106_linux_defconfig - -# Config sensor IQ files -# RK_CAMERA_SENSOR_IQFILES format: -# "iqfile1 iqfile2 iqfile3 ..." -# ./build.sh media and copy /output/out/media_out/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES -export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json" -#export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json sc530ai_CMK-OT2115-PC1_30IRC-F16.json" - -# Config sensor lens CAC calibrattion bin files -export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16" -#export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16" - -# build ipc web backend -# export RK_APP_IPCWEB_BACKEND=y - -# enable install app to oem partition -export RK_BUILD_APP_TO_OEM_PARTITION=y - -# enable rockchip test -export RK_ENABLE_ROCKCHIP_TEST=y - -################################################# -# PRE and POST -################################################# - -# specify pre.sh for delete/overlay files -export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh - -# specify post.sh for delete/overlay files -export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh - -# declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk deleted file mode 100755 index aede64b02..000000000 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -################################################# -# Board Config -################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk -# Target CHIP -export RK_CHIP=rv1106 - -# app config -export RK_APP_TYPE=RKIPC_RV1106 - -# Config CMA size in environment -export RK_BOOTARGS_CMA_SIZE="66M" - -# Kernel dts -export RK_KERNEL_DTS=rv1106g-luckfox-pico-pro.dts - -################################################# -# BOOT_MEDIUM -################################################# - -# Target boot medium -export RK_BOOT_MEDIUM=sd_card - -# Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-emmc.config - -# specify post.sh for delete/overlay files -# export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh - -# config partition in environment -# RK_PARTITION_CMD_IN_ENV format: -# [,] -# := [@](part-name) -# Note: -# If the first partition offset is not 0x0, it must be added. Otherwise, it needn't adding. -export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs)" - -# config partition's filesystem type (squashfs is readonly) -# emmc: squashfs/ext4 -# nand: squashfs/ubifs -# spi nor: squashfs/jffs2 -# RK_PARTITION_FS_TYPE_CFG format: -# AAAA:/BBBB/CCCC@ext4 -# AAAA ----------> partition name -# /BBBB/CCCC ----> partition mount point -# ext4 ----------> partition filesystem type -export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ext4,userdata@/userdata@ext4,oem@/oem@ext4 - -# config filesystem compress (Just for squashfs or ubifs) -# squashfs: lz4/lzo/lzma/xz/gzip, default xz -# ubifs: lzo/zlib, default lzo -# export RK_SQUASHFS_COMP=xz -# export RK_UBIFS_COMP=lzo - -################################################# -# TARGET_ROOTFS -################################################# - -# Target rootfs -export LF_TARGET_ROOTFS=buildroot - -# Buildroot defconfig -export RK_BUILDROOT_DEFCONFIG=luckfox_pico_defconfig - -################################################# -# Defconfig -################################################# - -# Target arch -export RK_ARCH=arm - -# Target Toolchain Cross Compile -export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf - -#misc image -export RK_MISC=wipe_all-misc.img - -# Uboot defconfig -export RK_UBOOT_DEFCONFIG=luckfox_rv1106_uboot_defconfig - -# Kernel defconfig -export RK_KERNEL_DEFCONFIG=luckfox_rv1106_linux_defconfig - -# Config sensor IQ files -# RK_CAMERA_SENSOR_IQFILES format: -# "iqfile1 iqfile2 iqfile3 ..." -# ./build.sh media and copy /output/out/media_out/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES -export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json mis5001_CMK-OT2115-PC1_30IRC-F16.json" -#export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json sc530ai_CMK-OT2115-PC1_30IRC-F16.json" - -# Config sensor lens CAC calibrattion bin files -export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16" -#export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16" - -# build ipc web backend -# export RK_APP_IPCWEB_BACKEND=y - -# enable install app to oem partition -export RK_BUILD_APP_TO_OEM_PARTITION=y - -# enable rockchip test -export RK_ENABLE_ROCKCHIP_TEST=y - -################################################# -# PRE and POST -################################################# - -# specify pre.sh for delete/overlay files -export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh - -# specify post.sh for delete/overlay files -export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh - -# declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk similarity index 98% rename from project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk rename to project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk index 831125530..b9d6e5d39 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk @@ -14,7 +14,7 @@ export RK_APP_TYPE=RKIPC_RV1106 export RK_BOOTARGS_CMA_SIZE="66M" # Kernel dts -export RK_KERNEL_DTS=rv1106g-luckfox-pico-max.dts +export RK_KERNEL_DTS=rv1106g-luckfox-pico-pro-max.dts ################################################# # BOOT_MEDIUM diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk similarity index 92% rename from project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk rename to project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk index 20b1b395b..00edb9c30 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk @@ -3,7 +3,7 @@ ################################################# # Board Config ################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini_B-IPC.mk +export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk # Target CHIP export RK_CHIP=rv1106 @@ -103,6 +103,13 @@ export RK_BUILD_APP_TO_OEM_PARTITION=y # enable rockchip test export RK_ENABLE_ROCKCHIP_TEST=y +# enable rockchip wifi +export RK_ENABLE_WIFI=y + +# config wifi ssid and passwd +export LF_WIFI_SSID="Your wifi ssid" +export LF_WIFI_PSK="Your wifi password" + ################################################# # PRE and POST ################################################# @@ -114,4 +121,5 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-webbee overlay-luckfox-wifibt-firmware" + diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk index 545605445..ced416925 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_Plus-IPC.mk @@ -103,6 +103,13 @@ export RK_BUILD_APP_TO_OEM_PARTITION=y # enable rockchip test export RK_ENABLE_ROCKCHIP_TEST=y +# enable rockchip wifi +export RK_ENABLE_WIFI=y + +# config wifi ssid and passwd +export LF_WIFI_SSID="Your wifi ssid" +export LF_WIFI_PSK="Your wifi password" + ################################################# # PRE and POST ################################################# @@ -114,4 +121,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-wifibt-firmware" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk index 46d3266c9..1a92514b5 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1103_Luckfox_Pico_WebBee-IPC.mk @@ -103,6 +103,13 @@ export RK_BUILD_APP_TO_OEM_PARTITION=y # enable rockchip test export RK_ENABLE_ROCKCHIP_TEST=y +# enable rockchip wifi +export RK_ENABLE_WIFI=y + +# config wifi ssid and passwd +export LF_WIFI_SSID="Your wifi ssid" +export LF_WIFI_PSK="Your wifi password" + ################################################# # PRE and POST ################################################# @@ -114,4 +121,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-nocsi-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-webbee" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-buildroot-webbee overlay-luckfox-wifibt-firmware" diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk deleted file mode 100755 index 4d9cd480b..000000000 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -################################################# -# Board Config -################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk -# Target CHIP -export RK_CHIP=rv1106 - -# app config -export RK_APP_TYPE=RKIPC_RV1106 - -# Config CMA size in environment -export RK_BOOTARGS_CMA_SIZE="66M" - -# Kernel dts -export RK_KERNEL_DTS=rv1106g-luckfox-pico-pro.dts - -################################################# -# BOOT_MEDIUM -################################################# - -# Target boot medium: emmc/spi_nor/spi_nand -export RK_BOOT_MEDIUM=spi_nand - -# Uboot defconfig fragment -export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-sfc.config - -# specify post.sh for delete/overlay files -# export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh - -# config partition in environment -# RK_PARTITION_CMD_IN_ENV format: -# [,] -# := [@](part-name) -# Note: -# If the first partition offset is not 0x0, it must be added. Otherwise, it needn't adding. -export RK_PARTITION_CMD_IN_ENV="256K(env),256K@256K(idblock),512K(uboot),4M(boot),30M(oem),10M(userdata),210M(rootfs)" - -# config partition's filesystem type (squashfs is readonly) -# emmc: squashfs/ext4 -# nand: squashfs/ubifs -# spi nor: squashfs/jffs2 -# RK_PARTITION_FS_TYPE_CFG format: -# AAAA:/BBBB/CCCC@ext4 -# AAAA ----------> partition name -# /BBBB/CCCC ----> partition mount point -# ext4 ----------> partition filesystem type -export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ubifs,oem@/oem@ubifs,userdata@/userdata@ubifs - -# config filesystem compress (Just for squashfs or ubifs) -# squashfs: lz4/lzo/lzma/xz/gzip, default xz -# ubifs: lzo/zlib, default lzo -# export RK_SQUASHFS_COMP=xz -# export RK_UBIFS_COMP=lzo - -################################################# -# TARGET_ROOTFS -################################################# - -# Target rootfs : buildroot/busybox -export LF_TARGET_ROOTFS=buildroot - -# Buildroot defconfig -export RK_BUILDROOT_DEFCONFIG=luckfox_pico_defconfig - -################################################# -# Defconfig -################################################# - -# Target arch -export RK_ARCH=arm - -# Target Toolchain Cross Compile -export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf - -#misc image -export RK_MISC=wipe_all-misc.img - -# Uboot defconfig -export RK_UBOOT_DEFCONFIG=luckfox_rv1106_uboot_defconfig - -# Kernel defconfig -export RK_KERNEL_DEFCONFIG=luckfox_rv1106_linux_defconfig - -# Config sensor IQ files -# RK_CAMERA_SENSOR_IQFILES format: -# "iqfile1 iqfile2 iqfile3 ..." -# ./build.sh media and copy /output/out/media_out/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES -export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json mis5001_CMK-OT2115-PC1_30IRC-F16.json" -#export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json sc530ai_CMK-OT2115-PC1_30IRC-F16.json" - -# Config sensor lens CAC calibrattion bin files -export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16" -#export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16" - -# build ipc web backend -#export RK_APP_IPCWEB_BACKEND=y - -# enable install app to oem partition -export RK_BUILD_APP_TO_OEM_PARTITION=y - -# enable rockchip test -export RK_ENABLE_ROCKCHIP_TEST=y - -################################################# -# PRE and POST -################################################# - -# specify pre.sh for delete/overlay files -export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh - -# specify post.sh for delete/overlay files -export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh - -# declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file diff --git a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk similarity index 92% rename from project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk rename to project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk index a7fe20a7a..97c368f0b 100755 --- a/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk +++ b/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk @@ -3,7 +3,7 @@ ################################################# # Board Config ################################################# -export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Max-IPC.mk +export LF_ORIGIN_BOARD_CONFIG=BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk # Target CHIP export RK_CHIP=rv1106 @@ -14,7 +14,7 @@ export RK_APP_TYPE=RKIPC_RV1106 export RK_BOOTARGS_CMA_SIZE="66M" # Kernel dts -export RK_KERNEL_DTS=rv1106g-luckfox-pico-max.dts +export RK_KERNEL_DTS=rv1106g-luckfox-pico-pro-max.dts ################################################# # BOOT_MEDIUM @@ -103,6 +103,13 @@ export RK_BUILD_APP_TO_OEM_PARTITION=y # enable rockchip test export RK_ENABLE_ROCKCHIP_TEST=y +# enable rockchip wifi +export RK_ENABLE_WIFI=y + +# config wifi ssid and passwd +export LF_WIFI_SSID="Your wifi ssid" +export LF_WIFI_PSK="Your wifi password" + ################################################# # PRE and POST ################################################# @@ -114,4 +121,4 @@ export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh # declare overlay directory -export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow" \ No newline at end of file +export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow overlay-luckfox-wifibt-firmware" diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S60micinit b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-init/etc/init.d/S60micinit similarity index 100% rename from project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S60micinit rename to project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-init/etc/init.d/S60micinit diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-rgb/etc/init.d/S25backlight b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-rgb/etc/init.d/S25backlight new file mode 100755 index 000000000..a20b1c15c --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-rgb/etc/init.d/S25backlight @@ -0,0 +1,17 @@ +#!/bin/sh + +start(){ + if [ -f "/oem/usr/ko/pwm_bl.ko" ]; then + sleep 1 + insmod /oem/usr/ko/pwm_bl.ko + fi +} + +case $1 in +start) + start & + ;; +*) + exit 1 + ;; +esac diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S99luckfoxconfigload b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S99luckfoxconfigload index e563abf30..e57031de3 100755 --- a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S99luckfoxconfigload +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/etc/init.d/S99luckfoxconfigload @@ -4,12 +4,6 @@ load_luckfoxconfig() { if [ -f /usr/bin/luckfox-config ]; then luckfox-config load fi - if [ "$(cat /proc/device-tree/model)" == "Luckfox Pico Ultra" ] || - [ "$(cat /proc/device-tree/model)" == "Luckfox Pico Ultra W" ]; then - if [ -f /usr/bin/luckfox_switch_rgb_resolution ]; then - luckfox_switch_rgb_resolution & - fi - fi } case $1 in diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config index 1d64b14d0..bcefc9588 100755 --- a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config @@ -144,8 +144,8 @@ function luckfox_pico_ultra_pin_diagram_file() { - - - 3V3 | | 5V PWM7_M0 - I2C2_M0_SCL - UART3_M0_TX - GPIO1_A0 | | 5V PWM4_M0 - I2C2_M0_SDA - UART3_M0_RX - GPIO1_A1 | | GND - PWM3_M1 - - UART4_M0_RX - GPIO1_B0 | | GPIO1_B2 - UART2_M1_TX - - - - GND | | GPIO1_B3 - UART2_M1_RX + PWM3_M1 - - UART4_M0_RX - GPIO1_B0 | | GPIO1_B2 - FIQtty_TX + - - - GND | | GPIO1_B3 - FIQtty_RX PWM7_M1 - - UART4_M0_TX - GPIO1_B1 | | GPIO1_C6 - - - PWM10_M1 PWM3_M2 - - UART3_M1_TX - GPIO1_D0 | | GND PWM10_M2- - UART3_M1_RX - GPIO1_D1 | | GPIO2_A7 - UART0_M1_CTS- I2C3_M0_SDA- PWM4_M1 @@ -242,7 +242,7 @@ function luckfox_config_init() { if [ ! -f $LUCKFOX_PIN_DIAGRAM_FILE ]; then if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Plus" ]; then luckfox_pico_plus_pin_diagram_file - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_pico_pro_max_pin_diagram_file elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico" ]; then luckfox_pico_pin_diagram_file @@ -365,7 +365,7 @@ function luckfox_load_cfg() { luckfox_set_pin_mark "GPIO1_C3" "$value" luckfox_set_pin_mark "GPIO0_A4" "$value" luckfox_fbtft_app 1 "sitronix,st7789v" - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_set_pin_mark "GPIO2_B1" "$value" luckfox_set_pin_mark "GPIO1_C0" "$value" luckfox_set_pin_mark "GPIO1_C1" "$value" @@ -378,7 +378,7 @@ function luckfox_load_cfg() { fi elif [ "$value" == 0 ]; then if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Plus" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico" ] || - [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then echo "Reset fbtft pins" #luckfox_fbtft_app 0 fi @@ -1108,7 +1108,7 @@ function luckfox_compatible_Pico_LCD() { luckfox_gpio_app 3 a 5 up luckfox_gpio_app 3 a 2 up - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_uart_app 0 1 1 luckfox_i2c_app 0 4 0 @@ -1213,7 +1213,7 @@ function luckfox_compatible_Pico_ResTouch_LCD() { luckfox_uart_app 0 5 0 luckfox_i2c_app 0 0 2 luckfox_result_handle $LF_OK - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_uart_app 0 1 1 luckfox_i2c_app 0 4 0 luckfox_i2c_app 0 3 0 @@ -1280,7 +1280,7 @@ function luckfox_compatible_Pico_OLED() { luckfox_uart_app 0 5 0 luckfox_gpio_app 1 d 1 up luckfox_gpio_app 3 a 7 up - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_uart_app 0 1 1 luckfox_gpio_app 1 d 1 up luckfox_gpio_app 2 a 5 up @@ -1350,7 +1350,7 @@ function luckfox_compatible_app() { compatible_group=(Pico_ePaper Pico_UPS_B OLED_Module DHT11) elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Plus" ] && [ "$LUCKFOX_CHIP_MEDIA_CLASS" == "spi_nand" ]; then compatible_group=(Pico_LCD Pico_ePaper Pico_UPS_B Pico_ResTouch_LCD OLED_Module Pico_OLED DHT11) - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then compatible_group=(Pico_LCD Pico_ePaper Pico_UPS_B Pico_ResTouch_LCD OLED_Module Pico_OLED DHT11) fi @@ -1789,7 +1789,7 @@ function luckfox_check_spi() { # Set GPIO if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Plus" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico" ] || - [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then fbtft_status=$(luckfox_get_pin_cfg "FBTFT_ENABLE") spi0m0_status=$(luckfox_get_pin_cfg "SPI0_M0_STATUS") if [ "$spi_mode" == 0 ] && [ "$spi_main" == 0 ]; then @@ -2414,7 +2414,7 @@ function luckfox_fbtft_app() { if [ "$action" == 1 ]; then if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Plus" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico" ]; then luckfox_check_pin_diagram "GPIO1_A2" "GPIO1_C0" "GPIO1_C1" "GPIO1_C2" "GPIO1_C3" "GPIO0_A4" - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_check_pin_diagram "GPIO2_B1" "GPIO1_C0" "GPIO1_C1" "GPIO1_C2" "GPIO1_C3" "GPIO2_B0" else luckfox_result_handle "$LF_ERR" "This Luckfox-Pico Model does not support FBTFT setting!" @@ -2504,7 +2504,7 @@ function luckfox_fbtft_app() { luckfox_set_pin_mark "GPIO1_C2" "$action" luckfox_set_pin_mark "GPIO1_C3" "$action" luckfox_set_pin_mark "GPIO0_A4" "$action" - elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ]; then + elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Max" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pro Max" ]; then luckfox_set_pin_mark "GPIO2_B1" "$action" luckfox_set_pin_mark "GPIO1_C0" "$action" luckfox_set_pin_mark "GPIO1_C1" "$action" diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlbt/rtl8723b_config b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlbt/rtl8723b_config new file mode 100755 index 0000000000000000000000000000000000000000..05f5901a67eb8a79fafb489446f5876bfd6743b3 GIT binary patch literal 55 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 literal 0 HcmV?d00001 diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlwifi/rtl8723bs_nic.bin b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-wifibt-firmware/lib/firmware/rtlwifi/rtl8723bs_nic.bin new file mode 100755 index 0000000000000000000000000000000000000000..8d534053823e47ba4e49c8600463af47fbec7306 GIT binary patch literal 32108 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 literal 0 HcmV?d00001 diff --git a/sysdrv/drv_ko/wifi/insmod_wifi.sh b/sysdrv/drv_ko/wifi/insmod_wifi.sh index a15cec1f9..d4a139d6b 100755 --- a/sysdrv/drv_ko/wifi/insmod_wifi.sh +++ b/sysdrv/drv_ko/wifi/insmod_wifi.sh @@ -44,6 +44,15 @@ if [ $? -eq 0 ]; then insmod bcmdhd.ko fi +#rtl8723bs +cat /sys/bus/sdio/devices/*/uevent | grep "024C:B723" +if [ $? -eq 0 ]; then + insmod libarc4.ko + insmod cfg80211.ko + insmod mac80211.ko + insmod r8723bs.ko +fi + #rtl8723ds cat /sys/bus/sdio/devices/*/uevent | grep "024C:D723" if [ $? -eq 0 ]; then diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103-luckfox-pico-ipc.dtsi b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103-luckfox-pico-ipc.dtsi index 0d9181146..d7b50e115 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103-luckfox-pico-ipc.dtsi +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103-luckfox-pico-ipc.dtsi @@ -59,16 +59,16 @@ // DHT11 dht11_sensor { - compatible = "dht11"; - pinctrl-names = "default"; - pinctrl-0 = <&gpio1_pc7>; + compatible = "dht11"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio1_pc7>; - dht11@1 { - gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; - label = "dht11"; - linux,default-trigger = "humidity"; - }; - }; + dht11@1 { + gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; + label = "dht11"; + linux,default-trigger = "humidity"; + }; + }; }; /***************************** AUDIO ********************************/ @@ -316,22 +316,22 @@ #address-cells = <1>; #size-cells = <0>; - spidev@0 { - compatible = "rockchip,spidev"; + spidev@0 { + compatible = "rockchip,spidev"; spi-max-frequency = <50000000>; reg = <0>; }; - fbtft@0{ - compatible = "sitronix,st7789v"; - reg = <0>; - spi-max-frequency = <20000000>; - fps = <30>; - buswidth = <8>; - debug = <0x7>; - led-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;//BL - dc-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; //DC - reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES - }; + fbtft@0 { + compatible = "sitronix,st7789v"; + reg = <0>; + spi-max-frequency = <20000000>; + fps = <30>; + buswidth = <8>; + debug = <0x7>; + led-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;//BL + dc-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;//DC + reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>;//RES + }; }; // I2C &i2c3 { @@ -402,9 +402,9 @@ }; }; - gpio1-pc7 { - gpio1_pc7:gpio1-pc7 { - rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; - }; + gpio1-pc7 { + gpio1_pc7: gpio1-pc7 { + rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; }; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-mini.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-mini.dts index f172cb95f..85ce5b81d 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-mini.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-mini.dts @@ -29,12 +29,18 @@ /**********SDMMC**********/ &sdmmc { max-frequency = <50000000>; - no-sdio; no-mmc; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; + + //sdio + cap-sdio-irq; + non-removable; + no-1-8-v; + supports-sdio; + pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; status = "okay"; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-plus.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-plus.dts index ba0404599..ee163b0a2 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-plus.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-plus.dts @@ -29,12 +29,18 @@ /**********SDMMC**********/ &sdmmc { max-frequency = <50000000>; - no-sdio; no-mmc; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; + + //sdio + cap-sdio-irq; + non-removable; + no-1-8-v; + supports-sdio; + pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; status = "okay"; @@ -58,9 +64,9 @@ spidev@0 { spi-max-frequency = <50000000>; }; - fbtft@0 { - spi-max-frequency = <50000000>; - }; + fbtft@0 { + spi-max-frequency = <50000000>; + }; }; /**********I2C**********/ diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-webbee.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-webbee.dts index ba8d23f71..28acfa70c 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-webbee.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico-webbee.dts @@ -52,7 +52,7 @@ }; /**********CSI**********/ -&i2c4{ +&i2c4 { status = "disabled"; }; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico.dts index 278db7e41..76acc784d 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1103g-luckfox-pico.dts @@ -13,7 +13,7 @@ model = "Luckfox Pico"; compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103"; - gpio4pa4:gpio4pa4 { + gpio4pa4: gpio4pa4 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pa4>; @@ -21,7 +21,7 @@ regulator-always-on; }; - gpio4pa3:gpio4pa3 { + gpio4pa3: gpio4pa3 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pa3>; @@ -29,7 +29,7 @@ regulator-always-on; }; - gpio4pa2:gpio4pa2 { + gpio4pa2: gpio4pa2 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pa2>; @@ -37,7 +37,7 @@ regulator-always-on; }; - gpio4pa6:gpio4pa6 { + gpio4pa6: gpio4pa6 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pa6>; @@ -45,7 +45,7 @@ regulator-always-on; }; - gpio4pb0:gpio4pb0 { + gpio4pb0: gpio4pb0 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pb0>; @@ -53,7 +53,7 @@ regulator-always-on; }; - gpio4pb1:gpio4pb1 { + gpio4pb1: gpio4pb1 { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&gpio4_pb1>; @@ -65,27 +65,27 @@ /**********GPIO***********/ &pinctrl{ gpio { - gpio4_pa4:gpio4-pa4 { + gpio4_pa4: gpio4-pa4 { rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; }; - gpio4_pa3:gpio4-pa3 { + gpio4_pa3: gpio4-pa3 { rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; }; - gpio4_pa2:gpio4-pa2 { + gpio4_pa2: gpio4-pa2 { rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; }; - gpio4_pa6:gpio4-pa6 { + gpio4_pa6: gpio4-pa6 { rockchip,pins = <4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; }; - gpio4_pb0:gpio4-pb0 { + gpio4_pb0: gpio4-pb0 { rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; - gpio4_pb1:gpio4-pb1 { + gpio4_pb1: gpio4-pb1 { rockchip,pins = <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; }; }; @@ -123,9 +123,9 @@ spidev@0 { spi-max-frequency = <50000000>; }; - fbtft@0 { - spi-max-frequency = <50000000>; - }; + fbtft@0 { + spi-max-frequency = <50000000>; + }; }; /**********I2C**********/ diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-86panel-ipc.dtsi b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-86panel-ipc.dtsi index e8b7028ae..f4e6fb77e 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-86panel-ipc.dtsi +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-86panel-ipc.dtsi @@ -55,10 +55,6 @@ panel: panel { compatible = "simple-panel"; - backlight = <&backlight>; - - reset-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>; - reset-delay-ms = <200>; status = "okay"; bus-format = ; @@ -282,7 +278,7 @@ status = "okay"; pinctrl-0 = <&i2c3m2_xfer &tp_rst &tp_irq>; clock-frequency = <100000>; - GT911:touchscreen { + GT911: touchscreen { compatible = "goodix,gt911"; reg = <0x14>; @@ -297,11 +293,11 @@ /**************************** PINCTRL ******************************/ &pinctrl { touchscreen { - tp_rst:tp-rst { + tp_rst: tp-rst { rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; }; - tp_irq:tp-irq { + tp_irq: tp-irq { rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-pro-max-ipc.dtsi b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-pro-max-ipc.dtsi index 6ddf33254..b2e0a9c39 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-pro-max-ipc.dtsi +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-pro-max-ipc.dtsi @@ -60,16 +60,16 @@ // DHT11 dht11_sensor { - compatible = "dht11"; - pinctrl-names = "default"; - pinctrl-0 = <&gpio1_pc7>; + compatible = "dht11"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio1_pc7>; - dht11@1 { - gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; - label = "dht11"; - linux,default-trigger = "humidity"; - }; - }; + dht11@1 { + gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; + label = "dht11"; + linux,default-trigger = "humidity"; + }; + }; }; @@ -145,8 +145,6 @@ &i2c4 { status = "okay"; clock-frequency = <400000>; - pinctrl-names = "default"; - pinctrl-0 = <&i2c4m2_xfer>; sc3336: sc3336@30 { compatible = "smartsens,sc3336"; @@ -272,22 +270,22 @@ #address-cells = <1>; #size-cells = <0>; spidev@0 { - compatible = "rockchip,spidev"; + compatible = "rockchip,spidev"; spi-max-frequency = <50000000>; reg = <0>; }; - fbtft@0{ - compatible = "sitronix,st7789v"; - reg = <0>; - spi-max-frequency = <20000000>; - fps = <30>; - buswidth = <8>; - debug = <0x7>; - led-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;//BL - dc-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; //DC - reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES - }; + fbtft@0 { + compatible = "sitronix,st7789v"; + reg = <0>; + spi-max-frequency = <20000000>; + fps = <30>; + buswidth = <8>; + debug = <0x7>; + led-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;//BL + dc-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;//DC + reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>;//RES + }; }; // I2C &i2c0 { @@ -302,9 +300,11 @@ pinctrl-0 = <&i2c3m1_xfer &i2c3m0_xfer>; }; -// &i2c4 { -// pinctrl-0 = <&i2c4m0_xfer>; -// }; +&i2c4 { + pinctrl-names = "default", "conifg"; + pinctrl-0 = <&i2c4m2_xfer>; + pinctrl-1 = <&i2c4m0_xfer>; +}; // UART &uart0 { @@ -337,7 +337,7 @@ pinctrl-0 = <&pwm4m2_pins>; }; &pwm5 { - pinctrl-0 = <&pwm5m2_pins>; + pinctrl-0 = <&pwm5m1_pins &pwm5m2_pins>; }; &pwm6 { pinctrl-0 = <&pwm6m1_pins &pwm6m2_pins>; @@ -352,7 +352,7 @@ pinctrl-0 = <&pwm10m1_pins &pwm10m2_pins>; }; &pwm11 { - pinctrl-0 = <&pwm11m1_pins>; + pinctrl-0 = <&pwm11m1_pins &pwm11m2_pins>; }; &pinctrl { @@ -371,10 +371,10 @@ }; }; - gpio1-pc7 { - gpio1_pc7:gpio1-pc7 { - rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; - }; + gpio1-pc7 { + gpio1_pc7: gpio1-pc7 { + rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; }; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-ultra-ipc.dtsi b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-ultra-ipc.dtsi index 30ba9cdef..505e53a83 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-ultra-ipc.dtsi +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-ultra-ipc.dtsi @@ -55,10 +55,6 @@ panel: panel { compatible = "simple-panel"; - backlight = <&backlight>; - - reset-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>; - reset-delay-ms = <200>; status = "okay"; bus-format = ; @@ -445,17 +441,18 @@ }; &i2c3 { - clock-frequency = <100000>; - GT911:touchscreen { - compatible = "goodix,gt911"; - reg = <0x14>; + status = "okay"; + clock-frequency = <100000>; + GT911:touchscreen { + compatible = "goodix,gt911"; + reg = <0x14>; - interrupt-parent = <&gpio0>; - interrupts = ; + interrupt-parent = <&gpio0>; + interrupts = ; - reset-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; - pinctrl-names = "default"; - }; + reset-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + }; }; /**************************** PINCTRL ******************************/ @@ -558,11 +555,11 @@ }; touchscreen { - tp_rst:tp-rst { + tp_rst: tp-rst { rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; }; - tp_irq:tp-irq { + tp_irq: tp-irq { rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; }; }; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-86panel-w.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-86panel-w.dts index 9fcb0458c..aaaf6c3a1 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-86panel-w.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-86panel-w.dts @@ -100,7 +100,7 @@ }; &pinctrl{ - sdmmc0{ + sdmmc0 { sdmmc0_det: sdmmc0-det { rockchip,pins = /* sdmmc0_det */ diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts index 6594ac3df..e92b66995 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts @@ -96,7 +96,7 @@ }; &pinctrl{ - sdmmc0{ + sdmmc0 { sdmmc0_det: sdmmc0-det { rockchip,pins = /* sdmmc0_det */ diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-max.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro-max.dts similarity index 93% rename from sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-max.dts rename to sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro-max.dts index b72aebb01..7c8a3e503 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-max.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro-max.dts @@ -10,7 +10,7 @@ #include "rv1106-luckfox-pico-pro-max-ipc.dtsi" / { - model = "Luckfox Pico Max"; + model = "Luckfox Pico Pro Max"; compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106g3"; }; @@ -51,13 +51,19 @@ /**********SDMMC**********/ &sdmmc { - max-frequency = <50000000>; - no-sdio; + max-freqency = <50000000>; no-mmc; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; + + //sdio + cap-sdio-irq; + non-removable; + no-1-8-v; + supports-sdio; + pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; status = "okay"; @@ -93,9 +99,9 @@ spidev@0 { spi-max-frequency = <50000000>; }; - fbtft@0 { + fbtft@0 { spi-max-frequency = <50000000>; - }; + }; }; /**********I2C**********/ diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts deleted file mode 100755 index 773852048..000000000 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts +++ /dev/null @@ -1,106 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -/* - * Copyright (c) 2022 Rockchip Electronics Co., Ltd. - */ - -/dts-v1/; - -#include "rv1106.dtsi" -#include "rv1106-evb.dtsi" -#include "rv1106-luckfox-pico-pro-max-ipc.dtsi" - -/ { - model = "Luckfox Pico Pro"; - compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106"; -}; - -/**********FLASH**********/ -&sfc { - status = "okay"; - flash@0 { - compatible = "spi-nand"; - reg = <0>; - spi-max-frequency = <75000000>; - spi-rx-bus-width = <4>; - spi-tx-bus-width = <1>; - }; -}; - -/**********SDMMC**********/ -&sdmmc { - max-frequency = <50000000>; - no-sdio; - no-mmc; - bus-width = <4>; - cap-mmc-highspeed; - cap-sd-highspeed; - disable-wp; - pinctrl-names = "default"; - pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; - status = "okay"; -}; - -/**********ETH**********/ -&gmac { - status = "okay"; -}; - -/**********USB**********/ -&u2phy { - status = "okay"; -}; - -&u2phy_otg { - rockchip,dis-u2-susphy; - status = "okay"; -}; - -&usbdrd { - status = "okay"; -}; - -&usbdrd_dwc3 { - status = "okay"; - dr_mode = "peripheral"; -}; - -/**********SPI**********/ -&spi0 { - status = "disabled"; - spidev@0 { - spi-max-frequency = <50000000>; - }; - fbtft@0 { - spi-max-frequency = <50000000>; - }; -}; - -/**********I2C**********/ -/* I2C3_M1 */ -&i2c3 { - status = "disabled"; - clock-frequency = <100000>; -}; - -/* I2C1_M1 */ -&i2c1 { - status = "disabled"; - clock-frequency = <100000>; -}; - - -/**********UART**********/ -/* UART3_M1 */ -&uart3 { - status = "disabled"; -}; - -/* UART4_M1 */ -&uart4 { - status = "disabled"; -}; - -/**********RTC**********/ -&rtc { - status = "okay"; -}; diff --git a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-ultra-w.dts b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-ultra-w.dts index a28d24fbd..cb08548fc 100755 --- a/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-ultra-w.dts +++ b/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-ultra-w.dts @@ -23,16 +23,16 @@ reset-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>; }; - wireless_bluetooth: wireless-bluetooth { - compatible = "bluetooth-platdata"; - uart_rts_gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; - pinctrl-names = "default", "rts_gpio"; - pinctrl-0 = <&uart1m0_rtsn>; - pinctrl-1 = <&uart1_gpios>; - BT,wake_gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; - BT,wake_host_irq = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; - status = "okay"; - }; + wireless_bluetooth: wireless-bluetooth { + compatible = "bluetooth-platdata"; + uart_rts_gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; + pinctrl-names = "default", "rts_gpio"; + pinctrl-0 = <&uart1m0_rtsn>; + pinctrl-1 = <&uart1_gpios>; + BT,wake_gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; + BT,wake_host_irq = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; }; /**********CRU**********/ @@ -79,20 +79,20 @@ /**********SDIO-WIFI**********/ &sdmmc { - max-frequency = <50000000>; - bus-width = <4>; - cap-sd-highspeed; - cap-sdio-irq; - keep-power-in-suspend; - non-removable; - rockchip,default-sample-phase = <90>; - // no-sd; - // no-mmc; - supports-sdio; - mmc-pwrseq = <&sdio_pwrseq>; - pinctrl-names = "default"; - pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>; - status = "okay"; + max-frequency = <50000000>; + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + non-removable; + rockchip,default-sample-phase = <90>; + // no-sd; + // no-mmc; + supports-sdio; + mmc-pwrseq = <&sdio_pwrseq>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>; + status = "okay"; }; &pinctrl{ @@ -102,7 +102,7 @@ /* sdmmc0_det */ <3 RK_PA1 1 &pcfg_pull_down>; }; - }; + }; }; @@ -115,7 +115,7 @@ &usbdrd_dwc3 { status = "okay"; dr_mode = "peripheral"; - #dr_mode = "host"; + //dr_mode = "host"; }; /**********RTC**********/ @@ -131,11 +131,11 @@ }; &pinctrl { - wireless-bluetooth { - uart1_gpios: uart1-gpios { - rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; + wireless-bluetooth { + uart1_gpios: uart1-gpios { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; }; /**********SPI**********/ diff --git a/sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig b/sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig index 152559a29..4fe82d613 100755 --- a/sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig +++ b/sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig @@ -205,7 +205,7 @@ CONFIG_ROCKCHIP_VOP=y CONFIG_ROCKCHIP_RGB=y CONFIG_DRM_PANEL_SIMPLE=y CONFIG_DRM_SII902X=y -CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_PWM=m CONFIG_ROCKCHIP_MULTI_RGA=m CONFIG_ROCKCHIP_RGA_PROC_FS=y # CONFIG_ROCKCHIP_RGA_DEBUG_FS is not set @@ -223,6 +223,7 @@ CONFIG_SND=y # CONFIG_SND_DRIVERS is not set # CONFIG_SND_ARM is not set # CONFIG_SND_SPI is not set +CONFIG_SND_USB_AUDIO=y CONFIG_SND_SOC=y CONFIG_SND_SOC_ROCKCHIP=y CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y @@ -236,6 +237,8 @@ CONFIG_USB_XHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_CH343=y CONFIG_USB_GADGET=y CONFIG_USB_CONFIGFS=y CONFIG_USB_CONFIGFS_UEVENT=y @@ -270,6 +273,7 @@ CONFIG_DMABUF_RK_HEAPS_DEBUG=y # CONFIG_VIRTIO_MENU is not set # CONFIG_VHOST_MENU is not set CONFIG_STAGING=y +CONFIG_RTL8723BS=m CONFIG_FB_TFT=y CONFIG_FB_TFT_ST7735R=y CONFIG_FB_TFT_ST7789V=y diff --git a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/Kconfig b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/Kconfig index b30c238a1..599925167 100644 --- a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/Kconfig +++ b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/Kconfig @@ -1054,6 +1054,10 @@ config ROCKCHIP_SET_SN bool "Rockchip set serial number" default y +config LUCKFOX_EXECUTE_CMD + bool "luckfox execute cmd" + default n + config ROCKCHIP_SET_ETHADDR bool "Rockchip set eth address" default y diff --git a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/board.c b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/board.c index 6121bb8ce..067176a9b 100644 --- a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/board.c +++ b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/board.c @@ -94,6 +94,16 @@ __weak int rk_board_init(void) return 0; } +#ifdef CONFIG_LUCKFOX_EXECUTE_CMD +static int luckfox_execute_cmd(void) +{ + /* Luckfox Pico RGB MCU reset gpio */ + run_command("gpio set 1 1",0); + + return 0; +} +#endif + #ifdef CONFIG_ROCKCHIP_SET_ETHADDR /* * define serialno max length, the max length is 512 Bytes @@ -453,6 +463,9 @@ static void scan_run_cmd(void) int board_late_init(void) { +#ifdef CONFIG_LUCKFOX_EXECUTE_CMD + luckfox_execute_cmd(); +#endif #ifdef CONFIG_ROCKCHIP_SET_ETHADDR rockchip_set_ethaddr(); #endif diff --git a/sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig b/sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig index b02e74e0c..0fe5c20b3 100644 --- a/sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig +++ b/sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig @@ -22,7 +22,6 @@ CONFIG_DEBUG_UART=y # CONFIG_DISTRO_DEFAULTS is not set CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT=y -# CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_FIT_HW_CRYPTO=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y @@ -40,7 +39,6 @@ CONFIG_SPL_BOARD_INIT=y # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set # CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y -CONFIG_SPL_MMC_WRITE=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_AB=y CONFIG_HUSH_PARSER=y @@ -54,6 +52,7 @@ CONFIG_CMD_BOOTZ=y # CONFIG_CMD_CRC32 is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set +CONFIG_CMD_GPIO=y CONFIG_RANDOM_UUID=y # CONFIG_CMD_LOADB is not set # CONFIG_CMD_LOADS is not set diff --git a/sysdrv/source/uboot/u-boot/configs/rv1106-luckfox-rgb-reset.config b/sysdrv/source/uboot/u-boot/configs/rv1106-luckfox-rgb-reset.config new file mode 100644 index 000000000..83d9e8db3 --- /dev/null +++ b/sysdrv/source/uboot/u-boot/configs/rv1106-luckfox-rgb-reset.config @@ -0,0 +1 @@ +CONFIG_LUCKFOX_EXECUTE_CMD=y diff --git a/sysdrv/tools/board/buildroot/luckfox_pico_defconfig b/sysdrv/tools/board/buildroot/luckfox_pico_defconfig index c78ae812e..0e94cc3de 100755 --- a/sysdrv/tools/board/buildroot/luckfox_pico_defconfig +++ b/sysdrv/tools/board/buildroot/luckfox_pico_defconfig @@ -40,6 +40,9 @@ BR2_PACKAGE_DTC=y BR2_PACKAGE_DTC_PROGRAMS=y BR2_PACKAGE_LIBV4L=y BR2_PACKAGE_LIBV4L_UTILS=y +BR2_PACKAGE_PCRE2=y +BR2_PACKAGE_PCRE2_16=y +BR2_PACKAGE_PCRE2_32=y BR2_PACKAGE_IPERF=y BR2_PACKAGE_IPERF3=y BR2_PACKAGE_LRZSZ=y diff --git a/sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig b/sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig index 3a6dbaec6..cad801391 100755 --- a/sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig +++ b/sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig @@ -68,6 +68,8 @@ BR2_PACKAGE_CJSON=y BR2_PACKAGE_CJSON_UTILS=y BR2_PACKAGE_LIBRSYNC=y BR2_PACKAGE_PCRE2=y +BR2_PACKAGE_PCRE2_16=y +BR2_PACKAGE_PCRE2_32=y BR2_PACKAGE_BLUEZ_TOOLS=y BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y