lynx-r1: New device

Add initial port for Lynx R1.
Kernel fork will be merged with sm8250-mainline in the future.

Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6748
[ci:skip-build]: already built successfully in CI
This commit is contained in:
Alicja Michalska 2025-07-05 00:45:38 +02:00
parent 4b1148df72
commit db58f4cd67
No known key found for this signature in database
GPG key ID: BB8C8A81C6452A88
5 changed files with 8800 additions and 0 deletions

View file

@ -0,0 +1,35 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-lynx-r1
pkgdesc="Lynx R1"
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
firmware-qcom-adreno-a650
firmware-lynx-r1-adreno
firmware-lynx-r1-adsp
firmware-lynx-r1-cdsp
firmware-lynx-r1-cvpss
firmware-lynx-r1-slpi
firmware-lynx-r1-venus
linux-lynx-r1
mkbootimg
postmarketos-base
"
makedepends="devicepkg-dev"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
sha512sums="
0063130c72d6f2e2f9e9d1f362cc5d22a78706a3b1ee69bc8d9fcc0d82058e535ab5da918b3e2f248284fd65730989a03a416b7721be993d8cf402546abf4c88 deviceinfo
"

View file

@ -0,0 +1,38 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Lynx R1"
deviceinfo_manufacturer="Lynx"
deviceinfo_codename="lynx-r1"
deviceinfo_year="2023"
deviceinfo_arch="aarch64"
deviceinfo_append_dtb="true"
# Device related
deviceinfo_chassis="embedded"
deviceinfo_external_storage="true"
deviceinfo_getty="ttyMSM0;115200"
deviceinfo_gpu_accelerated="true"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 earlycon earlyprintk loglevel=15 pd_ignore_unused clk_ignore_unused pmos.debug-shell"
deviceinfo_generate_bootimg="true"
deviceinfo_flash_pagesize="4096"
deviceinfo_header_version="2"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_append_dtb="false"
deviceinfo_dtb="qcom/sm8250-lynx-r1"
deviceinfo_flash_offset_dtb="0x01f00000"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00000000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_fastboot_partition_rootfs="super"
deviceinfo_flash_fastboot_partition_dtbo="dtbo"
deviceinfo_super_partitions="/dev/sda6"
deviceinfo_rootfs_image_sector_size="4096"

View file

@ -0,0 +1,99 @@
# Maintainer: Alicja Michalska <alicja.michalska@9elements.com>
pkgname=firmware-lynx-r1
pkgver=20250704
pkgrel=0
pkgdesc="Firmware for Lynx R1"
subpackages="
$pkgname-adreno
$pkgname-adsp
$pkgname-cdsp
$pkgname-cvpss
$pkgname-fingerpr
$pkgname-slpi
$pkgname-venus
"
url="https://github.com/ellyq/lynx-firmware-mainline"
arch="aarch64"
license="proprietary"
options="!check !strip !archcheck !tracedeps pmb:cross-native"
_commit="5ee6f8cf08d50500123063e19744b84f239740b7"
source="https://github.com/ellyq/lynx-firmware-mainline/archive/$_commit/lynx-firmware-mainline-$_commit.tar.gz"
builddir="$srcdir/lynx-firmware-mainline-$_commit"
package() {
# parent package is empty
mkdir -p "$pkgdir"
}
# Adreno GPU
adreno() {
pkgdesc="Adreno 650 FW"
install -Dm644 "$builddir"/a650_zap.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Audio DSP
adsp() {
pkgdesc="Lynx R1 ADSP FW"
install -Dm644 "$builddir"/adsp*.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
install -Dm644 "$builddir"/adsp*.jsn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Compute DSP
cdsp() {
pkgdesc="Lynx R1 CDSP FW"
install -Dm644 "$builddir"/cdsp*.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
install -Dm644 "$builddir"/cdsp*.jsn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Camera V... Position? Not sure.
cvpss() {
pkgdesc="Lynx R1 CVPSS FW"
install -Dm644 "$builddir"/cvpss.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Finger tracking? Wincyj blobow, filesystem wytrzyma
fingerpr() {
pkgdesc="Lynx R1 FingerPR FW"
install -Dm644 "$builddir"/fingerpr.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Neural Processing Unit
npu() {
pkgdesc="Lynx R1 NPU FW"
install -Dm644 "$builddir"/npu.mbn \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Sensor Low Power Island
slpi() {
pkgdesc="Lynx R1 SLPI FW"
install -Dm644 "$builddir"/slpi.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
# Video Processing Unit
venus() {
pkgdesc="Lynx R1 Venus FW"
install -Dm644 "$builddir"/venus.mbn -t \
"$subpkgdir/lib/firmware/postmarketos/"
}
sha512sums="
853a95fdb2b88c56ae66083bcd71a9a1f63c09f91aa8c97290035abaf391524a516f7c47e60bdd82a74eb5cf7a0776a47e50dea667ba3d562d9c2a5280fe9e1d lynx-firmware-mainline-5ee6f8cf08d50500123063e19744b84f239740b7.tar.gz
"

View file

@ -0,0 +1,63 @@
# Maintainer: Alicja Michalska <alicja.michalska@9elements.com>
_flavor="lynx-r1"
pkgname=linux-$_flavor
pkgver=6.13.0
pkgrel=0
pkgdesc="Mainline kernel for Lynx R1"
arch="aarch64"
_carch="arm64"
url="https://gitlab.postmarketos.org/ellyq/linux-lynx-r-1"
license="GPL-2.0-only"
options="!strip !check !tracedeps
pmb:cross-native
pmb:kconfigcheck-nftables
pmb:kconfigcheck-community
"
makedepends="bash bison findutils flex openssl-dev perl postmarketos-installkernel python3
"
# Source
_tag="$pkgver"
_config="config-lynx-r1.aarch64"
source="
$pkgname-$_tag.tar.gz::https://gitlab.postmarketos.org/ellyq/linux-lynx-r-1/-/archive/$_tag/linux-lynx-r-1-$_tag.tar.gz
config-lynx-r1.aarch64
"
builddir="$srcdir/linux-lynx-r-1-$_tag"
prepare() {
default_prepare
cp "$srcdir/config-$_flavor.$arch" .config
}
prepare() {
default_prepare
cp "$srcdir/config-$_flavor.$arch" .config
}
build() {
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor"
}
package() {
mkdir -p "$pkgdir"/boot
make zinstall modules_install dtbs_install \
ARCH="$_carch" \
INSTALL_PATH="$pkgdir"/boot/ \
INSTALL_MOD_PATH="$pkgdir" \
INSTALL_MOD_STRIP=1 \
INSTALL_DTBS_PATH="$pkgdir/boot/dtbs"
rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source
install -D "$builddir"/include/config/kernel.release \
"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
}
sha512sums="
985991605697d5a74b31a5d588a3c523dab50041110b7f19c1b28e1120da6278c30d38db0a749197bff9569c806a2905a5bc6fa9e20b92e937a18bad08c4ee00 linux-lynx-r1-6.13.0.tar.gz
fb5f5804e3d3605f2110c00844e9390bc4e10d645afb517577918940cb51e3f9efef314a83971a532b7401865b15146b72f4d06343003736a819929f44adf585 config-lynx-r1.aarch64
"

File diff suppressed because it is too large Load diff