From 3fa7cb93fcee646cfa046faea8cccc39d5b75ddf Mon Sep 17 00:00:00 2001 From: bluebunny <1812-bluebunny@users.noreply.gitlab.postmarketos.org> Date: Wed, 11 Feb 2026 05:55:46 +0900 Subject: [PATCH] device-xiaomi-pipa: add vendor firmware and config files Part-of: --- .../81-libssc-xiaomi-pipa.rules | 2 + device/testing/device-xiaomi-pipa/APKBUILD | 39 +++++- device/testing/device-xiaomi-pipa/HiFi.conf | 111 ++++++++++++++++ .../device-xiaomi-pipa/hexagonrpcd-sdsp.conf | 3 + .../testing/device-xiaomi-pipa/modules-initfs | 7 + device/testing/device-xiaomi-pipa/pipa.conf | 11 ++ .../50-novatek-touchscreen.files | 3 + device/testing/firmware-xiaomi-pipa/APKBUILD | 124 ++++++++++++++++++ 8 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 device/testing/device-xiaomi-pipa/81-libssc-xiaomi-pipa.rules create mode 100644 device/testing/device-xiaomi-pipa/HiFi.conf create mode 100644 device/testing/device-xiaomi-pipa/hexagonrpcd-sdsp.conf create mode 100644 device/testing/device-xiaomi-pipa/modules-initfs create mode 100644 device/testing/device-xiaomi-pipa/pipa.conf create mode 100644 device/testing/firmware-xiaomi-pipa/50-novatek-touchscreen.files create mode 100644 device/testing/firmware-xiaomi-pipa/APKBUILD diff --git a/device/testing/device-xiaomi-pipa/81-libssc-xiaomi-pipa.rules b/device/testing/device-xiaomi-pipa/81-libssc-xiaomi-pipa.rules new file mode 100644 index 000000000..c2b76407b --- /dev/null +++ b/device/testing/device-xiaomi-pipa/81-libssc-xiaomi-pipa.rules @@ -0,0 +1,2 @@ +# iio-sensor-proxy with libssc: accelerometer mount matrix +SUBSYSTEM=="misc", KERNEL=="fastrpc-*", ENV{ACCEL_MOUNT_MATRIX}+="-1, 0, 0; 0, -1, 0; 0, 0, -1" diff --git a/device/testing/device-xiaomi-pipa/APKBUILD b/device/testing/device-xiaomi-pipa/APKBUILD index 1cb5411eb..02a0585ba 100644 --- a/device/testing/device-xiaomi-pipa/APKBUILD +++ b/device/testing/device-xiaomi-pipa/APKBUILD @@ -2,8 +2,8 @@ maintainer="bluebunny " pkgname=device-xiaomi-pipa pkgdesc="Xiaomi Pad 6" -pkgver=2 -pkgrel=1 +pkgver=3 +pkgrel=0 url="https://postmarketos.org" license="MIT" arch="aarch64" @@ -21,11 +21,25 @@ depends=" makedepends="devicepkg-dev" _pmb_recommends=" firmware-qcom-adreno-a650 + firmware-xiaomi-pipa-adreno + firmware-xiaomi-pipa-adsp + firmware-xiaomi-pipa-awinic + firmware-xiaomi-pipa-cdsp + firmware-xiaomi-pipa-hexagonfs + firmware-xiaomi-pipa-novatek + firmware-xiaomi-pipa-nuvolta + firmware-xiaomi-pipa-slpi + firmware-xiaomi-pipa-venus linux-firmware-ath11k linux-firmware-qca " source=" + 81-libssc-xiaomi-pipa.rules + HiFi.conf deviceinfo + hexagonrpcd-sdsp.conf + modules-initfs + pipa.conf " build() { @@ -34,8 +48,29 @@ build() { package() { devicepkg_package $startdir $pkgname + + install -Dm644 "$srcdir"/81-libssc-xiaomi-pipa.rules -t \ + "$pkgdir/usr/lib/udev/rules.d/" + + install -Dm644 "$srcdir"/hexagonrpcd-sdsp.conf -t \ + "$pkgdir/usr/share/hexagonrpcd/" + + install -Dm644 "$srcdir"/pipa.conf -t \ + "$pkgdir/usr/share/alsa/ucm2/Xiaomi/pipa/" + + install -Dm644 "$srcdir"/HiFi.conf -t \ + "$pkgdir/usr/share/alsa/ucm2/Xiaomi/pipa/" + + mkdir -p "$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250" + ln -s ../../Xiaomi/pipa/pipa.conf \ + "$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250/Xiaomi Pad 6.conf" } sha512sums=" +d0e8f2e378130130ac72703aed957f7638e2dd75acf4aa421e1b4592c6cb6d296b652db0d9c242be4e56326760ce18d28c1e36ae553d0b7a7f91e12ab0353f22 81-libssc-xiaomi-pipa.rules +1c8cef1f2de5fd7e734796dfffc684255b047bdb07a0965676a4d8d512aee4963ce91aeabf8627ce3aea72aeade776a3529f205badd2ed27ba072cadc38f9918 HiFi.conf 4e7afb0c324daed0679d8152d83a5de89357ef92c3152342db21179f5d71f18caae6464b121fe5e93e80430949f7be47e5ea67f1177549bbd0891017f458315a deviceinfo +7f9d9760791639fdd5606070d6a3bd9a5e2d8fdadff0af380b847c7eaf28131000f4909b99e866eafb77272a4fe20ed0c35d5a4f64bb7d16e2dbf82612aa8b22 hexagonrpcd-sdsp.conf +5f82a7f3cd485a947700a8fa02a360679536ddf3c577b13e381810fcb8ebf146925dfac931bd53b9e784ce23158d1da96aa8579a3e6221b4c9bcc94e4818476c modules-initfs +007908c49db107dd8289a96049ed4d77a55c7846e21f76fa7f97306df953ccdec7d821cbc7732a3ff7c532285175ebf0d6a4e3f224740ac002b23f3608cbf76d pipa.conf " diff --git a/device/testing/device-xiaomi-pipa/HiFi.conf b/device/testing/device-xiaomi-pipa/HiFi.conf new file mode 100644 index 000000000..f91ae159e --- /dev/null +++ b/device/testing/device-xiaomi-pipa/HiFi.conf @@ -0,0 +1,111 @@ +Syntax 3 + +SectionVerb { + EnableSequence [ + cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 1" + cset "name='MultiMedia3 Mixer TX_CODEC_DMA_TX_3' 1" + ] + + DisableSequence [ + cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 0" + cset "name='MultiMedia3 Mixer TX_CODEC_DMA_TX_3' 0" + ] + + Value { + TQ "HiFi" + } +} + +SectionDevice."Speaker" { + Comment "Speaker playback" + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId},0" + } +} + +SectionDevice."Mic" { + Comment "Top-side Microphones" + + EnableSequence [ + cset "name='TX DEC0 MUX' SWR_MIC" + cset "name='TX DEC1 MUX' SWR_MIC" + + cset "name='TX SMIC MUX0' ADC3" + cset "name='TX SMIC MUX1' ADC1" + + cset "name='ADC2 Switch' 1" + cset "name='ADC4 Switch' 1" + cset "name='ADC2_MIXER Switch' 1" + cset "name='ADC4_MIXER Switch' 1" + + cset "name='HDR34 MUX' NO_HDR34" + cset "name='HDR12 MUX' NO_HDR34" + + cset "name='ADC2 Volume' 12" + cset "name='ADC4 Volume' 12" + + cset "name='ADC2 MUX' INP3" + cset "name='ADC4 MUX' INP5" + + cset "name='TX_AIF1_CAP Mixer DEC0' 1" + cset "name='TX_AIF1_CAP Mixer DEC1' 1" + cset "name='TX_AIF1_CAP Mixer DEC2' 1" + cset "name='TX_AIF1_CAP Mixer DEC3' 1" + + cset "name='TX_AIF2_CAP Mixer DEC0' 1" + cset "name='TX_AIF2_CAP Mixer DEC1' 1" + cset "name='TX_AIF2_CAP Mixer DEC2' 1" + cset "name='TX_AIF2_CAP Mixer DEC3' 1" + cset "name='TX_AIF2_CAP Mixer DEC4' 1" + + cset "name='TX_AIF3_CAP Mixer DEC1' 1" + cset "name='TX_AIF3_CAP Mixer DEC2' 1" + cset "name='TX_AIF3_CAP Mixer DEC3' 1" + cset "name='TX_AIF3_CAP Mixer DEC4' 1" + cset "name='TX_AIF3_CAP Mixer DEC5' 1" + cset "name='TX_AIF3_CAP Mixer DEC6' 1" + cset "name='TX_AIF3_CAP Mixer DEC7' 1" + + cset "name='TX_DEC0 Volume' 124" + cset "name='TX_DEC1 Volume' 124" + ] + + DisableSequence [ + cset "name='TX DEC0 MUX' ZERO" + cset "name='TX DEC1 MUX' ZERO" + + cset "name='TX SMIC MUX0' ZERO" + cset "name='TX SMIC MUX1' ZERO" + + cset "name='ADC2 Switch' 0" + cset "name='ADC4 Switch' 0" + cset "name='ADC2_MIXER Switch' 0" + cset "name='ADC4_MIXER Switch' 0" + + cset "name='TX_AIF1_CAP Mixer DEC0' 0" + cset "name='TX_AIF1_CAP Mixer DEC1' 0" + cset "name='TX_AIF1_CAP Mixer DEC2' 0" + cset "name='TX_AIF1_CAP Mixer DEC3' 0" + + cset "name='TX_AIF2_CAP Mixer DEC0' 0" + cset "name='TX_AIF2_CAP Mixer DEC1' 0" + cset "name='TX_AIF2_CAP Mixer DEC2' 0" + cset "name='TX_AIF2_CAP Mixer DEC3' 0" + cset "name='TX_AIF2_CAP Mixer DEC4' 0" + + cset "name='TX_AIF3_CAP Mixer DEC1' 0" + cset "name='TX_AIF3_CAP Mixer DEC2' 0" + cset "name='TX_AIF3_CAP Mixer DEC3' 0" + cset "name='TX_AIF3_CAP Mixer DEC4' 0" + cset "name='TX_AIF3_CAP Mixer DEC5' 0" + cset "name='TX_AIF3_CAP Mixer DEC6' 0" + cset "name='TX_AIF3_CAP Mixer DEC7' 0" + ] + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},2" + } +} diff --git a/device/testing/device-xiaomi-pipa/hexagonrpcd-sdsp.conf b/device/testing/device-xiaomi-pipa/hexagonrpcd-sdsp.conf new file mode 100644 index 000000000..a41f9eed3 --- /dev/null +++ b/device/testing/device-xiaomi-pipa/hexagonrpcd-sdsp.conf @@ -0,0 +1,3 @@ +# Xiaomi Pad 6 specific hexagonrpcd firmware directory +hexagonrpcd_fw_dir="/usr/share/qcom/sm8250/Xiaomi/pipa/" + diff --git a/device/testing/device-xiaomi-pipa/modules-initfs b/device/testing/device-xiaomi-pipa/modules-initfs new file mode 100644 index 000000000..d71b73f65 --- /dev/null +++ b/device/testing/device-xiaomi-pipa/modules-initfs @@ -0,0 +1,7 @@ +nt36523_ts +qcom_common +qcom_pil_info +qcom_q6v5 +qcom_q6v5_pas +spi-geni-qcom + diff --git a/device/testing/device-xiaomi-pipa/pipa.conf b/device/testing/device-xiaomi-pipa/pipa.conf new file mode 100644 index 000000000..f3c717cf0 --- /dev/null +++ b/device/testing/device-xiaomi-pipa/pipa.conf @@ -0,0 +1,11 @@ +Syntax 3 + +SectionUseCase."HiFi" { + File "/Xiaomi/pipa/HiFi.conf" + Comment "HiFi quality Music." +} + +SectionUseCase."HDMI" { + File "/Qualcomm/sm8250/HDMI.conf" + Comment "HDMI output." +} diff --git a/device/testing/firmware-xiaomi-pipa/50-novatek-touchscreen.files b/device/testing/firmware-xiaomi-pipa/50-novatek-touchscreen.files new file mode 100644 index 000000000..601bd8913 --- /dev/null +++ b/device/testing/firmware-xiaomi-pipa/50-novatek-touchscreen.files @@ -0,0 +1,3 @@ +/usr/lib/firmware/novatek/nt36532_csot.bin +/usr/lib/firmware/novatek/nt36532_tianma.bin + diff --git a/device/testing/firmware-xiaomi-pipa/APKBUILD b/device/testing/firmware-xiaomi-pipa/APKBUILD new file mode 100644 index 000000000..b39f99dfb --- /dev/null +++ b/device/testing/firmware-xiaomi-pipa/APKBUILD @@ -0,0 +1,124 @@ +maintainer="bluebunny " +pkgname=firmware-xiaomi-pipa +pkgver=1 +pkgrel=0 +pkgdesc="Firmware for Xiaomi Pad 6" +subpackages=" + $pkgname-adreno + $pkgname-adsp + $pkgname-awinic + $pkgname-cdsp + $pkgname-hexagonfs + $pkgname-novatek + $pkgname-nuvolta + $pkgname-slpi + $pkgname-venus +" +_repo="xiaomi-pipa-firmware" +url="https://github.com/pipa-mainline/$_repo" +arch="aarch64" +license="proprietary" +options="!check !strip !archcheck !tracedeps pmb:cross-native" +_commit="842d35beffeda8c6d1b0e611b335543bf0e6b41e" +source=" + $url/archive/$_commit/$_repo-$_commit.tar.gz + 50-novatek-touchscreen.files +" +builddir="$srcdir/$_repo-$_commit" + +package() { + # parent package is empty + mkdir -p "$pkgdir" +} + +adreno() { + pkgdesc="Xiaomi Pad 6 adreno firmware" + + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/a650_zap.mbn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" +} + +adsp() { + pkgdesc="Xiaomi Pad 6 adsp firmware" + + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adsp.mbn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adspr.jsn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adspua.jsn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" +} + +awinic() { + pkgdesc="Xiaomi Pad 6 awinic firmware" + + install -Dm644 "$builddir"/lib/firmware/awinic/aw88230_2113_pipa.bin -t \ + "$subpkgdir/usr/lib/firmware/awinic/" +} + +cdsp() { + pkgdesc="Xiaomi Pad 6 cdsp firmware" + + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/cdsp.mbn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/cdspr.jsn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" +} + +hexagonfs() { + pkgdesc="Xiaomi Pad 6 hexagonfs files" + + mkdir -p "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/ + cp -r "$builddir"/usr/share/qcom/sm8250/Xiaomi/pipa/ \ + "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/ + + # Remove files that we don't need - for now + rm -r "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/pipa/acdb/ + rm -r "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/pipa/dsp/ + + find "$subpkgdir/usr/share/qcom/sm8250/Xiaomi/pipa/" \ + -type f -exec chmod 0644 {} \; +} + +novatek() { + pkgdesc="Xiaomi Pad 6 novatek firmware" + + install -Dm644 "$builddir"/lib/firmware/novatek/nt36532_csot.bin -t \ + "$subpkgdir/usr/lib/firmware/novatek/" + install -Dm644 "$builddir"/lib/firmware/novatek/nt36532_tianma.bin -t \ + "$subpkgdir/usr/lib/firmware/novatek/" + + install -Dm644 "$srcdir"/50-novatek-touchscreen.files -t \ + "$subpkgdir/usr/share/mkinitfs/files/" +} + +nuvolta() { + pkgdesc="Xiaomi Pad 6 nuvolta firmware" + + install -Dm644 "$builddir"/lib/firmware/nuvolta/rx1665.bin -t \ + "$subpkgdir/usr/lib/firmware/nuvolta/" +} + +slpi() { + pkgdesc="Xiaomi Pad 6 slpi firmware" + + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpi.mbn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpir.jsn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpius.jsn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" +} + +venus() { + pkgdesc="Xiaomi Pad 6 venus firmware" + + install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/venus.mbn -t \ + "$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/" +} + + +sha512sums=" +cbd61052dd5ddc54ed9290547ab4a63eca59cf113d5b3b0f5d64248b48e3e5616a12bc1296abe05d3ab3556054c3541b2cd5b6fa9d797bc49a5e6f32d5bea961 xiaomi-pipa-firmware-842d35beffeda8c6d1b0e611b335543bf0e6b41e.tar.gz +0036dfc52d9de2b1be8b275b36401d1c60a8b8531ce26edd59ac86e3c1dc3aa7f37944916a7b502f7e585d285cc59048a7322f8f46064c191ef732ea77733a52 50-novatek-touchscreen.files +"