diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3047a04e..97ed7d05 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: - name: Build image run: | - source poky/oe-init-build-env build + source openembedded-core/oe-init-build-env build bitbake opencentauri-upgrade - name: Upload build artifacts (SWU only) diff --git a/.gitmodules b/.gitmodules index c701e16f..4665f8b5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,24 +1,28 @@ -[submodule "poky"] - path = poky - url = https://github.com/OpenCentauri/cosmos-poky.git - branch = scarthgap-crate-ua-fix [submodule "meta-sunxi"] path = meta-sunxi - url = https://github.com/linux-sunxi/meta-sunxi - branch = scarthgap + url = https://github.com/jamesturton/meta-sunxi + branch = wrynose [submodule "meta-openembedded"] path = meta-openembedded url = https://git.openembedded.org/meta-openembedded - branch = scarthgap + branch = wrynose [submodule "meta-arm"] path = meta-arm url = https://git.yoctoproject.org/meta-arm - branch = scarthgap + branch = wrynose [submodule "meta-swupdate"] path = meta-swupdate url = https://github.com/sbabic/meta-swupdate.git - branch = scarthgap -[submodule "meta-lts-mixins"] - path = meta-lts-mixins - url = https://git.yoctoproject.org/meta-lts-mixins - branch = scarthgap/rust + branch = wrynose +[submodule "meta-yocto"] + path = meta-yocto + url = https://git.yoctoproject.org/meta-yocto + branch = wrynose +[submodule "bitbake"] + path = bitbake + url = https://git.openembedded.org/bitbake + branch = 2.18 +[submodule "openembedded-core"] + path = openembedded-core + url = https://git.openembedded.org/openembedded-core + branch = wrynose diff --git a/bitbake b/bitbake new file mode 160000 index 00000000..d1f775f2 --- /dev/null +++ b/bitbake @@ -0,0 +1 @@ +Subproject commit d1f775f266610a79d5fbfe420b2843288c0011fe diff --git a/build/conf/bblayers.conf b/build/conf/bblayers.conf index f785b169..1a2274d2 100644 --- a/build/conf/bblayers.conf +++ b/build/conf/bblayers.conf @@ -6,9 +6,9 @@ BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ - ${TOPDIR}/../poky/meta \ - ${TOPDIR}/../poky/meta-poky \ - ${TOPDIR}/../poky/meta-yocto-bsp \ + ${TOPDIR}/../openembedded-core/meta \ + ${TOPDIR}/../meta-yocto/meta-poky \ + ${TOPDIR}/../meta-yocto/meta-yocto-bsp \ ${TOPDIR}/../meta-sunxi \ ${TOPDIR}/../meta-arm/meta-arm \ ${TOPDIR}/../meta-arm/meta-arm-toolchain \ @@ -16,6 +16,5 @@ BBLAYERS ?= " \ ${TOPDIR}/../meta-openembedded/meta-python \ ${TOPDIR}/../meta-openembedded/meta-networking \ ${TOPDIR}/../meta-swupdate \ - ${TOPDIR}/../meta-lts-mixins \ ${TOPDIR}/../meta-opencentauri \ " diff --git a/build/conf/local.conf b/build/conf/local.conf index 23aad61d..b1ebdc03 100644 --- a/build/conf/local.conf +++ b/build/conf/local.conf @@ -147,7 +147,7 @@ DISTRO ?= "cosmos" # meta/classes-recipe/image.bbclass and # meta/classes-recipe/core-image.bbclass for more details. # We default to enabling the debugging tweaks. -EXTRA_IMAGE_FEATURES ?= "debug-tweaks" +EXTRA_IMAGE_FEATURES ?= "allow-empty-password empty-root-password allow-root-login post-install-logging" # # Additional image features diff --git a/meta-arm b/meta-arm index a81c1991..eb9b2aff 160000 --- a/meta-arm +++ b/meta-arm @@ -1 +1 @@ -Subproject commit a81c19915b5b9e71ed394032e9a50fd06919e1cd +Subproject commit eb9b2afff9e2f5136274c9bbbf6b711716db1098 diff --git a/meta-lts-mixins b/meta-lts-mixins deleted file mode 160000 index c19b6da5..00000000 --- a/meta-lts-mixins +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c19b6da5a3afd3c892b3b1b44983e993ac6d5308 diff --git a/meta-opencentauri/conf/distro/cosmos.conf b/meta-opencentauri/conf/distro/cosmos.conf index c7119a1e..1e6664a8 100644 --- a/meta-opencentauri/conf/distro/cosmos.conf +++ b/meta-opencentauri/conf/distro/cosmos.conf @@ -10,7 +10,9 @@ PACKAGE_CLASSES = "package_ipk" DISTRO_FEATURES:remove = "ptest" DISTRO_FEATURES:append = " rust" -RUST_VERSION = "1.92.0" -CARGO_VERSION = "1.92.0" hostname:pn-base-files = "${DISTRO}" + +ERROR_QA:remove = "patch-status" + +PREFERRED_VERSION_linux-mainline = "6.12.80" diff --git a/meta-opencentauri/conf/layer.conf b/meta-opencentauri/conf/layer.conf index 11c900ab..3d1a0bd7 100644 --- a/meta-opencentauri/conf/layer.conf +++ b/meta-opencentauri/conf/layer.conf @@ -11,4 +11,4 @@ BBFILE_PATTERN_meta-opencentauri = "^${LAYERDIR}/" BBFILE_PRIORITY_meta-opencentauri = "6" LAYERDEPENDS_meta-opencentauri = "core sunxi" -LAYERSERIES_COMPAT_meta-opencentauri = "scarthgap" +LAYERSERIES_COMPAT_meta-opencentauri = "scarthgap wrynose" diff --git a/meta-opencentauri/wic/opencentauri-mmc-image.wks.in b/meta-opencentauri/files/wic/opencentauri-mmc-image.wks.in similarity index 100% rename from meta-opencentauri/wic/opencentauri-mmc-image.wks.in rename to meta-opencentauri/files/wic/opencentauri-mmc-image.wks.in diff --git a/meta-opencentauri/wic/opencentauri-usb-image.wks.in b/meta-opencentauri/files/wic/opencentauri-usb-image.wks.in similarity index 100% rename from meta-opencentauri/wic/opencentauri-usb-image.wks.in rename to meta-opencentauri/files/wic/opencentauri-usb-image.wks.in diff --git a/meta-opencentauri/images/opencentauri-image-base.bb b/meta-opencentauri/images/opencentauri-image-base.bb index a2281ced..0baf1e87 100644 --- a/meta-opencentauri/images/opencentauri-image-base.bb +++ b/meta-opencentauri/images/opencentauri-image-base.bb @@ -25,7 +25,6 @@ CORE_IMAGE_EXTRA_INSTALL += "\ mainsail \ fluidd \ atomscreen \ - guppyscreen \ grumpyscreen \ htop \ i2c-tools \ @@ -41,7 +40,6 @@ CORE_IMAGE_EXTRA_INSTALL += "\ opencentauri-bootlogos \ swu-flasher \ update-scripts \ - fbdoom \ v4l-utils \ iproute2 \ chrony \ diff --git a/meta-opencentauri/recipes-apps/atomscreen/atomscreen_0.1.bb b/meta-opencentauri/recipes-apps/atomscreen/atomscreen_0.1.bb index deec0fcb..ad404b3c 100644 --- a/meta-opencentauri/recipes-apps/atomscreen/atomscreen_0.1.bb +++ b/meta-opencentauri/recipes-apps/atomscreen/atomscreen_0.1.bb @@ -7,13 +7,16 @@ HOMEPAGE = "https://github.com/OpenCentauri/atomscreen" LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464" -S = "${WORKDIR}/git" - DEPENDS += "fontconfig openssl pkgconfig-native" RDEPENDS:${PN} += "fontconfig gui-switcher" INSANE_SKIP:${PN} = "already-stripped" +do_compile:prepend() { + export OPENSSL_LIB_DIR="${STAGING_LIBDIR}" + export OPENSSL_INCLUDE_DIR="${STAGING_INCDIR}" +} + INITSCRIPT_NAME = "atomscreen" INITSCRIPT_PARAMS = "disable" @@ -23,10 +26,10 @@ export BINDGEN_EXTRA_CLANG_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} --target= do_install:append() { install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/atomscreen.toml ${D}${sysconfdir}/klipper/config/ + install -m 0644 ${UNPACKDIR}/atomscreen.toml ${D}${sysconfdir}/klipper/config/ install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/atomscreen.init ${D}${sysconfdir}/init.d/atomscreen + install -m 0755 ${UNPACKDIR}/atomscreen.init ${D}${sysconfdir}/init.d/atomscreen } FILES:${PN} += " \ diff --git a/meta-opencentauri/recipes-apps/camera-led-bridge/camera-led-bridge_0.1.bb b/meta-opencentauri/recipes-apps/camera-led-bridge/camera-led-bridge_0.1.bb index 87c0d809..56820d3f 100644 --- a/meta-opencentauri/recipes-apps/camera-led-bridge/camera-led-bridge_0.1.bb +++ b/meta-opencentauri/recipes-apps/camera-led-bridge/camera-led-bridge_0.1.bb @@ -144,7 +144,7 @@ SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" SRC_URI[zmij-1.0.21.sha256sum] = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" -S = "${WORKDIR}/git/camera-led-bridge" +S = "${UNPACKDIR}/git/camera-led-bridge" INITSCRIPT_NAME = "camera-led-bridge" INITSCRIPT_PARAMS = "defaults 96 4" @@ -153,5 +153,5 @@ INSANE_SKIP:${PN} += "already-stripped" do_install:append() { install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/camera-led-bridge.init ${D}${sysconfdir}/init.d/camera-led-bridge + install -m 0755 ${UNPACKDIR}/camera-led-bridge.init ${D}${sysconfdir}/init.d/camera-led-bridge } diff --git a/meta-opencentauri/recipes-apps/doom/fbdoom_0.0.1.bb b/meta-opencentauri/recipes-apps/doom/fbdoom_0.0.1.bb index 519a7df5..fac2d405 100644 --- a/meta-opencentauri/recipes-apps/doom/fbdoom_0.0.1.bb +++ b/meta-opencentauri/recipes-apps/doom/fbdoom_0.0.1.bb @@ -16,8 +16,6 @@ SRC_URI = " \ SRC_URI[sha256sum] = "c1d1f430e623b5b02693a2ab42988f951fb66ae3bd3add06e557bdf36af0e24f" SRCREV = "6c599f50e9e8e9436a5c064f42836eb48ff6bde0" -S = "${WORKDIR}/git" - EXTRA_OEMAKE = " \ 'CC=${CC}' \ NOSDL=1 \ @@ -36,10 +34,10 @@ do_install() { # Install wad install -d ${D}${datadir}/doom - install -m 0644 ${WORKDIR}/DOOM1.WAD ${D}${datadir}/doom/doom1.wad + install -m 0644 ${UNPACKDIR}/DOOM1.WAD ${D}${datadir}/doom/doom1.wad # Install play-doom script - install -m 0755 ${WORKDIR}/play-doom.sh ${D}${bindir}/play-doom + install -m 0755 ${UNPACKDIR}/play-doom.sh ${D}${bindir}/play-doom } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/fluidd/fluidd_1.37.2.bb b/meta-opencentauri/recipes-apps/fluidd/fluidd_1.37.2.bb index 9b810fff..5a77955d 100644 --- a/meta-opencentauri/recipes-apps/fluidd/fluidd_1.37.2.bb +++ b/meta-opencentauri/recipes-apps/fluidd/fluidd_1.37.2.bb @@ -15,7 +15,7 @@ SRC_URI = "https://github.com/fluidd-core/fluidd/releases/download/v${PV}/fluidd " SRC_URI[sha256sum] = "e42d4e8b14a3a0b20573485c882cc4dcfac33d9fbd946c8803a942be282e2b6e" -S = "${WORKDIR}/fluidd" +S = "${UNPACKDIR}/fluidd" RDEPENDS:${PN} = " \ klipper \ @@ -35,12 +35,12 @@ do_install() { install -d ${D}/var/www/fluidd cp -r ${S}/* ${D}/var/www/fluidd/ install -m 0644 \ - ${WORKDIR}/opencentauri-fluidd-theme/logo_opencentauri.svg \ - ${WORKDIR}/opencentauri-fluidd-theme/carbon-logo-red.webp \ - ${WORKDIR}/opencentauri-fluidd-theme/opencentauri-logo-small.png \ - ${WORKDIR}/opencentauri-fluidd-theme/opencentauri-theme.css \ + ${UNPACKDIR}/opencentauri-fluidd-theme/logo_opencentauri.svg \ + ${UNPACKDIR}/opencentauri-fluidd-theme/carbon-logo-red.webp \ + ${UNPACKDIR}/opencentauri-fluidd-theme/opencentauri-logo-small.png \ + ${UNPACKDIR}/opencentauri-fluidd-theme/opencentauri-theme.css \ ${D}/var/www/fluidd/ - ${PYTHON} ${WORKDIR}/opencentauri-fluidd-theme/apply-opencentauri-fluidd-theme.py ${D}/var/www/fluidd + ${PYTHON} ${UNPACKDIR}/opencentauri-fluidd-theme/apply-opencentauri-fluidd-theme.py ${D}/var/www/fluidd } diff --git a/meta-opencentauri/recipes-apps/grumyscreen/grumpyscreen_20260518.bb b/meta-opencentauri/recipes-apps/grumyscreen/grumpyscreen_20260518.bb index 11774c03..3f36e8f2 100644 --- a/meta-opencentauri/recipes-apps/grumyscreen/grumpyscreen_20260518.bb +++ b/meta-opencentauri/recipes-apps/grumyscreen/grumpyscreen_20260518.bb @@ -17,8 +17,6 @@ SRC_URI = "gitsm://github.com/pellcorp/grumpyscreen.git;protocol=https;branch=ma SRCREV = "ea5c74f8a8f40384fcae79f75d58456123d296c7" PR = "r3" -S = "${WORKDIR}/git" - RDEPENDS:${PN} = " \ klipper \ moonraker \ @@ -87,10 +85,10 @@ do_install() { install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/grumpyscreen.cfg ${D}${sysconfdir}/klipper/config/ + install -m 0644 ${UNPACKDIR}/grumpyscreen.cfg ${D}${sysconfdir}/klipper/config/ install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/grumpyscreen.init ${D}${sysconfdir}/init.d/grumpyscreen + install -m 0755 ${UNPACKDIR}/grumpyscreen.init ${D}${sysconfdir}/init.d/grumpyscreen } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/guppyscreen/guppyscreen_0.0.26.bb b/meta-opencentauri/recipes-apps/guppyscreen/guppyscreen_0.0.26.bb index e751a65d..e502798c 100644 --- a/meta-opencentauri/recipes-apps/guppyscreen/guppyscreen_0.0.26.bb +++ b/meta-opencentauri/recipes-apps/guppyscreen/guppyscreen_0.0.26.bb @@ -19,8 +19,6 @@ SRC_URI = "gitsm://github.com/ballaswag/guppyscreen.git;protocol=https;branch=ma " SRCREV = "cf5c6d7539a2dca090ca71c177f57a2d96df443a" -S = "${WORKDIR}/git" - DEPENDS = "cmake-native" RDEPENDS:${PN} = " \ @@ -102,10 +100,10 @@ do_install() { install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/guppyconfig.json ${D}${sysconfdir}/klipper/config/ + install -m 0644 ${UNPACKDIR}/guppyconfig.json ${D}${sysconfdir}/klipper/config/ install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/guppyscreen.init ${D}${sysconfdir}/init.d/guppyscreen + install -m 0755 ${UNPACKDIR}/guppyscreen.init ${D}${sysconfdir}/init.d/guppyscreen } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/helixscreen/helixscreen_0.1.bb b/meta-opencentauri/recipes-apps/helixscreen/helixscreen_0.1.bb index 80d4b92d..4db2f4aa 100644 --- a/meta-opencentauri/recipes-apps/helixscreen/helixscreen_0.1.bb +++ b/meta-opencentauri/recipes-apps/helixscreen/helixscreen_0.1.bb @@ -8,5 +8,3 @@ SRC_URI = "gitsm://github.com/prestonbrown/helixscreen.git;protocol=https;branch SRCREV = "3aa8d5f6d904e7e66bfd0d647802a85f49317e02" inherit pkgconfig - -S = "${WORKDIR}/git" diff --git a/meta-opencentauri/recipes-apps/katapult/katapult_1.0.0.inc b/meta-opencentauri/recipes-apps/katapult/katapult_1.0.0.inc index 1b2924ad..a5ec2fe7 100644 --- a/meta-opencentauri/recipes-apps/katapult/katapult_1.0.0.inc +++ b/meta-opencentauri/recipes-apps/katapult/katapult_1.0.0.inc @@ -11,8 +11,6 @@ SRC_URI = " \ " SRCREV = "32584cbbb66c4dc85fc87c0fa87ed508f7c2df52" -S = "${WORKDIR}/git" - DEPENDS = " \ python3-native \ " \ No newline at end of file diff --git a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-bed_2026.02.00.bb b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-bed_2026.02.00.bb index 7c503e88..bdad479a 100644 --- a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-bed_2026.02.00.bb +++ b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-bed_2026.02.00.bb @@ -30,7 +30,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/klipper-firmware-bed-init-d ${D}${sysconfdir}/init.d/klipper-firmware-bed + cp ${UNPACKDIR}/klipper-firmware-bed-init-d ${D}${sysconfdir}/init.d/klipper-firmware-bed chmod 0755 ${D}${sysconfdir}/init.d/klipper-firmware-bed } diff --git a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-dsp_2026.02.00.bb b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-dsp_2026.02.00.bb index 5246c085..565eb0e1 100644 --- a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-dsp_2026.02.00.bb +++ b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-dsp_2026.02.00.bb @@ -21,7 +21,7 @@ INHIBIT_PACKAGE_STRIP = "1" INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_SYSROOT_STRIP = "1" -INSANE_SKIP:${PN} = "arch" +INSANE_SKIP:${PN} = "arch buildpaths" do_install() { install -d ${D}/lib/firmware @@ -29,7 +29,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/klipper-firmware-dsp-init-d ${D}${sysconfdir}/init.d/klipper-firmware-dsp + cp ${UNPACKDIR}/klipper-firmware-dsp-init-d ${D}${sysconfdir}/init.d/klipper-firmware-dsp chmod 0755 ${D}${sysconfdir}/init.d/klipper-firmware-dsp } diff --git a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-toolhead_2026.02.00.bb b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-toolhead_2026.02.00.bb index c3ac0a81..8cb85ec4 100644 --- a/meta-opencentauri/recipes-apps/klipper/kalico-firmware-toolhead_2026.02.00.bb +++ b/meta-opencentauri/recipes-apps/klipper/kalico-firmware-toolhead_2026.02.00.bb @@ -30,7 +30,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/klipper-firmware-toolhead-init-d ${D}${sysconfdir}/init.d/klipper-firmware-toolhead + cp ${UNPACKDIR}/klipper-firmware-toolhead-init-d ${D}${sysconfdir}/init.d/klipper-firmware-toolhead chmod 0755 ${D}${sysconfdir}/init.d/klipper-firmware-toolhead } diff --git a/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.bb b/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.bb index dc8e319a..efa77137 100644 --- a/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.bb +++ b/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.bb @@ -95,15 +95,15 @@ do_install() { # Install default kalico config install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/printer.cfg ${D}${sysconfdir}/klipper/config/ + install -m 0644 ${UNPACKDIR}/printer.cfg ${D}${sysconfdir}/klipper/config/ # Copy non-printer .cfg files to readonly folder install -d ${D}${sysconfdir}/klipper/config/klipper-readonly - install -m 0644 ${WORKDIR}/machine.cfg ${WORKDIR}/client.cfg ${WORKDIR}/shell.cfg ${WORKDIR}/macros.cfg ${WORKDIR}/calibration.cfg ${WORKDIR}/screen.cfg ${WORKDIR}/kamp.cfg ${D}${sysconfdir}/klipper/config/klipper-readonly + install -m 0644 ${UNPACKDIR}/machine.cfg ${UNPACKDIR}/client.cfg ${UNPACKDIR}/shell.cfg ${UNPACKDIR}/macros.cfg ${UNPACKDIR}/calibration.cfg ${UNPACKDIR}/screen.cfg ${UNPACKDIR}/kamp.cfg ${D}${sysconfdir}/klipper/config/klipper-readonly # Install SysVinit script install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/klipper-init-d ${D}${sysconfdir}/init.d/klipper + install -m 0755 ${UNPACKDIR}/klipper-init-d ${D}${sysconfdir}/init.d/klipper } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.inc b/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.inc index 5767cedc..ac867034 100644 --- a/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.inc +++ b/meta-opencentauri/recipes-apps/klipper/kalico_2026.02.00.inc @@ -17,8 +17,6 @@ SRCREV = "fa59d011f425c5aef6f06abc08efe43f7f6c569d" PR = "r7" -S = "${WORKDIR}/git" - DEPENDS = " \ python3-native \ " diff --git a/meta-opencentauri/recipes-apps/klipper/klipper_0.13.0.bb b/meta-opencentauri/recipes-apps/klipper/klipper_0.13.0.bb index ef4667cf..54b3fa22 100644 --- a/meta-opencentauri/recipes-apps/klipper/klipper_0.13.0.bb +++ b/meta-opencentauri/recipes-apps/klipper/klipper_0.13.0.bb @@ -10,8 +10,6 @@ SRC_URI = "git://github.com/Klipper3d/klipper.git;protocol=https;branch=master \ file://klipper-init-d" SRCREV = "61c0c8d2ef40340781835dd53fb04cc7a454e37a" -S = "${WORKDIR}/git" - inherit python3-dir update-rc.d DEPENDS = " \ @@ -77,7 +75,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - cp -r ${WORKDIR}/klipper-init-d ${D}${sysconfdir}/init.d/klipper + cp -r ${UNPACKDIR}/klipper-init-d ${D}${sysconfdir}/init.d/klipper chmod 0755 ${D}${sysconfdir}/init.d/klipper } diff --git a/meta-opencentauri/recipes-apps/lzbench/lzbench_2.2.bb b/meta-opencentauri/recipes-apps/lzbench/lzbench_2.2.bb index 46648885..0c561d58 100644 --- a/meta-opencentauri/recipes-apps/lzbench/lzbench_2.2.bb +++ b/meta-opencentauri/recipes-apps/lzbench/lzbench_2.2.bb @@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d328bcd7c6004f4f7adae0842ed19146" SRCREV = "74d7438dbfc8119055796053b24abd29e65617a0" SRC_URI = "git://github.com/inikep/lzbench.git;protocol=https;branch=master" -S = "${WORKDIR}/git" - DEPENDS = "" do_configure[noexec] = "1" diff --git a/meta-opencentauri/recipes-apps/mainsail/mainsail_2.17.0.bb b/meta-opencentauri/recipes-apps/mainsail/mainsail_2.17.0.bb index 9b3ab559..996e4180 100644 --- a/meta-opencentauri/recipes-apps/mainsail/mainsail_2.17.0.bb +++ b/meta-opencentauri/recipes-apps/mainsail/mainsail_2.17.0.bb @@ -10,7 +10,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI = "https://github.com/mainsail-crew/mainsail/releases/download/v${PV}/mainsail.zip;subdir=mainsail" SRC_URI[sha256sum] = "d010f4df25557d520ccdbb8e42fc381df2288e6a5c72d3838a5a2433c7a31d4e" -S = "${WORKDIR}/mainsail" +S = "${UNPACKDIR}/mainsail" RDEPENDS:${PN} = " \ klipper \ diff --git a/meta-opencentauri/recipes-apps/mcu-flasher/mcu-flasher_0.1.0.bb b/meta-opencentauri/recipes-apps/mcu-flasher/mcu-flasher_0.1.0.bb index 8c0d46ce..d41f169f 100644 --- a/meta-opencentauri/recipes-apps/mcu-flasher/mcu-flasher_0.1.0.bb +++ b/meta-opencentauri/recipes-apps/mcu-flasher/mcu-flasher_0.1.0.bb @@ -1,4 +1,4 @@ -inherit cargo +inherit cargo pkgconfig SUMMARY = "Serial Multiplexer" HOMEPAGE = "https://github.com/OpenCentauri/OpenCentauri" @@ -11,10 +11,10 @@ SRC_URI += " \ SRCREV = "fb829bd0a469e1c54cb9d2aa1bd98e14afd9f351" PR = "r1" -S = "${WORKDIR}/git/mcu-flasher" +S = "${UNPACKDIR}/${PN}-${PV}/mcu-flasher" CARGO_SRC_DIR = "" -DEPENDS += "eudev pkgconfig-native" +DEPENDS += "eudev" INSANE_SKIP:${PN} += "already-stripped" diff --git a/meta-opencentauri/recipes-apps/mjpg-streamer/mjpg-streamer_1.0.0.bb b/meta-opencentauri/recipes-apps/mjpg-streamer/mjpg-streamer_1.0.0.bb index 93592753..27397c32 100644 --- a/meta-opencentauri/recipes-apps/mjpg-streamer/mjpg-streamer_1.0.0.bb +++ b/meta-opencentauri/recipes-apps/mjpg-streamer/mjpg-streamer_1.0.0.bb @@ -9,11 +9,11 @@ SRC_URI = "git://github.com/jacksonliam/mjpg-streamer.git;protocol=https;branch= DEPENDS = "libgphoto2 v4l-utils" -S = "${WORKDIR}/git/mjpg-streamer-experimental" +S = "${UNPACKDIR}/git/mjpg-streamer-experimental" inherit cmake update-rc.d -OECMAKE_GENERATOR="Unix Makefiles" +OECMAKE_GENERATOR = "Unix Makefiles" TARGET_CFLAGS += "-fcommon" INITSCRIPT_NAME = "mjpg-streamer" @@ -24,7 +24,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/mjpg-streamer-init-d ${D}${sysconfdir}/init.d/mjpg-streamer + cp ${UNPACKDIR}/mjpg-streamer-init-d ${D}${sysconfdir}/init.d/mjpg-streamer chmod 0755 ${D}${sysconfdir}/init.d/mjpg-streamer } diff --git a/meta-opencentauri/recipes-apps/moonraker/moonraker_0.10.0.bb b/meta-opencentauri/recipes-apps/moonraker/moonraker_0.10.0.bb index 5770b60c..b344ae37 100644 --- a/meta-opencentauri/recipes-apps/moonraker/moonraker_0.10.0.bb +++ b/meta-opencentauri/recipes-apps/moonraker/moonraker_0.10.0.bb @@ -19,8 +19,6 @@ SRC_URI = " \ SRCREV = "16e530eb663218faa6ccd97ffb0583f1880e2983" -S = "${WORKDIR}/git" - PR = "r1" inherit python3-dir update-rc.d @@ -52,6 +50,7 @@ RDEPENDS:${PN} = " \ python3-smart-open \ python3-msgspec \ python3-uvloop \ + python3-aiofiles \ kalico \ " @@ -74,11 +73,11 @@ do_install() { # Install default moonraker config install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/moonraker.conf ${D}${sysconfdir}/klipper/config/ + install -m 0644 ${UNPACKDIR}/moonraker.conf ${D}${sysconfdir}/klipper/config/ # Copy readonly config file to readonly folder install -d ${D}${sysconfdir}/klipper/config/moonraker-readonly - install -m 0644 ${WORKDIR}/moonraker-readonly.conf ${D}${sysconfdir}/klipper/config/moonraker-readonly/moonraker.conf + install -m 0644 ${UNPACKDIR}/moonraker-readonly.conf ${D}${sysconfdir}/klipper/config/moonraker-readonly/moonraker.conf # Symlink gcodes to /user-resource ln -sf /user-resource/gcodes ${D}${sysconfdir}/klipper/gcodes @@ -87,7 +86,7 @@ do_install() { # Install SysVinit script install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/moonraker-init-d ${D}${sysconfdir}/init.d/moonraker + install -m 0755 ${UNPACKDIR}/moonraker-init-d ${D}${sysconfdir}/init.d/moonraker } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/screen-actions/screen-actions_1.0.bb b/meta-opencentauri/recipes-apps/screen-actions/screen-actions_1.0.bb index 3b87e288..9c36a221 100644 --- a/meta-opencentauri/recipes-apps/screen-actions/screen-actions_1.0.bb +++ b/meta-opencentauri/recipes-apps/screen-actions/screen-actions_1.0.bb @@ -7,12 +7,14 @@ SRC_URI = " \ file://uiclear \ " +S = "${UNPACKDIR}" + RDEPENDS:${PN} = "curl" do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/uiprompt ${D}${bindir}/uiprompt - install -m 0755 ${WORKDIR}/uiclear ${D}${bindir}/uiclear + install -m 0755 ${S}/uiprompt ${D}${bindir}/uiprompt + install -m 0755 ${S}/uiclear ${D}${bindir}/uiclear } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-apps/serial-multiplexer/serial-multiplexer_0.1.bb b/meta-opencentauri/recipes-apps/serial-multiplexer/serial-multiplexer_0.1.bb index 98f68ea1..482e6168 100644 --- a/meta-opencentauri/recipes-apps/serial-multiplexer/serial-multiplexer_0.1.bb +++ b/meta-opencentauri/recipes-apps/serial-multiplexer/serial-multiplexer_0.1.bb @@ -134,4 +134,4 @@ SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661 SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -S = "${WORKDIR}/git/serial-multiplexer" +S = "${UNPACKDIR}/git/serial-multiplexer" diff --git a/meta-opencentauri/recipes-apps/ustreamer/ustreamer_6.55.bb b/meta-opencentauri/recipes-apps/ustreamer/ustreamer_6.55.bb index 5c5ea395..c1f7fe80 100644 --- a/meta-opencentauri/recipes-apps/ustreamer/ustreamer_6.55.bb +++ b/meta-opencentauri/recipes-apps/ustreamer/ustreamer_6.55.bb @@ -10,8 +10,6 @@ inherit pkgconfig update-rc.d PV = "6.55" -S = "${WORKDIR}/git" - INITSCRIPT_NAME = "ustreamer" INITSCRIPT_PARAMS = "defaults 97 5" @@ -31,7 +29,7 @@ do_install() { install -m 0755 ${S}/src/ustreamer.bin ${D}${bindir}/ustreamer install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/ustreamer-init-d ${D}${sysconfdir}/init.d/ustreamer + install -m 0755 ${UNPACKDIR}/ustreamer-init-d ${D}${sysconfdir}/init.d/ustreamer } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-bsp/u-boot/files/0001-Add-elegoo-centauri-carbon1.dts.patch b/meta-opencentauri/recipes-bsp/u-boot/files/0001-Add-elegoo-centauri-carbon1.dts.patch index 17128902..66b8454c 100644 --- a/meta-opencentauri/recipes-bsp/u-boot/files/0001-Add-elegoo-centauri-carbon1.dts.patch +++ b/meta-opencentauri/recipes-bsp/u-boot/files/0001-Add-elegoo-centauri-carbon1.dts.patch @@ -1,23 +1,26 @@ -From 618c5a97497dd5934dc5e8a5b6861bdaa6af5916 Mon Sep 17 00:00:00 2001 +From 50447591f5f73e649410b9de49ebdd0893c6b028 Mon Sep 17 00:00:00 2001 From: James Turton -Date: Mon, 16 Feb 2026 21:36:45 +0100 +Date: Thu, 30 Apr 2026 14:12:09 +0200 Subject: [PATCH] Add elegoo-centauri-carbon1.dts Signed-off-by: James Turton Upstream-Status: Pending [Not submitted to upstream yet] --- - arch/arm/dts/Makefile | 1 + - 1 file changed, 1 insertion(+) + arch/arm/dts/Makefile | 2 ++ + 1 file changed, 2 insertions(+) diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 04b9863b5d5..b28ed796445 100644 +index e54213f9599..d0ceb213c12 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -810,6 +810,7 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \ - sun8i-v3-sl631-imx179.dtb \ - sun8i-v3s-licheepi-zero.dtb - dtb-$(CONFIG_MACH_SUN8I_R528) += \ -+ elegoo-centauri-carbon1.dtb \ - sun8i-t113s-mangopi-mq-r-t113.dtb - dtb-$(CONFIG_MACH_SUN50I_H5) += \ - sun50i-h5-bananapi-m2-plus.dtb \ +@@ -1199,6 +1199,8 @@ dtb-$(CONFIG_TARGET_SC594_SOM_EZLITE) += sc594-som-ezlite.dtb + dtb-$(CONFIG_TARGET_SC598_SOM_EZKIT) += sc598-som-ezkit.dtb + dtb-$(CONFIG_TARGET_SC598_SOM_EZLITE) += sc598-som-ezlite.dtb + ++dtb-$(CONFIG_MACH_SUN8I_R528) += elegoo-centauri-carbon1.dtb ++ + ifneq ($(CONFIG_TARGET_IMX8MP_RSB3720A1_4G)$(CONFIG_TARGET_IMX8MP_RSB3720A1_6G),) + dtb-y += imx8mp-rsb3720-a1.dtb + endif +-- +2.51.0 diff --git a/meta-opencentauri/recipes-bsp/u-boot/files/0001-sunxi-r528-add-display-support-with-RB-channel-swap.patch b/meta-opencentauri/recipes-bsp/u-boot/files/0001-sunxi-r528-add-display-support-with-RB-channel-swap.patch index cefab9f8..7e8d2e9d 100644 --- a/meta-opencentauri/recipes-bsp/u-boot/files/0001-sunxi-r528-add-display-support-with-RB-channel-swap.patch +++ b/meta-opencentauri/recipes-bsp/u-boot/files/0001-sunxi-r528-add-display-support-with-RB-channel-swap.patch @@ -1,6 +1,6 @@ -From 29046b9b99c1d3aa38c5252c75a2ee41a7b457cc Mon Sep 17 00:00:00 2001 +From 133bc25beab7e3447519fb251070cefcc487e6d0 Mon Sep 17 00:00:00 2001 From: Timo V -Date: Tue, 10 Mar 2026 20:15:20 +0100 +Date: Thu, 30 Apr 2026 13:51:58 +0200 Subject: [PATCH] sunxi: r528: add display support with RB channel swap Add display pipeline support for the Allwinner R528/T113s SoC: @@ -14,35 +14,33 @@ Add display pipeline support for the Allwinner R528/T113s SoC: - RB channel swap support via TCON0_CTL bit 23 (lcdc.h, sunxi_lcd.c) controlled by sunxi,rb-swap DT property +All NCAT2 CCU register accesses use void* + raw offsets (matching the +existing H6 code style in clock_sun50i_h6.c) rather than struct +sunxi_ccm_reg, which is not defined for H6/NCAT2 machines. + Upstream-Status: Pending [Not submitted to upstream yet] --- - .../include/asm/arch-sunxi/clock_sun50i_h6.h | 45 +++++++++- - .../include/asm/arch-sunxi/cpu_sunxi_ncat2.h | 3 + - arch/arm/include/asm/arch-sunxi/lcdc.h | 1 + - arch/arm/mach-sunxi/Kconfig | 3 +- - arch/arm/mach-sunxi/clock_sun50i_h6.c | 90 +++++++++++++++++++ - drivers/video/Kconfig | 1 + - drivers/video/sunxi/Makefile | 3 +- - drivers/video/sunxi/lcdc.c | 72 +++++++++++++++ - drivers/video/sunxi/sunxi_de2.c | 37 ++++++++ - drivers/video/sunxi/sunxi_lcd.c | 44 +++++++-- - 10 files changed, 290 insertions(+), 9 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h b/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h -index a84a57e5b41..0845fd6f848 100644 +index 45fa4ab6e57..284b0b59fca 100644 --- a/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h +++ b/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h -@@ -344,6 +344,49 @@ struct sunxi_ccm_reg { +@@ -169,6 +169,54 @@ #ifndef __ASSEMBLY__ void clock_set_pll1(unsigned int hz); unsigned int clock_get_pll6(void); --#endif -+ +#ifdef CONFIG_VIDEO_DE2 ++/* NCAT2 (R528/T113-S3) CCU register offsets */ ++#define CCU_NCAT2_PLL_VIDEO0_CFG 0x040 ++#define CCU_NCAT2_DE_CLK_CFG 0x600 ++#define CCU_NCAT2_DE_GATE_RESET 0x60c ++#define CCU_NCAT2_DPSS_GATE_RESET 0xabc ++#define CCU_NCAT2_LCD0_CLK_CFG 0xb60 ++#define CCU_NCAT2_LCD_GATE_RESET 0xb7c ++ +/* -+ * PLL_VIDEO0 bit fields -- struct field pll3_cfg, CCM offset 0x040. -+ * Named PLL_VIDEO0 in the R528/T113 datasheet; the struct field retains -+ * the legacy "pll3" name shared with H6/H616. ++ * PLL_VIDEO0 bit fields -- CCU offset 0x040. ++ * Named PLL_VIDEO0 in the R528/T113 datasheet. + * + * freq_4x = 24MHz * N / (D1+1), freq_1x = freq_4x / 4 + */ @@ -79,24 +77,23 @@ index a84a57e5b41..0845fd6f848 100644 +void clock_set_pll3(unsigned int hz); +unsigned int clock_get_pll3(void); +#endif /* CONFIG_VIDEO_DE2 */ -+ -+#endif /* __ASSEMBLY__ */ + #endif #endif /* _SUNXI_CLOCK_SUN50I_H6_H */ diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sunxi_ncat2.h b/arch/arm/include/asm/arch-sunxi/cpu_sunxi_ncat2.h -index 908a582ae0f..4ae93b5095e 100644 +index bcfdc0a41c5..44497eeab2a 100644 --- a/arch/arm/include/asm/arch-sunxi/cpu_sunxi_ncat2.h +++ b/arch/arm/include/asm/arch-sunxi/cpu_sunxi_ncat2.h -@@ -25,6 +25,9 @@ +@@ -31,6 +31,9 @@ #define SUNXI_MMC1_BASE 0x04021000 #define SUNXI_MMC2_BASE 0x04022000 +#define SUNXI_DE2_BASE 0x05000000 +#define SUNXI_LCD0_BASE 0x05461000 + + #ifndef CONFIG_MACH_SUN55I_A523 #define SUNXI_R_CPUCFG_BASE 0x07000400 - #define SUNXI_PRCM_BASE 0x07010000 - + #endif diff --git a/arch/arm/include/asm/arch-sunxi/lcdc.h b/arch/arm/include/asm/arch-sunxi/lcdc.h index 90216bcfd51..05dc7f44e7a 100644 --- a/arch/arm/include/asm/arch-sunxi/lcdc.h @@ -109,19 +106,29 @@ index 90216bcfd51..05dc7f44e7a 100644 #define SUNXI_LCDC_TCON0_DCLK_DIV(n) ((n) << 0) #define SUNXI_LCDC_TCON0_DCLK_ENABLE (0xf << 28) #define SUNXI_LCDC_TCON0_TIMING_H_BP(n) (((n) - 1) << 0) +@@ -123,8 +124,9 @@ void lcdc_tcon0_mode_set(struct sunxi_lcdc_reg * const lcdc, + void lcdc_tcon1_mode_set(struct sunxi_lcdc_reg * const lcdc, + const struct display_timing *mode, + bool ext_hvsync, bool is_composite); ++struct sunxi_ccm_reg; + void lcdc_pll_set(struct sunxi_ccm_reg * const ccm, int tcon, + int dotclock, int *clk_div, int *clk_double, + bool is_composite); + + #endif /* _LCDC_H */ diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig -index a4a8d8e9445..ab0629548fc 100644 +index e979ee4a2cc..b3fcb63b71d 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig -@@ -362,6 +362,7 @@ config MACH_SUN8I_R528 +@@ -473,6 +473,7 @@ config MACH_SUN8I_R528 select SUNXI_GEN_NCAT2 select SUNXI_NEW_PINCTRL select MMC_SUNXI_HAS_NEW_MODE + select SUNXI_DE2 select SUPPORT_SPL select DRAM_SUN20I_D1 - -@@ -986,7 +987,7 @@ config VIDEO_DE2 + imply OF_UPSTREAM +@@ -1114,7 +1115,7 @@ config VIDEO_DE2 depends on SUNXI_DE2 select VIDEO select DISPLAY @@ -131,12 +138,12 @@ index a4a8d8e9445..ab0629548fc 100644 default y ---help--- diff --git a/arch/arm/mach-sunxi/clock_sun50i_h6.c b/arch/arm/mach-sunxi/clock_sun50i_h6.c -index bea91c78bc5..204d259715e 100644 +index 80004f13a1e..d146e874e33 100644 --- a/arch/arm/mach-sunxi/clock_sun50i_h6.c +++ b/arch/arm/mach-sunxi/clock_sun50i_h6.c -@@ -161,3 +161,93 @@ int clock_twi_onoff(int port, int state) +@@ -262,3 +262,91 @@ unsigned int clock_get_pll6(void) - return 0; + return 24000000U * n / m / div1 / div2; } + +#ifdef CONFIG_VIDEO_DE2 @@ -156,12 +163,11 @@ index bea91c78bc5..204d259715e 100644 + +void clock_set_pll3(unsigned int clk) +{ -+ struct sunxi_ccm_reg *const ccm = -+ (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; ++ void *const ccm = (void *)SUNXI_CCM_BASE; + int i; + + if (clk == 0) { -+ clrbits_le32(&ccm->pll3_cfg, CCM_PLL_VIDEO0_CTRL_EN); ++ clrbits_le32(ccm + CCU_NCAT2_PLL_VIDEO0_CFG, CCM_PLL_VIDEO0_CTRL_EN); + return; + } + @@ -203,24 +209,23 @@ index bea91c78bc5..204d259715e 100644 + writel(CCM_PLL_VIDEO0_CTRL_EN | CCM_PLL_VIDEO0_LDO_EN | + CCM_PLL_VIDEO0_LOCK_EN | + CCM_PLL_VIDEO0_CTRL_N(n) | CCM_PLL_VIDEO0_CTRL_D1(d1), -+ &ccm->pll3_cfg); ++ ccm + CCU_NCAT2_PLL_VIDEO0_CFG); + + /* Wait for PLL to lock */ + for (i = 0; i < PLL_LOCK_TIMEOUT_US; i++) { -+ if (readl(&ccm->pll3_cfg) & CCM_PLL_VIDEO0_LOCK) ++ if (readl(ccm + CCU_NCAT2_PLL_VIDEO0_CFG) & CCM_PLL_VIDEO0_LOCK) + break; + udelay(1); + } + + /* Enable PLL output */ -+ setbits_le32(&ccm->pll3_cfg, CCM_PLL_VIDEO0_OUT_EN); ++ setbits_le32(ccm + CCU_NCAT2_PLL_VIDEO0_CFG, CCM_PLL_VIDEO0_OUT_EN); +} + +unsigned int clock_get_pll3(void) +{ -+ struct sunxi_ccm_reg *const ccm = -+ (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; -+ uint32_t rval = readl(&ccm->pll3_cfg); ++ void *const ccm = (void *)SUNXI_CCM_BASE; ++ uint32_t rval = readl(ccm + CCU_NCAT2_PLL_VIDEO0_CFG); + int n = ((rval & CCM_PLL_VIDEO0_CTRL_N_MASK) >> CCM_PLL_VIDEO0_CTRL_N_SHIFT) + 1; + int d1 = ((rval >> CCM_PLL_VIDEO0_CTRL_D1_SHIFT) & 1) + 1; + @@ -229,10 +234,10 @@ index bea91c78bc5..204d259715e 100644 +} +#endif /* CONFIG_VIDEO_DE2 */ diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig -index ab927641bb7..3a9ccfaaf42 100644 +index b5777da5218..6628122eebc 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig -@@ -792,6 +792,7 @@ config CONSOLE_SCROLL_LINES +@@ -948,6 +948,7 @@ config CONSOLE_SCROLL_LINES config VIDEO_DW_HDMI bool @@ -241,7 +246,7 @@ index ab927641bb7..3a9ccfaaf42 100644 Enables the common driver code for the Designware HDMI TX block found in SoCs from various vendors. diff --git a/drivers/video/sunxi/Makefile b/drivers/video/sunxi/Makefile -index 4321673312b..0adae6eb2dd 100644 +index 4321673312b..adc45928b12 100644 --- a/drivers/video/sunxi/Makefile +++ b/drivers/video/sunxi/Makefile @@ -4,4 +4,5 @@ @@ -251,12 +256,11 @@ index 4321673312b..0adae6eb2dd 100644 -obj-$(CONFIG_VIDEO_DE2) += sunxi_de2.o sunxi_dw_hdmi.o simplefb_common.o lcdc.o sunxi_lcd.o +obj-$(CONFIG_VIDEO_DE2) += sunxi_de2.o simplefb_common.o lcdc.o sunxi_lcd.o +obj-$(CONFIG_VIDEO_DW_HDMI) += sunxi_dw_hdmi.o -\ No newline at end of file diff --git a/drivers/video/sunxi/lcdc.c b/drivers/video/sunxi/lcdc.c -index 73033c3b858..5aeab4cd251 100644 +index 264d775c125..6dcff209aab 100644 --- a/drivers/video/sunxi/lcdc.c +++ b/drivers/video/sunxi/lcdc.c -@@ -213,6 +213,77 @@ void lcdc_tcon1_mode_set(struct sunxi_lcdc_reg * const lcdc, +@@ -212,6 +212,78 @@ void lcdc_tcon1_mode_set(struct sunxi_lcdc_reg * const lcdc, void lcdc_pll_set(struct sunxi_ccm_reg *ccm, int tcon, int dotclock, int *clk_div, int *clk_double, bool is_composite) { @@ -310,11 +314,12 @@ index 73033c3b858..5aeab4cd251 100644 + + /* Program TCON_LCD0 CCU clock: gate + mux + M divider */ + if (tcon == 0) { ++ void *const ccm_base = (void *)SUNXI_CCM_BASE; + u32 mux = best_mux4x ? CCM_LCD_CH0_CTRL_PLL3_2X : + CCM_LCD_CH0_CTRL_PLL3; + writel(CCM_LCD_CH0_CTRL_GATE | mux | + CCM_LCD_CH0_CTRL_M(best_m), -+ &ccm->tcon_lcd0_clk_cfg); ++ ccm_base + CCU_NCAT2_LCD0_CLK_CFG); + } + + debug("dotclock: %dkHz = %dkHz: PLL_VIDEO0 fixed 1x=%lukHz " @@ -334,17 +339,17 @@ index 73033c3b858..5aeab4cd251 100644 int value, n, m, min_m, max_m, diff, step; int best_n = 0, best_m = 0, best_diff = 0x0FFFFFFF; int best_double = 0; -@@ -333,4 +404,5 @@ void lcdc_pll_set(struct sunxi_ccm_reg *ccm, int tcon, int dotclock, +@@ -332,4 +404,5 @@ void lcdc_pll_set(struct sunxi_ccm_reg *ccm, int tcon, int dotclock, *clk_div = best_m; *clk_double = best_double; +#endif } diff --git a/drivers/video/sunxi/sunxi_de2.c b/drivers/video/sunxi/sunxi_de2.c -index e02d359cd25..cca57a5b9d8 100644 +index dad8c384598..bb23a3bf039 100644 --- a/drivers/video/sunxi/sunxi_de2.c +++ b/drivers/video/sunxi/sunxi_de2.c -@@ -36,6 +36,38 @@ static void sunxi_de2_composer_init(void) +@@ -35,6 +35,42 @@ static void sunxi_de2_composer_init(void) struct sunxi_ccm_reg * const ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; @@ -363,27 +368,31 @@ index e02d359cd25..cca57a5b9d8 100644 + * DE clock: pll-video0-4x (252 MHz) / 4 = 63 MHz (mux=1, M=4). + * Matches Linux register 0x81000003. + */ -+ clock_set_pll3(63000000); ++ { ++ void *const ccm_base = (void *)SUNXI_CCM_BASE; + -+ /* DE bus: deassert reset, enable gate (offset 0x60c) */ -+ setbits_le32(&ccm->de_gate_reset, CCM_BUS_RESET); -+ setbits_le32(&ccm->de_gate_reset, CCM_BUS_GATE); ++ clock_set_pll3(63000000); + -+ /* DPSS_TOP bus: deassert reset, enable gate (offset 0xabc) */ -+ setbits_le32(&ccm->pcie_gate_reset, CCM_BUS_RESET); -+ setbits_le32(&ccm->pcie_gate_reset, CCM_BUS_GATE); ++ /* DE bus: deassert reset, enable gate (offset 0x60c) */ ++ setbits_le32(ccm_base + CCU_NCAT2_DE_GATE_RESET, CCM_BUS_RESET); ++ setbits_le32(ccm_base + CCU_NCAT2_DE_GATE_RESET, CCM_BUS_GATE); + -+ /* DE clock: pll_video0_4x / 4 = 63 MHz */ -+ clrsetbits_le32(&ccm->de_clk_cfg, -+ CCM_DE2_CTRL_PLL_MASK | CCM_DE2_CTRL_M_MASK, -+ CCM_DE2_CTRL_PLL_VIDEO0_4X | CCM_DE2_CTRL_M(4)); -+ setbits_le32(&ccm->de_clk_cfg, CCM_DE2_CTRL_GATE); ++ /* DPSS_TOP bus: deassert reset, enable gate (offset 0xabc) */ ++ setbits_le32(ccm_base + CCU_NCAT2_DPSS_GATE_RESET, CCM_BUS_RESET); ++ setbits_le32(ccm_base + CCU_NCAT2_DPSS_GATE_RESET, CCM_BUS_GATE); ++ ++ /* DE clock: pll_video0_4x / 4 = 63 MHz */ ++ clrsetbits_le32(ccm_base + CCU_NCAT2_DE_CLK_CFG, ++ CCM_DE2_CTRL_PLL_MASK | CCM_DE2_CTRL_M_MASK, ++ CCM_DE2_CTRL_PLL_VIDEO0_4X | CCM_DE2_CTRL_M(4)); ++ setbits_le32(ccm_base + CCU_NCAT2_DE_CLK_CFG, CCM_DE2_CTRL_GATE); ++ } +#else /* !CONFIG_SUNXI_GEN_NCAT2 */ + #ifdef CONFIG_MACH_SUN50I u32 reg_value; -@@ -57,6 +89,7 @@ static void sunxi_de2_composer_init(void) +@@ -56,6 +92,7 @@ static void sunxi_de2_composer_init(void) /* Clock on */ setbits_le32(&ccm->de_clk_cfg, CCM_DE2_CTRL_GATE); @@ -391,7 +400,7 @@ index e02d359cd25..cca57a5b9d8 100644 } static void sunxi_de2_mode_set(int mux, const struct display_timing *mode, -@@ -253,6 +286,7 @@ static int sunxi_de2_probe(struct udevice *dev) +@@ -252,6 +289,7 @@ static int sunxi_de2_probe(struct udevice *dev) debug("%s: lcd display not found (ret=%d)\n", __func__, ret); @@ -399,7 +408,7 @@ index e02d359cd25..cca57a5b9d8 100644 ret = uclass_get_device_by_driver(UCLASS_DISPLAY, DM_DRIVER_GET(sunxi_dw_hdmi), &disp); if (!ret) { -@@ -271,6 +305,7 @@ static int sunxi_de2_probe(struct udevice *dev) +@@ -270,6 +308,7 @@ static int sunxi_de2_probe(struct udevice *dev) } debug("%s: hdmi display not found (ret=%d)\n", __func__, ret); @@ -407,7 +416,7 @@ index e02d359cd25..cca57a5b9d8 100644 return -ENODEV; } -@@ -333,6 +368,7 @@ int sunxi_simplefb_setup(void *blob) +@@ -332,6 +371,7 @@ int sunxi_simplefb_setup(void *blob) return 0; } @@ -415,7 +424,7 @@ index e02d359cd25..cca57a5b9d8 100644 ret = uclass_get_device_by_driver(UCLASS_DISPLAY, DM_DRIVER_GET(sunxi_dw_hdmi), &hdmi); if (ret) { -@@ -345,6 +381,7 @@ int sunxi_simplefb_setup(void *blob) +@@ -344,6 +384,7 @@ int sunxi_simplefb_setup(void *blob) } else { debug("HDMI present but not probed\n"); } @@ -424,11 +433,11 @@ index e02d359cd25..cca57a5b9d8 100644 ret = uclass_get_device_by_driver(UCLASS_DISPLAY, DM_DRIVER_GET(sunxi_lcd), &lcd); diff --git a/drivers/video/sunxi/sunxi_lcd.c b/drivers/video/sunxi/sunxi_lcd.c -index 7a01cc343ca..c3938658c10 100644 +index 953233fcd68..6c89f10c84f 100644 --- a/drivers/video/sunxi/sunxi_lcd.c +++ b/drivers/video/sunxi/sunxi_lcd.c -@@ -8,8 +8,8 @@ - #include +@@ -7,8 +7,8 @@ + #include #include +#include @@ -437,7 +446,7 @@ index 7a01cc343ca..c3938658c10 100644 #include #include #include -@@ -22,17 +22,30 @@ +@@ -21,17 +21,30 @@ struct sunxi_lcd_priv { struct display_timing timing; int panel_bpp; @@ -469,7 +478,7 @@ index 7a01cc343ca..c3938658c10 100644 #endif } -@@ -44,13 +57,24 @@ static int sunxi_lcd_enable(struct udevice *dev, int bpp, +@@ -43,13 +56,28 @@ static int sunxi_lcd_enable(struct udevice *dev, int bpp, struct sunxi_lcdc_reg * const lcdc = (struct sunxi_lcdc_reg *)SUNXI_LCD0_BASE; struct sunxi_lcd_priv *priv = dev_get_priv(dev); @@ -484,8 +493,12 @@ index 7a01cc343ca..c3938658c10 100644 + * ahb_gate1 fields are used instead. + */ +#ifdef CONFIG_SUNXI_GEN_NCAT2 -+ setbits_le32(&ccm->tcon_lcd_gate_reset, CCM_BUS_RESET); -+ setbits_le32(&ccm->tcon_lcd_gate_reset, CCM_BUS_GATE); ++ { ++ void *const ccm_base = (void *)SUNXI_CCM_BASE; ++ ++ setbits_le32(ccm_base + CCU_NCAT2_LCD_GATE_RESET, CCM_BUS_RESET); ++ setbits_le32(ccm_base + CCU_NCAT2_LCD_GATE_RESET, CCM_BUS_GATE); ++ } +#else /* Reset off */ setbits_le32(&ccm->ahb_reset1_cfg, 1 << AHB_RESET_OFFSET_LCD0); @@ -495,7 +508,7 @@ index 7a01cc343ca..c3938658c10 100644 lcdc_init(lcdc); sunxi_lcdc_config_pinmux(); -@@ -58,11 +82,17 @@ static int sunxi_lcd_enable(struct udevice *dev, int bpp, +@@ -57,11 +85,17 @@ static int sunxi_lcd_enable(struct udevice *dev, int bpp, &clk_div, &clk_double, false); lcdc_tcon0_mode_set(lcdc, edid, clk_div, false, priv->panel_bpp, CONFIG_VIDEO_LCD_DCLK_PHASE); @@ -515,7 +528,7 @@ index 7a01cc343ca..c3938658c10 100644 return 0; } -@@ -130,6 +160,8 @@ static int sunxi_lcd_probe(struct udevice *dev) +@@ -129,6 +163,8 @@ static int sunxi_lcd_probe(struct udevice *dev) else priv->panel_bpp = 18; @@ -524,7 +537,7 @@ index 7a01cc343ca..c3938658c10 100644 return 0; } -@@ -146,7 +178,7 @@ U_BOOT_DRIVER(sunxi_lcd) = { +@@ -145,7 +181,7 @@ U_BOOT_DRIVER(sunxi_lcd) = { .priv_auto = sizeof(struct sunxi_lcd_priv), }; diff --git a/meta-opencentauri/recipes-bsp/u-boot/files/elegoo_centauri_carbon1_defconfig b/meta-opencentauri/recipes-bsp/u-boot/files/elegoo_centauri_carbon1_defconfig index 613383be..b499fb0d 100644 --- a/meta-opencentauri/recipes-bsp/u-boot/files/elegoo_centauri_carbon1_defconfig +++ b/meta-opencentauri/recipes-bsp/u-boot/files/elegoo_centauri_carbon1_defconfig @@ -1,6 +1,7 @@ CONFIG_ARM=y CONFIG_ARCH_SUNXI=y CONFIG_DEFAULT_DEVICE_TREE="elegoo-centauri-carbon1" +# CONFIG_OF_UPSTREAM is not set CONFIG_SPL=y CONFIG_MACH_SUN8I_R528=y CONFIG_DRAM_CLK=792 @@ -58,6 +59,6 @@ CONFIG_ENV_OFFSET=0x1A66000 CONFIG_ENV_OFFSET_REDUND=0x1AA5000 # CONFIG_ENV_IS_IN_FAT is not set CONFIG_ENV_IS_IN_MMC=y -CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_REDUNDANT=y # CONFIG_USE_ENV_MMC_PARTITION is not set # CONFIG_ENV_MMC_USE_DT is not set diff --git a/meta-opencentauri/recipes-bsp/u-boot/libubootenv_%.bbappend b/meta-opencentauri/recipes-bsp/u-boot/libubootenv_%.bbappend index effaea93..120f677f 100644 --- a/meta-opencentauri/recipes-bsp/u-boot/libubootenv_%.bbappend +++ b/meta-opencentauri/recipes-bsp/u-boot/libubootenv_%.bbappend @@ -5,5 +5,5 @@ SRC_URI += " \ do_install:append () { install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config + install -m 0644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config } diff --git a/meta-opencentauri/recipes-bsp/u-boot/u-boot_2024.01.bbappend b/meta-opencentauri/recipes-bsp/u-boot/u-boot_%.bbappend similarity index 59% rename from meta-opencentauri/recipes-bsp/u-boot/u-boot_2024.01.bbappend rename to meta-opencentauri/recipes-bsp/u-boot/u-boot_%.bbappend index 21378dc3..5adb79ba 100644 --- a/meta-opencentauri/recipes-bsp/u-boot/u-boot_2024.01.bbappend +++ b/meta-opencentauri/recipes-bsp/u-boot/u-boot_%.bbappend @@ -1,9 +1,9 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI:append:elegoo-centauri-carbon1 = " \ - file://elegoo-centauri-carbon1.dts;subdir=git/arch/${ARCH}/dts \ - file://elegoo_centauri_carbon1_defconfig;subdir=git/configs \ - file://elegoo-centauri-carbon1.env;subdir=git/board/sunxi \ + file://elegoo-centauri-carbon1.dts;subdir=u-boot-${PV}/arch/${ARCH}/dts \ + file://elegoo_centauri_carbon1_defconfig;subdir=u-boot-${PV}/configs \ + file://elegoo-centauri-carbon1.env;subdir=u-boot-${PV}/board/sunxi \ file://0001-Add-elegoo-centauri-carbon1.dts.patch \ file://0001-Fix-ac-remmaping-on-R528-S3.patch \ file://0001-sunxi-r528-add-display-support-with-RB-channel-swap.patch \ diff --git a/meta-opencentauri/recipes-core/base-files/base-files_%.bbappend b/meta-opencentauri/recipes-core/base-files/base-files_%.bbappend index 729fdf34..285a8b59 100644 --- a/meta-opencentauri/recipes-core/base-files/base-files_%.bbappend +++ b/meta-opencentauri/recipes-core/base-files/base-files_%.bbappend @@ -9,5 +9,5 @@ do_install:append() { install -d ${D}/board-resource install -d ${D}/boot-resource install -d ${D}/data - install -m 0644 ${WORKDIR}/motd-opencentauri ${D}${sysconfdir}/motd + install -m 0644 ${UNPACKDIR}/motd-opencentauri ${D}${sysconfdir}/motd } diff --git a/meta-opencentauri/recipes-core/dev-by-id/dev-by-id_1.0.bb b/meta-opencentauri/recipes-core/dev-by-id/dev-by-id_1.0.bb index b22b996a..4fff69a9 100644 --- a/meta-opencentauri/recipes-core/dev-by-id/dev-by-id_1.0.bb +++ b/meta-opencentauri/recipes-core/dev-by-id/dev-by-id_1.0.bb @@ -6,11 +6,13 @@ SRC_URI = "\ file://99-dev-by-id.rules \ " +S = "${UNPACKDIR}" + RDEPENDS:${PN} = "udev" do_install() { install -d ${D}${sysconfdir}/udev/rules.d - install -m 0644 ${WORKDIR}/99-dev-by-id.rules \ + install -m 0644 ${S}/99-dev-by-id.rules \ ${D}${sysconfdir}/udev/rules.d/99-dev-by-id.rules } diff --git a/meta-opencentauri/recipes-core/psplash/psplash_%.bbappend b/meta-opencentauri/recipes-core/psplash/psplash_%.bbappend index 1d776ca1..8c156d93 100644 --- a/meta-opencentauri/recipes-core/psplash/psplash_%.bbappend +++ b/meta-opencentauri/recipes-core/psplash/psplash_%.bbappend @@ -1,15 +1,17 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI += " \ - file://psplash-colors.h;subdir=git \ + file://psplash-colors.h;subdir=${BPN}-${PV} \ file://psplash-bar.png \ " SPLASH_IMAGES = " \ file://cosmos_1.png;outsuffix=default \ " +PR = "r2" + do_compile:prepend() { import subprocess - workdir = d.getVar('WORKDIR') + workdir = d.getVar('UNPACKDIR') s = d.getVar('S') convertscript = "%s/make-image-header.sh" % s if subprocess.call([convertscript, os.path.join(workdir, 'psplash-bar.png'), 'BAR'], cwd=workdir): diff --git a/meta-opencentauri/recipes-core/swu-flasher/swu-flasher_1.0.bb b/meta-opencentauri/recipes-core/swu-flasher/swu-flasher_1.0.bb index 2906ec26..00468178 100644 --- a/meta-opencentauri/recipes-core/swu-flasher/swu-flasher_1.0.bb +++ b/meta-opencentauri/recipes-core/swu-flasher/swu-flasher_1.0.bb @@ -7,12 +7,14 @@ SRC_URI = " \ file://readonly-config-reset \ " +S = "${UNPACKDIR}" + RDEPENDS:${PN} = "swupdate u-boot-fw-utils" do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/flash ${D}${bindir}/flash - install -m 0755 ${WORKDIR}/readonly-config-reset ${D}${bindir}/readonly-config-reset + install -m 0755 ${S}/flash ${D}${bindir}/flash + install -m 0755 ${S}/readonly-config-reset ${D}${bindir}/readonly-config-reset } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-core/usb-automount/usb-automount_1.0.bb b/meta-opencentauri/recipes-core/usb-automount/usb-automount_1.0.bb index f13acb24..31c88b98 100644 --- a/meta-opencentauri/recipes-core/usb-automount/usb-automount_1.0.bb +++ b/meta-opencentauri/recipes-core/usb-automount/usb-automount_1.0.bb @@ -7,15 +7,17 @@ SRC_URI = "\ file://usb-mount \ " +S = "${UNPACKDIR}" + RDEPENDS:${PN} = "udev screen-actions update-scripts" do_install() { install -d ${D}${sysconfdir}/udev/rules.d - install -m 0644 ${WORKDIR}/99-usb-automount.rules \ + install -m 0644 ${S}/99-usb-automount.rules \ ${D}${sysconfdir}/udev/rules.d/99-usb-automount.rules install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/usb-mount ${D}${bindir}/usb-mount + install -m 0755 ${S}/usb-mount ${D}${bindir}/usb-mount } FILES:${PN} = "\ diff --git a/meta-opencentauri/recipes-core/zram/zram-emmc-swap_1.0.bb b/meta-opencentauri/recipes-core/zram/zram-emmc-swap_1.0.bb index 61c15300..b6b41712 100644 --- a/meta-opencentauri/recipes-core/zram/zram-emmc-swap_1.0.bb +++ b/meta-opencentauri/recipes-core/zram/zram-emmc-swap_1.0.bb @@ -14,7 +14,7 @@ RDEPENDS:${PN} = "zram util-linux-swaponoff util-linux-mkswap" do_install() { install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/zram-emmc-swap ${D}${sysconfdir}/init.d/ + install -m 0755 ${UNPACKDIR}/zram-emmc-swap ${D}${sysconfdir}/init.d/ } FILES:${PN} = "${sysconfdir}/init.d/zram-emmc-swap" diff --git a/meta-opencentauri/recipes-data/config-manager/config-manager_0.1.bb b/meta-opencentauri/recipes-data/config-manager/config-manager_0.1.bb index b08e33c6..1113dff3 100644 --- a/meta-opencentauri/recipes-data/config-manager/config-manager_0.1.bb +++ b/meta-opencentauri/recipes-data/config-manager/config-manager_0.1.bb @@ -8,16 +8,18 @@ SRC_URI = " \ file://default.conf \ " +S = "${UNPACKDIR}" + do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/config_manager.py ${D}${bindir}/config-manager - install -m 0755 ${WORKDIR}/build-klipper-var-config.sh ${D}${bindir}/build-klipper-var-config + install -m 0755 ${S}/config_manager.py ${D}${bindir}/config-manager + install -m 0755 ${S}/build-klipper-var-config.sh ${D}${bindir}/build-klipper-var-config install -d ${D}${sysconfdir}/klipper/config - install -m 0644 ${WORKDIR}/default.conf ${D}${sysconfdir}/klipper/config/cosmos.conf + install -m 0644 ${S}/default.conf ${D}${sysconfdir}/klipper/config/cosmos.conf install -d ${D}${datadir}/config-manager - install -m 0644 ${WORKDIR}/default.conf ${D}${datadir}/config-manager/default.conf + install -m 0644 ${S}/default.conf ${D}${datadir}/config-manager/default.conf } FILES:${PN} = " \ @@ -27,4 +29,4 @@ FILES:${PN} = " \ ${datadir}/config-manager/default.conf \ " -RDEPENDS:${PN} = "python3-core" \ No newline at end of file +RDEPENDS:${PN} = "python3-core" diff --git a/meta-opencentauri/recipes-data/config-switcher/gui-switcher_0.1.0.bb b/meta-opencentauri/recipes-data/config-switcher/gui-switcher_0.1.0.bb index 67b36fce..b709f121 100644 --- a/meta-opencentauri/recipes-data/config-switcher/gui-switcher_0.1.0.bb +++ b/meta-opencentauri/recipes-data/config-switcher/gui-switcher_0.1.0.bb @@ -7,6 +7,8 @@ SRC_URI = " \ file://brightness \ " +S = "${UNPACKDIR}" + inherit update-rc.d INITSCRIPT_NAME = "gui-switcher" @@ -14,10 +16,10 @@ INITSCRIPT_PARAMS = "defaults 96 4" do_install() { install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/gui-switcher.init ${D}${sysconfdir}/init.d/gui-switcher + install -m 0755 ${S}/gui-switcher.init ${D}${sysconfdir}/init.d/gui-switcher install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/brightness ${D}${bindir}/brightness + install -m 0755 ${S}/brightness ${D}${bindir}/brightness } FILES_${PN} += " \ diff --git a/meta-opencentauri/recipes-data/opencentauri-bootlogos/opencentauri-bootlogos_0.1.bb b/meta-opencentauri/recipes-data/opencentauri-bootlogos/opencentauri-bootlogos_0.1.bb index 7441ae16..b65ce16a 100644 --- a/meta-opencentauri/recipes-data/opencentauri-bootlogos/opencentauri-bootlogos_0.1.bb +++ b/meta-opencentauri/recipes-data/opencentauri-bootlogos/opencentauri-bootlogos_0.1.bb @@ -13,16 +13,18 @@ SRC_URI = " \ file://swap.sh \ " +S = "${UNPACKDIR}" + do_install() { install -d ${D}/boot-resource - install -m 0644 ${WORKDIR}/bootlogo.bmp ${D}/boot-resource/bootlogo.bmp - install -m 0644 ${WORKDIR}/gradient.bmp ${D}/boot-resource/gradient.bmp - install -m 0644 ${WORKDIR}/hackerinside.bmp ${D}/boot-resource/hackerinside.bmp - install -m 0644 ${WORKDIR}/lines2.bmp ${D}/boot-resource/lines2.bmp - install -m 0644 ${WORKDIR}/lines3.bmp ${D}/boot-resource/lines3.bmp - install -m 0644 ${WORKDIR}/magic.bin ${D}/boot-resource/magic.bin - install -m 0644 ${WORKDIR}/official.bmp ${D}/boot-resource/official.bmp - install -m 0755 ${WORKDIR}/swap.sh ${D}/boot-resource/swap.sh + install -m 0644 ${S}/bootlogo.bmp ${D}/boot-resource/bootlogo.bmp + install -m 0644 ${S}/gradient.bmp ${D}/boot-resource/gradient.bmp + install -m 0644 ${S}/hackerinside.bmp ${D}/boot-resource/hackerinside.bmp + install -m 0644 ${S}/lines2.bmp ${D}/boot-resource/lines2.bmp + install -m 0644 ${S}/lines3.bmp ${D}/boot-resource/lines3.bmp + install -m 0644 ${S}/magic.bin ${D}/boot-resource/magic.bin + install -m 0644 ${S}/official.bmp ${D}/boot-resource/official.bmp + install -m 0755 ${S}/swap.sh ${D}/boot-resource/swap.sh } FILES:${PN} = " \ diff --git a/meta-opencentauri/recipes-data/support-zip/generate-support-zip_1.0.bb b/meta-opencentauri/recipes-data/support-zip/generate-support-zip_1.0.bb index f9f3c327..c0fdb68a 100644 --- a/meta-opencentauri/recipes-data/support-zip/generate-support-zip_1.0.bb +++ b/meta-opencentauri/recipes-data/support-zip/generate-support-zip_1.0.bb @@ -4,11 +4,13 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-3.0-only;md5=c79ff39f19dfec SRC_URI = "file://generate-support-zip" +S = "${UNPACKDIR}" + inherit allarch do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/generate-support-zip ${D}${bindir}/generate-support-zip + install -m 0755 ${S}/generate-support-zip ${D}${bindir}/generate-support-zip } FILES:${PN} = "${bindir}/generate-support-zip" diff --git a/meta-opencentauri/recipes-data/update-scripts/update-scripts_0.1.0.bb b/meta-opencentauri/recipes-data/update-scripts/update-scripts_0.1.0.bb index 84882769..2eb3d3d4 100644 --- a/meta-opencentauri/recipes-data/update-scripts/update-scripts_0.1.0.bb +++ b/meta-opencentauri/recipes-data/update-scripts/update-scripts_0.1.0.bb @@ -12,6 +12,8 @@ SRC_URI = " \ file://flash-artifact.py \ " +S = "${UNPACKDIR}" + RDEPENDS:${PN} = " \ curl \ swu-flasher \ @@ -23,19 +25,19 @@ RDEPENDS:${PN} = " \ do_install() { install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/factory-reset ${D}${bindir}/ - install -m 0755 ${WORKDIR}/update-cosmos ${D}${bindir}/ - install -m 0755 ${WORKDIR}/switch-to-stock ${D}${bindir}/ - install -m 0755 ${WORKDIR}/switch-to-oc-patched ${D}${bindir}/ - install -m 0755 ${WORKDIR}/swu-decrypt.py ${D}${bindir}/ - install -m 0755 ${WORKDIR}/restore-mcu-firmware ${D}${bindir}/ - install -m 0755 ${WORKDIR}/flash-artifact.py ${D}${bindir}/flash-artifact + install -m 0755 ${S}/factory-reset ${D}${bindir}/ + install -m 0755 ${S}/update-cosmos ${D}${bindir}/ + install -m 0755 ${S}/switch-to-stock ${D}${bindir}/ + install -m 0755 ${S}/switch-to-oc-patched ${D}${bindir}/ + install -m 0755 ${S}/swu-decrypt.py ${D}${bindir}/ + install -m 0755 ${S}/restore-mcu-firmware ${D}${bindir}/ + install -m 0755 ${S}/flash-artifact.py ${D}${bindir}/flash-artifact install -d ${D}${sysconfdir}/klipper install -d ${D}${sysconfdir}/klipper/config } -FILES_${PN} += " \ +FILES:${PN} += " \ ${bindir}/factory-reset \ ${bindir}/update-cosmos \ ${bindir}/switch-to-stock \ diff --git a/meta-opencentauri/recipes-devtools/external-hifi4-toolchain/gcc-xtensa-hifi4-elf_0.17.4.bb b/meta-opencentauri/recipes-devtools/external-hifi4-toolchain/gcc-xtensa-hifi4-elf_0.17.4.bb index 6a1d24c8..fb2d4994 100644 --- a/meta-opencentauri/recipes-devtools/external-hifi4-toolchain/gcc-xtensa-hifi4-elf_0.17.4.bb +++ b/meta-opencentauri/recipes-devtools/external-hifi4-toolchain/gcc-xtensa-hifi4-elf_0.17.4.bb @@ -26,7 +26,7 @@ BBCLASSEXTEND = "native nativesdk" # Skipping file deps - we don't control the dependencies for prebuilt libraries, resulting in # nothing provides libcrypt.so.1()(64bit) needed by nativesdk-gcc-xtensa-hifi4-elf # when packaged as RPM for SDK. -SKIP_FILEDEPS="1" +SKIP_FILEDEPS = "1" COMPATIBLE_HOST = "(x86_64|aarch64).*-linux" @@ -40,4 +40,4 @@ SRC_URI = "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${PV} SRC_URI[gcc-aarch64.sha256sum] = "857ffd120af6fee573afbc7f29ec0519d2643a9613588c70eb9f6f3488bad1b9" SRC_URI[gcc-x86_64.sha256sum] = "8dbd260061e3fb05696bb19f026f6eeeb965eb37c0113a63bbfc040836b612c5" -S = "${WORKDIR}/xtensa-nxp_rt700_hifi4_zephyr-elf" +S = "${UNPACKDIR}/xtensa-nxp_rt700_hifi4_zephyr-elf" diff --git a/meta-opencentauri/recipes-devtools/python/python3_%.bbappend b/meta-opencentauri/recipes-devtools/python/python3_%.bbappend index d1881b4a..919af2e5 100644 --- a/meta-opencentauri/recipes-devtools/python/python3_%.bbappend +++ b/meta-opencentauri/recipes-devtools/python/python3_%.bbappend @@ -1 +1,2 @@ PACKAGECONFIG:append:class-target = " lto pgo" +INSANE_SKIP:${PN}-dbg += "buildpaths" diff --git a/meta-opencentauri/recipes-kernel/aic8800/aic8800_git.bb b/meta-opencentauri/recipes-kernel/aic8800/aic8800_git.bb index d48d4d3e..205e9ba1 100644 --- a/meta-opencentauri/recipes-kernel/aic8800/aic8800_git.bb +++ b/meta-opencentauri/recipes-kernel/aic8800/aic8800_git.bb @@ -8,8 +8,6 @@ inherit module SRCREV = "05710dff05dabce66ab3ee80f40484892c512b3c" SRC_URI = "git://github.com/shenmintao/aic8800d80.git;protocol=https;branch=main" -S = "${WORKDIR}/git" - EXTRA_OEMAKE += "-C ${STAGING_KERNEL_DIR} M=${S}/drivers/aic8800 \ CONFIG_PREALLOC_RX_SKB=n CONFIG_PREALLOC_TXQ=n" diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0001-dt-bindings-pwm-Add-binding-for-Allwinner-D1-T113-S3.patch b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0001-dt-bindings-pwm-Add-binding-for-Allwinner-D1-T113-S3.patch index 720d88ec..a31ade2f 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0001-dt-bindings-pwm-Add-binding-for-Allwinner-D1-T113-S3.patch +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0001-dt-bindings-pwm-Add-binding-for-Allwinner-D1-T113-S3.patch @@ -24,16 +24,16 @@ Add a device tree binding for them. Signed-off-by: Aleksandr Shubin Reviewed-by: Conor Dooley --- - .../bindings/pwm/allwinner,sun20i-pwm.yaml | 87 +++++++++++++++++++ - 1 file changed, 87 insertions(+) + .../bindings/pwm/allwinner,sun20i-pwm.yaml | 84 +++++++++++++++++++ + 1 file changed, 84 insertions(+) create mode 100644 Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml diff --git a/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml new file mode 100644 -index 000000000000..a65324e9b138 +index 000000000000..89cebf7841a6 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml -@@ -0,0 +1,87 @@ +@@ -0,0 +1,84 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- @@ -44,13 +44,14 @@ index 000000000000..a65324e9b138 + +maintainers: + - Aleksandr Shubin ++ - Brandon Cheo Fusi + +properties: + compatible: + oneOf: + - const: allwinner,sun20i-d1-pwm + - items: -+ - const: allwinner,sun20i-r329-pwm ++ - const: allwinner,sun50i-r329-pwm + - const: allwinner,sun20i-d1-pwm + + reg: @@ -63,13 +64,13 @@ index 000000000000..a65324e9b138 + items: + - description: Bus clock + - description: 24 MHz oscillator -+ - description: APB0 clock ++ - description: APB clock + + clock-names: + items: + - const: bus + - const: hosc -+ - const: apb0 ++ - const: apb + + resets: + maxItems: 1 @@ -86,16 +87,12 @@ index 000000000000..a65324e9b138 + properties: + compatible: + contains: -+ const: allwinner,sun20i-r329-pwm ++ const: allwinner,sun50i-r329-pwm + + then: + required: + - allwinner,pwm-channels + -+ else: -+ properties: -+ allwinner,pwm-channels: false -+ +unevaluatedProperties: false + +required: @@ -115,7 +112,7 @@ index 000000000000..a65324e9b138 + compatible = "allwinner,sun20i-d1-pwm"; + reg = <0x02000c00 0x400>; + clocks = <&ccu CLK_BUS_PWM>, <&dcxo>, <&ccu CLK_APB0>; -+ clock-names = "bus", "hosc", "apb0"; ++ clock-names = "bus", "hosc", "apb"; + resets = <&ccu RST_BUS_PWM>; + #pwm-cells = <0x3>; + }; diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0002-pwm-Add-Allwinner-s-D1-T113-S3-R329-SoCs-PWM-support.patch b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0002-pwm-Add-Allwinner-s-D1-T113-S3-R329-SoCs-PWM-support.patch index e17e7c7d..8fb35353 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0002-pwm-Add-Allwinner-s-D1-T113-S3-R329-SoCs-PWM-support.patch +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0002-pwm-Add-Allwinner-s-D1-T113-S3-R329-SoCs-PWM-support.patch @@ -10,19 +10,21 @@ This patch adds a PWM controller driver for Allwinner's D1, T113-S3 and R329 SoCs. The main difference between these SoCs is the number of channels defined by the DT property. +Co-developed-by: Brandon Cheo Fusi +Signed-off-by: Brandon Cheo Fusi Signed-off-by: Aleksandr Shubin --- drivers/pwm/Kconfig | 10 ++ drivers/pwm/Makefile | 1 + - drivers/pwm/pwm-sun20i.c | 328 +++++++++++++++++++++++++++++++++++++++ - 3 files changed, 339 insertions(+) + drivers/pwm/pwm-sun20i.c | 379 +++++++++++++++++++++++++++++++++++++++ + 3 files changed, 390 insertions(+) create mode 100644 drivers/pwm/pwm-sun20i.c diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig -index 8ebcddf91f7b..a0135e560c9f 100644 +index 0915c1e7df16..778151aa3860 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig -@@ -615,6 +615,16 @@ config PWM_SUN4I +@@ -652,6 +652,16 @@ config PWM_SUN4I To compile this driver as a module, choose M here: the module will be called pwm-sun4i. @@ -40,10 +42,10 @@ index 8ebcddf91f7b..a0135e560c9f 100644 tristate "Sunplus PWM support" depends on ARCH_SUNPLUS || COMPILE_TEST diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile -index c822389c2a24..f5138d303156 100644 +index 9081e0c0e9e0..85ad1fe0dde1 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile -@@ -57,6 +57,7 @@ obj-$(CONFIG_PWM_STM32) += pwm-stm32.o +@@ -60,6 +60,7 @@ obj-$(CONFIG_PWM_STM32) += pwm-stm32.o obj-$(CONFIG_PWM_STM32_LP) += pwm-stm32-lp.o obj-$(CONFIG_PWM_STMPE) += pwm-stmpe.o obj-$(CONFIG_PWM_SUN4I) += pwm-sun4i.o @@ -53,10 +55,10 @@ index c822389c2a24..f5138d303156 100644 obj-$(CONFIG_PWM_TIECAP) += pwm-tiecap.o diff --git a/drivers/pwm/pwm-sun20i.c b/drivers/pwm/pwm-sun20i.c new file mode 100644 -index 000000000000..20e6b7b5b62e +index 000000000000..7d1b47843bb6 --- /dev/null +++ b/drivers/pwm/pwm-sun20i.c -@@ -0,0 +1,328 @@ +@@ -0,0 +1,379 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PWM Controller Driver for sunxi platforms (D1, T113-S3 and R329) @@ -74,43 +76,92 @@ index 000000000000..20e6b7b5b62e +#include +#include +#include -+#include ++#include ++#include +#include +#include + -+#define PWM_CLK_CFG(chan) (0x20 + (((chan) >> 1) * 0x4)) -+#define PWM_CLK_CFG_SRC GENMASK(8, 7) -+#define PWM_CLK_CFG_DIV_M GENMASK(3, 0) ++#define SUN20I_PWM_CLK_CFG(chan) (0x20 + ((chan) * 0x4)) ++#define SUN20I_PWM_CLK_CFG_SRC GENMASK(8, 7) ++#define SUN20I_PWM_CLK_CFG_DIV_M GENMASK(3, 0) ++#define SUN20I_PWM_CLK_DIV_M_MAX 8 + -+#define PWM_CLK_GATE 0x40 -+#define PWM_CLK_GATE_BYPASS(chan) BIT((chan) - 16) -+#define PWM_CLK_GATE_GATING(chan) BIT(chan) ++#define SUN20I_PWM_CLK_GATE 0x40 ++#define SUN20I_PWM_CLK_GATE_BYPASS(chan) BIT((chan) + 16) ++#define SUN20I_PWM_CLK_GATE_GATING(chan) BIT(chan) + -+#define PWM_ENABLE 0x80 -+#define PWM_ENABLE_EN(chan) BIT(chan) ++#define SUN20I_PWM_ENABLE 0x80 ++#define SUN20I_PWM_ENABLE_EN(chan) BIT(chan) + -+#define PWM_CTL(chan) (0x100 + (chan) * 0x20) -+#define PWM_CTL_ACT_STA BIT(8) -+#define PWM_CTL_PRESCAL_K GENMASK(7, 0) ++#define SUN20I_PWM_CTL(chan) (0x100 + (chan) * 0x20) ++#define SUN20I_PWM_CTL_ACT_STA BIT(8) ++#define SUN20I_PWM_CTL_PRESCAL_K GENMASK(7, 0) ++#define SUN20I_PWM_CTL_PRESCAL_K_MAX field_max(SUN20I_PWM_CTL_PRESCAL_K) + -+#define PWM_PERIOD(chan) (0x104 + (chan) * 0x20) -+#define PWM_PERIOD_ENTIRE_CYCLE GENMASK(31, 16) -+#define PWM_PERIOD_ACT_CYCLE GENMASK(15, 0) ++#define SUN20I_PWM_PERIOD(chan) (0x104 + (chan) * 0x20) ++#define SUN20I_PWM_PERIOD_ENTIRE_CYCLE GENMASK(31, 16) ++#define SUN20I_PWM_PERIOD_ACT_CYCLE GENMASK(15, 0) + -+#define PWM_MAGIC (255 * 65535 + 2 * 65534 + 1) ++#define SUN20I_PWM_PCNTR_SIZE BIT(16) ++ ++/* ++ * SUN20I_PWM_MAGIC is used to quickly compute the values of the clock dividers ++ * div_m (SUN20I_PWM_CLK_CFG_DIV_M) & prescale_k (SUN20I_PWM_CTL_PRESCAL_K) ++ * without using a loop. These dividers limit the # of cycles in a period ++ * to SUN20I_PWM_PCNTR_SIZE by applying a scaling factor of ++ * 1/(div_m * (prescale_k + 1)) to the clock source. ++ * ++ * SUN20I_PWM_MAGIC is derived by solving for div_m and prescale_k ++ * such that for a given requested period, ++ * ++ * i) div_m is minimized for any prescale_k ≤ SUN20I_PWM_CTL_PRESCAL_K_MAX, ++ * ii) prescale_k is minimized. ++ * ++ * The derivation proceeds as follows, with val = # of cycles for requested ++ * period: ++ * ++ * for a given value of div_m we want the smallest prescale_k such that ++ * ++ * (val >> div_m) // (prescale_k + 1) ≤ 65536 (SUN20I_PWM_PCNTR_SIZE) ++ * ++ * This is equivalent to: ++ * ++ * (val >> div_m) ≤ 65536 * (prescale_k + 1) + prescale_k ++ * ⟺ (val >> div_m) ≤ 65537 * prescale_k + 65536 ++ * ⟺ (val >> div_m) - 65536 ≤ 65537 * prescale_k ++ * ⟺ ((val >> div_m) - 65536) / 65537 ≤ prescale_k ++ * ++ * As prescale_k is integer, this becomes ++ * ++ * ((val >> div_m) - 65536) // 65537 ≤ prescale_k ++ * ++ * And is minimized at ++ * ++ * ((val >> div_m) - 65536) // 65537 ++ * ++ * Now we pick the smallest div_m that satifies prescale_k ≤ 255 ++ * (i.e SUN20I_PWM_CTL_PRESCAL_K_MAX), ++ * ++ * ((val >> div_m) - 65536) // 65537 ≤ 255 ++ * ⟺ (val >> div_m) - 65536 ≤ 255 * 65537 + 65536 ++ * ⟺ val >> div_m ≤ 255 * 65537 + 2 * 65536 ++ * ⟺ val >> div_m < (255 * 65537 + 2 * 65536 + 1) ++ * ⟺ div_m = fls((val) / (255 * 65537 + 2 * 65536 + 1)) ++ * ++ * Suggested by Uwe Kleine-König ++ */ ++#define SUN20I_PWM_MAGIC (255 * 65537 + 2 * 65536 + 1) + +struct sun20i_pwm_chip { -+ struct clk *clk_bus, *clk_hosc, *clk_apb0; ++ struct clk *clk_bus, *clk_hosc, *clk_apb; + struct reset_control *rst; -+ struct pwm_chip chip; + void __iomem *base; -+ /* Mutex to protect pwm apply state */ -+ struct mutex mutex; ++ struct mutex mutex; /* Protect PWM apply state */ +}; + +static inline struct sun20i_pwm_chip *to_sun20i_pwm_chip(struct pwm_chip *chip) +{ -+ return container_of(chip, struct sun20i_pwm_chip, chip); ++ return pwmchip_get_drvdata(chip); +} + +static inline u32 sun20i_pwm_readl(struct sun20i_pwm_chip *chip, @@ -130,31 +181,38 @@ index 000000000000..20e6b7b5b62e + struct pwm_state *state) +{ + struct sun20i_pwm_chip *sun20i_chip = to_sun20i_pwm_chip(chip); -+ u16 ent_cycle, act_cycle, prescal; ++ u16 ent_cycle, act_cycle, prescale_k; + u64 clk_rate, tmp; -+ u8 div_id; ++ u8 div_m; + u32 val; + + mutex_lock(&sun20i_chip->mutex); + -+ val = sun20i_pwm_readl(sun20i_chip, PWM_CLK_CFG(pwm->hwpwm)); -+ div_id = FIELD_GET(PWM_CLK_CFG_DIV_M, val); -+ if (FIELD_GET(PWM_CLK_CFG_SRC, val) == 0) ++ val = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_CLK_CFG(pwm->hwpwm / 2)); ++ div_m = FIELD_GET(SUN20I_PWM_CLK_CFG_DIV_M, val); ++ if (div_m > SUN20I_PWM_CLK_DIV_M_MAX) ++ div_m = SUN20I_PWM_CLK_DIV_M_MAX; ++ ++ if (FIELD_GET(SUN20I_PWM_CLK_CFG_SRC, val) == 0) + clk_rate = clk_get_rate(sun20i_chip->clk_hosc); + else -+ clk_rate = clk_get_rate(sun20i_chip->clk_apb0); ++ clk_rate = clk_get_rate(sun20i_chip->clk_apb); ++ ++ val = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_CTL(pwm->hwpwm)); ++ state->polarity = (SUN20I_PWM_CTL_ACT_STA & val) ? ++ PWM_POLARITY_NORMAL : PWM_POLARITY_INVERSED; ++ ++ prescale_k = FIELD_GET(SUN20I_PWM_CTL_PRESCAL_K, val) + 1; + -+ val = sun20i_pwm_readl(sun20i_chip, PWM_CTL(pwm->hwpwm)); -+ state->polarity = (PWM_CTL_ACT_STA & val) ? PWM_POLARITY_NORMAL : PWM_POLARITY_INVERSED; ++ val = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_ENABLE); ++ state->enabled = (SUN20I_PWM_ENABLE_EN(pwm->hwpwm) & val) ? true : false; + -+ prescal = FIELD_GET(PWM_CTL_PRESCAL_K, val) + 1; ++ val = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_PERIOD(pwm->hwpwm)); + -+ val = sun20i_pwm_readl(sun20i_chip, PWM_ENABLE); -+ state->enabled = (PWM_ENABLE_EN(pwm->hwpwm) & val) ? true : false; ++ mutex_unlock(&sun20i_chip->mutex); + -+ val = sun20i_pwm_readl(sun20i_chip, PWM_PERIOD(pwm->hwpwm)); -+ act_cycle = FIELD_GET(PWM_PERIOD_ACT_CYCLE, val); -+ ent_cycle = FIELD_GET(PWM_PERIOD_ENTIRE_CYCLE, val); ++ act_cycle = FIELD_GET(SUN20I_PWM_PERIOD_ACT_CYCLE, val); ++ ent_cycle = FIELD_GET(SUN20I_PWM_PERIOD_ENTIRE_CYCLE, val); + + /* + * The duration of the active phase should not be longer @@ -163,11 +221,15 @@ index 000000000000..20e6b7b5b62e + if (act_cycle > ent_cycle) + act_cycle = ent_cycle; + -+ tmp = ((u64)(act_cycle) * prescal << div_id) * NSEC_PER_SEC; ++ /* ++ * We have act_cycle <= ent_cycle <= 0xffff, prescale_k <= 0x100, ++ * div_m <= 8. So the multiplication fits into an u64 without ++ * overflow. ++ */ ++ tmp = ((u64)(act_cycle) * prescale_k << div_m) * NSEC_PER_SEC; + state->duty_cycle = DIV_ROUND_UP_ULL(tmp, clk_rate); -+ tmp = ((u64)(ent_cycle) * prescal << div_id) * NSEC_PER_SEC; ++ tmp = ((u64)(ent_cycle) * prescale_k << div_m) * NSEC_PER_SEC; + state->period = DIV_ROUND_UP_ULL(tmp, clk_rate); -+ mutex_unlock(&sun20i_chip->mutex); + + return 0; +} @@ -176,126 +238,112 @@ index 000000000000..20e6b7b5b62e + const struct pwm_state *state) +{ + struct sun20i_pwm_chip *sun20i_chip = to_sun20i_pwm_chip(chip); -+ u32 clk_gate, clk_cfg, pwm_en, ctl, period; -+ u64 bus_rate, hosc_rate, clk_div, val; -+ u32 prescaler, div_m; ++ u64 bus_rate, hosc_rate, val, ent_cycle, act_cycle; ++ u32 clk_gate, clk_cfg, pwm_en, ctl, reg_period; ++ u32 prescale_k, div_m; + bool use_bus_clk; -+ int ret = 0; + -+ mutex_lock(&sun20i_chip->mutex); ++ guard(mutex)(&sun20i_chip->mutex); + -+ pwm_en = sun20i_pwm_readl(sun20i_chip, PWM_ENABLE); ++ pwm_en = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_ENABLE); + -+ if (state->enabled != pwm->state.enabled) -+ clk_gate = sun20i_pwm_readl(sun20i_chip, PWM_CLK_GATE); ++ if (state->enabled != pwm->state.enabled) { ++ clk_gate = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_CLK_GATE); + -+ if (state->enabled != pwm->state.enabled && !state->enabled) { -+ clk_gate &= ~PWM_CLK_GATE_GATING(pwm->hwpwm); -+ pwm_en &= ~PWM_ENABLE_EN(pwm->hwpwm); -+ sun20i_pwm_writel(sun20i_chip, pwm_en, PWM_ENABLE); -+ sun20i_pwm_writel(sun20i_chip, clk_gate, PWM_CLK_GATE); -+ } ++ if (!state->enabled) { ++ clk_gate &= ~SUN20I_PWM_CLK_GATE_GATING(pwm->hwpwm); ++ pwm_en &= ~SUN20I_PWM_ENABLE_EN(pwm->hwpwm); ++ sun20i_pwm_writel(sun20i_chip, pwm_en, SUN20I_PWM_ENABLE); ++ sun20i_pwm_writel(sun20i_chip, clk_gate, SUN20I_PWM_CLK_GATE); + -+ if (state->polarity != pwm->state.polarity || -+ state->duty_cycle != pwm->state.duty_cycle || -+ state->period != pwm->state.period) { -+ ctl = sun20i_pwm_readl(sun20i_chip, PWM_CTL(pwm->hwpwm)); -+ clk_cfg = sun20i_pwm_readl(sun20i_chip, PWM_CLK_CFG(pwm->hwpwm)); -+ hosc_rate = clk_get_rate(sun20i_chip->clk_hosc); -+ bus_rate = clk_get_rate(sun20i_chip->clk_apb0); -+ if (pwm_en & PWM_ENABLE_EN(pwm->hwpwm ^ 1)) { -+ /* if the neighbor channel is enable, check period only */ -+ use_bus_clk = FIELD_GET(PWM_CLK_CFG_SRC, clk_cfg) != 0; -+ val = state->period * (use_bus_clk ? bus_rate : hosc_rate); -+ do_div(val, NSEC_PER_SEC); -+ -+ div_m = FIELD_GET(PWM_CLK_CFG_DIV_M, clk_cfg); -+ } else { -+ /* check period and select clock source */ -+ use_bus_clk = false; -+ val = state->period * hosc_rate; -+ do_div(val, NSEC_PER_SEC); -+ if (val <= 1) { -+ use_bus_clk = true; -+ val = state->period * bus_rate; -+ do_div(val, NSEC_PER_SEC); -+ if (val <= 1) { -+ ret = -EINVAL; -+ goto unlock_mutex; -+ } -+ } -+ div_m = fls(DIV_ROUND_DOWN_ULL(val, PWM_MAGIC)); -+ if (div_m >= 9) { -+ ret = -EINVAL; -+ goto unlock_mutex; -+ } -+ -+ /* set up the CLK_DIV_M and clock CLK_SRC */ -+ clk_cfg = FIELD_PREP(PWM_CLK_CFG_DIV_M, div_m); -+ clk_cfg |= FIELD_PREP(PWM_CLK_CFG_SRC, use_bus_clk); -+ -+ sun20i_pwm_writel(sun20i_chip, clk_cfg, PWM_CLK_CFG(pwm->hwpwm)); ++ return 0; + } ++ } + -+ /* calculate prescaler, PWM entire cycle */ -+ clk_div = val >> div_m; -+ if (clk_div <= 65534) { -+ prescaler = 0; -+ } else { -+ prescaler = DIV_ROUND_UP_ULL(clk_div - 65534, 65535); -+ if (prescaler >= 256) { -+ ret = -EINVAL; -+ goto unlock_mutex; -+ } -+ do_div(clk_div, prescaler + 1); ++ ctl = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_CTL(pwm->hwpwm)); ++ clk_cfg = sun20i_pwm_readl(sun20i_chip, SUN20I_PWM_CLK_CFG(pwm->hwpwm / 2)); ++ hosc_rate = clk_get_rate(sun20i_chip->clk_hosc); ++ bus_rate = clk_get_rate(sun20i_chip->clk_apb); ++ if (pwm_en & SUN20I_PWM_ENABLE_EN(pwm->hwpwm ^ 1)) { ++ /* if the neighbor channel is enabled, check period only */ ++ use_bus_clk = FIELD_GET(SUN20I_PWM_CLK_CFG_SRC, clk_cfg) != 0; ++ val = mul_u64_u64_div_u64(state->period, ++ (use_bus_clk ? bus_rate : hosc_rate), ++ NSEC_PER_SEC); ++ ++ div_m = FIELD_GET(SUN20I_PWM_CLK_CFG_DIV_M, clk_cfg); ++ } else { ++ /* ++ * Select the clock source based on the period, ++ * since bus_rate > hosc_rate, which means bus_rate ++ * can provide a higher frequency than hosc_rate. ++ */ ++ use_bus_clk = false; ++ val = mul_u64_u64_div_u64(state->period, hosc_rate, NSEC_PER_SEC); ++ if (val <= 1) { ++ use_bus_clk = true; ++ val = mul_u64_u64_div_u64(state->period, bus_rate, NSEC_PER_SEC); ++ if (val <= 1) ++ return -EINVAL; + } ++ div_m = fls(DIV_ROUND_DOWN_ULL(val, SUN20I_PWM_MAGIC)); ++ if (div_m > SUN20I_PWM_CLK_DIV_M_MAX) ++ return -EINVAL; + -+ period = FIELD_PREP(PWM_PERIOD_ENTIRE_CYCLE, clk_div); ++ /* set up the CLK_DIV_M and clock CLK_SRC */ ++ clk_cfg = FIELD_PREP(SUN20I_PWM_CLK_CFG_DIV_M, div_m); ++ clk_cfg |= FIELD_PREP(SUN20I_PWM_CLK_CFG_SRC, use_bus_clk); + -+ /* set duty cycle */ -+ val = state->duty_cycle * (use_bus_clk ? bus_rate : hosc_rate); -+ do_div(val, NSEC_PER_SEC); -+ clk_div = val >> div_m; -+ do_div(clk_div, prescaler + 1); ++ sun20i_pwm_writel(sun20i_chip, clk_cfg, SUN20I_PWM_CLK_CFG(pwm->hwpwm / 2)); ++ } + -+ /* -+ * The formula of the output period and the duty-cycle for PWM are as follows. -+ * T period = (PWM01_CLK / PWM0_PRESCALE_K)^-1 * (PPR0.PWM_ENTIRE_CYCLE + 1) -+ * T high-level = (PWM01_CLK / PWM0_PRESCALE_K)^-1 * PPR0.PWM_ACT_CYCLE -+ * Duty-cycle = T high-level / T period -+ * In accordance with this formula, in order to set the duty-cycle to 100%, -+ * it is necessary that PWM_ACT_CYCLE >= PWM_ENTIRE_CYCLE + 1 -+ */ -+ if (state->duty_cycle == state->period) -+ clk_div++; -+ period |= FIELD_PREP(PWM_PERIOD_ACT_CYCLE, clk_div); -+ sun20i_pwm_writel(sun20i_chip, period, PWM_PERIOD(pwm->hwpwm)); ++ /* calculate prescale_k, PWM entire cycle */ ++ ent_cycle = val >> div_m; ++ prescale_k = DIV_ROUND_DOWN_ULL(ent_cycle, 65537); ++ if (prescale_k > SUN20I_PWM_CTL_PRESCAL_K_MAX) ++ prescale_k = SUN20I_PWM_CTL_PRESCAL_K_MAX; + -+ ctl = FIELD_PREP(PWM_CTL_PRESCAL_K, prescaler); -+ if (state->polarity == PWM_POLARITY_NORMAL) -+ ctl |= PWM_CTL_ACT_STA; ++ do_div(ent_cycle, prescale_k + 1); + -+ sun20i_pwm_writel(sun20i_chip, ctl, PWM_CTL(pwm->hwpwm)); -+ } ++ /* for N cycles, PPRx.PWM_ENTIRE_CYCLE = (N-1) */ ++ reg_period = FIELD_PREP(SUN20I_PWM_PERIOD_ENTIRE_CYCLE, ent_cycle - 1); ++ ++ /* set duty cycle */ ++ val = mul_u64_u64_div_u64(state->duty_cycle, ++ (use_bus_clk ? bus_rate : hosc_rate), ++ NSEC_PER_SEC); ++ act_cycle = val >> div_m; ++ do_div(act_cycle, prescale_k + 1); ++ ++ /* ++ * The formula of the output period and the duty-cycle for PWM are as follows. ++ * T period = PWM0_PRESCALE_K / PWM01_CLK * (PPR0.PWM_ENTIRE_CYCLE + 1) ++ * T high-level = PWM0_PRESCALE_K / PWM01_CLK * PPR0.PWM_ACT_CYCLE ++ * Duty-cycle = T high-level / T period ++ */ ++ reg_period |= FIELD_PREP(SUN20I_PWM_PERIOD_ACT_CYCLE, act_cycle); ++ sun20i_pwm_writel(sun20i_chip, reg_period, SUN20I_PWM_PERIOD(pwm->hwpwm)); ++ ++ ctl = FIELD_PREP(SUN20I_PWM_CTL_PRESCAL_K, prescale_k); ++ if (state->polarity == PWM_POLARITY_NORMAL) ++ ctl |= SUN20I_PWM_CTL_ACT_STA; ++ ++ sun20i_pwm_writel(sun20i_chip, ctl, SUN20I_PWM_CTL(pwm->hwpwm)); + + if (state->enabled != pwm->state.enabled && state->enabled) { -+ clk_gate &= ~PWM_CLK_GATE_BYPASS(pwm->hwpwm); -+ clk_gate |= PWM_CLK_GATE_GATING(pwm->hwpwm); -+ pwm_en |= PWM_ENABLE_EN(pwm->hwpwm); -+ sun20i_pwm_writel(sun20i_chip, pwm_en, PWM_ENABLE); -+ sun20i_pwm_writel(sun20i_chip, clk_gate, PWM_CLK_GATE); ++ clk_gate &= ~SUN20I_PWM_CLK_GATE_BYPASS(pwm->hwpwm); ++ clk_gate |= SUN20I_PWM_CLK_GATE_GATING(pwm->hwpwm); ++ pwm_en |= SUN20I_PWM_ENABLE_EN(pwm->hwpwm); ++ sun20i_pwm_writel(sun20i_chip, pwm_en, SUN20I_PWM_ENABLE); ++ sun20i_pwm_writel(sun20i_chip, clk_gate, SUN20I_PWM_CLK_GATE); + } + -+unlock_mutex: -+ mutex_unlock(&sun20i_chip->mutex); -+ -+ return ret; ++ return 0; +} + +static const struct pwm_ops sun20i_pwm_ops = { -+ .get_state = sun20i_pwm_get_state, + .apply = sun20i_pwm_apply, -+ .owner = THIS_MODULE, ++ .get_state = sun20i_pwm_get_state, +}; + +static const struct of_device_id sun20i_pwm_dt_ids[] = { @@ -304,14 +352,23 @@ index 000000000000..20e6b7b5b62e +}; +MODULE_DEVICE_TABLE(of, sun20i_pwm_dt_ids); + ++static void sun20i_pwm_reset_ctrl_release(void *data) ++{ ++ struct reset_control *rst = data; ++ ++ reset_control_assert(rst); ++} ++ +static int sun20i_pwm_probe(struct platform_device *pdev) +{ ++ struct pwm_chip *chip; + struct sun20i_pwm_chip *sun20i_chip; + int ret; + -+ sun20i_chip = devm_kzalloc(&pdev->dev, sizeof(*sun20i_chip), GFP_KERNEL); -+ if (!sun20i_chip) -+ return -ENOMEM; ++ chip = devm_pwmchip_alloc(&pdev->dev, 8, sizeof(*sun20i_chip)); ++ if (IS_ERR(chip)) ++ return PTR_ERR(chip); ++ sun20i_chip = to_sun20i_pwm_chip(chip); + + sun20i_chip->base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(sun20i_chip->base)) @@ -327,10 +384,13 @@ index 000000000000..20e6b7b5b62e + return dev_err_probe(&pdev->dev, PTR_ERR(sun20i_chip->clk_hosc), + "failed to get hosc clock\n"); + -+ sun20i_chip->clk_apb0 = devm_clk_get_enabled(&pdev->dev, "apb0"); -+ if (IS_ERR(sun20i_chip->clk_apb0)) -+ return dev_err_probe(&pdev->dev, PTR_ERR(sun20i_chip->clk_apb0), -+ "failed to get apb0 clock\n"); ++ sun20i_chip->clk_apb = devm_clk_get_enabled(&pdev->dev, "apb"); ++ if (IS_ERR(sun20i_chip->clk_apb)) ++ return dev_err_probe(&pdev->dev, PTR_ERR(sun20i_chip->clk_apb), ++ "failed to get apb clock\n"); ++ ++ if (clk_get_rate(sun20i_chip->clk_apb) > clk_get_rate(sun20i_chip->clk_hosc)) ++ dev_info(&pdev->dev, "apb clock must be greater than hosc clock"); + + sun20i_chip->rst = devm_reset_control_get_exclusive(&pdev->dev, NULL); + if (IS_ERR(sun20i_chip->rst)) @@ -338,47 +398,40 @@ index 000000000000..20e6b7b5b62e + "failed to get bus reset\n"); + + ret = of_property_read_u32(pdev->dev.of_node, "allwinner,pwm-channels", -+ &sun20i_chip->chip.npwm); -+ if (ret) -+ sun20i_chip->chip.npwm = 8; ++ &chip->npwm); ++ ++ if (chip->npwm > 16) { ++ dev_info(&pdev->dev, "limiting number of PWM lines from %u to 16", ++ chip->npwm); ++ chip->npwm = 16; ++ } + + /* Deassert reset */ + ret = reset_control_deassert(sun20i_chip->rst); + if (ret) + return dev_err_probe(&pdev->dev, ret, "failed to deassert reset\n"); + -+ sun20i_chip->chip.dev = &pdev->dev; -+ sun20i_chip->chip.ops = &sun20i_pwm_ops; ++ ret = devm_add_action_or_reset(&pdev->dev, sun20i_pwm_reset_ctrl_release, sun20i_chip->rst); ++ if (ret) ++ return ret; ++ ++ chip->ops = &sun20i_pwm_ops; + + mutex_init(&sun20i_chip->mutex); + -+ ret = pwmchip_add(&sun20i_chip->chip); -+ if (ret < 0) { -+ reset_control_assert(sun20i_chip->rst); ++ ret = devm_pwmchip_add(&pdev->dev, chip); ++ if (ret < 0) + return dev_err_probe(&pdev->dev, ret, "failed to add PWM chip\n"); -+ } -+ -+ platform_set_drvdata(pdev, sun20i_chip); + + return 0; +} + -+static void sun20i_pwm_remove(struct platform_device *pdev) -+{ -+ struct sun20i_pwm_chip *sun20i_chip = platform_get_drvdata(pdev); -+ -+ pwmchip_remove(&sun20i_chip->chip); -+ -+ reset_control_assert(sun20i_chip->rst); -+} -+ +static struct platform_driver sun20i_pwm_driver = { + .driver = { + .name = "sun20i-pwm", + .of_match_table = sun20i_pwm_dt_ids, + }, + .probe = sun20i_pwm_probe, -+ .remove_new = sun20i_pwm_remove, +}; +module_platform_driver(sun20i_pwm_driver); + diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-riscv-dts-allwinner-d1-Add-pwm-node.patch b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-riscv-dts-allwinner-d1-Add-pwm-node.patch index 578a6fac..f469f1f5 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-riscv-dts-allwinner-d1-Add-pwm-node.patch +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-riscv-dts-allwinner-d1-Add-pwm-node.patch @@ -14,7 +14,7 @@ Signed-off-by: Aleksandr Shubin 1 file changed, 12 insertions(+) diff --git a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi -index 822f022eec2d..92b6432f7734 100644 +index e4175adb028d..2c26cb8b2b07 100644 --- a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi +++ b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi @@ -145,6 +145,18 @@ uart3_pb_pins: uart3-pb-pins { @@ -27,7 +27,7 @@ index 822f022eec2d..92b6432f7734 100644 + clocks = <&ccu CLK_BUS_PWM>, + <&dcxo>, + <&ccu CLK_APB0>; -+ clock-names = "bus", "hosc", "apb0"; ++ clock-names = "bus", "hosc", "apb"; + resets = <&ccu RST_BUS_PWM>; + status = "disabled"; + #pwm-cells = <0x3>; diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-thermal-sun8i-add-sun20i-d1-ths-support.patch b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-thermal-sun8i-add-sun20i-d1-ths-support.patch deleted file mode 100644 index 123ba364..00000000 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/0003-thermal-sun8i-add-sun20i-d1-ths-support.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6a8a2d8b4f7e0ab1c96c9b4b2b4c0d1d7f4d2a1b Mon Sep 17 00:00:00 2001 -From: OpenCentauri -Date: Sun, 5 Apr 2026 12:30:00 +0000 -Subject: [PATCH] thermal: sun8i: add sun20i-d1-ths support - -Backport support for the T113/D1 thermal block to the 6.6.85 kernel -used by elegoo-centauri-carbon1. - -The R528/T113-S3 uses the same THS IP block as the Allwinner D1/T113 -line, which is supported upstream as "allwinner,sun20i-d1-ths". This -backport adds a dedicated chip description struct and OF match entry -to the sun8i_thermal driver. - ---- - drivers/thermal/sun8i_thermal.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c ---- a/drivers/thermal/sun8i_thermal.c -+++ b/drivers/thermal/sun8i_thermal.c -@@ -606,6 +606,18 @@ static const struct ths_thermal_chip sun50i_h6_ths = { - .calc_temp = sun8i_ths_calc_temp, - }; - -+static const struct ths_thermal_chip sun20i_d1_ths = { -+ .sensor_num = 1, -+ .has_bus_clk_reset = true, -+ .offset = 188552, -+ .scale = 672, -+ .temp_data_base = SUN50I_H6_THS_TEMP_DATA, -+ .calibrate = sun50i_h6_ths_calibrate, -+ .init = sun50i_h6_thermal_init, -+ .irq_ack = sun50i_h6_irq_ack, -+ .calc_temp = sun8i_ths_calc_temp, -+}; -+ - static const struct of_device_id of_ths_match[] = { - { .compatible = "allwinner,sun8i-a83t-ths", .data = &sun8i_a83t_ths }, - { .compatible = "allwinner,sun8i-h3-ths", .data = &sun8i_h3_ths }, -@@ -614,6 +626,7 @@ static const struct of_device_id of_ths_match[] = { - { .compatible = "allwinner,sun50i-a100-ths", .data = &sun50i_a100_ths }, - { .compatible = "allwinner,sun50i-h5-ths", .data = &sun50i_h5_ths }, - { .compatible = "allwinner,sun50i-h6-ths", .data = &sun50i_h6_ths }, -+ { .compatible = "allwinner,sun20i-d1-ths", .data = &sun20i_d1_ths }, - { /* sentinel */ }, - }; - MODULE_DEVICE_TABLE(of, of_ths_match); diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/defconfig b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/defconfig new file mode 100644 index 00000000..ce1c7d32 --- /dev/null +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/defconfig @@ -0,0 +1,786 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_CGROUPS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_BPF_SYSCALL=y +CONFIG_PERF_EVENTS=y +CONFIG_MODULES=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_MAC_PARTITION=y +CONFIG_LDM_PARTITION=y +CONFIG_ARCH_SUNXI=y +CONFIG_SMP=y +CONFIG_NR_CPUS=8 +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPUFREQ_DT=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_HIBERNATION=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPGRE=m +CONFIG_NET_FOU=m +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_DCTCP=m +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=m +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_META=m +CONFIG_NFT_CT=m +CONFIG_NFT_RBTREE=m +CONFIG_NFT_HASH=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m +CONFIG_NFT_QUEUE=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_COMPAT=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_DEBUG=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_PE_SIP=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NF_TABLES_ARP=m +CONFIG_NF_LOG_ARP=m +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_L2TP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_6LOWPAN=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_MAC802154=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=y +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_HHF=m +CONFIG_NET_SCH_PIE=y +CONFIG_NET_SCH_PLUG=m +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_VLAN=m +CONFIG_NET_ACT_BPF=m +CONFIG_NET_ACT_CONNMARK=m +CONFIG_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=y +CONFIG_BPF_JIT=y +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_MESH=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_RAM=m +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_WCACHE=y +CONFIG_EEPROM_SUNXI_SID=y +CONFIG_SCSI_MQ_DEFAULT=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_ATA=y +CONFIG_AHCI_SUNXI=y +CONFIG_MD=y +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +CONFIG_BLK_DEV_DM=m +CONFIG_DM_MQ_DEFAULT=y +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_CACHE=m +CONFIG_DM_ERA=m +CONFIG_DM_MIRROR=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_RAID=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m +CONFIG_DM_SWITCH=m +CONFIG_DM_LOG_WRITES=m +CONFIG_NETDEVICES=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_IPVLAN=m +CONFIG_VXLAN=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NLMON=m +CONFIG_SUN4I_EMAC=y +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_CADENCE is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SMSC is not set +CONFIG_STMMAC_ETH=y +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8187=m +CONFIG_ATH_CARDS=m +CONFIG_ATH9K=m +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_CHANNEL_CONTEXT=y +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +CONFIG_AR5523=m +CONFIG_ATH10K=m +CONFIG_WCN36XX=m +CONFIG_B43=m +CONFIG_B43_SDIO=y +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_USB=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_SPI=m +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RTL8192CU=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m +CONFIG_ZD1211RW=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +CONFIG_CW1200=m +CONFIG_CW1200_WLAN_SDIO=m +CONFIG_CW1200_WLAN_SPI=m +CONFIG_RSI_91X=m +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SUN4I=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AXP20X_PEK=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=8 +CONFIG_SERIAL_8250_RUNTIME_UARTS=8 +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MV64XXX=y +CONFIG_I2C_SUN6I_P2WI=y +CONFIG_SPI=y +CONFIG_SPI_SPIDEV=y +CONFIG_SPI_SUN4I=y +CONFIG_SPI_SUN6I=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_SUPPLY=y +CONFIG_POWER_RESET=y +CONFIG_THERMAL=y +CONFIG_THERMAL_OF=y +CONFIG_CPU_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_SUNXI_WATCHDOG=y +CONFIG_MFD_AXP20X=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_GPIO=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_ADV_DEBUG=y +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_DTCS033=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TOUPTEK=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_RC=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_DVB=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_AS102=m +CONFIG_USB_AIRSPY=m +CONFIG_USB_HACKRF=m +CONFIG_USB_MSI2500=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VIDEO_VIVID=m +CONFIG_VIDEO_VIM2M=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_RADIO_SI470X=y +CONFIG_USB_SI470X=m +CONFIG_I2C_SI470X=m +CONFIG_RADIO_SI4713=m +CONFIG_USB_SI4713=m +CONFIG_PLATFORM_SI4713=m +CONFIG_USB_MR800=m +CONFIG_USB_DSBR=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_USB_KEENE=m +CONFIG_USB_RAREMONO=m +CONFIG_USB_MA901=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_WL1273=m +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_FB=y +CONFIG_FB_SIMPLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_MMC=y +CONFIG_MMC_SUNXI=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS_FLASH=y +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m +CONFIG_LEDS_LP8501=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_REGULATOR=y +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_BLINKM=m +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_TRANSIENT=y +CONFIG_LEDS_TRIGGER_CAMERA=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_INTF_SYSFS is not set +# CONFIG_RTC_INTF_PROC is not set +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_SUNXI=y +CONFIG_DMADEVICES=y +CONFIG_DMA_SUN6I=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXTCON=y +CONFIG_PWM=y +CONFIG_PWM_SUN4I=y +CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_SUN9I_USB=y +CONFIG_EXT4_FS=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FANOTIFY=y +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_OVERLAY_FS=m +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +CONFIG_FSCACHE_HISTOGRAM=y +CONFIG_CACHEFILES=m +CONFIG_CACHEFILES_HISTOGRAM=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_CRYPTO_DEV_SUN4I_SS=y +CONFIG_ARM_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM_NEON=y +CONFIG_CRYPTO_SHA256_ARM=y +CONFIG_CRYPTO_SHA512_ARM_NEON=y +CONFIG_CRYPTO_AES_ARM_BS=y +CONFIG_USB_STORAGE=y diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/fragment.cfg b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/fragment.cfg index 67d07979..83ba41e9 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/fragment.cfg +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/fragment.cfg @@ -1,44 +1,336 @@ -CONFIG_KCMP=y -CONFIG_VIDEO_NOMODESET=y +# ============================================================ +# Compression & boot +# ============================================================ +CONFIG_KERNEL_XZ=y +CONFIG_BLK_DEV_INITRD=y +# --- Only gzip decompressor for initramfs --- +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set + + +# ============================================================ +# CPU / SMP — T113 is dual-core +# ============================================================ +CONFIG_NR_CPUS=2 +CONFIG_CPU_FREQ=y +CONFIG_CPUFREQ_DT=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y + + +# ============================================================ +# Memory architecture — HIGHMEM is pointless on 128 MB +# ============================================================ +# CONFIG_HIGHMEM is not set +# CONFIG_HIGHPTE is not set + + +# ============================================================ +# Process / scheduler overhead — not needed on embedded +# ============================================================ +# CONFIG_CGROUPS is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_TASKSTATS is not set +# CONFIG_TASK_DELAY_ACCT is not set +# CONFIG_TASK_XACCT is not set +# CONFIG_TASK_IO_ACCOUNTING is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_POSIX_MQUEUE is not set + + +# ============================================================ +# Debug / profiling — save RAM +# ============================================================ +# CONFIG_PERF_EVENTS is not set +# CONFIG_IKCONFIG is not set +# CONFIG_IKCONFIG_PROC is not set +# CONFIG_BPF_SYSCALL is not set +# CONFIG_BPF_JIT is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_PRINTK_TIME is not set + + +# ============================================================ +# Modules +# ============================================================ +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y + + +# ============================================================ +# Hibernation — no suspend-to-disk on embedded +# ============================================================ +# CONFIG_HIBERNATION is not set + + +# ============================================================ +# Networking — bare ethernet + WiFi only +# ============================================================ + +# --- IPv6 (entire stack) --- +# CONFIG_IPV6 is not set + +# --- Netfilter / conntrack (hash table eats ~1 MB) --- +# CONFIG_NETFILTER is not set + +# --- Traffic schedulers --- +# CONFIG_NET_SCHED is not set + +# --- Advanced routing --- +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set +# CONFIG_IP_FIB_TRIE_STATS is not set + +# --- Tunnels / IPsec --- +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_NET_FOU is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set + +# --- NFS / boot-over-network --- +# CONFIG_NFS_FS is not set +# CONFIG_ROOT_NFS is not set +# CONFIG_IP_PNP is not set +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set + +# --- Virtual networking / containers --- +# CONFIG_BONDING is not set +# CONFIG_NET_TEAM is not set +# CONFIG_VXLAN is not set +# CONFIG_MACVLAN is not set +# CONFIG_MACVTAP is not set +# CONFIG_IPVLAN is not set +# CONFIG_VETH is not set +# CONFIG_NLMON is not set +# CONFIG_DUMMY is not set +# CONFIG_TUN is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_L2TP is not set +# CONFIG_VSOCKETS is not set +# CONFIG_IP_MULTICAST is not set +# CONFIG_PACKET_DIAG is not set +# CONFIG_UNIX_DIAG is not set + +# --- PPP --- +# CONFIG_PPP is not set + +# --- Bluetooth --- +# CONFIG_BT is not set + +# --- 6LoWPAN / IEEE 802.15.4 --- +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set + +# --- IP virtual server --- +# CONFIG_IP_VS is not set + + +# ============================================================ +# WiFi — cfg80211/mac80211 for out-of-tree rtw88 only +# ============================================================ +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_RFKILL=y +# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_RTW88 is not set +# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_AT76C50X_USB is not set +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_RTL8187 is not set +# CONFIG_ATH_CARDS is not set +# CONFIG_CARL9170 is not set +# CONFIG_ATH6KL is not set +# CONFIG_AR5523 is not set +# CONFIG_ATH10K is not set +# CONFIG_WCN36XX is not set +# CONFIG_B43 is not set +# CONFIG_BRCMFMAC is not set +# CONFIG_HOSTAP is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL_TI is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set +# CONFIG_CW1200 is not set +# CONFIG_RSI_91X is not set + + +# ============================================================ +# Ethernet — STMMAC only (T113 uses STMMAC, not SUN4I_EMAC) +# ============================================================ +CONFIG_STMMAC_ETH=y +# CONFIG_SUN4I_EMAC is not set + + +# ============================================================ +# Block layer — no RAID, no NBD, no RAM disk +# ============================================================ +# CONFIG_MD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BCACHE is not set + +# --- SATA (no SATA on R528) --- +# CONFIG_ATA is not set +# CONFIG_AHCI_SUNXI is not set + +# --- Partition types (just MBR + GPT) --- +# CONFIG_PARTITION_ADVANCED is not set +# CONFIG_MAC_PARTITION is not set +# CONFIG_LDM_PARTITION is not set + + +# ============================================================ +# Filesystems +# ============================================================ + +# --- SquashFS (read-only rootfs, LZ4 only) --- +CONFIG_SQUASHFS=y +# CONFIG_SQUASHFS_ZLIB is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_ZSTD is not set +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_EMBEDDED=y + +# --- OverlayFS (writable layer) --- +CONFIG_OVERLAY_FS=y + +# --- ext4 + VFAT for USB drives --- +CONFIG_EXT4_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_TMPFS=y + +# --- Disabled filesystems --- +# CONFIG_XFS_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_FSCACHE is not set +# CONFIG_CACHEFILES is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set +# CONFIG_FANOTIFY is not set + + +# ============================================================ +# Swap + zram +# ============================================================ +CONFIG_SWAP=y +CONFIG_ZRAM=m +CONFIG_ZRAM_BACKEND_LZ4=y +# CONFIG_ZRAM_BACKEND_LZO is not set +CONFIG_ZRAM_DEF_COMP_LZ4=y +CONFIG_ZRAM_DEF_COMP="lz4" +CONFIG_CRYPTO_LZ4=y + + +# ============================================================ +# Display — parallel RGB via DRM sun4i + /dev/fb0 +# +# R528 display path: DE2 mixer -> TCON -> parallel RGB +# DRM_FBDEV_EMULATION provides /dev/fb0 from DRM. +# SUN4I_BACKEND is the DE1 engine — kept because some R528 +# DTS variants wire through it. If your display works without +# it, disable it for ~50 KB savings. +# ============================================================ CONFIG_DRM=y -CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DEBUG_MM is not set CONFIG_DRM_KMS_HELPER=y +CONFIG_DRM_GEM_DMA_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 -# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set -CONFIG_DRM_GEM_DMA_HELPER=y -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# end of I2C encoder or helper chips +CONFIG_DRM_PANEL=y +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_SIMPLEDRM=y -# -# ARM devices -# -# CONFIG_DRM_HDLCD is not set -# CONFIG_DRM_MALI_DISPLAY is not set -# CONFIG_DRM_KOMEDA is not set -# end of ARM devices +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_FB=y + +# --- Not needed for parallel RGB (no DSI, no HDMI) --- +# CONFIG_DRM_PANEL_SIMPLE is not set +# CONFIG_DRM_SUN4I is not set +# CONFIG_DRM_SUN6I_DSI is not set +# CONFIG_DRM_SUN4I_HDMI is not set +# CONFIG_DRM_SUN8I_DW_HDMI is not set +# CONFIG_DRM_MIPI_DSI is not set +# CONFIG_GENERIC_PHY_MIPI_DPHY is not set +# CONFIG_PHY_SUN6I_MIPI_DPHY is not set +# CONFIG_HDMI is not set + +# --- Unnecessary DRM drivers --- +# CONFIG_FB_SIMPLE is not set +# CONFIG_FRAMEBUFFER_CONSOLE is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_VKMS is not set # CONFIG_DRM_UDL is not set # CONFIG_DRM_ARMADA is not set -# CONFIG_DRM_SUN4I is not set # CONFIG_DRM_TILCDC is not set # CONFIG_DRM_VIRTIO_GPU is not set # CONFIG_DRM_FSL_DCU is not set -CONFIG_DRM_PANEL=y +# CONFIG_DRM_HDLCD is not set +# CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_LOGICVC is not set +# CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_DRM_PANEL_MIPI_DBI is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_LIMA is not set +# CONFIG_DRM_PANFROST is not set +# CONFIG_DRM_TIDSS is not set +# CONFIG_DRM_GUD is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_LEGACY is not set +# CONFIG_DRM_ACCEL is not set +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +# CONFIG_DRM_DEBUG_MM is not set -# -# Display Panels -# +# --- Unnecessary display panels --- # CONFIG_DRM_PANEL_ABT_Y030XX067A is not set # CONFIG_DRM_PANEL_ARM_VERSATILE is not set # CONFIG_DRM_PANEL_AUO_A030JTN01 is not set @@ -56,101 +348,12 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -# CONFIG_DRM_CHIPONE_ICN6211 is not set -# CONFIG_DRM_CHRONTEL_CH7033 is not set -# CONFIG_DRM_DISPLAY_CONNECTOR is not set -# CONFIG_DRM_ITE_IT6505 is not set -# CONFIG_DRM_LONTIUM_LT8912B is not set -# CONFIG_DRM_LONTIUM_LT9211 is not set -# CONFIG_DRM_LONTIUM_LT9611 is not set -# CONFIG_DRM_LONTIUM_LT9611UXC is not set -# CONFIG_DRM_ITE_IT66121 is not set -# CONFIG_DRM_LVDS_CODEC is not set -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -# CONFIG_DRM_NWL_MIPI_DSI is not set -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_PARADE_PS8622 is not set -# CONFIG_DRM_PARADE_PS8640 is not set -# CONFIG_DRM_SAMSUNG_DSIM is not set -# CONFIG_DRM_SIL_SII8620 is not set -# CONFIG_DRM_SII902X is not set -# CONFIG_DRM_SII9234 is not set -# CONFIG_DRM_SIMPLE_BRIDGE is not set -# CONFIG_DRM_THINE_THC63LVD1024 is not set -# CONFIG_DRM_TOSHIBA_TC358762 is not set -# CONFIG_DRM_TOSHIBA_TC358764 is not set -# CONFIG_DRM_TOSHIBA_TC358767 is not set -# CONFIG_DRM_TOSHIBA_TC358768 is not set -# CONFIG_DRM_TOSHIBA_TC358775 is not set -# CONFIG_DRM_TI_DLPC3433 is not set -# CONFIG_DRM_TI_TFP410 is not set -# CONFIG_DRM_TI_SN65DSI83 is not set -# CONFIG_DRM_TI_SN65DSI86 is not set -# CONFIG_DRM_TI_TPD12S015 is not set -# CONFIG_DRM_ANALOGIX_ANX6345 is not set -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# CONFIG_DRM_ANALOGIX_ANX7625 is not set -# CONFIG_DRM_I2C_ADV7511 is not set -# CONFIG_DRM_CDNS_DSI is not set -# CONFIG_DRM_CDNS_MHDP8546 is not set -# end of Display Interface Bridges - -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_LOGICVC is not set -# CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_PANEL_MIPI_DBI is not set -CONFIG_DRM_SIMPLEDRM=y -# CONFIG_TINYDRM_HX8357D is not set -# CONFIG_TINYDRM_ILI9163 is not set -# CONFIG_TINYDRM_ILI9225 is not set -# CONFIG_TINYDRM_ILI9341 is not set -# CONFIG_TINYDRM_ILI9486 is not set -# CONFIG_TINYDRM_MI0283QT is not set -# CONFIG_TINYDRM_REPAPER is not set -# CONFIG_TINYDRM_ST7586 is not set -# CONFIG_TINYDRM_ST7735R is not set -# CONFIG_DRM_PL111 is not set -# CONFIG_DRM_LIMA is not set -# CONFIG_DRM_PANFROST is not set -# CONFIG_DRM_TIDSS is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_SSD130X is not set -# CONFIG_DRM_LEGACY is not set -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_DMAMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y -CONFIG_VIDEOMODE_HELPERS=y -CONFIG_HDMI=y - -# CONFIG_DRM_ACCEL is not set -CONFIG_SYNC_FILE=y -CONFIG_GENERIC_PHY_MIPI_DPHY=y -CONFIG_PHY_SUN6I_MIPI_DPHY=y -CONFIG_CRC_CCITT=y - -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set # CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set # CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set # CONFIG_DRM_PANEL_DSI_CM is not set # CONFIG_DRM_PANEL_LVDS is not set -CONFIG_DRM_PANEL_SIMPLE=y # CONFIG_DRM_PANEL_EDP is not set # CONFIG_DRM_PANEL_EBBG_FT8719 is not set # CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set @@ -211,17 +414,67 @@ CONFIG_DRM_PANEL_SIMPLE=y # CONFIG_DRM_PANEL_VISIONOX_R66451 is not set # CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set + +# --- Unnecessary display bridges --- +# CONFIG_DRM_CHIPONE_ICN6211 is not set +# CONFIG_DRM_CHRONTEL_CH7033 is not set +# CONFIG_DRM_DISPLAY_CONNECTOR is not set +# CONFIG_DRM_ITE_IT6505 is not set +# CONFIG_DRM_LONTIUM_LT8912B is not set +# CONFIG_DRM_LONTIUM_LT9211 is not set +# CONFIG_DRM_LONTIUM_LT9611 is not set +# CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_ITE_IT66121 is not set +# CONFIG_DRM_LVDS_CODEC is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NWL_MIPI_DSI is not set +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_PARADE_PS8640 is not set +# CONFIG_DRM_SAMSUNG_DSIM is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_SIMPLE_BRIDGE is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set +# CONFIG_DRM_TOSHIBA_TC358762 is not set +# CONFIG_DRM_TOSHIBA_TC358764 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TOSHIBA_TC358768 is not set +# CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TI_DLPC3433 is not set +# CONFIG_DRM_TI_TFP410 is not set +# CONFIG_DRM_TI_SN65DSI83 is not set +# CONFIG_DRM_TI_SN65DSI86 is not set +# CONFIG_DRM_TI_TPD12S015 is not set +# CONFIG_DRM_ANALOGIX_ANX6345 is not set +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_ANALOGIX_ANX7625 is not set +# CONFIG_DRM_I2C_ADV7511 is not set +# CONFIG_DRM_CDNS_DSI is not set +# CONFIG_DRM_CDNS_MHDP8546 is not set + +# --- Unnecessary tinydrm --- +# CONFIG_TINYDRM_HX8357D is not set +# CONFIG_TINYDRM_ILI9163 is not set +# CONFIG_TINYDRM_ILI9225 is not set +# CONFIG_TINYDRM_ILI9341 is not set +# CONFIG_TINYDRM_ILI9486 is not set +# CONFIG_TINYDRM_MI0283QT is not set +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set +# CONFIG_TINYDRM_ST7735R is not set + +# --- Unnecessary backlights --- # CONFIG_BACKLIGHT_KTD253 is not set # CONFIG_BACKLIGHT_KTZ8866 is not set -CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_LP855X is not set -CONFIG_BACKLIGHT_GPIO=y # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set @@ -229,54 +482,308 @@ CONFIG_BACKLIGHT_GPIO=y CONFIG_PWM_SUN20I=y # GPIO SYSFS + +# ============================================================ +# Media — USB UVC only (ustreamer MJPEG) +# ============================================================ +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m + +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_USBNET=m +CONFIG_USB_NET_RTL8152=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_NET_MCS7830=m + +# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set +# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set +# CONFIG_MEDIA_RADIO_SUPPORT is not set +# CONFIG_MEDIA_SDR_SUPPORT is not set +# CONFIG_MEDIA_RC_SUPPORT is not set +# CONFIG_MEDIA_CONTROLLER is not set +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_V4L_PLATFORM_DRIVERS is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +# CONFIG_V4L_TEST_DRIVERS is not set + +# --- GSPCA webcam drivers (UVC handles modern cameras) --- +# CONFIG_USB_M5602 is not set +# CONFIG_USB_STV06XX is not set +# CONFIG_USB_GL860 is not set +# CONFIG_USB_GSPCA_BENQ is not set +# CONFIG_USB_GSPCA_CONEX is not set +# CONFIG_USB_GSPCA_CPIA1 is not set +# CONFIG_USB_GSPCA_DTCS033 is not set +# CONFIG_USB_GSPCA_ETOMS is not set +# CONFIG_USB_GSPCA_FINEPIX is not set +# CONFIG_USB_GSPCA_JEILINJ is not set +# CONFIG_USB_GSPCA_JL2005BCD is not set +# CONFIG_USB_GSPCA_KINECT is not set +# CONFIG_USB_GSPCA_KONICA is not set +# CONFIG_USB_GSPCA_MARS is not set +# CONFIG_USB_GSPCA_MR97310A is not set +# CONFIG_USB_GSPCA_NW80X is not set +# CONFIG_USB_GSPCA_OV519 is not set +# CONFIG_USB_GSPCA_OV534 is not set +# CONFIG_USB_GSPCA_OV534_9 is not set +# CONFIG_USB_GSPCA_PAC207 is not set +# CONFIG_USB_GSPCA_PAC7302 is not set +# CONFIG_USB_GSPCA_PAC7311 is not set +# CONFIG_USB_GSPCA_SE401 is not set +# CONFIG_USB_GSPCA_SN9C2028 is not set +# CONFIG_USB_GSPCA_SN9C20X is not set +# CONFIG_USB_GSPCA_SONIXB is not set +# CONFIG_USB_GSPCA_SONIXJ is not set +# CONFIG_USB_GSPCA_SPCA500 is not set +# CONFIG_USB_GSPCA_SPCA501 is not set +# CONFIG_USB_GSPCA_SPCA505 is not set +# CONFIG_USB_GSPCA_SPCA506 is not set +# CONFIG_USB_GSPCA_SPCA508 is not set +# CONFIG_USB_GSPCA_SPCA561 is not set +# CONFIG_USB_GSPCA_SPCA1528 is not set +# CONFIG_USB_GSPCA_SQ905 is not set +# CONFIG_USB_GSPCA_SQ905C is not set +# CONFIG_USB_GSPCA_SQ930X is not set +# CONFIG_USB_GSPCA_STK014 is not set +# CONFIG_USB_GSPCA_STK1135 is not set +# CONFIG_USB_GSPCA_STV0680 is not set +# CONFIG_USB_GSPCA_SUNPLUS is not set +# CONFIG_USB_GSPCA_T613 is not set +# CONFIG_USB_GSPCA_TOPRO is not set +# CONFIG_USB_GSPCA_TOUPTEK is not set +# CONFIG_USB_GSPCA_TV8532 is not set +# CONFIG_USB_GSPCA_VC032X is not set +# CONFIG_USB_GSPCA_VICAM is not set +# CONFIG_USB_GSPCA_XIRLINK_CIT is not set +# CONFIG_USB_GSPCA_ZC3XX is not set +# CONFIG_USB_PWC is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_VIDEO_STK1160_COMMON is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set +# CONFIG_DVB_USB is not set +# CONFIG_DVB_USB_V2 is not set +# CONFIG_SMS_USB_DRV is not set +# CONFIG_DVB_B2C2_FLEXCOP_USB is not set +# CONFIG_DVB_AS102 is not set +# CONFIG_USB_AIRSPY is not set +# CONFIG_USB_HACKRF is not set +# CONFIG_USB_MSI2500 is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_VIDEO_VIVID is not set +# CONFIG_VIDEO_VIM2M is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set +# CONFIG_USB_MR800 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SHARK is not set +# CONFIG_RADIO_SHARK2 is not set +# CONFIG_USB_KEENE is not set +# CONFIG_USB_RAREMONO is not set +# CONFIG_USB_MA901 is not set + + +# ============================================================ +# Input — touchscreen + evdev, no keyboard/mouse drivers +# ============================================================ +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AXP20X_PEK=y + + +# ============================================================ +# UART +# ============================================================ +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=5 +CONFIG_SERIAL_8250_RUNTIME_UARTS=5 +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y + + +# ============================================================ +# I2C / SPI / GPIO +# ============================================================ +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MV64XXX=y +CONFIG_SPI=y +CONFIG_SPI_SPIDEV=y +CONFIG_SPI_SUN6I=y CONFIG_EXPERT=y CONFIG_GPIO_SYSFS=y -# WiFi stack (needed by out-of-tree rtw88 driver) -CONFIG_CFG80211=m -CONFIG_MAC80211=m -# CONFIG_CFG80211_DEFAULT_PS is not set -# In-kernel rtw88 disabled; replaced by out-of-tree lwfinger/rtw88 -# CONFIG_RTW88 is not set +# --- Old SoC peripherals not on T113/R528 --- +# CONFIG_I2C_SUN6I_P2WI is not set +# CONFIG_SPI_SUN4I is not set -# Touchscreen -CONFIG_TOUCHSCREEN_GOODIX=y -# DSP +# ============================================================ +# USB +# ============================================================ +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_ACM=y + +# --- USB serial: CP210X, FTDI, PL2303, CH341 --- +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_CH341=m +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set + +# --- USB PHY --- +CONFIG_PHY_SUN4I_USB=y +# CONFIG_PHY_SUN9I_USB is not set + + +# ============================================================ +# Power / thermal / watchdog +# ============================================================ +CONFIG_POWER_SUPPLY=y +CONFIG_POWER_RESET=y +CONFIG_WATCHDOG=y +CONFIG_SUNXI_WATCHDOG=y +CONFIG_MFD_AXP20X=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_GPIO=y + +# --- Thermal (R528/T113-S3 sensor block) --- +# Trip points: 85°C passive (monitoring-only), 100°C critical +# CPU_THERMAL intentionally disabled — no cooling-maps in DTS, +# enabling it would risk breaking Klipper stepper timing. +CONFIG_THERMAL=y +CONFIG_THERMAL_OF=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_HWMON=y +CONFIG_SUN8I_THERMAL=y +# CONFIG_CPU_THERMAL is not set +CONFIG_NVMEM_SUNXI_SID=y + + +# ============================================================ +# LEDs — GPIO + regulator only +# ============================================================ +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_REGULATOR=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +# CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set + + +# ============================================================ +# DSP — remoteproc / rpmsg for HiFi4 +# ============================================================ +CONFIG_REMOTEPROC=y CONFIG_REMOTEPROC_CDEV=y +CONFIG_SUNXI_R528_HIFI4_REMOTEPROC=m CONFIG_RPMSG=y CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_CTRL=y CONFIG_RPMSG_TTY=m -CONFIG_VIRTIO=y +CONFIG_RPMSG_NS=y CONFIG_RPMSG_VIRTIO=y +CONFIG_VIRTIO=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_VIRTIO_ANCHOR=y CONFIG_MAILBOX=y CONFIG_SUNXI_R528_MSGBOX=y -CONFIG_REMOTEPROC=y -CONFIG_SUNXI_R528_HIFI4_REMOTEPROC=m -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_VIRTIO_ANCHOR=y -CONFIG_RPMSG_NS=y -# CONFIG_DEBUG_FS is not set -# CONFIG_DYNAMIC_DEBUG is not set +# ============================================================ +# Misc hardware +# ============================================================ +CONFIG_MMC=y +CONFIG_MMC_SUNXI=y +CONFIG_DMADEVICES=y +CONFIG_DMA_SUN6I=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_INTF_SYSFS is not set +# CONFIG_RTC_INTF_PROC is not set +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_SUNXI=y +CONFIG_EXTCON=y +CONFIG_PWM=y +CONFIG_PWM_SUN4I=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_HW_RANDOM is not set -CONFIG_USB_ACM=y -# CONFIG_FRAMEBUFFER_CONSOLE is not set +# ============================================================ +# Crypto — sun4i-ss hardware accel only, drop ARM NEON software +# ============================================================ +CONFIG_CRYPTO_DEV_SUN4I_SS=y +# CONFIG_ARM_CRYPTO is not set +# CONFIG_CRYPTO_SHA1_ARM_NEON is not set +# CONFIG_CRYPTO_SHA256_ARM is not set +# CONFIG_CRYPTO_SHA512_ARM_NEON is not set +# CONFIG_CRYPTO_AES_ARM_BS is not set -# Thermal monitoring (R528/T113-S3, allwinner,sun20i-d1-ths sensor block) -# Trip points: 85°C passive (monitoring-only, no cooling-maps), 100°C critical shutdown -# CPU frequency throttling (CONFIG_CPU_THERMAL) is intentionally disabled — no cooling-maps -# are bound in the DTS so the passive trip is monitoring-only. Enabling throttling here -# would risk breaking Klipper's real-time stepper motor timing under thermal load. -CONFIG_THERMAL=y -CONFIG_THERMAL_OF=y -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_HWMON=y -CONFIG_SUN8I_THERMAL=y -# Required by sun8i_thermal for factory calibration data from the Allwinner eFuse/SID block. -# Without this the thermal driver fails to probe and /sys/class/thermal remains empty. -CONFIG_NVMEM_SUNXI_SID=y \ No newline at end of file +# ============================================================ +# Misc kernel features — trim what's not needed +# ============================================================ +# CONFIG_KCMP is not set +# CONFIG_FHANDLE is not set +# CONFIG_SYSVIPC is not set +# CONFIG_VIDEO_NOMODESET is not set +# CONFIG_SYNC_FILE is not set \ No newline at end of file diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/kernel-size-reduction.cfg b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/kernel-size-reduction.cfg deleted file mode 100644 index 2e9f54ed..00000000 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/kernel-size-reduction.cfg +++ /dev/null @@ -1,208 +0,0 @@ -# Kernel size reduction for Elegoo Centauri Carbon 1 -# bootA partition is only 6.17 MB -- zImage + DTB + initramfs must fit. -# This fragment disables features from the generic arm/defconfig that -# are not needed on the R528/T113-S3 3D-printer board. - -# ============================================================ -# XZ kernel compression (saves ~1.5-1.8 MB vs gzip) -# ============================================================ -CONFIG_KERNEL_XZ=y - -# ============================================================ -# Reduce CPU count (T113 is dual-core, base has NR_CPUS=8) -# ============================================================ -CONFIG_NR_CPUS=2 - -# ============================================================ -# Module unload support (stock firmware has it, base lacks it) -# ============================================================ -CONFIG_MODULE_UNLOAD=y - -# ============================================================ -# RFKILL (may be needed for WiFi power management) -# ============================================================ -CONFIG_RFKILL=y - -# ============================================================ -# No BPF syscall / JIT (saves ~300 KB built-in) -# ============================================================ -# CONFIG_BPF_SYSCALL is not set -# CONFIG_BPF_JIT is not set - -# ============================================================ -# No NFS / SUNRPC / ROOT_NFS / IP_PNP (saves ~600-800 KB) -# ============================================================ -# CONFIG_NFS_FS is not set -# CONFIG_ROOT_NFS is not set -# CONFIG_IP_PNP is not set -# CONFIG_IP_PNP_DHCP is not set -# CONFIG_IP_PNP_BOOTP is not set - -# ============================================================ -# No hibernation (embedded device, 128 MB RAM) -# ============================================================ -# CONFIG_HIBERNATION is not set - -# ============================================================ -# No SATA/AHCI (no SATA hardware on R528) -# ============================================================ -# CONFIG_AHCI_SUNXI is not set - -# ============================================================ -# No MD/RAID/DM (no RAID on a 3D printer) -# ============================================================ -# CONFIG_MD is not set - -# ============================================================ -# No Bluetooth (saves ~50 KB built-in + many modules) -# ============================================================ -# CONFIG_BT is not set - -# ============================================================ -# No PPP -# ============================================================ -# CONFIG_PPP is not set - -# ============================================================ -# No IP_VS (virtual server load balancing) -# ============================================================ -# CONFIG_IP_VS is not set - -# ============================================================ -# No 6LoWPAN / IEEE 802.15.4 -# ============================================================ -# CONFIG_6LOWPAN is not set -# CONFIG_IEEE802154 is not set - -# ============================================================ -# No bonding/teaming/tunnels/VXLAN -# ============================================================ -# CONFIG_BONDING is not set -# CONFIG_NET_TEAM is not set -# CONFIG_VXLAN is not set - -# ============================================================ -# No old Allwinner SoC peripherals (not on T113/R528) -# ============================================================ -# SUN4I_EMAC -- old A10/A20 ethernet, T113 uses STMMAC -# CONFIG_SUN4I_EMAC is not set -# P2WI -- A31 only -# CONFIG_I2C_SUN6I_P2WI is not set -# SUN4I SPI -- old, T113 uses SUN6I SPI -# CONFIG_SPI_SUN4I is not set -# SUN9I USB PHY -- A80 only -# CONFIG_PHY_SUN9I_USB is not set - -# ============================================================ -# No keyboard/mouse input (keep touchscreen via fragment.cfg) -# ============================================================ -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_MOUSE=y - -# ============================================================ -# Trim media subsystem -- camera/UVC only, no TV/DVB/radio/SDR -# ============================================================ -# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set -# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set -# CONFIG_MEDIA_RADIO_SUPPORT is not set -# CONFIG_MEDIA_SDR_SUPPORT is not set -# CONFIG_MEDIA_RC_SUPPORT is not set - -# ============================================================ -# Disable WiFi drivers we don't need (RTL8821CU uses out-of-tree rtw88) -# All these are enabled as modules in the base arm/defconfig. -# ============================================================ -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_AT76C50X_USB is not set -# CONFIG_USB_ZD1201 is not set -# CONFIG_USB_NET_RNDIS_WLAN is not set -# CONFIG_RTL8187 is not set -# CONFIG_ATH_CARDS is not set -# CONFIG_CARL9170 is not set -# CONFIG_ATH6KL is not set -# CONFIG_AR5523 is not set -# CONFIG_ATH10K is not set -# CONFIG_WCN36XX is not set -# CONFIG_B43 is not set -# CONFIG_BRCMFMAC is not set -# CONFIG_HOSTAP is not set -# CONFIG_LIBERTAS is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL_TI is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set -# CONFIG_CW1200 is not set -# CONFIG_RSI_91X is not set - -# ============================================================ -# Trim USB serial -- keep CP210X, FTDI, PL2303, add CH341 -# ============================================================ -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -CONFIG_USB_SERIAL_CH341=m - -# ============================================================ -# Trim LEDs -- keep GPIO/regulator + basic triggers -# ============================================================ -# CONFIG_LEDS_CLASS_FLASH is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP8501 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_LT3593 is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_BLINKM is not set - -# ============================================================ -# Trim initrd decompressors -- our initramfs is .cpio.gz -# ============================================================ -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set -# CONFIG_RD_XZ is not set -# CONFIG_RD_LZO is not set -# CONFIG_RD_LZ4 is not set -# CONFIG_RD_ZSTD is not set - -# ============================================================ -# No XFS/BTRFS (not needed, saves significant space) -# ============================================================ -# CONFIG_XFS_FS is not set -# CONFIG_BTRFS_FS is not set - -# ============================================================ -# No ISO9660/UDF (no CD-ROM) -# ============================================================ -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# ============================================================ -# No FSCACHE/CACHEFILES (NFS caching, we removed NFS) -# ============================================================ -# CONFIG_FSCACHE is not set -# CONFIG_CACHEFILES is not set - -# ============================================================ -# No BLK_DEV_INTEGRITY, MAC_PARTITION, LDM_PARTITION -# (enterprise/exotic partition types) -# ============================================================ -# CONFIG_BLK_DEV_INTEGRITY is not set -# CONFIG_MAC_PARTITION is not set -# CONFIG_LDM_PARTITION is not set - -# ============================================================ -# No NBD, RAM disk, packet CD writing -# ============================================================ -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/squashfs-overlayfs.cfg b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/squashfs-overlayfs.cfg deleted file mode 100644 index da80c308..00000000 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/squashfs-overlayfs.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# SquashFS support (for read-only rootfs) -CONFIG_SQUASHFS=y -# CONFIG_SQUASHFS_ZLIB is not set -# CONFIG_SQUASHFS_XZ is not set -# CONFIG_SQUASHFS_LZO is not set -# CONFIG_SQUASHFS_ZSTD is not set -CONFIG_SQUASHFS_LZ4=y -CONFIG_SQUASHFS_EMBEDDED=y - -# OverlayFS support (writable layer over squashfs) -CONFIG_OVERLAY_FS=y - -# Filesystem support for USB drives -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_UTF8=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_UTF8=y -CONFIG_EXT4_FS=y - -# Swap + zram compressed swap -CONFIG_SWAP=y -CONFIG_ZRAM=m -CONFIG_ZRAM_DEF_COMP_LZ4=y -CONFIG_CRYPTO_LZ4=y diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi-r528-msgbox.c b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi-r528-msgbox.c index 515c851c..afe6e4eb 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi-r528-msgbox.c +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi-r528-msgbox.c @@ -375,15 +375,13 @@ static int sunxi_r528_msgbox_probe(struct platform_device *pdev) return ret; } -static int sunxi_r528_msgbox_remove(struct platform_device *pdev) +static void sunxi_r528_msgbox_remove(struct platform_device *pdev) { struct sunxi_r528_msgbox *mbox = platform_get_drvdata(pdev); mbox_controller_unregister(&mbox->controller); /* See the comment in sunxi_r528_msgbox_probe about the reset line. */ clk_disable_unprepare(mbox->clk); - - return 0; } static const struct of_device_id sunxi_r528_msgbox_of_match[] = { diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi_r528_remoteproc.c b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi_r528_remoteproc.c index 223711bc..6b289a66 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi_r528_remoteproc.c +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/sunxi_r528_remoteproc.c @@ -683,7 +683,7 @@ static int sunxi_r528_rproc_probe(struct platform_device *pdev) return ret; } -static int sunxi_r528_rproc_remove(struct platform_device *pdev) +static void sunxi_r528_rproc_remove(struct platform_device *pdev) { struct rproc *rproc = platform_get_drvdata(pdev); struct sunxi_r528_rproc *dsp = rproc->priv; @@ -692,8 +692,6 @@ static int sunxi_r528_rproc_remove(struct platform_device *pdev) cancel_work_sync(&dsp->rx_work); sunxi_r528_rproc_free_mbox(dsp); rproc_free(rproc); - - return 0; } static const struct of_device_id sunxi_r528_rproc_of_match[] = { diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/usb-net-adapters.cfg b/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/usb-net-adapters.cfg deleted file mode 100644 index 09d01c7d..00000000 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline/elegoo-centauri-carbon1/usb-net-adapters.cfg +++ /dev/null @@ -1,20 +0,0 @@ -# Additional USB network adapter drivers -# Note: ASIX (AX8817X, AX88179_178A), CDC Ethernet, and CDC NCM are -# already enabled by the base arm/defconfig. -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_USBNET=m -# Realtek RTL8152/RTL8153 USB Ethernet adapter driver -CONFIG_USB_NET_RTL8152=m -# SMSC/Microchip LAN9500/LAN9512 (common in Raspberry Pi accessories) -CONFIG_USB_NET_SMSC95XX=m -# SMSC/Microchip LAN7500 Gigabit -CONFIG_USB_NET_SMSC75XX=m -# Davicom DM9601 (widely sold cheap USB adapters) -CONFIG_USB_NET_DM9601=m -# Corechip SR9700/SR9800 -CONFIG_USB_NET_SR9700=m -CONFIG_USB_NET_SR9800=m -# ADMtek/Pegasus (older but still common) -CONFIG_USB_PEGASUS=m -# Moschip MCS7830 -CONFIG_USB_NET_MCS7830=m diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline_%.bbappend b/meta-opencentauri/recipes-kernel/linux/linux-mainline_%.bbappend index 92041866..65c76839 100644 --- a/meta-opencentauri/recipes-kernel/linux/linux-mainline_%.bbappend +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline_%.bbappend @@ -5,17 +5,13 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" PACKAGE_ARCH = "${MACHINE_ARCH}" SRC_URI:append:elegoo-centauri-carbon1 = " \ - file://elegoo-centauri-carbon1.dts;subdir=linux-6.6.85/arch/${ARCH}/boot/dts/allwinner \ - file://sunxi-r528-msgbox.c;subdir=linux-6.6.85/drivers/mailbox \ - file://sunxi_r528_remoteproc.c;subdir=linux-6.6.85/drivers/remoteproc \ + file://elegoo-centauri-carbon1.dts;subdir=linux-${PV}/arch/${ARCH}/boot/dts/allwinner \ + file://sunxi-r528-msgbox.c;subdir=linux-${PV}/drivers/mailbox \ + file://sunxi_r528_remoteproc.c;subdir=linux-${PV}/drivers/remoteproc \ file://0001-Add-elegoo-centauri-carbon1.dts.patch \ file://0001-Add-support-for-r528-msgbox-and-remoteproc.patch \ file://0002-drm-add-RB-channel-swap-support-for-panels-with-swap.patch \ - file://0003-thermal-sun8i-add-sun20i-d1-ths-support.patch \ file://fragment.cfg \ - file://squashfs-overlayfs.cfg \ - file://kernel-size-reduction.cfg \ - file://usb-net-adapters.cfg \ file://0001-dt-bindings-pwm-Add-binding-for-Allwinner-D1-T113-S3.patch \ file://0002-pwm-Add-Allwinner-s-D1-T113-S3-R329-SoCs-PWM-support.patch \ file://0003-riscv-dts-allwinner-d1-Add-pwm-node.patch \ diff --git a/meta-opencentauri/recipes-kernel/linux/linux-mainline_6.12.80.bb b/meta-opencentauri/recipes-kernel/linux/linux-mainline_6.12.80.bb new file mode 100644 index 00000000..602887db --- /dev/null +++ b/meta-opencentauri/recipes-kernel/linux/linux-mainline_6.12.80.bb @@ -0,0 +1,36 @@ +SECTION = "kernel" +DESCRIPTION = "Mainline Longterm Linux kernel" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" +COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i|sun9i|sun50i)" + +inherit kernel + +require recipes-kernel/linux/linux.inc + +LINUX_VERSION = "${PV}" + +# Since we're not using git, this doesn't make a difference, but we need to fill +# in something or kernel-yocto.bbclass will fail. +KBRANCH ?= "master" + +DEPENDS += "rsync-native" + +# Pull in the devicetree files into the rootfs +RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" + +S = "${UNPACKDIR}/linux-${PV}" + +# get release version 5.x or 6.x based on version +KRELEASE = "${@d.getVar('PV', True).split('.')[0]}" + +SRC_URI = " \ + https://www.kernel.org/pub/linux/kernel/v${KRELEASE}.x/linux-${PV}.tar.xz \ + file://defconfig \ +" + +SRC_URI[sha256sum] = "c92591d896e79ecddbc3319136f0c2f855e832b397de7593f013ad7590a43e53" + +FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo" diff --git a/meta-opencentauri/recipes-kernel/rtw88/rtw88_git.bb b/meta-opencentauri/recipes-kernel/rtw88/rtw88_git.bb index 62cb0860..5d99849d 100644 --- a/meta-opencentauri/recipes-kernel/rtw88/rtw88_git.bb +++ b/meta-opencentauri/recipes-kernel/rtw88/rtw88_git.bb @@ -11,8 +11,6 @@ SRC_URI = "git://github.com/lwfinger/rtw88.git;protocol=https;branch=master \ file://0001-disable-led-support.patch \ " -S = "${WORKDIR}/git" - EXTRA_OEMAKE += "-C ${STAGING_KERNEL_DIR} M=${S}" # Disable deep power save (RTL8821CU firmware crashes in LPS deep mode) diff --git a/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_1.13.0.bb b/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_1.13.0.bb deleted file mode 100644 index feeb6011..00000000 --- a/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_1.13.0.bb +++ /dev/null @@ -1,6 +0,0 @@ -SUMMARY = "A Python parser for parsing multipart/form-data input chunks" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=297bf03ed7725a462a4450e7e00fb361" - -inherit pypi python_setuptools_build_meta -SRC_URI[sha256sum] = "34087788c88912caa5b658020d1df66320369a8d98ec3a427dc36fd2618d864f" diff --git a/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_2.0.0.bb b/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_2.0.0.bb new file mode 100644 index 00000000..d599354b --- /dev/null +++ b/meta-opencentauri/recipes-python/streaming-form-data/python3-streaming-form-data_2.0.0.bb @@ -0,0 +1,8 @@ +SUMMARY = "A Python parser for parsing multipart/form-data input chunks" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0cf3746abe7520a6d19dbbeb18832eb0" + +PYPI_PACKAGE = "streaming_form_data" + +inherit pypi python_setuptools_build_meta +SRC_URI[sha256sum] = "cab18e7b5d31e79ac6ec71a5f2e880aafdd90321bd2197955fd7fdbd7f3e2101" diff --git a/meta-opencentauri/recipes-python/uvloop/python3-uvloop_0.19.0.bb b/meta-opencentauri/recipes-python/uvloop/python3-uvloop_0.19.0.bb index 3ccaa2b7..62342741 100644 --- a/meta-opencentauri/recipes-python/uvloop/python3-uvloop_0.19.0.bb +++ b/meta-opencentauri/recipes-python/uvloop/python3-uvloop_0.19.0.bb @@ -11,7 +11,7 @@ SRC_URI[sha256sum] = "0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51a inherit pypi inherit setuptools3 -S = "${WORKDIR}/uvloop-${PV}" +S = "${UNPACKDIR}/uvloop-${PV}" do_configure:prepend() { cat > ${S}/setup.py <<-EOF diff --git a/meta-opencentauri/recipes-support/allwinner-ota-burnboot/allwinner-ota-burnboot_0.1.bb b/meta-opencentauri/recipes-support/allwinner-ota-burnboot/allwinner-ota-burnboot_0.1.bb index afce7199..b7cafe59 100644 --- a/meta-opencentauri/recipes-support/allwinner-ota-burnboot/allwinner-ota-burnboot_0.1.bb +++ b/meta-opencentauri/recipes-support/allwinner-ota-burnboot/allwinner-ota-burnboot_0.1.bb @@ -7,14 +7,12 @@ SRC_URI = "git://github.com/jamesturton/allwinner-ota-burnboot.git;protocol=http SRCREV = "abb7920b78ce6616cef9e4bf8fce32d8edcdd45f" PR = "r1" -S = "${WORKDIR}/git" - do_install() { install -d ${D}${libdir} - install -m 0755 libota-burnboot.so ${D}${libdir}/ + install -m 0755 ${S}/libota-burnboot.so ${D}${libdir}/ install -d ${D}${includedir} - install -m 0644 OTA_BurnBoot.h ${D}${includedir}/ + install -m 0644 ${S}/OTA_BurnBoot.h ${D}${includedir}/ } FILES:${PN} += "${libdir}/libota-burnboot.so" diff --git a/meta-opencentauri/recipes-support/swupdate/swupdate_%.bbappend b/meta-opencentauri/recipes-support/swupdate/swupdate_%.bbappend index 09c0e98a..8566d004 100644 --- a/meta-opencentauri/recipes-support/swupdate/swupdate_%.bbappend +++ b/meta-opencentauri/recipes-support/swupdate/swupdate_%.bbappend @@ -12,9 +12,9 @@ RDEPENDS:${PN} += "allwinner-ota-burnboot" do_install:append() { install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/swupdate.cfg ${D}${sysconfdir}/swupdate.cfg - install -m 0644 ${WORKDIR}/hwrevision ${D}${sysconfdir}/hwrevision - install -m 0644 ${WORKDIR}/swupdate_public.pem ${D}${sysconfdir}/swupdate_public.pem + install -m 0644 ${UNPACKDIR}/swupdate.cfg ${D}${sysconfdir}/swupdate.cfg + install -m 0644 ${UNPACKDIR}/hwrevision ${D}${sysconfdir}/hwrevision + install -m 0644 ${UNPACKDIR}/swupdate_public.pem ${D}${sysconfdir}/swupdate_public.pem rm -rf ${D}${sysconfdir}/init.d } diff --git a/meta-openembedded b/meta-openembedded index 7a5075ce..42022286 160000 --- a/meta-openembedded +++ b/meta-openembedded @@ -1 +1 @@ -Subproject commit 7a5075cef77b5f7af454e9868e1d0019f2fd1394 +Subproject commit 420222862f5a6d95023b8f5f3b7e1808b2264ef9 diff --git a/meta-sunxi b/meta-sunxi index d5214c79..6151e9cf 160000 --- a/meta-sunxi +++ b/meta-sunxi @@ -1 +1 @@ -Subproject commit d5214c790e0488bcff392c9f1d3dfe5c4de21a34 +Subproject commit 6151e9cfd5b789d4e65f71e2af96793d19fc9f52 diff --git a/meta-swupdate b/meta-swupdate index db16b9aa..48b1bf09 160000 --- a/meta-swupdate +++ b/meta-swupdate @@ -1 +1 @@ -Subproject commit db16b9aa3e39bc35ced39c526606102c9a466b81 +Subproject commit 48b1bf09b565f9927d7b52d48703028ba6c29526 diff --git a/meta-yocto b/meta-yocto new file mode 160000 index 00000000..904846ae --- /dev/null +++ b/meta-yocto @@ -0,0 +1 @@ +Subproject commit 904846ae078ee20de073040ebb77c86e19250f56 diff --git a/openembedded-core b/openembedded-core new file mode 160000 index 00000000..42fa856a --- /dev/null +++ b/openembedded-core @@ -0,0 +1 @@ +Subproject commit 42fa856a00ac16b2a7a83d7ecfa60a5be192b16c diff --git a/poky b/poky deleted file mode 160000 index 7a944e7b..00000000 --- a/poky +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7a944e7b72b6c11b4e55c6bada19d2403b1c78f8