From 87a0624e9317026aac2bd58c5a092c769f405cf9 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Mon, 8 Jun 2020 15:25:14 +0200 Subject: [PATCH] arrow-db410c: new device (Arrow DragonBoard 410c) (MR 1293) The DB410c is a SBC with APQ8016 SoC. It runs on mainline without any patches. This port makes use of the existing linux-postmarketos-qcom-msm8916 kernel package that is used for other mainline MSM8916 devices. Tested functionality: - USB Network, USB Host (e.g. an USB keyboard) - Flashing (Fastboot) - Display (HDMI) - WiFi/BT - GPU - Audio (HDMI) - FDE Not tested: - GPS Note: The firmware package is called firmware-qcom-db410c (instead of arrow) because the firmware is provided directly by Qualcomm, not Arrow. --- device/testing/device-arrow-db410c/APKBUILD | 30 ++++++++++++ device/testing/device-arrow-db410c/deviceinfo | 33 +++++++++++++ firmware/firmware-qcom-db410c/APKBUILD | 46 +++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 device/testing/device-arrow-db410c/APKBUILD create mode 100644 device/testing/device-arrow-db410c/deviceinfo create mode 100644 firmware/firmware-qcom-db410c/APKBUILD diff --git a/device/testing/device-arrow-db410c/APKBUILD b/device/testing/device-arrow-db410c/APKBUILD new file mode 100644 index 000000000..c4eeed2ef --- /dev/null +++ b/device/testing/device-arrow-db410c/APKBUILD @@ -0,0 +1,30 @@ +# Reference: +# Maintainer: Minecrell +pkgname=device-arrow-db410c +pkgdesc="Arrow DragonBoard 410c" +pkgver=1 +pkgrel=0 +url="https://postmarketos.org" +license="MIT" +arch="aarch64" +options="!check !archcheck" +depends="postmarketos-base mkbootimg linux-postmarketos-qcom-msm8916 soc-qcom-msm8916" +makedepends="devicepkg-dev" +source="deviceinfo" +subpackages="$pkgname-nonfree-firmware:nonfree_firmware" + +build() { + devicepkg_build $startdir $pkgname +} + +package() { + devicepkg_package $startdir $pkgname +} + +nonfree_firmware() { + pkgdesc="GPU/WiFi/BT/Video firmware" + depends="linux-firmware-qcom firmware-qcom-db410c-wcnss firmware-qcom-db410c-wcnss-nv" + mkdir "$subpkgdir" +} + +sha512sums="6f1d55b39c3cc058088cadd80d212722442d879a90ddcf0f36f01eaaadc5cdc4164a5b73a589b646ab2133c13a4b80e953d6972195a6030153f7f0c4fc835494 deviceinfo" diff --git a/device/testing/device-arrow-db410c/deviceinfo b/device/testing/device-arrow-db410c/deviceinfo new file mode 100644 index 000000000..af3a9c997 --- /dev/null +++ b/device/testing/device-arrow-db410c/deviceinfo @@ -0,0 +1,33 @@ +# Reference: +# Please use double quotes only. You can source this file in shell scripts. + +deviceinfo_format_version="0" +deviceinfo_name="Arrow DragonBoard 410c" +deviceinfo_manufacturer="Arrow" +deviceinfo_codename="arrow-db410c" +deviceinfo_year="2015" +deviceinfo_dtb="qcom/apq8016-sbc" +deviceinfo_append_dtb="true" +deviceinfo_modules_initfs="display-connector adv7511 msm" +deviceinfo_arch="aarch64" + +# Device related +deviceinfo_chassis="embedded" +deviceinfo_keyboard="true" +deviceinfo_external_storage="true" +deviceinfo_screen_width="1920" +deviceinfo_screen_height="1080" +deviceinfo_getty="ttyMSM0;115200" + +# 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" +deviceinfo_flash_fastboot_partition_system="rootfs" diff --git a/firmware/firmware-qcom-db410c/APKBUILD b/firmware/firmware-qcom-db410c/APKBUILD new file mode 100644 index 000000000..8824d4d2d --- /dev/null +++ b/firmware/firmware-qcom-db410c/APKBUILD @@ -0,0 +1,46 @@ +pkgname=firmware-qcom-db410c +pkgver=1034.2.1 +pkgrel=0 +pkgdesc="Firmware for DragonBoard 410c" +url="https://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware/" +subpackages="$pkgname-doc $pkgname-modem $pkgname-wcnss $pkgname-wcnss-nv:wcnss_nv" +arch="aarch64" +license="custom" +options="!check !strip !archcheck !tracedeps pmb:cross-native" +makedepends="mtools" +source="https://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware/linux-board-support-package-r$pkgver.zip" +builddir="$srcdir/linux-board-support-package-r$pkgver" + +_fwdir="/lib/firmware/postmarketos" + +unpack() { + default_unpack + + # Extract firmware files from FAT file system image + mcopy -i "$builddir"/bootloaders-linux/NON-HLOS.bin -p -m -v \ + ::image/mba.mbn ::image/modem.* ::image/wcnss.* "$srcdir" +} + +package() { + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -Dm644 NOTICE.txt "$pkgdir"/usr/share/licenses/$pkgname/NOTICE +} + +modem() { + pkgdesc="DragonBoard 410c modem firmware" + install -Dm644 "$srcdir"/mba.mbn -t "$subpkgdir/$_fwdir" + install -Dm644 "$srcdir"/modem.* -t "$subpkgdir/$_fwdir" +} + +wcnss() { + pkgdesc="DragonBoard 410c WiFi/BT firmware" + install -Dm644 "$srcdir"/wcnss.* -t "$subpkgdir/$_fwdir" +} + +wcnss_nv() { + pkgdesc="DragonBoard 410c WiFi/BT firmware configuration" + install -Dm644 "$builddir"/proprietary-linux/wlan/prima/WCNSS_* \ + -t "$subpkgdir/$_fwdir"/wlan/prima +} + +sha512sums="4b5d0250552ff3b0a55af9395e62064299a1240f22a5f50383de95723db964351412fa2b38f24fe73fdeb613366e0eb6b3c335600c238546db783ca84647e2d2 linux-board-support-package-r1034.2.1.zip"