From 54373b247b14be2f547ef1751309b0851ea8ab85 Mon Sep 17 00:00:00 2001
From: Newbyte <newbie13xd@gmail.com>
Date: Mon, 12 Jul 2021 19:58:49 +0200
Subject: [PATCH] htc-m8qlul: new device (MR 2344)

[ci:skip-build] already built successfully in CI
---
 device/testing/device-htc-m8qlul/APKBUILD   | 57 +++++++++++++++++++++
 device/testing/device-htc-m8qlul/deviceinfo | 35 +++++++++++++
 device/testing/firmware-htc-m8qlul/APKBUILD | 44 ++++++++++++++++
 3 files changed, 136 insertions(+)
 create mode 100644 device/testing/device-htc-m8qlul/APKBUILD
 create mode 100644 device/testing/device-htc-m8qlul/deviceinfo
 create mode 100644 device/testing/firmware-htc-m8qlul/APKBUILD

diff --git a/device/testing/device-htc-m8qlul/APKBUILD b/device/testing/device-htc-m8qlul/APKBUILD
new file mode 100644
index 00000000000..fe9d5099e97
--- /dev/null
+++ b/device/testing/device-htc-m8qlul/APKBUILD
@@ -0,0 +1,57 @@
+# Reference: <https://postmarketos.org/devicepkg>
+# Maintainer: Newbyte <newbyte@disroot.org>
+pkgname=device-htc-m8qlul
+pkgdesc="HTC One M8s"
+pkgver=0.1
+pkgrel=0
+url="https://postmarketos.org"
+license="MIT"
+arch="aarch64"
+options="!check !archcheck"
+depends="postmarketos-base mkbootimg soc-qcom-msm8916"
+makedepends="devicepkg-dev"
+source="deviceinfo"
+subpackages="
+	$pkgname-kernel-mainline:kernel_mainline
+	$pkgname-kernel-mainline-modem:kernel_mainline_modem
+	$pkgname-nonfree-firmware:nonfree_firmware
+	$pkgname-nonfree-firmware-modem:nonfree_firmware_modem
+"
+
+
+build() {
+	devicepkg_build $startdir $pkgname
+}
+
+package() {
+	devicepkg_package $startdir $pkgname
+}
+
+kernel_mainline() {
+	pkgdesc="Close to mainline kernel (no modem, audio routed directly)"
+	depends="linux-postmarketos-qcom-msm8939"
+	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
+}
+
+kernel_mainline_modem() {
+	pkgdesc="Close to mainline kernel (non-free modem, audio routed through ADSP. Modem does not actually work yet)"
+	depends="linux-postmarketos-qcom-msm8939 soc-qcom-msm8916-modem"
+	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
+}
+
+nonfree_firmware() {
+	pkgdesc="GPU/WiFi/BT/Video(/Modem) firmware"
+	depends="linux-firmware-qcom firmware-htc-m8qlul-venus firmware-htc-m8qlul-wcnss"
+	mkdir "$subpkgdir"
+}
+
+nonfree_firmware_modem() {
+	pkgdesc="Modem firmware"
+	depends="firmware-htc-m8qlul-modem"
+	install_if="$pkgname-nonfree-firmware $pkgname-kernel-mainline-modem"
+	mkdir "$subpkgdir"
+}
+
+sha512sums="
+79d600280b206595cafa4995931a2b80b2f0c6a807dce371df64b3e9b1883371502cf263d63f455ca8a562a65b212a0e580ff873063610b01b80db2c8f1d4d06  deviceinfo
+"
diff --git a/device/testing/device-htc-m8qlul/deviceinfo b/device/testing/device-htc-m8qlul/deviceinfo
new file mode 100644
index 00000000000..3f8da720735
--- /dev/null
+++ b/device/testing/device-htc-m8qlul/deviceinfo
@@ -0,0 +1,35 @@
+# Reference: <https://postmarketos.org/deviceinfo>
+# Please use double quotes only. You can source this file in shell scripts.
+
+deviceinfo_format_version="0"
+deviceinfo_name="HTC One M8s"
+deviceinfo_manufacturer="HTC"
+deviceinfo_codename="htc-m8qlul"
+deviceinfo_year="2015"
+deviceinfo_dtb="qcom/msm8939-htc-m8qlul"
+deviceinfo_append_dtb="true"
+deviceinfo_modules_initfs=""
+deviceinfo_arch="aarch64"
+
+# Device related
+deviceinfo_chassis="handset"
+deviceinfo_keyboard="false"
+deviceinfo_external_storage="true"
+deviceinfo_screen_width="1080"
+deviceinfo_screen_height="1920"
+deviceinfo_getty="ttyMSM0;115200"
+
+# MSM DRM cannot take over the framebuffer from the bootloader at the moment
+deviceinfo_no_framebuffer="true"
+
+# Bootloader related
+deviceinfo_flash_method="fastboot"
+deviceinfo_kernel_cmdline="earlycon console=ttyMSM0,115200 PMOS_NO_OUTPUT_REDIRECT"
+deviceinfo_generate_bootimg="true"
+deviceinfo_flash_offset_base="0x80000000"
+deviceinfo_flash_offset_kernel="0x00080000"
+deviceinfo_flash_offset_ramdisk="0x02000000"
+deviceinfo_flash_offset_second="0x00f00000"
+deviceinfo_flash_offset_tags="0x01e00000"
+deviceinfo_flash_pagesize="2048"
+deviceinfo_flash_sparse="true"
diff --git a/device/testing/firmware-htc-m8qlul/APKBUILD b/device/testing/firmware-htc-m8qlul/APKBUILD
new file mode 100644
index 00000000000..faa3e26e298
--- /dev/null
+++ b/device/testing/firmware-htc-m8qlul/APKBUILD
@@ -0,0 +1,44 @@
+pkgname=firmware-htc-m8qlul
+pkgver=1
+pkgrel=0
+_commit=079fc1c4faec2555153b905b7be80ff2b86804f2
+pkgdesc="Firmware for HTC One M8s"
+url="https://github.com/evokelektrique/firmware-htc-m8qlul"
+subpackages="$pkgname-modem $pkgname-venus $pkgname-wcnss"
+arch="aarch64"
+license="proprietary"
+options="!check !strip !archcheck"
+source="https://github.com/evokelektrique/firmware-htc-m8qlul/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+_fwdir="/lib/firmware/postmarketos"
+
+package() {
+	# parent package is empty
+	mkdir -p "$pkgdir"
+}
+
+modem() {
+	pkgdesc="HTC One M8s modem firmware"
+	install -Dm644 "$builddir"/MBA.MBN -t "$subpkgdir/$_fwdir"
+	install -Dm644 "$builddir"/MODEM.* -t "$subpkgdir/$_fwdir"
+}
+
+venus() {
+	pkgdesc="HTC One M8s video firmware"
+	install -Dm644 "$builddir"/venus.* -t "$subpkgdir/$_fwdir"/qcom/venus-1.8
+}
+
+wcnss() {
+	pkgdesc="HTC One M8s WiFi/Bluetooth firmware"
+	_files="WCNSS_cfg.dat WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin"
+	install -Dm644 "$builddir"/wcnss.* -t "$subpkgdir/$_fwdir"
+	for file in $_files; do
+		install -Dm644 "$builddir"/wlan/prima/"$file" -t "$subpkgdir/$_fwdir"/wlan/prima
+	done
+}
+
+
+sha512sums="
+744f8e787c89b8d0f8eed52956992961233236adae05ee541a01866006a7407d63b605991fa8935f16054dfd671e5b9bf94660310b70d3e1bc610f9563e05bc4  079fc1c4faec2555153b905b7be80ff2b86804f2.tar.gz
+"
-- 
GitLab