diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d8e0870087c8..bc66881bccff 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -34,6 +34,7 @@ config/boards/bananapim5.conf @igorpecovnik config/boards/bananapim64.csc @devdotnetorg config/boards/bananapim7.conf @amazingfate config/boards/bigtreetech-cb1.conf @JohnTheCoolingFan +config/boards/bigtreetech-cb2.conf @JohnTheCoolingFan config/boards/cherryba-m1.csc @IsMrX config/boards/clearfogpro.csc @Heisath config/boards/cm3588-nas.csc @ColorfulRhino @@ -85,6 +86,7 @@ config/boards/nanopiduo.csc @sgjava config/boards/nanopim4v2.conf @igorpecovnik config/boards/nanopineocore2.csc @AGM1968 config/boards/nanopineoplus2.csc @teknoid +config/boards/odroidc1.conf @juanlufont config/boards/odroidc2.conf @teknoid config/boards/odroidc4.conf @igorpecovnik config/boards/odroidhc4.conf @igorpecovnik @@ -159,7 +161,7 @@ config/kernel/linux-arm64-*.config @FantasyGmm config/kernel/linux-bcm2711-*.config @PanderMusubi @teknoid config/kernel/linux-imx8m-*.config @schmiedelm config/kernel/linux-k3-*.config @glneo -config/kernel/linux-meson-*.config @hzyitc +config/kernel/linux-meson-*.config @hzyitc @juanlufont config/kernel/linux-meson-s4t7-*.config @adeepn @rpardini @viraniac config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid config/kernel/linux-mvebu-*.config @Heisath @@ -168,7 +170,7 @@ config/kernel/linux-phytium-embedded-*.config @chainsx config/kernel/linux-rk35xx-*.config @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii config/kernel/linux-rockchip-*.config @paolosabatino config/kernel/linux-rockchip-rk3588-*.config @ColorfulRhino @HeyMeco @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @efectn @fridtjof @lanefu @linhz0hz @rpardini @schwar3kat -config/kernel/linux-rockchip64-*.config @150balbes @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii +config/kernel/linux-rockchip64-*.config @150balbes @JohnTheCoolingFan @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii config/kernel/linux-sm8250-*.config @FantasyGmm @amazingfate config/kernel/linux-sun55iw3-syterkit-*.config @chainsx config/kernel/linux-sunxi-*.config @1ubuntuuser @AaronNGray @DylanHP @Janmcha @StephenGraf @Tonymac32 @janprunk @lbmendes @mhawkins-consultant @sgjava @@ -184,7 +186,7 @@ patch/kernel/archive/uefi-x86-*/ @davidandreoletti @rpardini patch/kernel/bcm2711-*/ @PanderMusubi @teknoid patch/kernel/imx8m-*/ @schmiedelm patch/kernel/k3-*/ @glneo -patch/kernel/meson-*/ @hzyitc +patch/kernel/meson-*/ @hzyitc @juanlufont patch/kernel/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid patch/kernel/mvebu-*/ @Heisath patch/kernel/odroidxu4-*/ @joekhoobyar @@ -192,7 +194,7 @@ patch/kernel/phytium-embedded-*/ @chainsx patch/kernel/rk35xx-vendor-*/ @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii patch/kernel/rockchip-*/ @paolosabatino patch/kernel/rockchip-rk3588-*/ @ColorfulRhino @HeyMeco @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @efectn @fridtjof @lanefu @linhz0hz @rpardini @schwar3kat -patch/kernel/rockchip64-*/ @150balbes @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii +patch/kernel/rockchip64-*/ @150balbes @JohnTheCoolingFan @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii patch/kernel/sm8250-*/ @FantasyGmm @amazingfate patch/kernel/sm8550-*/ @FantasyGmm patch/kernel/sun55iw3-syterkit-*/ @chainsx @@ -202,7 +204,7 @@ sources/families/bcm2711.conf @PanderMusubi @teknoid sources/families/imx8m.conf @schmiedelm sources/families/k3.conf @glneo sources/families/meson-s4t7.conf @adeepn @rpardini @viraniac -sources/families/meson.conf @hzyitc +sources/families/meson.conf @hzyitc @juanlufont sources/families/meson64.conf @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid sources/families/mvebu.conf @Heisath sources/families/odroidxu4.conf @joekhoobyar @@ -210,7 +212,7 @@ sources/families/phytium-embedded.conf @chainsx sources/families/rk35xx.conf @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @efectn @fridtjof @lanefu @linhz0hz @rpardini @schwar3kat sources/families/rockchip.conf @paolosabatino -sources/families/rockchip64.conf @150balbes @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii +sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @Manouchehri @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @amazingfate @andyshrk @brentr @catalinii @clee @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @paolosabatino @prahal @rpardini @sicXnull @tdleiyao @utlark @vamzii sources/families/sm8250.conf @FantasyGmm @amazingfate sources/families/sun55iw3-syterkit.conf @chainsx sources/families/sunxi.conf @1ubuntuuser @AaronNGray @DylanHP @Janmcha @StephenGraf @Tonymac32 @janprunk @lbmendes @mhawkins-consultant @sgjava diff --git a/VERSION b/VERSION index 5985db56cd3c..0e629c0184de 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -24.11.0-trunk +25.02.0-trunk diff --git a/action.yml b/action.yml index 0b7a1f80eec9..57cfcc0e44f9 100644 --- a/action.yml +++ b/action.yml @@ -87,6 +87,10 @@ inputs: required: false default: "Build with [Armbian tools](https://github.com/armbian/build)" + armbian_release_tag: + description: "Armbian release tag" + required: false + runs: using: "composite" @@ -122,7 +126,7 @@ runs: uses: actions/checkout@v4 with: repository: armbian/build - fetch-depth: 0 + ref: ${{ inputs.armbian_branch }} clean: false path: build @@ -163,9 +167,8 @@ runs: DESKTOP_ENVIRONMENT_CONFIG_NAME="config_base" fi - # go to build folder and checkout + # go to build folder cd build - git checkout ${{ inputs.armbian_branch }} # execute build command ./compile.sh "${{ inputs.armbian_target }}" \ @@ -194,7 +197,7 @@ runs: - uses: ncipollo/release-action@v1 with: - tag: "${{ env.ARMBIAN_VERSION }}" + tag: ${{ inputs.armbian_release_tag != '' && inputs.armbian_release_tag || env.ARMBIAN_VERSION }} name: "${{ inputs.armbian_release_tittle }}" artifacts: "${{ inputs.armbian_artifacts }}*" allowUpdates: true diff --git a/config/boards/bananapif3.csc b/config/boards/bananapif3.eos similarity index 100% rename from config/boards/bananapif3.csc rename to config/boards/bananapif3.eos diff --git a/config/boards/bananapim4zero.conf b/config/boards/bananapim4zero.conf index 9e71b70c7792..e14f9a7be90f 100644 --- a/config/boards/bananapim4zero.conf +++ b/config/boards/bananapim4zero.conf @@ -4,7 +4,7 @@ BOARDFAMILY="sun50iw9-bpi" BOARD_MAINTAINER="pyavitz" BOOTCONFIG="bananapi_m4zero_defconfig" OVERLAY_PREFIX="sun50i-h616" -BOOT_FDT_FILE="allwinner/sun50i-h618-bananapi-m4-zero.dtb" +BOOT_FDT_FILE="sun50i-h618-bananapi-m4-zero.dtb" BOOT_LOGO="desktop" KERNEL_TARGET="current,edge" KERNEL_TEST_TARGET="current" diff --git a/config/boards/bigtreetech-cb1.conf b/config/boards/bigtreetech-cb1.conf index a986944d2b77..080afc4dd40e 100644 --- a/config/boards/bigtreetech-cb1.conf +++ b/config/boards/bigtreetech-cb1.conf @@ -10,4 +10,4 @@ FORCE_BOOTSCRIPT_UPDATE="yes" BOOTFS_TYPE="fat" BOOT_FS_LABEL="BOOT" OVERLAY_PREFIX="sun50i-h616" -BOOT_FDT_FILE="allwinner/sun50i-h616-bigtreetech-cb1-sd.dtb" +BOOT_FDT_FILE="sun50i-h616-bigtreetech-cb1-sd.dtb" diff --git a/config/boards/hinlink-h66k.csc b/config/boards/hinlink-h66k.csc index 94ebf1b65f24..c5d4a434e492 100644 --- a/config/boards/hinlink-h66k.csc +++ b/config/boards/hinlink-h66k.csc @@ -3,7 +3,7 @@ BOARD_NAME="Hinlink H66K" BOARDFAMILY="rk35xx" BOARD_MAINTAINER="" BOOTCONFIG="radxa-e25-rk3568_defconfig" -KERNEL_TARGET="vendor" +KERNEL_TARGET="edge" FULL_DESKTOP="yes" BOOT_LOGO="desktop" BOOT_FDT_FILE="rockchip/rk3568-hinlink-h66k.dtb" diff --git a/config/boards/hinlink-h68k.csc b/config/boards/hinlink-h68k.csc index 8c874cc224c8..cb736550899c 100644 --- a/config/boards/hinlink-h68k.csc +++ b/config/boards/hinlink-h68k.csc @@ -3,7 +3,7 @@ BOARD_NAME="Hinlink H68K" BOARDFAMILY="rk35xx" BOARD_MAINTAINER="" BOOTCONFIG="radxa-e25-rk3568_defconfig" -KERNEL_TARGET="vendor" +KERNEL_TARGET="edge" FULL_DESKTOP="yes" BOOT_LOGO="desktop" BOOT_FDT_FILE="rockchip/rk3568-hinlink-h68k.dtb" diff --git a/config/boards/hinlink-hnas.csc b/config/boards/hinlink-hnas.csc index 5daae3e398b7..d80fe27c3d00 100644 --- a/config/boards/hinlink-hnas.csc +++ b/config/boards/hinlink-hnas.csc @@ -3,7 +3,7 @@ BOARD_NAME="Hinlink HNAS" BOARDFAMILY="rk35xx" BOARD_MAINTAINER="" BOOTCONFIG="radxa-e25-rk3568_defconfig" -KERNEL_TARGET="vendor" +KERNEL_TARGET="edge" FULL_DESKTOP="yes" BOOT_LOGO="desktop" BOOT_FDT_FILE="rockchip/rk3568-hinlink-hnas.dtb" diff --git a/config/boards/inovato-quadra.conf b/config/boards/inovato-quadra.conf index e0d5a98609c3..54443537ed5a 100644 --- a/config/boards/inovato-quadra.conf +++ b/config/boards/inovato-quadra.conf @@ -4,7 +4,7 @@ BOARDFAMILY="sun50iw6" BOARD_MAINTAINER="NicoD-SBC" BOOTCONFIG="tanix_tx6_defconfig" CRUSTCONFIG="tanix_tx6_defconfig" -BOOT_FDT_FILE="allwinner/sun50i-h6-inovato-quadra.dtb" +BOOT_FDT_FILE="sun50i-h6-inovato-quadra.dtb" KERNEL_TARGET="legacy,current,edge" KERNEL_TEST_TARGET="current" BOOT_LOGO="desktop" diff --git a/config/boards/longanpi-3h.csc b/config/boards/longanpi-3h.csc new file mode 100644 index 000000000000..d0ab4ee7db6b --- /dev/null +++ b/config/boards/longanpi-3h.csc @@ -0,0 +1,15 @@ +# Allwinner H618 quad core 1GB/2GB/4GB RAM +BOARD_NAME="Longan Pi 3H" +BOARDFAMILY="sun50iw9" +BOARD_MAINTAINER="" +BOOTCONFIG="longanpi_3h_defconfig" +BOOTBRANCH="tag:v2024.10" +BOOTPATCHDIR="v2024.10" +BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory +BOOT_LOGO="desktop" +OVERLAY_PREFIX="sun50i-h616" +KERNEL_TARGET="current,edge" +KERNEL_TEST_TARGET="current" +FORCE_BOOTSCRIPT_UPDATE="yes" +enable_extension "radxa-aic8800" # compatible with radxa-aic8800 +AIC8800_TYPE="usb" diff --git a/config/boards/mixtile-edge2.csc b/config/boards/mixtile-edge2.csc index 66cdbb67dd3d..41a7e170c30d 100644 --- a/config/boards/mixtile-edge2.csc +++ b/config/boards/mixtile-edge2.csc @@ -40,7 +40,7 @@ function post_family_config_branch_vendor__kernel_and_uboot_rk35xx_mixtile_edge2 # Copypasta from rockchip-rk3588.conf family file -- we _really_ gotta find a better way! declare -g KERNEL_MAJOR_MINOR="6.1" # Major and minor versions of this kernel. declare -g KERNELSOURCE='https://github.com/armbian/linux-rockchip.git' - declare -g KERNELBRANCH='branch:rk-6.1-rkr3' + declare -g KERNELBRANCH='branch:rk-6.1-rkr4.1' declare -g KERNELPATCHDIR='rk35xx-vendor-6.1' declare -g LINUXFAMILY=rk35xx declare -g -i KERNEL_GIT_CACHE_TTL=120 # 2 minutes diff --git a/config/boards/mkspi.csc b/config/boards/mkspi.csc new file mode 100644 index 000000000000..d2f3e785732d --- /dev/null +++ b/config/boards/mkspi.csc @@ -0,0 +1,18 @@ +# Rockchip RK3328 quad core 1GB RAM, 1x100M Ethernet, eMMC, USB3, USB2 +# Supported boards: +# - MKS-PI - https://github.com/makerbase-mks/MKS-PI +# - MKS-SKIPR - https://github.com/makerbase-mks/MKS-SKIPR +# - QIDI X-4 and X-6 (made by Makerbase for 'X-Plus 3' and 'X-Max 3' 3D printers) - partially supported +# +# These boards and related configuration is very close to Renegade board ("roc-cc-rk3328_defconfig" and "rk3328-roc-cc" DT) +BOARD_NAME="mkspi" +BOARDFAMILY="rockchip64" +BOARD_MAINTAINER="redrathnure" +BOOTCONFIG="mkspi-rk3328_defconfig" +KERNEL_TARGET="current,edge" +KERNEL_TEST_TARGET="current" +FULL_DESKTOP="yes" +BOOT_LOGO="desktop" +MODULES="ads7846 spidev" +BOOTFS_TYPE="fat" +PACKAGE_LIST_BOARD="build-essential usb-modeswitch" diff --git a/config/boards/odroidc1.csc b/config/boards/odroidc1.conf similarity index 96% rename from config/boards/odroidc1.csc rename to config/boards/odroidc1.conf index 2f75e9569168..786428d5ece0 100644 --- a/config/boards/odroidc1.csc +++ b/config/boards/odroidc1.conf @@ -1,7 +1,7 @@ # Amlogic S805 C1 quad core 1GB RAM SoC GBE BOARD_NAME="Odroid C1" BOARDFAMILY="meson8b" -BOARD_MAINTAINER="" +BOARD_MAINTAINER="juanlufont" KERNEL_TARGET="current,edge" KERNEL_TEST_TARGET="current" diff --git a/config/boards/pineh64-b.csc b/config/boards/pineh64-b.csc index 4da15fed6bc0..c337a0efc31c 100644 --- a/config/boards/pineh64-b.csc +++ b/config/boards/pineh64-b.csc @@ -5,5 +5,5 @@ BOARD_MAINTAINER="" BOOTCONFIG="pine_h64_defconfig" KERNEL_TARGET="legacy,current,edge" KERNEL_TEST_TARGET="current" -BOOT_FDT_FILE="allwinner/sun50i-h6-pine-h64-model-b.dtb" +BOOT_FDT_FILE="sun50i-h6-pine-h64-model-b.dtb" CRUSTCONFIG="h6_defconfig" diff --git a/config/boards/youyeetoo-r1-v3.csc b/config/boards/youyeetoo-r1-v3.csc index 47a522b9cafc..ddad366763c0 100644 --- a/config/boards/youyeetoo-r1-v3.csc +++ b/config/boards/youyeetoo-r1-v3.csc @@ -4,7 +4,7 @@ BOARDFAMILY="rockchip-rk3588" BOARD_MAINTAINER="SuperKali" BOOTCONFIG="generic-rk3588_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate BOOT_SOC="rk3588" -KERNEL_TARGET="current,vendor" +KERNEL_TARGET="current,edge,vendor" FULL_DESKTOP="yes" BOOT_LOGO="desktop" IMAGE_PARTITION_TABLE="gpt" @@ -37,8 +37,8 @@ function post_family_config__youyeetoo_r1_use_mainline_uboot() { declare -g BOOTCONFIG="generic-rk3588_defconfig" # Use generic defconfig which should boot all RK3588 boards declare -g BOOTDELAY=1 # Wait for UART interrupt to enter UMS/RockUSB mode etc declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # We ❤️ Mainline U-Boot - declare -g BOOTBRANCH="tag:v2024.07" - declare -g BOOTPATCHDIR="v2024.07" + declare -g BOOTBRANCH="tag:v2024.10" + declare -g BOOTPATCHDIR="v2024.10" # Don't set BOOTDIR, allow shared U-Boot source directory for disk space efficiency declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin" @@ -51,3 +51,15 @@ function post_family_config__youyeetoo_r1_use_mainline_uboot() { dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none } } + +function post_family_tweaks__youyeetoo_r1 { + if [[ "${BRANCH}" != "vendor" ]]; then + display_alert "$BOARD" "Adjusting rtw89_8852be module" "info" + cat <<- EOF > "${SDCARD}/etc/modprobe.d/rtw8852be.conf" + options rtw89_pci disable_aspm_l1=y disable_aspm_l1ss=y + options rtw89pci disable_aspm_l1=y disable_aspm_l1ss=y + options rtw89_core disable_ps_mode=y + options rtw89core disable_ps_mode=y + EOF + fi +} diff --git a/config/bootscripts/boot-sun50i-next.cmd b/config/bootscripts/boot-sun50i-next.cmd index 2724f49c5bbf..0bd8b1b425c2 100644 --- a/config/bootscripts/boot-sun50i-next.cmd +++ b/config/bootscripts/boot-sun50i-next.cmd @@ -13,14 +13,16 @@ setenv console "both" setenv docker_optimizations "on" setenv bootlogo "false" -# Remember the default u-boot fdtfile -setenv deffdt_file ${fdtfile} +setenv vendor "allwinner" + +# Remember the default fdtfile provided by u-boot and delete the vendor name +if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then + setenv deffdt_file ${subfdt} +fi # Remember the default u-boot fdtdir setenv deffdt_dir "${prefix}dtb" -if test "$fdtdir" = ""; then setenv fdtdir "${deffdt_dir}";fi - -setenv vendor "allwinner" +if test "$fdtdir" = ""; then setenv fdtdir "${deffdt_dir}/${vendor}";fi # Print boot source itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD" @@ -34,32 +36,32 @@ if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then env import -t ${load_addr} ${filesize} fi +# Delete the vendor's name from the fdtfile variable and record the result +# after the file with the environment variables has been read +if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then + setenv fdtfile ${subfdt} +fi + # In this shell, we can only check the existence of the file. # Make a check of reasonable ways to find the dtb file. # Set the true value of the paths. if test -e ${devtype} ${devnum} "${fdtdir}/${fdtfile}"; then - : + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${fdtdir}/${fdtfile} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${fdtfile}"; then - setenv fdtdir "${deffdt_dir}/${vendor}" + echo "The file ${fdtfile} was not found in the path ${fdtdir}" + if test -e ${devtype} ${devnum} "${deffdt_dir}/${fdtfile}"; then + setenv fdtdir "${deffdt_dir}" + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${deffdt_dir}/${vendor}/${fdtfile} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${fdtfile}"; then - setenv fdtdir "${deffdt_dir}" + if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then + setenv fdtdir "${deffdt_dir}/${vendor}" + setenv fdtfile "${deffdt_file}" + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${deffdt_dir}/${fdtfile} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then - setenv fdtdir "${deffdt_dir}/${vendor}" + if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then + setenv fdtdir "${deffdt_dir}" setenv fdtfile "${deffdt_file}" - else - echo "File ${deffdt_dir}/${vendor}/${deffdt_file} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then - setenv fdtdir "${deffdt_dir}" - setenv fdtfile "${deffdt_file}" - else - echo "File ${deffdt_dir}/${deffdt_file} does not exists" - fi + echo "Load fdt: ${fdtdir}/${fdtfile}" fi fi fi diff --git a/config/bootscripts/boot-sunxi.cmd b/config/bootscripts/boot-sunxi.cmd index 5c561957cb5d..86f5f7052979 100644 --- a/config/bootscripts/boot-sunxi.cmd +++ b/config/bootscripts/boot-sunxi.cmd @@ -45,32 +45,32 @@ if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then env import -t ${load_addr} ${filesize} fi +# Delete the vendor's name from the fdtfile variable and record the result +# after the file with the environment variables has been read +if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then + setenv fdtfile ${subfdt} +fi + # In this shell, we can only check the existence of the file. # Make a check of reasonable ways to find the dtb file. # Set the true value of the paths. if test -e ${devtype} ${devnum} "${fdtdir}/${fdtfile}"; then - : + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${fdtdir}/${fdtfile} does not exists" + echo "The file ${fdtfile} was not found in the path ${fdtdir}" if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${fdtfile}"; then setenv fdtdir "${deffdt_dir}/${vendor}" + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${deffdt_dir}/${vendor}/${fdtfile} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${fdtfile}"; then - setenv fdtdir "${deffdt_dir}" + if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then + setenv fdtdir "${deffdt_dir}/${vendor}" + setenv fdtfile "${deffdt_file}" + echo "Load fdt: ${fdtdir}/${fdtfile}" else - echo "File ${deffdt_dir}/${fdtfile} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then - setenv fdtdir "${deffdt_dir}/${vendor}" + if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then + setenv fdtdir "${deffdt_dir}" setenv fdtfile "${deffdt_file}" - else - echo "File ${deffdt_dir}/${vendor}/${deffdt_file} does not exists" - if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then - setenv fdtdir "${deffdt_dir}" - setenv fdtfile "${deffdt_file}" - else - echo "File ${deffdt_dir}/${deffdt_file} does not exists" - fi + echo "Load fdt: ${fdtdir}/${fdtfile}" fi fi fi @@ -99,9 +99,7 @@ load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage if test -e ${devtype} ${devnum} "${prefix}.next"; then echo "Found mainline kernel configuration" - if load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile}; then - echo "Load fdt: ${fdtdir}/${fdtfile}" - fi + load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do @@ -120,7 +118,8 @@ if test -e ${devtype} ${devnum} "${prefix}.next"; then echo "Error applying DT overlays, restoring original DT" load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile} else - if load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr; then + if test -e ${devtype} ${devnum} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr; then + load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" source ${load_addr} fi diff --git a/config/kernel/linux-bcm2711-current.config b/config/kernel/linux-bcm2711-current.config index 4b94112823e1..259be84c0250 100644 --- a/config/kernel/linux-bcm2711-current.config +++ b/config/kernel/linux-bcm2711-current.config @@ -1,18 +1,16 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.6.44 Kernel Configuration +# Linux/arm64 6.6.64 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" +CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=110400 +CONFIG_GCC_VERSION=130200 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23800 +CONFIG_AS_VERSION=24200 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23800 +CONFIG_LD_VERSION=24200 CONFIG_LLD_VERSION=0 -CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y @@ -53,6 +51,7 @@ CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_GENERIC_IRQ_INJECTION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y @@ -125,7 +124,7 @@ CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_PSI=y -# CONFIG_PSI_DEFAULT_DISABLED is not set +CONFIG_PSI_DEFAULT_DISABLED=y # end of CPU/Task time and stats accounting CONFIG_CPU_ISOLATION=y @@ -166,6 +165,7 @@ CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y +# CONFIG_NUMA_BALANCING is not set CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_CGROUP_FAVOR_DYNMODS=y @@ -198,7 +198,7 @@ CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y -# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_CHECKPOINT_RESTORE=y CONFIG_SCHED_AUTOGROUP=y CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y @@ -243,7 +243,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set -# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y @@ -389,7 +389,9 @@ CONFIG_ARM64_ERRATUM_2645198=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y CONFIG_ARM64_ERRATUM_2966298=y CONFIG_ARM64_ERRATUM_3117295=y +CONFIG_ARM64_ERRATUM_3194386=y # CONFIG_CAVIUM_ERRATUM_22375 is not set +CONFIG_CAVIUM_ERRATUM_23144=y # CONFIG_CAVIUM_ERRATUM_23154 is not set # CONFIG_CAVIUM_ERRATUM_27456 is not set CONFIG_CAVIUM_ERRATUM_30115=y @@ -419,8 +421,10 @@ CONFIG_CPU_LITTLE_ENDIAN=y # CONFIG_SCHED_CLUSTER is not set # CONFIG_SCHED_SMT is not set CONFIG_NR_CPUS=256 -# CONFIG_HOTPLUG_CPU is not set -# CONFIG_NUMA is not set +CONFIG_HOTPLUG_CPU=y +CONFIG_NUMA=y +CONFIG_NODES_SHIFT=4 +CONFIG_NUMA_EMULATION=y # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set @@ -429,6 +433,7 @@ CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_HW_PERF_EVENTS=y +CONFIG_CC_HAVE_SHADOW_CALL_STACK=y CONFIG_PARAVIRT=y # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y @@ -509,7 +514,6 @@ CONFIG_ARM64_EPAN=y # end of ARMv8.7 architectural features CONFIG_ARM64_SVE=y -CONFIG_ARM64_SME=y # CONFIG_ARM64_PSEUDO_NMI is not set CONFIG_RELOCATABLE=y CONFIG_RANDOMIZE_BASE=y @@ -535,7 +539,9 @@ CONFIG_DMI=y # CONFIG_SUSPEND is not set # CONFIG_HIBERNATION is not set CONFIG_PM=y -# CONFIG_PM_DEBUG is not set +CONFIG_PM_DEBUG=y +# CONFIG_PM_ADVANCED_DEBUG is not set +# CONFIG_DPM_WATCHDOG is not set CONFIG_PM_CLK=y CONFIG_PM_GENERIC_DOMAINS=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set @@ -624,6 +630,8 @@ CONFIG_CPU_MITIGATIONS=y # General architecture-dependent options # CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set @@ -674,6 +682,8 @@ CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y +# CONFIG_SHADOW_CALL_STACK is not set CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y @@ -861,12 +871,12 @@ CONFIG_ZSWAP_DEFAULT_ON=y # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd" -# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set -CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD=y +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED is not set # CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set -CONFIG_ZSWAP_ZPOOL_DEFAULT="z3fold" +CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud" CONFIG_ZBUD=y -CONFIG_Z3FOLD=y +# CONFIG_Z3FOLD_DEPRECATED is not set CONFIG_ZSMALLOC=y # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC_CHAIN_SIZE=8 @@ -894,7 +904,6 @@ CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_FAST_GUP=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y # CONFIG_MEMORY_HOTPLUG is not set @@ -908,6 +917,7 @@ CONFIG_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y CONFIG_CONTIG_ALLOC=y +CONFIG_PCP_BATCH_SCALE_MAX=5 CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_MMU_NOTIFIER=y # CONFIG_KSM is not set @@ -920,6 +930,10 @@ CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_THP_SWAP=y # CONFIG_READ_ONLY_THP_FOR_FS is not set +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set @@ -947,7 +961,7 @@ CONFIG_SECRETMEM=y # CONFIG_ANON_VMA_NAME is not set # CONFIG_USERFAULTFD is not set CONFIG_LRU_GEN=y -# CONFIG_LRU_GEN_ENABLED is not set +CONFIG_LRU_GEN_ENABLED=y # CONFIG_LRU_GEN_STATS is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y CONFIG_PER_VMA_LOCK=y @@ -1021,7 +1035,7 @@ CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m -# CONFIG_NET_FOU_IP_TUNNELS is not set +CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_ESP_OFFLOAD=m @@ -1076,6 +1090,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_GRE=m CONFIG_IPV6_FOU=m +CONFIG_IPV6_FOU_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y @@ -1086,10 +1101,11 @@ CONFIG_IPV6_PIMSM_V2=y # CONFIG_IPV6_RPL_LWTUNNEL is not set # CONFIG_IPV6_IOAM6_LWTUNNEL is not set # CONFIG_NETLABEL is not set -# CONFIG_MPTCP is not set +CONFIG_MPTCP=y +CONFIG_INET_MPTCP_DIAG=m CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=m @@ -1173,7 +1189,7 @@ CONFIG_NFT_XFRM=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m -# CONFIG_NFT_SYNPROXY is not set +CONFIG_NFT_SYNPROXY=m CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m @@ -1360,7 +1376,7 @@ CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_RPFILTER=m @@ -1552,7 +1568,7 @@ CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_CGROUP=m -CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_BPF=y CONFIG_NET_CLS_FLOWER=m CONFIG_NET_CLS_MATCHALL=m CONFIG_NET_EMATCH=y @@ -1949,6 +1965,8 @@ CONFIG_REGMAP_SCCB=m CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_ARCH_NUMA=y +CONFIG_GENERIC_ARCH_NUMA_EMULATION=y # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set # end of Generic Driver Options @@ -1984,6 +2002,7 @@ CONFIG_CONNECTOR=m CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_FIRMWARE_RP1=m # CONFIG_FW_CFG_SYSFS is not set # CONFIG_SYSFB_SIMPLEFB is not set # CONFIG_ARM_FFA_TRANSPORT is not set @@ -2011,6 +2030,7 @@ CONFIG_EFI_EARLYCON=y # end of EFI (Extensible Firmware Interface) Support CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_PSCI_CHECKER is not set CONFIG_HAVE_ARM_SMCCC=y CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y CONFIG_ARM_SMCCC_SOC_ID=y @@ -2146,6 +2166,7 @@ CONFIG_OF_IRQ=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y +CONFIG_OF_NUMA=y CONFIG_OF_CONFIGFS=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y @@ -2160,7 +2181,7 @@ CONFIG_ZRAM_DEF_COMP_LZORLE=y CONFIG_ZRAM_DEF_COMP="lzo-rle" CONFIG_ZRAM_WRITEBACK=y # CONFIG_ZRAM_MEMORY_TRACKING is not set -# CONFIG_ZRAM_MULTI_COMP is not set +CONFIG_ZRAM_MULTI_COMP=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_DRBD=m @@ -2173,7 +2194,7 @@ CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m -# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_UBLK=m CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y @@ -2184,7 +2205,7 @@ CONFIG_NVME_CORE=y CONFIG_BLK_DEV_NVME=y # CONFIG_NVME_MULTIPATH is not set # CONFIG_NVME_VERBOSE_ERRORS is not set -# CONFIG_NVME_HWMON is not set +CONFIG_NVME_HWMON=y # CONFIG_NVME_FC is not set # CONFIG_NVME_TCP is not set # CONFIG_NVME_AUTH is not set @@ -2195,6 +2216,7 @@ CONFIG_BLK_DEV_NVME=y # Misc devices # CONFIG_BCM2835_SMI=m +CONFIG_RP1_PIO=m # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_PHANTOM is not set @@ -2211,7 +2233,7 @@ CONFIG_BCM2835_SMI=m # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set -# CONFIG_SRAM is not set +CONFIG_SRAM=y # CONFIG_DW_XDATA_PCIE is not set # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set @@ -2451,7 +2473,10 @@ CONFIG_MD_RAID456=m # CONFIG_MD_MULTIPATH is not set # CONFIG_MD_FAULTY is not set # CONFIG_MD_CLUSTER is not set -# CONFIG_BCACHE is not set +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +# CONFIG_BCACHE_ASYNC_REGISTRATION is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set @@ -2482,7 +2507,9 @@ CONFIG_DM_DELAY=m # CONFIG_DM_DUST is not set # CONFIG_DM_UEVENT is not set # CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set +CONFIG_DM_VERITY=m +# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set +# CONFIG_DM_VERITY_FEC is not set # CONFIG_DM_SWITCH is not set # CONFIG_DM_LOG_WRITES is not set CONFIG_DM_INTEGRITY=m @@ -2591,7 +2618,7 @@ CONFIG_BCMGENET=y # CONFIG_BNXT is not set CONFIG_BCMASP=y CONFIG_NET_VENDOR_CADENCE=y -CONFIG_MACB=m +CONFIG_MACB=y CONFIG_MACB_USE_HWSTAMP=y # CONFIG_MACB_PCI is not set CONFIG_NET_VENDOR_CAVIUM=y @@ -2645,15 +2672,20 @@ CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set # CONFIG_E1000 is not set # CONFIG_E1000E is not set -# CONFIG_IGB is not set +CONFIG_IGB=m +CONFIG_IGB_HWMON=y # CONFIG_IGBVF is not set -# CONFIG_IXGBE is not set +CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y +# CONFIG_IXGBE_DCB is not set +CONFIG_IXGBE_IPSEC=y # CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set +CONFIG_I40E=m +# CONFIG_I40E_DCB is not set # CONFIG_I40EVF is not set # CONFIG_ICE is not set # CONFIG_FM10K is not set -# CONFIG_IGC is not set +CONFIG_IGC=m # CONFIG_JME is not set CONFIG_NET_VENDOR_ADI=y CONFIG_NET_VENDOR_LITEX=y @@ -2679,7 +2711,7 @@ CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_ENC28J60=m # CONFIG_ENC28J60_WRITEVERIFY is not set # CONFIG_ENCX24J600 is not set -# CONFIG_LAN743X is not set +CONFIG_LAN743X=m # CONFIG_VCAP is not set CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MICROSOFT=y @@ -2760,7 +2792,7 @@ CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_PHY_SEL is not set # CONFIG_TLAN is not set CONFIG_NET_VENDOR_VERTEXCOM=y -# CONFIG_MSE102X is not set +CONFIG_MSE102X=m CONFIG_NET_VENDOR_VIA=y # CONFIG_VIA_RHINE is not set # CONFIG_VIA_VELOCITY is not set @@ -2781,7 +2813,7 @@ CONFIG_XILINX_EMACLITE=m # CONFIG_XILINX_LL_TEMAC is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_PHYLINK=m +CONFIG_PHYLINK=y CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set @@ -2803,6 +2835,7 @@ CONFIG_BCM7XXX_PHY=y # CONFIG_BCM84881_PHY is not set # CONFIG_BCM87XX_PHY is not set CONFIG_BCM_NET_PHYLIB=y +CONFIG_BCM_NET_PHYPTP=y # CONFIG_CICADA_PHY is not set # CONFIG_CORTINA_PHY is not set # CONFIG_DAVICOM_PHY is not set @@ -3078,7 +3111,19 @@ CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2200 is not set # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set +CONFIG_IWLWIFI=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEVICE_TRACING=y +# end of Debugging Options + CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=m # CONFIG_HOSTAP_FIRMWARE is not set @@ -3179,7 +3224,27 @@ CONFIG_RTLWIFI_DEBUG=y CONFIG_RTL8192C_COMMON=m CONFIG_RTL8XXXU=m # CONFIG_RTL8XXXU_UNTESTED is not set -# CONFIG_RTW88 is not set +CONFIG_RTW88=m +CONFIG_RTW88_CORE=m +CONFIG_RTW88_USB=m +CONFIG_RTW88_8822B=m +CONFIG_RTW88_8822C=m +CONFIG_RTW88_8723D=m +CONFIG_RTW88_8821C=m +# CONFIG_RTW88_8822BE is not set +# CONFIG_RTW88_8822BS is not set +CONFIG_RTW88_8822BU=m +# CONFIG_RTW88_8822CE is not set +# CONFIG_RTW88_8822CS is not set +CONFIG_RTW88_8822CU=m +# CONFIG_RTW88_8723DE is not set +# CONFIG_RTW88_8723DS is not set +CONFIG_RTW88_8723DU=m +# CONFIG_RTW88_8821CE is not set +# CONFIG_RTW88_8821CS is not set +CONFIG_RTW88_8821CU=m +# CONFIG_RTW88_DEBUG is not set +# CONFIG_RTW88_DEBUGFS is not set # CONFIG_RTW89 is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set @@ -3322,8 +3387,7 @@ CONFIG_JOYSTICK_PSXPAD_SPI_FF=y # CONFIG_JOYSTICK_PXRC is not set # CONFIG_JOYSTICK_QWIIC is not set CONFIG_JOYSTICK_FSIA6B=m -# CONFIG_JOYSTICK_SENSEHAT is not set -CONFIG_JOYSTICK_RPISENSE=m +CONFIG_JOYSTICK_SENSEHAT=m # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m @@ -3401,7 +3465,8 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_TSC2007_IIO=y # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set @@ -3521,11 +3586,11 @@ CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_16550A_VARIANTS=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y +# CONFIG_SERIAL_8250_DMA is not set CONFIG_SERIAL_8250_PCILIB=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y -CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_NR_UARTS=5 CONFIG_SERIAL_8250_RUNTIME_UARTS=0 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set @@ -3548,11 +3613,13 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_SERIAL_EARLYCON_SEMIHOST is not set +# CONFIG_SERIAL_KGDB_NMI is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_CONSOLE_POLL=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set @@ -3569,6 +3636,7 @@ CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_FSL_LINFLEXUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set # CONFIG_SERIAL_SPRD is not set +CONFIG_SERIAL_RPI_FW=m # end of Serial drivers CONFIG_SERIAL_MCTRL_GPIO=y @@ -3579,7 +3647,8 @@ CONFIG_SERIAL_MCTRL_GPIO=y # CONFIG_HVC_DCC is not set CONFIG_SERIAL_DEV_BUS=y CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -# CONFIG_TTY_PRINTK is not set +CONFIG_TTY_PRINTK=y +CONFIG_TTY_PRINTK_LEVEL=6 # CONFIG_VIRTIO_CONSOLE is not set # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y @@ -3609,9 +3678,12 @@ CONFIG_TCG_TIS_I2C=m # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# CONFIG_RASPBERRYPI_GPIOMEM is not set +CONFIG_XILLYBUS_CLASS=m +CONFIG_XILLYBUS=m +CONFIG_XILLYBUS_PCIE=m +# CONFIG_XILLYBUS_OF is not set +CONFIG_XILLYUSB=m +CONFIG_RASPBERRYPI_GPIOMEM=m # end of Character devices # @@ -3742,7 +3814,7 @@ CONFIG_SPI_GPIO=m # CONFIG_SPI_PCI1XXXX is not set # CONFIG_SPI_PL022 is not set # CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_RP2040_GPIO_BRIDGE is not set +CONFIG_SPI_RP2040_GPIO_BRIDGE=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SN_F_OSPI is not set @@ -3789,10 +3861,8 @@ CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PTP_1588_CLOCK=y CONFIG_PTP_1588_CLOCK_OPTIONAL=y - -# -# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -# +# CONFIG_DP83640_PHY is not set +# CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=y # CONFIG_PTP_1588_CLOCK_IDT82P33 is not set # CONFIG_PTP_1588_CLOCK_IDTCM is not set @@ -4048,7 +4118,7 @@ CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_CORSAIR_CPRO is not set CONFIG_SENSORS_CORSAIR_PSU=m -# CONFIG_SENSORS_DRIVETEMP is not set +CONFIG_SENSORS_DRIVETEMP=m # CONFIG_SENSORS_DS620 is not set CONFIG_SENSORS_DS1621=m # CONFIG_SENSORS_I5K_AMB is not set @@ -4289,7 +4359,6 @@ CONFIG_BCMA_DRIVER_PCI=y # Multifunction device drivers # CONFIG_MFD_CORE=y -CONFIG_MFD_RPISENSE_CORE=m # CONFIG_MFD_ACT8945A is not set # CONFIG_MFD_AS3711 is not set # CONFIG_MFD_SMPRO is not set @@ -4481,7 +4550,7 @@ CONFIG_REGULATOR_PF8X00=m # CONFIG_REGULATOR_PWM is not set # CONFIG_REGULATOR_RAA215300 is not set CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set +CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2=m # CONFIG_REGULATOR_RT4801 is not set # CONFIG_REGULATOR_RT4803 is not set CONFIG_REGULATOR_RT4831=m @@ -4775,7 +4844,52 @@ CONFIG_VIDEO_EM28XX_RC=m # CONFIG_USB_AIRSPY is not set # CONFIG_USB_HACKRF is not set # CONFIG_USB_MSI2500 is not set -# CONFIG_MEDIA_PCI_SUPPORT is not set +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +# CONFIG_VIDEO_SOLO6X10 is not set +# CONFIG_VIDEO_TW5864 is not set +# CONFIG_VIDEO_TW68 is not set +# CONFIG_VIDEO_TW686X is not set +# CONFIG_VIDEO_ZORAN is not set + +# +# Media capture/analog TV support +# +# CONFIG_VIDEO_DT3155 is not set +# CONFIG_VIDEO_IVTV is not set +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_MXB is not set + +# +# Media capture/analog/hybrid TV support +# +# CONFIG_VIDEO_BT848 is not set +# CONFIG_VIDEO_CX18 is not set +# CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set +# CONFIG_VIDEO_CX88 is not set +# CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_SAA7164 is not set + +# +# Media digital TV PCI Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP_PCI is not set +# CONFIG_DVB_DDBRIDGE is not set +# CONFIG_DVB_DM1105 is not set +# CONFIG_MANTIS_CORE is not set +# CONFIG_DVB_NETUP_UNIDVB is not set +# CONFIG_DVB_NGENE is not set +# CONFIG_DVB_PLUTO2 is not set +# CONFIG_DVB_PT1 is not set +# CONFIG_DVB_PT3 is not set +# CONFIG_DVB_SMIPCIE is not set +# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_MEDIA_PCI_HAILO=m CONFIG_RADIO_ADAPTERS=m # CONFIG_RADIO_MAXIRADIO is not set CONFIG_RADIO_SAA7706H=m @@ -4970,6 +5084,7 @@ CONFIG_VIDEO_IMX335=m CONFIG_VIDEO_IMX412=m # CONFIG_VIDEO_IMX415 is not set CONFIG_VIDEO_IMX477=m +CONFIG_VIDEO_IMX500=m CONFIG_VIDEO_IMX519=m CONFIG_VIDEO_IMX708=m CONFIG_VIDEO_MAX9271_LIB=m @@ -5001,7 +5116,7 @@ CONFIG_VIDEO_OV5670=m CONFIG_VIDEO_OV5675=m CONFIG_VIDEO_OV5693=m CONFIG_VIDEO_OV5695=m -# CONFIG_VIDEO_OV64A40 is not set +CONFIG_VIDEO_OV64A40=m CONFIG_VIDEO_OV6650=m CONFIG_VIDEO_OV7251=m CONFIG_VIDEO_OV7640=m @@ -5030,7 +5145,7 @@ CONFIG_VIDEO_ET8EK8=m CONFIG_VIDEO_AD5398=m # CONFIG_VIDEO_AD5820 is not set CONFIG_VIDEO_AK7375=m -# CONFIG_VIDEO_BU64754 is not set +CONFIG_VIDEO_BU64754=m # CONFIG_VIDEO_DW9714 is not set # CONFIG_VIDEO_DW9719 is not set # CONFIG_VIDEO_DW9768 is not set @@ -5522,7 +5637,7 @@ CONFIG_DRM_PANEL_SAMSUNG_SOFEF00=m # CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set CONFIG_DRM_PANEL_SHARP_LS060T1SX01=m -# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -5609,7 +5724,7 @@ CONFIG_TINYDRM_HX8357D=m # CONFIG_TINYDRM_ILI9163 is not set CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m -# CONFIG_TINYDRM_ILI9486 is not set +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -5786,6 +5901,7 @@ CONFIG_SND_MTPAV=m CONFIG_SND_SERIAL_U16550=m # CONFIG_SND_SERIAL_GENERIC is not set CONFIG_SND_MPU401=m +CONFIG_SND_PIMIDI=m CONFIG_SND_PCI=y # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set @@ -5909,6 +6025,8 @@ CONFIG_SND_BCM2835_SOC_I2S=m # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m +CONFIG_SND_BCM2708_SOC_HIFIBERRY_ADC=m +# CONFIG_SND_BCM2708_SOC_HIFIBERRY_ADC8X is not set CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m @@ -6293,7 +6411,7 @@ CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m CONFIG_HID_NINTENDO=m -# CONFIG_NINTENDO_FF is not set +CONFIG_NINTENDO_FF=y CONFIG_HID_NTI=m CONFIG_HID_NTRIG=m # CONFIG_HID_NVIDIA_SHIELD is not set @@ -6308,7 +6426,8 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=m -# CONFIG_HID_PLAYSTATION is not set +CONFIG_HID_PLAYSTATION=m +CONFIG_PLAYSTATION_FF=y # CONFIG_HID_PXRC is not set CONFIG_HID_RAZER=m CONFIG_HID_PRIMAX=m @@ -6347,6 +6466,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HID_SENSOR_HUB=m CONFIG_HID_SENSOR_CUSTOM_SENSOR=m CONFIG_HID_ALPS=m +# CONFIG_HID_MCP2200 is not set CONFIG_HID_MCP2221=m # end of Special HID drivers @@ -6365,7 +6485,7 @@ CONFIG_USB_HIDDEV=y # end of USB HID support CONFIG_I2C_HID=y -# CONFIG_I2C_HID_OF is not set +CONFIG_I2C_HID_OF=m CONFIG_I2C_HID_OF_ELAN=m CONFIG_I2C_HID_OF_GOODIX=m CONFIG_I2C_HID_CORE=m @@ -6467,7 +6587,7 @@ CONFIG_USBIP_VUDC=m # # CONFIG_USB_CDNS_SUPPORT is not set # CONFIG_USB_MUSB_HDRC is not set -CONFIG_USB_DWC3=m +CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set # CONFIG_USB_DWC3_GADGET is not set CONFIG_USB_DWC3_DUAL_ROLE=y @@ -6496,7 +6616,7 @@ CONFIG_USB_DWC2_DUAL_ROLE=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_SIMPLE is not set +CONFIG_USB_SERIAL_SIMPLE=m CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m @@ -6513,7 +6633,7 @@ CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_F81232=m -# CONFIG_USB_SERIAL_F8153X is not set +CONFIG_USB_SERIAL_F8153X=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -6525,7 +6645,7 @@ CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_METRO=m CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m -# CONFIG_USB_SERIAL_MXUPORT is not set +CONFIG_USB_SERIAL_MXUPORT=m CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m @@ -6546,8 +6666,8 @@ CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_WISHBONE=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_XR is not set +CONFIG_USB_SERIAL_UPD78F0730=m +CONFIG_USB_SERIAL_XR=m CONFIG_USB_SERIAL_DEBUG=m # @@ -6694,7 +6814,7 @@ CONFIG_USB_G_WEBCAM=m # end of USB Gadget precomposed configurations # CONFIG_TYPEC is not set -CONFIG_USB_ROLE_SWITCH=m +CONFIG_USB_ROLE_SWITCH=y CONFIG_MMC=y CONFIG_PWRSEQ_EMMC=y # CONFIG_PWRSEQ_SD8787 is not set @@ -6913,7 +7033,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_RV3028=m -# CONFIG_RTC_DRV_RV3032 is not set +CONFIG_RTC_DRV_RV3032=m CONFIG_RTC_DRV_RV8803=m CONFIG_RTC_DRV_SD3078=m @@ -6992,7 +7112,7 @@ CONFIG_DMA_OF=y # CONFIG_AMBA_PL08X is not set # CONFIG_BCM_SBA_RAID is not set CONFIG_DMA_BCM2835=y -CONFIG_DW_AXI_DMAC=m +CONFIG_DW_AXI_DMAC=y # CONFIG_FSL_EDMA is not set # CONFIG_FSL_QDMA is not set # CONFIG_INTEL_IDMA64 is not set @@ -7198,7 +7318,7 @@ CONFIG_COMMON_CLK=y # CONFIG_LMK04832 is not set # CONFIG_COMMON_CLK_MAX9485 is not set CONFIG_COMMON_CLK_RP1=y -CONFIG_COMMON_CLK_RP1_SDIO=m +CONFIG_COMMON_CLK_RP1_SDIO=y CONFIG_COMMON_CLK_HIFIBERRY_DACPLUSHD=m CONFIG_COMMON_CLK_HIFIBERRY_DACPRO=m # CONFIG_COMMON_CLK_SI5341 is not set @@ -7248,6 +7368,7 @@ CONFIG_MAILBOX=y # CONFIG_ALTERA_MBOX is not set CONFIG_BCM2835_MBOX=y # CONFIG_MAILBOX_TEST is not set +CONFIG_MBOX_RP1=m CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -7694,7 +7815,7 @@ CONFIG_ITG3200=m # CONFIG_AFE4403 is not set # CONFIG_AFE4404 is not set # CONFIG_MAX30100 is not set -# CONFIG_MAX30102 is not set +CONFIG_MAX30102=m # end of Heart Rate Monitors # end of Health Sensors @@ -7842,10 +7963,10 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m # # Triggers - standalone # -# CONFIG_IIO_HRTIMER_TRIGGER is not set -# CONFIG_IIO_INTERRUPT_TRIGGER is not set +CONFIG_IIO_HRTIMER_TRIGGER=m +CONFIG_IIO_INTERRUPT_TRIGGER=m # CONFIG_IIO_TIGHTLOOP_TRIGGER is not set -# CONFIG_IIO_SYSFS_TRIGGER is not set +CONFIG_IIO_SYSFS_TRIGGER=m # end of Triggers - standalone # @@ -7958,14 +8079,16 @@ CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set CONFIG_PWM_BCM2835=m -CONFIG_PWM_BRCMSTB=m +CONFIG_PWM_BRCMSTB=y # CONFIG_PWM_CLK is not set # CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set +CONFIG_PWM_GPIO=m CONFIG_PWM_NTXEC=m CONFIG_PWM_PCA9685=m +CONFIG_PWM_PIO_RP1=m CONFIG_PWM_RASPBERRYPI_POE=m -CONFIG_PWM_RP1=m +CONFIG_PWM_RP1=y # CONFIG_PWM_STMPE is not set # CONFIG_PWM_XILINX is not set @@ -8345,15 +8468,16 @@ CONFIG_ROMFS_ON_BLOCK=y CONFIG_PSTORE=y CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 CONFIG_PSTORE_COMPRESS=y -# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_CONSOLE=y # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_FTRACE is not set -CONFIG_PSTORE_RAM=m +CONFIG_PSTORE_RAM=y CONFIG_PSTORE_ZONE=m CONFIG_PSTORE_BLK=m CONFIG_PSTORE_BLK_BLKDEV="m" CONFIG_PSTORE_BLK_KMSG_SIZE=64 CONFIG_PSTORE_BLK_MAX_REASON=2 +CONFIG_PSTORE_BLK_CONSOLE_SIZE=64 CONFIG_SYSV_FS=m CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set @@ -8379,7 +8503,7 @@ CONFIG_PNFS_FLEXFILE_LAYOUT=y CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" CONFIG_NFS_V4_1_MIGRATION=y CONFIG_NFS_V4_SECURITY_LABEL=y -# CONFIG_ROOT_NFS is not set +CONFIG_ROOT_NFS=y CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y @@ -8387,7 +8511,8 @@ CONFIG_NFS_DEBUG=y CONFIG_NFS_DISABLE_UDP_SUPPORT=y # CONFIG_NFS_V4_2_READ_PLUS is not set CONFIG_NFSD=m -# CONFIG_NFSD_V2 is not set +CONFIG_NFSD_V2=y +CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFSD_PNFS=y @@ -8427,7 +8552,6 @@ CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_SWN_UPCALL is not set CONFIG_CIFS_FSCACHE=y CONFIG_SMB_SERVER=m -CONFIG_SMB_SERVER_SMBDIRECT=y CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y CONFIG_SMB_SERVER_KERBEROS5=y CONFIG_SMBFS=m @@ -8510,6 +8634,9 @@ CONFIG_ENCRYPTED_KEYS=y # CONFIG_USER_DECRYPTED_DATA is not set CONFIG_KEY_DH_OPERATIONS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_PROC_MEM_ALWAYS_FORCE=y +# CONFIG_PROC_MEM_FORCE_PTRACE is not set +# CONFIG_PROC_MEM_NO_FORCE is not set CONFIG_SECURITY=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y @@ -8558,7 +8685,12 @@ CONFIG_LSM="" # # Memory initialization # +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y @@ -8703,7 +8835,7 @@ CONFIG_CRYPTO_POLY1305=m # CONFIG_CRYPTO_RMD160 is not set CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA3=m CONFIG_CRYPTO_SM3=m # CONFIG_CRYPTO_SM3_GENERIC is not set @@ -8797,7 +8929,7 @@ CONFIG_CRYPTO_AES_ARM64_CE_CCM=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set @@ -8909,7 +9041,7 @@ CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y -CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON=y CONFIG_REED_SOLOMON_ENC8=y CONFIG_REED_SOLOMON_DEC8=y CONFIG_TEXTSEARCH=y @@ -8942,6 +9074,7 @@ CONFIG_DMA_NONCOHERENT_MMAP=y CONFIG_DMA_COHERENT_POOL=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_CMA=y +# CONFIG_DMA_NUMA_CMA is not set # # Default contiguous memory area size: @@ -9011,7 +9144,7 @@ CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_BOOT_PRINTK_DELAY=y # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DYNAMIC_DEBUG_CORE is not set CONFIG_SYMBOLIC_ERRNAME=y @@ -9046,7 +9179,7 @@ CONFIG_FRAME_POINTER=y # Generic Kernel Debugging Instruments # CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_DEBUG_FS=y @@ -9054,7 +9187,14 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y # CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set # CONFIG_DEBUG_FS_ALLOW_NONE is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set +CONFIG_KGDB=y +CONFIG_KGDB_HONOUR_BLOCKLIST=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KGDB_KDB=y +CONFIG_KDB_DEFAULT_ENABLE=0x1 +CONFIG_KDB_KEYBOARD=y +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y @@ -9078,7 +9218,6 @@ CONFIG_HAVE_KCSAN_COMPILER=y CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set # CONFIG_DEBUG_RODATA_TEST is not set @@ -9123,7 +9262,9 @@ CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set # CONFIG_WQ_WATCHDOG is not set # CONFIG_WQ_CPU_INTENSIVE_REPORT is not set # CONFIG_TEST_LOCKUP is not set @@ -9134,7 +9275,7 @@ CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set @@ -9191,7 +9332,8 @@ CONFIG_RCU_TRACE=y # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_LATENCYTOP is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_LATENCYTOP=y # CONFIG_DEBUG_CGROUP_REF is not set CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y @@ -9264,8 +9406,7 @@ CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y # CONFIG_SAMPLES is not set CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y -CONFIG_STRICT_DEVMEM=y -# CONFIG_IO_STRICT_DEVMEM is not set +# CONFIG_STRICT_DEVMEM is not set # # arm64 Debugging @@ -9284,6 +9425,7 @@ CONFIG_FUNCTION_ERROR_INJECTION=y # CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_DHRY is not set # CONFIG_LKDTM is not set diff --git a/config/kernel/linux-rockchip64-current.config b/config/kernel/linux-rockchip64-current.config index 2e8e7e9cebcc..e7db6f5d8fa9 100644 --- a/config/kernel/linux-rockchip64-current.config +++ b/config/kernel/linux-rockchip64-current.config @@ -7796,6 +7796,7 @@ CONFIG_FB_TFT_SSD1331=m CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m CONFIG_FB_TFT_ST7789V=m +CONFIG_FB_TFT_ST7796=m CONFIG_FB_TFT_TINYLCD=m CONFIG_FB_TFT_TLS8204=m CONFIG_FB_TFT_UC1611=m diff --git a/config/kernel/linux-rockchip64-edge.config b/config/kernel/linux-rockchip64-edge.config index 18a6f5228004..4eaae942d505 100644 --- a/config/kernel/linux-rockchip64-edge.config +++ b/config/kernel/linux-rockchip64-edge.config @@ -8031,6 +8031,7 @@ CONFIG_FB_TFT_SSD1331=m CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m CONFIG_FB_TFT_ST7789V=m +CONFIG_FB_TFT_ST7796=m CONFIG_FB_TFT_TINYLCD=m CONFIG_FB_TFT_TLS8204=m CONFIG_FB_TFT_UC1611=m diff --git a/config/sources/families/include/rockchip64_common.inc b/config/sources/families/include/rockchip64_common.inc index a970819f91e7..5e18f422f676 100644 --- a/config/sources/families/include/rockchip64_common.inc +++ b/config/sources/families/include/rockchip64_common.inc @@ -301,18 +301,15 @@ write_uboot_platform_mtd() { } setup_write_uboot_platform() { - if grep -q "ubootpart" /proc/cmdline; then - - local tmp=$(cat /proc/cmdline) + local tmp part dev + tmp=$(cat /proc/cmdline) tmp="${tmp##*ubootpart=}" tmp="${tmp%% *}" - [[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2> /dev/null) - [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2> /dev/null) + [[ -n $tmp ]] && part=$(findfs PARTUUID=$tmp 2> /dev/null) + [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null) [[ -n $dev ]] && DEVICE="/dev/$dev" - fi - } family_tweaks() { diff --git a/config/sources/families/include/sunxi64_common.inc b/config/sources/families/include/sunxi64_common.inc index e60cdd5d8548..14ef14571703 100644 --- a/config/sources/families/include/sunxi64_common.inc +++ b/config/sources/families/include/sunxi64_common.inc @@ -54,21 +54,22 @@ write_uboot_platform() { } setup_write_uboot_platform() { + local tmp part dev if grep -q "ubootpart" /proc/cmdline; then # mainline with new boot script - local tmp=$(cat /proc/cmdline) + tmp=$(cat /proc/cmdline) tmp="${tmp##*ubootpart=}" tmp="${tmp%% *}" - [[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2> /dev/null) - [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2> /dev/null) + [[ -n $tmp ]] && part=$(findfs PARTUUID=$tmp 2> /dev/null) + [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null) [[ -n $dev ]] && DEVICE="/dev/$dev" else # legacy or old boot script - local tmp=$(cat /proc/cmdline) + tmp=$(cat /proc/cmdline) tmp="${tmp##*root=}" tmp="${tmp%% *}" - [[ -n $tmp ]] && local part=$(findfs $tmp 2> /dev/null) - [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2> /dev/null) + [[ -n $tmp ]] && part=$(findfs $tmp 2> /dev/null) + [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null) # do not try to write u-boot to USB devices [[ -n $dev && $dev == mmcblk* ]] && DEVICE="/dev/$dev" fi diff --git a/config/sources/families/include/sunxi_common.inc b/config/sources/families/include/sunxi_common.inc index 4f47560b6947..0ef69277244f 100644 --- a/config/sources/families/include/sunxi_common.inc +++ b/config/sources/families/include/sunxi_common.inc @@ -63,12 +63,13 @@ write_uboot_platform() { } setup_write_uboot_platform() { + local tmp part dev if grep -q "ubootpart" /proc/cmdline; then - local tmp=$(cat /proc/cmdline) + tmp=$(cat /proc/cmdline) tmp="${tmp##*ubootpart=}" tmp="${tmp%% *}" - [[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2> /dev/null) - [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2> /dev/null) + [[ -n $tmp ]] && part=$(findfs PARTUUID=$tmp 2> /dev/null) + [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null) [[ -n $dev ]] && DEVICE="/dev/$dev" elif [[ -f /var/lib/armbian/force_search_uboot ]]; then # This may cause overwriting u-boot for android or other non-Armbian OS installed on eMMC diff --git a/config/sources/families/odroidxu4.conf b/config/sources/families/odroidxu4.conf index b647bdcf9d91..4015383892a6 100644 --- a/config/sources/families/odroidxu4.conf +++ b/config/sources/families/odroidxu4.conf @@ -52,17 +52,16 @@ function custom_kernel_config__hack_odroidxu4_firmware() { } setup_write_uboot_platform() { - # this will update u-boot on the device rootfs is located on # in case it's a mmc device, otherwise DEVICE will not be changed # and will default to /dev/mmcblk0 - local tmp=$(cat /proc/cmdline) + local tmp part dev + tmp=$(cat /proc/cmdline) tmp="${tmp##*root=}" tmp="${tmp%% *}" - [[ -n $tmp ]] && local part=$(findfs $tmp 2> /dev/null) - [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2> /dev/null) + [[ -n $tmp ]] && part=$(findfs $tmp 2> /dev/null) + [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null) [[ -n $dev && $dev == mmcblk* ]] && DEVICE="/dev/${dev}" - } write_uboot_platform() { diff --git a/config/sources/families/spacemit.conf b/config/sources/families/spacemit.conf index d4fda34cfc96..0d67fd252f28 100644 --- a/config/sources/families/spacemit.conf +++ b/config/sources/families/spacemit.conf @@ -76,8 +76,8 @@ write_uboot_platform() { declare -A d d=( - [${1} / bootinfo_emmc.bin]="0:$(du -b ${1}/bootinfo_emmc.bin | awk '{print $1}')" - [${1} / FSBL.bin]="512:$(du -b ${1}/FSBL.bin | awk '{print $1}')" + [${1}/bootinfo_emmc.bin]="0:$(du -b ${1}/bootinfo_emmc.bin | awk '{print $1}')" + [${1}/FSBL.bin]="512:$(du -b ${1}/FSBL.bin | awk '{print $1}')" ) if [ -b ${2}boot0 ]; then @@ -86,9 +86,11 @@ write_uboot_platform() { sync fi - for f in "${!d[@]}"; do + for f in "${!d[@]}" + do if $(dd if=${device} bs=1 skip="${d[$f]%:*}" count="${d[$f]#*:}" \ - conv=notrunc status=noxfer 2> /dev/null | cmp --quiet "${f}"); then + conv=notrunc status=noxfer 2>/dev/null | cmp --quiet "${f}") + then echo "Skip $(basename $f), it is equal to the existing one" else echo "# Write =: $(basename $f) to ${device}" diff --git a/extensions/fs-cryptroot-support.sh b/extensions/fs-cryptroot-support.sh index 6d42e88e00e4..f0d8c5cfcbb1 100644 --- a/extensions/fs-cryptroot-support.sh +++ b/extensions/fs-cryptroot-support.sh @@ -21,12 +21,13 @@ function extension_prepare_config__prepare_cryptroot() { fi } -function prepare_root_device__encrypt_root_device() { +function prepare_root_device__250_encrypt_root_device() { # We encrypt the rootdevice (currently a loop device) and return the new mapped rootdevice check_loop_device "$rootdevice" display_alert "Extension: ${EXTENSION}: Encrypting root partition with LUKS..." "cryptsetup luksFormat $rootdevice" "" echo -n $CRYPTROOT_PASSPHRASE | cryptsetup luksFormat $CRYPTROOT_PARAMETERS $rootdevice - echo -n $CRYPTROOT_PASSPHRASE | cryptsetup luksOpen $rootdevice $CRYPTROOT_MAPPER - + add_cleanup_handler cleanup_cryptroot display_alert "Extension: ${EXTENSION}: Root partition encryption complete." "" "ext" # TODO: pass /dev/mapper to Docker rootdevice=/dev/mapper/$CRYPTROOT_MAPPER # used by `mkfs` and `mount` commands @@ -44,32 +45,49 @@ function pre_install_kernel_debs__adjust_dropbear_configuration() { dropbear_config="dropbear.conf" fi + # make it publicly available to export the private.key with proper naming + declare -g DROPBEAR_DIR=$dropbear_dir + # Set the port of the dropbear ssh daemon in the initramfs to a different one if configured # this avoids the typical 'host key changed warning' - `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!` - [[ -f "${dropbear_dir}/${dropbear_config}" ]] && + [[ -f "${DROPBEAR_DIR}/${dropbear_config}" ]] && sed -i "s/^#DROPBEAR_OPTIONS=.*/DROPBEAR_OPTIONS=\"-I 100 -j -k -p "${CRYPTROOT_SSH_UNLOCK_PORT}" -s -c cryptroot-unlock\"/" \ - "${dropbear_dir}/${dropbear_config}" + "${DROPBEAR_DIR}/${dropbear_config}" # setup dropbear authorized_keys, either provided by userpatches or generated if [[ -f $USERPATCHES_PATH/dropbear_authorized_keys ]]; then - cp "$USERPATCHES_PATH"/dropbear_authorized_keys "${dropbear_dir}"/authorized_keys + cp "$USERPATCHES_PATH"/dropbear_authorized_keys "${DROPBEAR_DIR}"/authorized_keys else # generate a default ssh key for login on dropbear in initramfs # this key should be changed by the user on first login display_alert "Extension: ${EXTENSION}: Generating a new SSH key pair for dropbear (initramfs)" "" "" # Generate the SSH keys - ssh-keygen -t ecdsa -f "${dropbear_dir}"/id_ecdsa \ + ssh-keygen -t ecdsa -f "${DROPBEAR_DIR}"/id_ecdsa \ -N '' -O force-command=cryptroot-unlock -C 'AUTOGENERATED_BY_ARMBIAN_BUILD' 2>&1 # /usr/share/initramfs-tools/hooks/dropbear will automatically add 'id_ecdsa.pub' to authorized_keys file # during mkinitramfs of update-initramfs - #cat "${dropbear_dir}"/id_ecdsa.pub > "${SDCARD}"/etc/dropbear-initramfs/authorized_keys - CRYPTROOT_SSH_UNLOCK_KEY_NAME="${VENDOR}_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${DESKTOP_ENVIRONMENT}".key - # copy dropbear ssh key to image output dir for convenience - cp "${dropbear_dir}"/id_ecdsa "${DEST}/images/${CRYPTROOT_SSH_UNLOCK_KEY_NAME}" - display_alert "Extension: ${EXTENSION}: SSH private key for dropbear (initramfs) has been copied to:" \ - "$DEST/images/$CRYPTROOT_SSH_UNLOCK_KEY_NAME" "info" + # cat "${DROPBEAR_DIR}"/id_ecdsa.pub > "${SDCARD}"/etc/dropbear-initramfs/authorized_keys fi fi } + +function post_umount_final_image__export_private_key(){ + if [[ $CRYPTROOT_SSH_UNLOCK == yes ]]; then + CRYPTROOT_SSH_UNLOCK_KEY_PATH="${DESTIMG}/${version}.key" + # copy dropbear ssh key to image output dir for convenience + cp "${DROPBEAR_DIR}"/id_ecdsa "${CRYPTROOT_SSH_UNLOCK_KEY_PATH}" + display_alert "Extension: ${EXTENSION}: SSH private key for dropbear (initramfs) has been copied to:" \ + "$CRYPTROOT_SSH_UNLOCK_KEY_PATH" "info" + fi +} + +function post_umount_final_image__750_cryptroot_cleanup(){ + execute_and_remove_cleanup_handler cleanup_cryptroot +} + +function cleanup_cryptroot(){ + cryptsetup luksClose "${CRYPTROOT_MAPPER}" 2>&1 + display_alert "Cryptroot closed ${CRYPTROOT_MAPPER}" "${EXTENSION}" "info" +} \ No newline at end of file diff --git a/extensions/image-output-abl.sh b/extensions/image-output-abl.sh index 391d4ddca353..a16478d94933 100644 --- a/extensions/image-output-abl.sh +++ b/extensions/image-output-abl.sh @@ -21,7 +21,7 @@ function post_build_image__900_convert_to_abl_img() { old_rootfs_image_mount_dir=${DESTIMG}/rootfs-old new_rootfs_image_mount_dir=${DESTIMG}/rootfs-new mkdir -p ${old_rootfs_image_mount_dir} ${new_rootfs_image_mount_dir} - truncate --size=9216M ${ROOTFS_IMAGE_FILE} + truncate --size=9728M ${ROOTFS_IMAGE_FILE} mkfs.ext4 -F ${ROOTFS_IMAGE_FILE} new_rootfs_image_uuid=$(blkid -s UUID -o value ${ROOTFS_IMAGE_FILE}) old_image_loop_device=$(losetup -f -P --show ${DESTIMG}/${version}.img) diff --git a/extensions/lvm.sh b/extensions/lvm.sh index 9500d8eeef9f..9e1b1774e6ce 100644 --- a/extensions/lvm.sh +++ b/extensions/lvm.sh @@ -32,24 +32,18 @@ function extension_prepare_config__prepare_lvm() { } function post_create_partitions__setup_lvm() { - - LOOP=$(losetup -f) - [[ -z $LOOP ]] && exit_with_error "Unable to find free loop device" - check_loop_device "$LOOP" - losetup $LOOP ${SDCARD}.raw - partprobe $LOOP - - # the partition to setup LVM on is defined as rootpart - local lvmpart=${rootpart} - local lvmdev=${LOOP}p${lvmpart} - display_alert "LVM will be on Partition ${lvmpart}, thats ${lvmdev}" "${EXTENSION}" "info" - # Setup LVM on the partition, ROOTFS - parted -s ${SDCARD}.raw -- set ${lvmpart} lvm on + parted -s ${SDCARD}.raw -- set ${rootpart} lvm on display_alert "LVM Partition table created" "${EXTENSION}" "info" parted -s ${SDCARD}.raw -- print >> "${DEST}"/${LOG_SUBPATH}/lvm.log 2>&1 +} + +function prepare_root_device__create_volume_group() { + + # the partition to setup LVM on is defined as rootpart + display_alert "LVM will be on ${rootdevice}" "${EXTENSION}" "info" - # Caculate the required volume size + # Calculate the required volume size declare -g -i rootfs_size rootfs_size=$(du --apparent-size -sm "${SDCARD}"/ | cut -f1) # MiB display_alert "Current rootfs size" "$rootfs_size MiB" "info" @@ -57,33 +51,20 @@ function post_create_partitions__setup_lvm() { display_alert "Root volume size" "$volsize MiB" "info" # Create the PV VG and VOL - display_alert "LVM Creating VG" "${SDCARD}.raw" "info" - check_loop_device ${lvmdev} - pvcreate ${lvmdev} - vgcreate ${LVM_VG_NAME} ${lvmdev} + display_alert "LVM Creating VG" "${rootdevice}" "info" + check_loop_device ${rootdevice} + pvcreate ${rootdevice} + wait_for_disk_sync "wait for pvcreate to sync" + vgcreate ${LVM_VG_NAME} ${rootdevice} + add_cleanup_handler cleanup_lvm + wait_for_disk_sync "wait for vgcreate to sync" # Note that devices wont come up automatically inside docker lvcreate -Zn --name root --size ${volsize}M ${LVM_VG_NAME} vgmknodes lvs >> "${DEST}"/${LOG_SUBPATH}/lvm.log 2>&1 - vgchange -a n ${LVM_VG_NAME} - losetup -d ${LOOP} - display_alert "LVM created volume group" "${EXTENSION}" "info" -} - -function prepare_root_device__create_volume_group() { - - LOOP=$(losetup -f) - [[ -z $LOOP ]] && exit_with_error "Unable to find free loop device" - check_loop_device "$LOOP" - losetup $LOOP ${SDCARD}.raw - partprobe $LOOP - - display_alert "Using LVM root" "${EXTENSION}" "info" - vgscan - vgchange -a y ${LVM_VG_NAME} - + rootdevice=/dev/mapper/${LVM_VG_NAME}-root - display_alert "Root device is ${rootdevice}" "${EXTENSION}" "info" + display_alert "LVM created volume group - root device ${rootdevice}" "${EXTENSION}" "info" } function format_partitions__format_lvm() { @@ -93,8 +74,11 @@ function format_partitions__format_lvm() { display_alert "LVM labeled partitions" "${EXTENSION}" "info" } -function post_umount_final_image__close_lvm() { - # Deactivat the Volume Group - vgchange -a n ${LVM_VG_NAME} - display_alert "LVM deactivated volume group" "${EXTENSION}" "info" +function post_umount_final_image__cleanup_lvm(){ + execute_and_remove_cleanup_handler cleanup_lvm } + +function cleanup_lvm() { + vgchange -a n ${LVM_VG_NAME} >> "${DEST}"/${LOG_SUBPATH}/lvm.log 2>&1 || true + display_alert "LVM deactivated volume group" "${EXTENSION}" "info" +} \ No newline at end of file diff --git a/lib/functions/compilation/packages/armbian-config-deb.sh b/lib/functions/compilation/packages/armbian-config-deb.sh index 4264fdbbc8c7..e932293cb6a8 100644 --- a/lib/functions/compilation/packages/armbian-config-deb.sh +++ b/lib/functions/compilation/packages/armbian-config-deb.sh @@ -47,7 +47,7 @@ compile_armbian-config() { Version: ${artifact_version} Architecture: all Maintainer: $MAINTAINER <$MAINTAINERMAIL> - Depends: whiptail, jq, sudo, procps, systemd, iproute2 + Depends: debconf, iproute2, jq, libtext-iconv-perl, procps, sudo, systemd, whiptail Section: utils Priority: optional Description: Armbian configuration utility - The new generation diff --git a/lib/functions/compilation/uboot.sh b/lib/functions/compilation/uboot.sh index ae9912d70765..305160e46026 100644 --- a/lib/functions/compilation/uboot.sh +++ b/lib/functions/compilation/uboot.sh @@ -414,13 +414,23 @@ function compile_uboot() { unset uboot_postinst_base postinst_functions destination # declare -f on non-defined function does not do anything (but exits with errors, so ignore them with "|| true") - cat <<- EOF > "$uboottempdir/usr/lib/u-boot/platform_install.sh" + cat <<- EOF > "${uboottempdir}/usr/lib/u-boot/platform_install.sh" + # Armbian u-boot install script for linux-u-boot-${BOARD}-${BRANCH} ${artifact_version} + # This file provides functions for deploying u-boot to a block device. DIR=/usr/lib/$uboot_name $(declare -f write_uboot_platform || true) $(declare -f write_uboot_platform_mtd || true) $(declare -f setup_write_uboot_platform || true) EOF + if [[ "${SHOW_DEBUG}" == "yes" ]]; then + display_alert "Showing contents of" "usr/lib/u-boot/platform_install.sh" "info" + run_tool_batcat --file-name "usr/lib/u-boot/platform_install.sh" "${uboottempdir}/usr/lib/u-boot/platform_install.sh" + fi + + display_alert "Running shellcheck" "usr/lib/u-boot/platform_install.sh" "info" + shellcheck_debian_control_scripts "${uboottempdir}/usr/lib/u-boot/platform_install.sh" + display_alert "Das U-Boot .deb package version" "${artifact_version}" "info" # set up control file diff --git a/lib/functions/image/loop.sh b/lib/functions/image/loop.sh index 446919ef44cb..528aca911195 100644 --- a/lib/functions/image/loop.sh +++ b/lib/functions/image/loop.sh @@ -19,7 +19,7 @@ function check_loop_device() { function check_loop_device_internal() { local device="${1}" - display_alert "Checking look device" "${device}" "debug" + display_alert "Checking loop device" "${device}" "debug" if [[ ! -b "${device}" ]]; then if [[ $CONTAINER_COMPAT == yes && -b "/tmp/${device}" ]]; then display_alert "Creating device node" "${device}" diff --git a/lib/functions/image/partitioning.sh b/lib/functions/image/partitioning.sh index 773ed9501579..7fe82c5ca695 100644 --- a/lib/functions/image/partitioning.sh +++ b/lib/functions/image/partitioning.sh @@ -244,23 +244,27 @@ function prepare_partitions() { display_alert "Partitioning with the following options" "$partition_script_output" "debug" echo "${partition_script_output}" | run_host_command_logged sfdisk "${SDCARD}".raw || exit_with_error "Partitioning failed!" fi - + + declare -g LOOP call_extension_method "post_create_partitions" <<- 'POST_CREATE_PARTITIONS' *called after all partitions are created, but not yet formatted* POST_CREATE_PARTITIONS # stage: mount image # lock access to loop devices - exec {FD}> /var/lock/armbian-debootstrap-losetup - flock -x $FD - - declare -g LOOP - #--partscan is using to force the kernel for scaning partition table in preventing of partprobe errors - LOOP=$(losetup --show --partscan --find "${SDCARD}".raw) || exit_with_error "Unable to find free loop device" - display_alert "Allocated loop device" "LOOP=${LOOP}" - - # loop device was grabbed here, unlock - flock -u $FD + if [[ -z $LOOP ]]; then + exec {FD}> /var/lock/armbian-debootstrap-losetup + flock -x $FD + + LOOP=$(losetup -f) + [[ -z $LOOP ]] && exit_with_error "Unable to find free loop device" + display_alert "Allocated loop device" "LOOP=${LOOP}" + check_loop_device "${LOOP}" + losetup $LOOP ${SDCARD}.raw + + # loop device was grabbed here, unlock + flock -u $FD + fi display_alert "Running partprobe" "${LOOP}" "debug" run_host_command_logged partprobe "${LOOP}" @@ -277,7 +281,8 @@ function prepare_partitions() { ## ROOT PARTITION ## if [[ -n $rootpart ]]; then - local rootdevice="${LOOP}p${rootpart}" + local rootdevice=${LOOP}p${rootpart} + local physical_rootdevice=$rootdevice call_extension_method "prepare_root_device" <<- 'PREPARE_ROOT_DEVICE' *Specialized storage extensions typically transform the root device into a mapped device and should hook in here * @@ -307,15 +312,17 @@ function prepare_partitions() { run_host_command_logged mount ${fscreateopt} $rootdevice $MOUNT/ # create fstab (and crypttab) entry - local rootfs if [[ $CRYPTROOT_ENABLE == yes ]]; then # map the LUKS container partition via its UUID to be the 'cryptroot' device - echo "$CRYPTROOT_MAPPER UUID=${root_part_uuid} none luks" >> $SDCARD/etc/crypttab - rootfs=$rootdevice # used in fstab - else - rootfs="UUID=$(blkid -s UUID -o value $rootdevice)" + physical_root_part_uuid="$(blkid -s UUID -o value $physical_rootdevice)" + echo "$CRYPTROOT_MAPPER UUID=${physical_root_part_uuid} none luks" >> $SDCARD/etc/crypttab + run_host_command_logged cat $SDCARD/etc/crypttab fi + + rootfs="UUID=$(blkid -s UUID -o value $rootdevice)" echo "$rootfs / ${mkfs[$ROOTFS_TYPE]} defaults,noatime${mountopts[$ROOTFS_TYPE]} 0 1" >> $SDCARD/etc/fstab + run_host_command_logged cat $SDCARD/etc/fstab + else # update_initramfs will fail if /lib/modules/ doesn't exist mount --bind --make-private $SDCARD $MOUNT/ @@ -369,7 +376,7 @@ function prepare_partitions() { if [[ -f $SDCARD/boot/armbianEnv.txt ]]; then display_alert "Found armbianEnv.txt" "${SDCARD}/boot/armbianEnv.txt" "debug" if [[ $CRYPTROOT_ENABLE == yes ]]; then - echo "rootdev=$rootdevice cryptdevice=UUID=${root_part_uuid}:$CRYPTROOT_MAPPER" >> "${SDCARD}/boot/armbianEnv.txt" + echo "rootdev=$rootdevice cryptdevice=UUID=${physical_root_part_uuid}:$CRYPTROOT_MAPPER" >> "${SDCARD}/boot/armbianEnv.txt" else echo "rootdev=$rootfs" >> "${SDCARD}/boot/armbianEnv.txt" fi @@ -388,7 +395,7 @@ function prepare_partitions() { display_alert "Found boot.ini" "${SDCARD}/boot/boot.ini" "debug" sed -i -e "s/rootfstype \"ext4\"/rootfstype \"$ROOTFS_TYPE\"/" $SDCARD/boot/boot.ini if [[ $CRYPTROOT_ENABLE == yes ]]; then - rootpart="UUID=${root_part_uuid}" + rootpart="UUID=${physical_root_part_uuid}" sed -i 's/^setenv rootdev .*/setenv rootdev "\/dev\/mapper\/'$CRYPTROOT_MAPPER' cryptdevice='$rootpart':'$CRYPTROOT_MAPPER'"/' $SDCARD/boot/boot.ini else sed -i 's/^setenv rootdev .*/setenv rootdev "'$rootfs'"/' $SDCARD/boot/boot.ini diff --git a/lib/functions/image/rootfs-to-image.sh b/lib/functions/image/rootfs-to-image.sh index 92dcc6625c34..3bc9c7c08bb2 100644 --- a/lib/functions/image/rootfs-to-image.sh +++ b/lib/functions/image/rootfs-to-image.sh @@ -119,7 +119,6 @@ function create_image_from_sdcard_rootfs() { wait_for_disk_sync "before umount MOUNT" umount_chroot_recursive "${MOUNT}" "MOUNT" - [[ $CRYPTROOT_ENABLE == yes ]] && cryptsetup luksClose "$CRYPTROOT_MAPPER" call_extension_method "post_umount_final_image" "config_post_umount_final_image" <<- 'POST_UMOUNT_FINAL_IMAGE' *allow config to hack into the image after the unmount* diff --git a/lib/functions/rootfs/distro-specific.sh b/lib/functions/rootfs/distro-specific.sh index 69670f2f10ce..db40363be3ff 100644 --- a/lib/functions/rootfs/distro-specific.sh +++ b/lib/functions/rootfs/distro-specific.sh @@ -156,20 +156,17 @@ function create_sources_list_and_deploy_repo_key() { ;; esac + # add armbian key display_alert "Adding Armbian repository and authentication key" "${when} :: /etc/apt/sources.list.d/armbian.list" "info" + mkdir -p "${basedir}"/usr/share/keyrings + # change to binary form + gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}"/usr/share/keyrings/armbian.gpg + SIGNED_BY="[signed-by=/usr/share/keyrings/armbian.gpg] " - # apt-key add is getting deprecated - APT_VERSION=$(chroot "${basedir}" /bin/bash -c "apt --version | cut -d\" \" -f2") - if linux-version compare "${APT_VERSION}" ge 2.4.1; then - # add armbian key - mkdir -p "${basedir}"/usr/share/keyrings - # change to binary form - gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}"/usr/share/keyrings/armbian.gpg - SIGNED_BY="[signed-by=/usr/share/keyrings/armbian.gpg] " - else - # use old method for compatibility reasons # @TODO: rpardini: not gonna fix this? + # lets keep old way for old distributions + if [[ "${RELEASE}" =~ (focal|bullseye) ]]; then cp "${SRC}"/config/armbian.key "${basedir}" - chroot "${basedir}" /bin/bash -c "cat armbian.key | apt-key add -" + chroot "${basedir}" /bin/bash -c "cat armbian.key | apt-key add - > /dev/null 2>&1" fi declare -a components=() diff --git a/lib/functions/rootfs/trap-rootfs.sh b/lib/functions/rootfs/trap-rootfs.sh index ce8ba64ce19a..1d66b8662463 100644 --- a/lib/functions/rootfs/trap-rootfs.sh +++ b/lib/functions/rootfs/trap-rootfs.sh @@ -54,8 +54,8 @@ function trap_handler_cleanup_rootfs_and_image() { display_alert "Cleanup for rootfs and image" "trap_handler_cleanup_rootfs_and_image" "cleanup" debug_tmpfs_show_usage "before cleanup of rootfs" - cd "${SRC}" || echo "Failed to cwd to ${SRC}" # Move pwd away, so unmounts work + # those will loop until they're unmounted. umount_chroot_recursive "${SDCARD}" "SDCARD" || true umount_chroot_recursive "${MOUNT}" "MOUNT" || true @@ -63,8 +63,6 @@ function trap_handler_cleanup_rootfs_and_image() { # unmount tmpfs mounted on SDCARD if it exists. #@TODO: move to new tmpfs-utils scheme mountpoint -q "${SDCARD}" && umount "${SDCARD}" - [[ $CRYPTROOT_ENABLE == yes ]] && cryptsetup luksClose "${CRYPTROOT_MAPPER}" - if [[ "${PRESERVE_SDCARD_MOUNT}" == "yes" ]]; then display_alert "Preserving SD card mount" "trap_handler_cleanup_rootfs_and_image" "warn" return 0 @@ -72,7 +70,7 @@ function trap_handler_cleanup_rootfs_and_image() { # shellcheck disable=SC2153 # global var. if [[ -b "${LOOP}" ]]; then - display_alert "Freeing loop" "trap_handler_cleanup_rootfs_and_image ${LOOP}" "wrn" + display_alert "Freeing loop" "trap_handler_cleanup_rootfs_and_image ${LOOP}" "warn" free_loop_device_insistent "${LOOP}" || true fi diff --git a/patch/kernel/archive/bcm2711-6.6/0001-Make-proc-cpuinfo-consistent-on-arm64-and-arm.patch b/patch/kernel/archive/bcm2711-6.6/0001-Make-proc-cpuinfo-consistent-on-arm64-and-arm.patch index 4b2e24fe1bf3..7d27f375f171 100644 --- a/patch/kernel/archive/bcm2711-6.6/0001-Make-proc-cpuinfo-consistent-on-arm64-and-arm.patch +++ b/patch/kernel/archive/bcm2711-6.6/0001-Make-proc-cpuinfo-consistent-on-arm64-and-arm.patch @@ -1,7 +1,7 @@ -From 988f69b247fa3a1b70876395342aeb8c7dc2e834 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: graysky Date: Mon, 7 Dec 2020 13:03:40 -0500 -Subject: [PATCH] Make /proc/cpuinfo consistent on arm64 and arm +Subject: Make /proc/cpuinfo consistent on arm64 and arm Signed-off-by: graysky --- @@ -9,10 +9,10 @@ Signed-off-by: graysky 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index 721350d21074..88e2b8fcd7e6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c -@@ -153,9 +153,8 @@ static int c_show(struct seq_file *m, void *v) +@@ -194,9 +194,8 @@ static int c_show(struct seq_file *m, void *v) * "processor". Give glibc what it expects. */ seq_printf(m, "processor\t: %d\n", i); @@ -25,5 +25,5 @@ index 721350d21074..88e2b8fcd7e6 100644 seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", loops_per_jiffy / (500000UL/HZ), -- -2.29.2 +Armbian diff --git a/patch/kernel/archive/bcm2711-6.6/1003-remote-wakeup.patch b/patch/kernel/archive/bcm2711-6.6/1003-remote-wakeup.patch index 3c4c0822199f..8f5a9449ea6a 100644 --- a/patch/kernel/archive/bcm2711-6.6/1003-remote-wakeup.patch +++ b/patch/kernel/archive/bcm2711-6.6/1003-remote-wakeup.patch @@ -1,8 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Igor Pecovnik +Date: Mon, 29 Aug 2022 08:43:24 +0200 +Subject: [ARCHEOLOGY] Add patches needed for Pi-KVM on Rpi4 (#4127) + +> X-Git-Archeology: > recovered message: > * Add patches needed for Pi-KVM on Rpi4 +> X-Git-Archeology: > recovered message: > * Remove patch that does not belong here +> X-Git-Archeology: > recovered message: > * Update config +> X-Git-Archeology: > recovered message: > * Update edge config +> X-Git-Archeology: - Revision 2fb3aaaf86a7463ef1d26f4d623e1d3289ea4f25: https://github.com/armbian/build/commit/2fb3aaaf86a7463ef1d26f4d623e1d3289ea4f25 +> X-Git-Archeology: Date: Mon, 29 Aug 2022 08:43:24 +0200 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Add patches needed for Pi-KVM on Rpi4 (#4127) +> X-Git-Archeology: +> X-Git-Archeology: - Revision acf5810cbe38c7578907ecd06e61abb0a446df1e: https://github.com/armbian/build/commit/acf5810cbe38c7578907ecd06e61abb0a446df1e +> X-Git-Archeology: Date: Sat, 11 Mar 2023 19:19:13 +0100 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Move Rpi kernels to 6.2, move current to legacy (#4898) +> X-Git-Archeology: +> X-Git-Archeology: - Revision 8caf51243e9769c48289be534f1ecc6aa4b53a15: https://github.com/armbian/build/commit/8caf51243e9769c48289be534f1ecc6aa4b53a15 +> X-Git-Archeology: Date: Sun, 19 Nov 2023 22:34:54 +0100 +> X-Git-Archeology: From: Igor +> X-Git-Archeology: Subject: Bump rpi and ebin edge kernels to 6.6.y (#5925) +> X-Git-Archeology: +> X-Git-Archeology: - Revision f852beca0aeaec9ef5c062f089c3493e3b12fc48: https://github.com/armbian/build/commit/f852beca0aeaec9ef5c062f089c3493e3b12fc48 +> X-Git-Archeology: Date: Sun, 07 Jan 2024 18:58:36 +0100 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Switch meson64, bcm2711, sunxi, imx6, mvebu current to 6.6, edge to 6.7 and leave 6.1 for legecy +> X-Git-Archeology: +--- + drivers/usb/dwc2/gadget.c | 73 ++++++++++ + drivers/usb/gadget/function/f_hid.c | 14 ++ + drivers/usb/gadget/function/u_hid.h | 1 + + 3 files changed, 88 insertions(+) + diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c -index 0909b088a284..31ff5348020c 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c -@@ -4763,6 +4763,78 @@ static void dwc2_gadget_set_speed(struct usb_gadget *g, enum usb_device_speed sp +@@ -4772,6 +4772,78 @@ static void dwc2_gadget_set_speed(struct usb_gadget *g, enum usb_device_speed sp spin_unlock_irqrestore(&hsotg->lock, flags); } @@ -81,7 +116,7 @@ index 0909b088a284..31ff5348020c 100644 static const struct usb_gadget_ops dwc2_hsotg_gadget_ops = { .get_frame = dwc2_hsotg_gadget_getframe, .set_selfpowered = dwc2_hsotg_set_selfpowered, -@@ -4772,6 +4844,7 @@ static const struct usb_gadget_ops dwc2_hsotg_gadget_ops = { +@@ -4781,6 +4853,7 @@ static const struct usb_gadget_ops dwc2_hsotg_gadget_ops = { .udc_set_speed = dwc2_gadget_set_speed, .vbus_session = dwc2_hsotg_vbus_session, .vbus_draw = dwc2_hsotg_vbus_draw, @@ -90,10 +125,10 @@ index 0909b088a284..31ff5348020c 100644 /** diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c -index ca0a7d9eaa34..cf11ab8e88e0 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_hid.c +++ b/drivers/usb/gadget/function/f_hid.c -@@ -54,6 +54,8 @@ struct f_hidg { +@@ -58,6 +58,8 @@ struct f_hidg { * will be used to receive reports. */ bool use_out_ep; @@ -102,7 +137,7 @@ index ca0a7d9eaa34..cf11ab8e88e0 100644 /* recv report */ spinlock_t read_spinlock; -@@ -422,10 +424,19 @@ static ssize_t f_hidg_write(struct file *file, const char __user *buffer, +@@ -435,10 +437,19 @@ static ssize_t f_hidg_write(struct file *file, const char __user *buffer, size_t count, loff_t *offp) { struct f_hidg *hidg = file->private_data; @@ -122,7 +157,7 @@ index ca0a7d9eaa34..cf11ab8e88e0 100644 spin_lock_irqsave(&hidg->write_spinlock, flags); if (!hidg->req) { -@@ -1101,6 +1112,7 @@ CONFIGFS_ATTR(f_hid_opts_, name) +@@ -1102,6 +1113,7 @@ CONFIGFS_ATTR(f_hid_opts_, name) F_HID_OPT(subclass, 8, 255); F_HID_OPT(protocol, 8, 255); F_HID_OPT(no_out_endpoint, 8, 1); @@ -130,7 +165,7 @@ index ca0a7d9eaa34..cf11ab8e88e0 100644 F_HID_OPT(report_length, 16, 65535); static ssize_t f_hid_opts_report_desc_show(struct config_item *item, char *page) -@@ -1161,6 +1173,7 @@ static struct configfs_attribute *hid_attrs[] = { +@@ -1162,6 +1174,7 @@ static struct configfs_attribute *hid_attrs[] = { &f_hid_opts_attr_subclass, &f_hid_opts_attr_protocol, &f_hid_opts_attr_no_out_endpoint, @@ -138,16 +173,16 @@ index ca0a7d9eaa34..cf11ab8e88e0 100644 &f_hid_opts_attr_report_length, &f_hid_opts_attr_report_desc, &f_hid_opts_attr_dev, -@@ -1293,6 +1306,7 @@ static struct usb_function *hidg_alloc(struct usb_function_instance *fi) +@@ -1297,6 +1310,7 @@ static struct usb_function *hidg_alloc(struct usb_function_instance *fi) } } hidg->use_out_ep = !opts->no_out_endpoint; + hidg->wakeup_on_write = opts->wakeup_on_write; + ++opts->refcnt; mutex_unlock(&opts->lock); - diff --git a/drivers/usb/gadget/function/u_hid.h b/drivers/usb/gadget/function/u_hid.h -index 84bb70292855..f7fcaf1eaf1d 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/u_hid.h +++ b/drivers/usb/gadget/function/u_hid.h @@ -21,6 +21,7 @@ struct f_hid_opts { @@ -158,3 +193,6 @@ index 84bb70292855..f7fcaf1eaf1d 100644 unsigned short report_length; unsigned short report_desc_length; unsigned char *report_desc; +-- +Armbian + diff --git a/patch/kernel/archive/bcm2711-6.6/2001-rename-msd.patch b/patch/kernel/archive/bcm2711-6.6/2001-rename-msd.patch index a5bb2fbc3ee5..22add2c8b01b 100644 --- a/patch/kernel/archive/bcm2711-6.6/2001-rename-msd.patch +++ b/patch/kernel/archive/bcm2711-6.6/2001-rename-msd.patch @@ -1,8 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Igor Pecovnik +Date: Mon, 29 Aug 2022 08:43:24 +0200 +Subject: [ARCHEOLOGY] Add patches needed for Pi-KVM on Rpi4 (#4127) + +> X-Git-Archeology: > recovered message: > * Add patches needed for Pi-KVM on Rpi4 +> X-Git-Archeology: > recovered message: > * Remove patch that does not belong here +> X-Git-Archeology: > recovered message: > * Update config +> X-Git-Archeology: > recovered message: > * Update edge config +> X-Git-Archeology: - Revision 2fb3aaaf86a7463ef1d26f4d623e1d3289ea4f25: https://github.com/armbian/build/commit/2fb3aaaf86a7463ef1d26f4d623e1d3289ea4f25 +> X-Git-Archeology: Date: Mon, 29 Aug 2022 08:43:24 +0200 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Add patches needed for Pi-KVM on Rpi4 (#4127) +> X-Git-Archeology: +> X-Git-Archeology: - Revision acf5810cbe38c7578907ecd06e61abb0a446df1e: https://github.com/armbian/build/commit/acf5810cbe38c7578907ecd06e61abb0a446df1e +> X-Git-Archeology: Date: Sat, 11 Mar 2023 19:19:13 +0100 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Move Rpi kernels to 6.2, move current to legacy (#4898) +> X-Git-Archeology: +> X-Git-Archeology: - Revision 8caf51243e9769c48289be534f1ecc6aa4b53a15: https://github.com/armbian/build/commit/8caf51243e9769c48289be534f1ecc6aa4b53a15 +> X-Git-Archeology: Date: Sun, 19 Nov 2023 22:34:54 +0100 +> X-Git-Archeology: From: Igor +> X-Git-Archeology: Subject: Bump rpi and ebin edge kernels to 6.6.y (#5925) +> X-Git-Archeology: +> X-Git-Archeology: - Revision f852beca0aeaec9ef5c062f089c3493e3b12fc48: https://github.com/armbian/build/commit/f852beca0aeaec9ef5c062f089c3493e3b12fc48 +> X-Git-Archeology: Date: Sun, 07 Jan 2024 18:58:36 +0100 +> X-Git-Archeology: From: Igor Pecovnik +> X-Git-Archeology: Subject: Switch meson64, bcm2711, sunxi, imx6, mvebu current to 6.6, edge to 6.7 and leave 6.1 for legecy +> X-Git-Archeology: +--- + drivers/usb/gadget/function/f_mass_storage.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c -index 4a4703634a2a..cdba48f5ddf8 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_mass_storage.c +++ b/drivers/usb/gadget/function/f_mass_storage.c -@@ -2852,11 +2852,11 @@ void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn, +@@ -2983,11 +2983,11 @@ void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn, /* Prepare inquiryString */ i = get_default_bcdDevice(); snprintf(common->inquiry_string, sizeof(common->inquiry_string), @@ -17,3 +50,6 @@ index 4a4703634a2a..cdba48f5ddf8 100644 i); } EXPORT_SYMBOL_GPL(fsg_common_set_inquiry_string); +-- +Armbian + diff --git a/patch/kernel/archive/meson64-6.12/meson-g12a-radxa-zero-gpio-pin-names.patch b/patch/kernel/archive/meson64-6.12/meson-g12a-radxa-zero-gpio-pin-names.patch new file mode 100644 index 000000000000..c38751c77392 --- /dev/null +++ b/patch/kernel/archive/meson64-6.12/meson-g12a-radxa-zero-gpio-pin-names.patch @@ -0,0 +1,37 @@ +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts +index c779a5da7d1e..cb1a167c117c 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts +@@ -262,6 +262,32 @@ &frddr_c { + status = "okay"; + }; + ++/* ++pin-8, pin-36 are mapped referring to: /include/dt-bindings/gpio/meson-g12a-gpio.h ++left as is for future tests ++*/ ++/*CHIP0*/ ++&gpio { ++ gpio-line-names = ++ /*00*/ "", "", "", "", "", "", "", "", "", "", ++ /*10*/ "", "", "", "", "", "", "", "", "", "", ++ /*20*/ "19 [GPIOH_4]", "21 [GPIOH_5]", "24 [GPIOH_6]", "23 [GPIOH_7]", "36 [GPIOH_8]", "", "", "", "", "", ++ /*30*/ "", "", "", "", "", "", "", "", "", "", ++ /*40*/ "", "", "", "", "", "", "", "", "22 [GPIOC_7]", "", ++ /*50*/ "", "", "", "", "", "", "", "", "", "", ++ /*60*/ "", "", "", "3 [GPIOA_14]", "", "", "", "", "", "", ++ /*70*/ "", "", "", "18 [GPIOX_8]", "12 [GPIOX_9]", "16 [GPIOX_10]", "13 [GPIOX_11]", "", "", "", ++ /*80*/ "", "", "", "", ""; ++}; ++ ++/*CHIP1*/ ++&gpio_ao { ++ gpio-line-names = ++ /*00*/ "8 [GPIOAO_0]", "10 [GPIOAO_1]", "11,28 [GPIOAO_2]", "7,27 [GPIOAO_3]", "32 [GPIOAO_4]", ++ /*05*/ "5 [GPIOA_15]", "", "", "35 [GPIOAO_8]", "37 [GPIOAO_9]", ++ /*10*/ "", "40 [GPIOAO_11]", "", "", ""; ++}; ++ + &hdmi_tx { + status = "okay"; + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; diff --git a/patch/kernel/archive/meson64-6.6/meson-g12a-radxa-zero-gpio-pin-names.patch b/patch/kernel/archive/meson64-6.6/meson-g12a-radxa-zero-gpio-pin-names.patch new file mode 100644 index 000000000000..c38751c77392 --- /dev/null +++ b/patch/kernel/archive/meson64-6.6/meson-g12a-radxa-zero-gpio-pin-names.patch @@ -0,0 +1,37 @@ +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts +index c779a5da7d1e..cb1a167c117c 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts +@@ -262,6 +262,32 @@ &frddr_c { + status = "okay"; + }; + ++/* ++pin-8, pin-36 are mapped referring to: /include/dt-bindings/gpio/meson-g12a-gpio.h ++left as is for future tests ++*/ ++/*CHIP0*/ ++&gpio { ++ gpio-line-names = ++ /*00*/ "", "", "", "", "", "", "", "", "", "", ++ /*10*/ "", "", "", "", "", "", "", "", "", "", ++ /*20*/ "19 [GPIOH_4]", "21 [GPIOH_5]", "24 [GPIOH_6]", "23 [GPIOH_7]", "36 [GPIOH_8]", "", "", "", "", "", ++ /*30*/ "", "", "", "", "", "", "", "", "", "", ++ /*40*/ "", "", "", "", "", "", "", "", "22 [GPIOC_7]", "", ++ /*50*/ "", "", "", "", "", "", "", "", "", "", ++ /*60*/ "", "", "", "3 [GPIOA_14]", "", "", "", "", "", "", ++ /*70*/ "", "", "", "18 [GPIOX_8]", "12 [GPIOX_9]", "16 [GPIOX_10]", "13 [GPIOX_11]", "", "", "", ++ /*80*/ "", "", "", "", ""; ++}; ++ ++/*CHIP1*/ ++&gpio_ao { ++ gpio-line-names = ++ /*00*/ "8 [GPIOAO_0]", "10 [GPIOAO_1]", "11,28 [GPIOAO_2]", "7,27 [GPIOAO_3]", "32 [GPIOAO_4]", ++ /*05*/ "5 [GPIOA_15]", "", "", "35 [GPIOAO_8]", "37 [GPIOAO_9]", ++ /*10*/ "", "40 [GPIOAO_11]", "", "", ""; ++}; ++ + &hdmi_tx { + status = "okay"; + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; diff --git a/patch/kernel/archive/rockchip64-6.12/dt/rk3328-mkspi.dts b/patch/kernel/archive/rockchip64-6.12/dt/rk3328-mkspi.dts new file mode 100644 index 000000000000..79d249449568 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.12/dt/rk3328-mkspi.dts @@ -0,0 +1,592 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Based on rk3328-roc-cc.dts + * + * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd + */ + +/dts-v1/; +#include "rk3328-dram-renegade-timing.dtsi" +#include "rk3328.dtsi" + +/ { + model = "Makerbase MKS-PI"; + compatible = "mks,rk3328-mkspi", "rockchip,rk3328"; + + aliases { + mmc0 = &sdmmc; + mmc1 = &emmc; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + /delete-node/ dmc-opp-table; + dmc_opp_table: dmc-opp-table { + compatible = "operating-points-v2"; + + opp-786000000 { + opp-hz = /bits/ 64 <786000000>; + opp-microvolt = <1075000 1075000 12000000>; + }; + opp-798000000 { + opp-hz = /bits/ 64 <798000000>; + opp-microvolt = <1075000 1075000 12000000>; + }; + opp-840000000 { + opp-hz = /bits/ 64 <840000000>; + opp-microvolt = <1075000 1075000 12000000>; + }; + opp-924000000 { + opp-hz = /bits/ 64 <924000000>; + opp-microvolt = <1100000 1100000 12000000>; + }; + opp-1068000000 { + opp-hz = /bits/ 64 <1068000000>; + opp-microvolt = <1175000 1175000 12000000>; + }; + }; + + gmac_clkin: external-gmac-clock { + compatible = "fixed-clock"; + clock-frequency = <125000000>; + clock-output-names = "gmac_clkin"; + #clock-cells = <0>; + }; + + dc_12v: dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + }; + + vcc_sd: sdmmc-regulator { + compatible = "regulator-fixed"; + gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc0m1_pin>; + regulator-boot-on; + regulator-name = "vcc_sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_io>; + }; + + vcc_sdio: sdmmcio-regulator { + compatible = "regulator-gpio"; + gpios = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&sdio_vcc_pin>; + pinctrl-names = "default"; + states = <1800000 0x0>, + <3300000 0x1>; + regulator-name = "vcc_sdio"; + regulator-type = "voltage"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + vin-supply = <&vcc_io>; + }; + + vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host_drv>; + regulator-name = "vcc_host1_5v"; + regulator-always-on; + vin-supply = <&vcc_sys>; + }; + + vcc_sys: vcc-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&dc_12v>; + }; + + vcc_phy: vcc-phy-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_phy"; + regulator-always-on; + regulator-boot-on; + }; + + leds { + compatible = "gpio-leds"; + + power_led: led-0 { + label = "firefly:blue:power"; + linux,default-trigger = "heartbeat"; + gpios = <&rk805 1 GPIO_ACTIVE_LOW>; + default-state = "on"; + mode = <0x23>; + }; + + user_led: led-1 { + label = "firefly:yellow:user"; + linux,default-trigger = "mmc1"; + gpios = <&rk805 0 GPIO_ACTIVE_LOW>; + default-state = "off"; + mode = <0x05>; + }; + }; + + usb3phy_grf: syscon@ff460000 { + compatible = "rockchip,usb3phy-grf", "syscon"; + reg = <0x0 0xff460000 0x0 0x1000>; + }; + + u3phy: usb3-phy@ff470000 { + compatible = "rockchip,rk3328-u3phy"; + reg = <0x0 0xff470000 0x0 0x0>; + rockchip,u3phygrf = <&usb3phy_grf>; + rockchip,grf = <&grf>; + interrupts = ; + interrupt-names = "linestate"; + clocks = <&cru PCLK_USB3PHY_OTG>, <&cru PCLK_USB3PHY_PIPE>; + clock-names = "u3phy-otg", "u3phy-pipe"; + resets = <&cru SRST_USB3PHY_U2>, + <&cru SRST_USB3PHY_U3>, + <&cru SRST_USB3PHY_PIPE>, + <&cru SRST_USB3OTG_UTMI>, + <&cru SRST_USB3PHY_OTG_P>, + <&cru SRST_USB3PHY_PIPE_P>; + reset-names = "u3phy-u2-por", "u3phy-u3-por", + "u3phy-pipe-mac", "u3phy-utmi-mac", + "u3phy-utmi-apb", "u3phy-pipe-apb"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + status = "okay"; + + u3phy_utmi: utmi@ff470000 { + reg = <0x0 0xff470000 0x0 0x8000>; + #phy-cells = <0>; + status = "okay"; + }; + + u3phy_pipe: pipe@ff478000 { + reg = <0x0 0xff478000 0x0 0x8000>; + #phy-cells = <0>; + status = "okay"; + }; + }; + +}; + +&analog_sound { + status = "disabled"; +}; + +&codec { + status = "okay"; +}; + +&gmac2phy { + assigned-clocks = <&cru SCLK_MAC2PHY>; + assigned-clock-rate = <50000000>; + assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>; + phy-supply = <&vcc_phy>; + status = "okay"; +}; + +&dfi { + status = "okay"; +}; + +&dmc { + center-supply = <&vdd_logic>; + ddr_timing = <&ddr_timing>; + status = "okay"; +}; + + +&cpu0 { + cpu-supply = <&vdd_arm>; +}; + +&cpu1 { + cpu-supply = <&vdd_arm>; +}; + +&cpu2 { + cpu-supply = <&vdd_arm>; +}; + +&cpu3 { + cpu-supply = <&vdd_arm>; +}; + +&emmc { + bus-width = <8>; + cap-mmc-highspeed; + max-frequency = <150000000>; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; + vmmc-supply = <&vcc_io>; + vqmmc-supply = <&vcc18_emmc>; + status = "okay"; +}; + +&gmac2io { + assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; + assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>; + clock_in_out = "input"; + phy-supply = <&vcc_phy>; + phy-mode = "rgmii"; + pinctrl-names = "default"; + pinctrl-0 = <&rgmiim1_pins>; + snps,aal; + snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; + snps,reset-active-low; + snps,reset-delays-us = <0 10000 50000>; + snps,rxpbl = <0x4>; + snps,txpbl = <0x4>; + tx_delay = <0x24>; + rx_delay = <0x18>; + status = "disabled"; +}; + +&gpu { + mali-supply = <&vdd_logic>; +}; + +&hdmi { + interrupts = , + ; + clocks = <&cru PCLK_HDMI>, + <&cru SCLK_HDMI_SFC>, + <&hdmiphy>, //0x4b + <&cru SCLK_RTC32K>; + clock-names = "iahb", + "isfr", + "vpll", + "cec"; + status = "okay"; +}; + +&hdmiphy { + status = "okay"; +}; + +&hdmi_sound { + status = "okay"; +}; + +&i2c1 { + status = "okay"; + + rk805: pmic@18 { + compatible = "rockchip,rk805"; + reg = <0x18>; + interrupt-parent = <&gpio2>; + interrupts = ; + #clock-cells = <1>; + clock-output-names = "xin32k", "rk805-clkout2"; + gpio-controller; + #gpio-cells = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int_l>; + rockchip,system-power-controller; + wakeup-source; + + vcc1-supply = <&vcc_sys>; + vcc2-supply = <&vcc_sys>; + vcc3-supply = <&vcc_sys>; + vcc4-supply = <&vcc_sys>; + vcc5-supply = <&vcc_io>; + vcc6-supply = <&vcc_io>; + + regulators { + vdd_logic: DCDC_REG1 { + regulator-name = "vdd_logic"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1450000>; + regulator-ramp-delay = <12500>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1000000>; + }; + }; + + vdd_arm: DCDC_REG2 { + regulator-name = "vdd_arm"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1450000>; + regulator-ramp-delay = <12500>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <950000>; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_io: DCDC_REG4 { + regulator-name = "vcc_io"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + + vcc_18: LDO_REG1 { + regulator-name = "vcc_18"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc18_emmc: LDO_REG2 { + regulator-name = "vcc18_emmc"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vdd_10: LDO_REG3 { + regulator-name = "vdd_10"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1000000>; + }; + }; + }; + }; +}; + +&io_domains { + status = "okay"; + + vccio1-supply = <&vcc_io>; + vccio2-supply = <&vcc18_emmc>; + vccio3-supply = <&vcc_sdio>; + vccio4-supply = <&vcc_io>; + vccio5-supply = <&vcc_io>; + vccio6-supply = <&vcc_io>; + pmuio-supply = <&vcc_io>; +}; + +&pinctrl { + + pmic { + pmic_int_l: pmic-int-l { + rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + usb2 { + usb20_host_drv: usb20-host-drv { + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sd { + sdio_vcc_pin: sdio-vcc-pin { + rockchip,pins = <2 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + touchscreen { + pinctrl_tsc2046_pendown: pinctrl_tsc2046_pendown { + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; + }; + pinctrl_tsc2046_cs: pinctrl_tsc2046_cs { + rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + lcd { + pinctrl_st7796_cs: pinctrl_st7796_cs { + rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + spi0_cs2 { + pinctrl_spi0_cs2: pinctrl_spi0_cs2 { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + max-frequency = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + vmmc-supply = <&vcc_sd>; + vqmmc-supply = <&vcc_sdio>; + status = "okay"; +}; + +&spdif { + pinctrl-0 = <&spdifm0_tx>; + status = "okay"; +}; + +&spdif_out { + status = "okay"; +}; + +&spdif_sound { + status = "okay"; +}; + +&tsadc { + rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ + rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ + status = "okay"; +}; + +&u2phy { + status = "okay"; +}; + +&u2phy_host { + status = "okay"; +}; + +&u2phy_otg { + status = "okay"; +}; + +&uart0 { + pinctrl-0 = <&uart0_xfer &uart0_cts>; + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&spi0 { + max-freq = <48000000>; + cs-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>,<&gpio3 RK_PA7 GPIO_ACTIVE_LOW>,<&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&spi0m2_clk &spi0m2_tx &spi0m2_rx>; + status = "okay"; + + spi_for_lcd@0 { + compatible ="ilitek,st7796"; + pinctrl-names ="default"; + pinctrl-0 = <&pinctrl_st7796_cs>; + reg = <0>; + spi-max-frequency = <25000000>; + bgr; + fps = <30>; + rotate = <270>; + buswidth = <8>; + dc-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>; /* gpio3 A6 */ + reset-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>; /* gpio3 A4 */ + led-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; /* gpio3 A5 */ + status = "okay"; + }; + + spi_for_touch@1 { + reg = <1>; + compatible = "ti,tsc2046"; + pinctrl-names ="default"; + pinctrl-0 = <&pinctrl_tsc2046_pendown &pinctrl_tsc2046_cs>; + ti,x-max = /bits/ 16 <3776>; + ti,x-min = /bits/ 16 <164>; + ti,y-min = /bits/ 16 <201>; + ti,y-max = /bits/ 16 <3919>; + ti,x-plate-ohms = /bits/ 16 <40>; + ti,pressure-max = /bits/ 16 <255>; + //touchscreen-fuzz-x = <16>; + //touchscreen-fuzz-y = <16>; + //touchscreen-fuzz-pressure = <10>; + ti,swap-xy = <1>; + touchscreen-inverted-y = <1>; + interrupt-parent = <&gpio1>; + interrupts = ; + spi-max-frequency = <2000000>; + pendown-gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; + vcc-supply = <&vcc_io>; + wakeup-source; + status = "okay"; + }; + + spi_for_cs2@2 { + reg = <2>; + compatible ="armbian,spi-dev"; + pinctrl-names ="default"; + pinctrl-0 = <&pinctrl_spi0_cs2>; + spi-max-frequency = <5000000>; + status = "okay"; + }; +}; + +&usb20_otg { + dr_mode = "host"; + status = "okay"; +}; + +&usbdrd3 { + dr_mode = "host"; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&vop { + assigned-clocks = <&cru DCLK_LCDC>; + assigned-clock-parents = <&cru HDMIPHY>; + status = "okay"; +}; + +&vop_mmu { + status = "okay"; +}; diff --git a/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-h68k.dts b/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-h68k.dts index 7eed082c4edf..ce9707faa840 100644 --- a/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-h68k.dts +++ b/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-h68k.dts @@ -85,6 +85,20 @@ regulator-max-microvolt = <12000000>; }; + rfkill-bt { + compatible = "rfkill-gpio"; + label = "rfkill-m2-bt"; + radio-type = "bluetooth"; + shutdown-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>; + }; + + rfkill-wifi { + compatible = "rfkill-gpio"; + label = "rfkill-pcie-wlan"; + radio-type = "wlan"; + shutdown-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; + }; + vcc5v0_sys: vcc5v0-sys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys"; @@ -111,23 +125,6 @@ vin-supply = <&vcc5v0_sys>; }; - /* wifi power - for H68K-MAX & H69K-MAX - */ - vcc3v3_pcie2: vcc3v3-pcie2-regulator { - compatible = "regulator-fixed"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-name = "vcc3v3_pcie2"; - regulator-boot-on; - - gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; - - pinctrl-names = "default"; - pinctrl-0 = <&vcc3v3_pcie2_en>; - vin-supply = <&vcc3v3_sys>; - }; - /* eth 2.5g power for H66K H69K */ @@ -655,7 +652,7 @@ &pcie2x1 { reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; - vpcie3v3-supply = <&vcc3v3_pcie2>; + vpcie3v3-supply = <&vcc3v3_sys>; status = "okay"; }; @@ -749,10 +746,6 @@ }; pcie { - vcc3v3_pcie2_en: vcc3v3_pcie2_en { - rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; - }; - vcc3v3_pcie3_en: vcc3v3_pcie3_en { rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; }; diff --git a/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-hnas.dts b/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-hnas.dts new file mode 100644 index 000000000000..9d966a851240 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.12/dt/rk3568-hinlink-hnas.dts @@ -0,0 +1,228 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (c) 2022 AmadeusGhost +// Copyright (c) 2022 Flippy +// Copyright (c) 2023 amazingfate + +/dts-v1/; + +#include "rk3568-hinlink-h68k.dts" + +/ { + model = "HINLINK HNAS"; + compatible = "hinlink,hnas", "rockchip,rk3568"; + + fan0: pwm-fan { + compatible = "pwm-fan"; + #cooling-cells = <2>; + cooling-levels = <8 39 70 100 131 162 193 224 255>; + pwms = <&pwm0 0 10000 0>; + }; + + hdd_leds { + led_hdd1: led-hdd1 { + pinctrl-names = "default"; + pinctrl-0 = <&led_hdd1_pin>; + label = "led:hdd1"; + gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>; + }; + + led_hdd2: led-hdd2 { + pinctrl-names = "default"; + pinctrl-0 = <&led_hdd2_pin>; + label = "led:hdd2"; + gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>; + }; + + led_hdd3: led-hdd3 { + pinctrl-names = "default"; + pinctrl-0 = <&led_hdd3_pin>; + label = "led:hdd3"; + gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>; + }; + + led_hdd4: led-hdd4 { + pinctrl-names = "default"; + pinctrl-0 = <&led_hdd4_pin>; + label = "led:hdd4"; + gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; + }; + }; + + sata_pm_power: sata-pm-power { + compatible = "regulator-fixed"; + regulator-name = "sata_pm_power"; + regulator-enable-ramp-delay = <1000000>; + regulator-always-on; + regulator-boot-on; + + enable-active-high; + gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&sata_pm_power_en>; + vin-supply = <&vcc3v3_sys>; + }; + + sata_pm_reset: sata-pm-reset { + compatible = "regulator-fixed"; + regulator-name = "sata_pm_reset"; + regulator-enable-ramp-delay = <1000000>; + regulator-always-on; + regulator-boot-on; + + enable-active-high; + gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&sata_pm_reset_en>; + vin-supply = <&vcc3v3_sys>; + }; + + sata_hdd_power: sata-hdd-power { + compatible = "regulator-fixed"; + regulator-name = "sata_hdd_power"; + regulator-enable-ramp-delay = <1000000>; + regulator-always-on; + regulator-boot-on; + + enable-active-high; + gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&sata_hdd_power_en>; + vin-supply = <&vcc5v0_sys>; + }; +}; + +&gmac0 { + status = "disabled"; +}; + +&gmac1 { + status = "disabled"; +}; + +&pinctrl { + hdd-leds { + led_hdd1_pin: led-hdd1-pin { + rockchip,pins = <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_hdd2_pin: led-hdd2-pin { + rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_hdd3_pin: led-hdd3-pin { + rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_hdd4_pin: led-hdd4-pin { + rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sata-pm { + sata_pm_power_en: sata-pm-power-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + sata_pm_reset_en: sata-pm-reset-en { + rockchip,pins = <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + sata_hdd_power_en: sata-hdd-power-en { + rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +&pwm0 { + status = "okay"; +}; + +&cpu_thermal { + trips { + trip0: trip-point@0 { + temperature = <45000>; + hysteresis = <5000>; + type = "active"; + }; + trip1: trip-point@1 { + temperature = <50000>; + hysteresis = <5000>; + type = "active"; + }; + trip2: trip-point@2 { + temperature = <55000>; + hysteresis = <5000>; + type = "active"; + }; + trip3: trip-point@3 { + temperature = <60000>; + hysteresis = <5000>; + type = "active"; + }; + trip4: trip-point@4 { + temperature = <65000>; + hysteresis = <5000>; + type = "active"; + }; + trip5: trip-point@5 { + temperature = <70000>; + hysteresis = <5000>; + type = "active"; + }; + trip6: trip-point@6 { + temperature = <75000>; + hysteresis = <5000>; + type = "active"; + }; + trip7: trip-point@7 { + temperature = <80000>; + hysteresis = <1000>; + type = "active"; + }; + }; + cooling-maps { + map0 { + trip = <&trip0>; + cooling-device = <&fan0 0 1>; + contribution = <1024>; + }; + map1 { + trip = <&trip1>; + cooling-device = <&fan0 1 2>; + contribution = <1024>; + }; + map2 { + trip = <&trip2>; + cooling-device = <&fan0 2 3>; + contribution = <1024>; + }; + map3 { + trip = <&trip3>; + cooling-device = <&fan0 3 4>; + contribution = <1024>; + }; + map4 { + trip = <&trip4>; + cooling-device = <&fan0 4 5>; + contribution = <1024>; + }; + map5 { + trip = <&trip5>; + cooling-device = <&fan0 5 6>; + contribution = <1024>; + }; + map6 { + trip = <&trip6>; + cooling-device = <&fan0 6 7>; + contribution = <1024>; + }; + map7 { + trip = <&trip7>; + cooling-device = <&fan0 7 8>; + contribution = <1024>; + }; + }; +}; diff --git a/patch/kernel/archive/rockchip64-6.12/general-add-hdmi-mks-ips50-resolutions.patch b/patch/kernel/archive/rockchip64-6.12/general-add-hdmi-mks-ips50-resolutions.patch new file mode 100644 index 000000000000..c4da8ab19a7e --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.12/general-add-hdmi-mks-ips50-resolutions.patch @@ -0,0 +1,102 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxim Medvedev +Date: Mon, 1 Jan 2024 21:50:10 +0000 +Subject: HDMI EDID records for 800x480 resolution (a MKS IPS50 screen and similar) + +--- + drivers/gpu/drm/drm_edid.c | 12 +++++++++- + drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 1 + + drivers/video/hdmi.c | 2 ++ + include/linux/hdmi.h | 1 + + 4 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index a491280ca48c..6d74e4b62dcf 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -1536,10 +1536,20 @@ static const struct drm_display_mode edid_cea_modes_193[] = { + /* 219 - 4096x2160@120Hz 256:135 */ + { DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 1188000, 4096, 4184, + 4272, 4400, 0, 2160, 2168, 2178, 2250, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, ++ /* 220 - 800x480@60Hz 5:3 */ ++ { DRM_MODE("800x480", DRM_MODE_TYPE_DRIVER, 30240, 800, 850, ++ 920, 960, 0, 480, 510, 513, 525, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), ++ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_5_3, }, ++ /* 221 - 800x480@60Hz 5:3, MKS IPS50 */ ++ { DRM_MODE("800x480", DRM_MODE_TYPE_DRIVER, 30240, 800, 850, ++ 950, 960, 0, 480, 510, 513, 525, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), ++ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_5_3, }, + }; + + /* + * HDMI 1.4 4k modes. Index using the VIC. + */ +@@ -4167,11 +4177,11 @@ static bool drm_edid_has_cta_extension(const struct drm_edid *drm_edid) + } + + static __always_inline const struct drm_display_mode *cea_mode_for_vic(u8 vic) + { + BUILD_BUG_ON(1 + ARRAY_SIZE(edid_cea_modes_1) - 1 != 127); +- BUILD_BUG_ON(193 + ARRAY_SIZE(edid_cea_modes_193) - 1 != 219); ++ BUILD_BUG_ON(193 + ARRAY_SIZE(edid_cea_modes_193) - 1 != 221); + + if (vic >= 1 && vic < 1 + ARRAY_SIZE(edid_cea_modes_1)) + return &edid_cea_modes_1[vic - 1]; + if (vic >= 193 && vic < 193 + ARRAY_SIZE(edid_cea_modes_193)) + return &edid_cea_modes_193[vic - 193]; +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c +index db774d97918f..375fbc8a8747 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c +@@ -293,10 +293,11 @@ struct inno_hdmi_phy_drv_data { + static const struct pre_pll_config pre_pll_cfg_table[] = { + { 25175000, 25175000, 3, 125, 3, 1, 1, 1, 3, 3, 4, 0, 0xe00000}, + { 25175000, 31468750, 1, 41, 0, 3, 3, 1, 3, 3, 4, 0, 0xf5554f}, + { 27000000, 27000000, 1, 36, 0, 3, 3, 1, 2, 3, 4, 0, 0x0}, + { 27000000, 33750000, 1, 45, 0, 3, 3, 1, 3, 3, 4, 0, 0x0}, ++ { 30240000, 30240000, 5, 504, 3, 2, 2, 20, 4, 2, 2, 0, 0x0}, // Non standard screens like MKS IPS50 + { 31500000, 31500000, 1, 42, 0, 3, 3, 1, 2, 3, 4, 0, 0x0}, + { 31500000, 39375000, 1, 105, 1, 3, 3, 10, 0, 3, 4, 0, 0x0}, + { 33750000, 33750000, 1, 45, 0, 3, 3, 1, 2, 3, 4, 0, 0x0}, + { 33750000, 42187500, 1, 169, 2, 3, 3, 15, 0, 3, 4, 0, 0x0}, + { 35500000, 35500000, 1, 71, 2, 2, 2, 6, 0, 3, 4, 0, 0x0}, +diff --git a/drivers/video/hdmi.c b/drivers/video/hdmi.c +index 03c7f27dde49..8d68d34ce023 100644 +--- a/drivers/video/hdmi.c ++++ b/drivers/video/hdmi.c +@@ -1113,10 +1113,12 @@ hdmi_picture_aspect_get_name(enum hdmi_picture_aspect picture_aspect) + return "16:9"; + case HDMI_PICTURE_ASPECT_64_27: + return "64:27"; + case HDMI_PICTURE_ASPECT_256_135: + return "256:135"; ++ case HDMI_PICTURE_ASPECT_5_3: ++ return "5:3"; + case HDMI_PICTURE_ASPECT_RESERVED: + return "Reserved"; + } + return "Invalid"; + } +diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h +index 3bb87bf6bc65..be61a7954847 100644 +--- a/include/linux/hdmi.h ++++ b/include/linux/hdmi.h +@@ -97,10 +97,11 @@ enum hdmi_picture_aspect { + HDMI_PICTURE_ASPECT_NONE, + HDMI_PICTURE_ASPECT_4_3, + HDMI_PICTURE_ASPECT_16_9, + HDMI_PICTURE_ASPECT_64_27, + HDMI_PICTURE_ASPECT_256_135, ++ HDMI_PICTURE_ASPECT_5_3, + HDMI_PICTURE_ASPECT_RESERVED, + }; + + enum hdmi_active_aspect { + HDMI_ACTIVE_ASPECT_16_9_TOP = 2, +-- +Created with Armbian build tools https://github.com/armbian/build + diff --git a/patch/kernel/archive/rockchip64-6.12/general-st7796-driver.patch b/patch/kernel/archive/rockchip64-6.12/general-st7796-driver.patch new file mode 100644 index 000000000000..3a593347deb9 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.12/general-st7796-driver.patch @@ -0,0 +1,196 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxim Medvedev +Date: Fri, 12 May 2023 22:30:14 +0000 +Subject: Custom st7796 display module + +--- + +diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig +index 4d29e8c1014..265c7e3fe76 100644 +--- a/drivers/staging/fbtft/Kconfig ++++ b/drivers/staging/fbtft/Kconfig +@@ -82,6 +82,12 @@ config FB_TFT_ILI9481 + help + Generic Framebuffer support for ILI9481 + ++config FB_TFT_ST7796 ++ tristate "FB driver for the ST7796 LCD Controller" ++ depends on FB_TFT ++ help ++ Generic Framebuffer support for ST7796 ++ + config FB_TFT_ILI9486 + tristate "FB driver for the ILI9486 LCD Controller" + depends on FB_TFT +diff --git a/drivers/staging/fbtft/Makefile b/drivers/staging/fbtft/Makefile +index e9cdf0f0a7d..3c62b33e596 100644 +--- a/drivers/staging/fbtft/Makefile ++++ b/drivers/staging/fbtft/Makefile +@@ -16,6 +16,7 @@ obj-$(CONFIG_FB_TFT_ILI9325) += fb_ili9325.o + obj-$(CONFIG_FB_TFT_ILI9340) += fb_ili9340.o + obj-$(CONFIG_FB_TFT_ILI9341) += fb_ili9341.o + obj-$(CONFIG_FB_TFT_ILI9481) += fb_ili9481.o ++obj-$(CONFIG_FB_TFT_ST7796) += fb_st7796.o + obj-$(CONFIG_FB_TFT_ILI9486) += fb_ili9486.o + obj-$(CONFIG_FB_TFT_PCD8544) += fb_pcd8544.o + obj-$(CONFIG_FB_TFT_RA8875) += fb_ra8875.o +diff --git a/drivers/staging/fbtft/fb_st7796.c b/drivers/staging/fbtft/fb_st7796.c +new file mode 100755 +index 00000000000..c7deedbea69 +--- /dev/null ++++ b/drivers/staging/fbtft/fb_st7796.c +@@ -0,0 +1,154 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * FB driver for the ST7796 LCD display controller ++ * ++ * Based on ILI9486 from Christian Vogelgsang and adafruit22fb.c by Noralf Tronnes. ++ */ ++ ++#include ++#include ++#include ++#include ++#include