kernel: build for the cores the phone has, pkgrel 102
The FP6 is 4x Cortex-A520 + 4x Cortex-A720 and this image boots nothing else, so pass the compiler KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4 -mtune=cortex-a720". The stock arm64 build gives the compiler no arch flag at all (so one image can boot any Armv8 board). The string is what `gcc -march=native` derives on the phone, re-based on armv8.6-a so clang can express the same set (clang has no flagm2/rcpc2/ frintts tokens; it reaches them through the architecture level). 8.6 is the highest level whose mandatory set the phone exposes: 8.7 would assume WFxT and 9.x SVE2, and neither is in its hwcaps or ID registers. clang emits identical code for this and for -mcpu=cortex-a720+nosve+nomemtag; the difference is only which system features (SPE, ETE, TRBE, FPAC) it knows about, none of which generate code. Verified on eef717f978f1 with the aport config: builds with zero warnings, same module set as r100 (417), compat vDSO untouched, boots the dev phone with a clean dmesg and a GREEN selftest. Record: fp6 journal/base/captures/2026-09-05-mcpu-a720-verification.md.
This commit is contained in:
parent
60a29c2590
commit
27f923a817
4 changed files with 30 additions and 4 deletions
|
|
@ -3,7 +3,7 @@ maintainer="Robert Mader <robert.mader@collabora.com>"
|
|||
pkgname=libcamera
|
||||
_pkgver=0.7.2
|
||||
pkgver=9999$_pkgver
|
||||
pkgrel=9
|
||||
pkgrel=10
|
||||
pkgdesc="Linux camera framework"
|
||||
url="https://libcamera.org/"
|
||||
arch="all"
|
||||
|
|
@ -83,6 +83,13 @@ builddir="$srcdir/$pkgname-v$_pkgver"
|
|||
# gstreamer tests fail
|
||||
# manual strip because ipa .sign files depend on the file contents- have to re-sign after strip
|
||||
options="!strip !check"
|
||||
# fp6-img: this package only ever runs on the FP6 (4x Cortex-A520 + 4x
|
||||
# Cortex-A720), so tune for it. Spelled -march/-mtune, not -mcpu: GCC 16
|
||||
# expands -mcpu=cortex-a720 into a +sve-bitperm token that binutils 2.45
|
||||
# rejects at the assembler. +nosve+nomemtag: the FP6 exposes neither SVE nor
|
||||
# MTE (no sve/mte hwcaps), and without them the code would SIGILL.
|
||||
export CFLAGS="$CFLAGS -march=armv9.2-a+nosve+nomemtag -mtune=cortex-a720"
|
||||
export CXXFLAGS="$CXXFLAGS -march=armv9.2-a+nosve+nomemtag -mtune=cortex-a720"
|
||||
|
||||
case "$CARCH" in
|
||||
arm*|aarch64)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ maintainer="Achill Gilgenast <achill@achill.org>"
|
|||
pkgname=libqmi
|
||||
pkgver=1.39.1_git20260808
|
||||
_commit=30f3e998e6cbda364ac1bc73223de20561e6d555
|
||||
pkgrel=100
|
||||
pkgrel=101
|
||||
pkgdesc="QMI modem protocol helper library"
|
||||
url="https://www.freedesktop.org/wiki/Software/libqmi"
|
||||
arch="all"
|
||||
|
|
@ -27,6 +27,12 @@ makedepends="
|
|||
# fp6-img: crossdirect breaks meson compiler introspection (cc1 spawn
|
||||
# failure), same as modemmanager; build under plain qemu.
|
||||
options="!pmb:crossdirect"
|
||||
# fp6-img: this package only ever runs on the FP6 (4x Cortex-A520 + 4x
|
||||
# Cortex-A720), so tune for it. Spelled -march/-mtune, not -mcpu: GCC 16
|
||||
# expands -mcpu=cortex-a720 into a +sve-bitperm token that binutils 2.45
|
||||
# rejects at the assembler. +nosve+nomemtag: the FP6 exposes neither SVE nor
|
||||
# MTE (no sve/mte hwcaps), and without them the code would SIGILL.
|
||||
export CFLAGS="$CFLAGS -march=armv9.2-a+nosve+nomemtag -mtune=cortex-a720"
|
||||
subpackages="
|
||||
$pkgname-dev
|
||||
$pkgname-doc
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
maintainer="Achill Gilgenast <achill@achill.org>"
|
||||
pkgname=modemmanager
|
||||
pkgver=1.25.95_git20260709
|
||||
pkgrel=100
|
||||
pkgrel=101
|
||||
_commit=d776ea38d29ca472a12323c1d45002ee19a66f57
|
||||
pkgdesc="ModemManager library"
|
||||
url="https://www.freedesktop.org/wiki/Software/ModemManager"
|
||||
|
|
@ -42,6 +42,12 @@ checkdepends="glib-dev py3-gobject3 py3-dbus"
|
|||
# native builders, and none exercise the GNSS code our patches change) -
|
||||
# on-device validation is the real test.
|
||||
options="!pmb:crossdirect !check"
|
||||
# fp6-img: this package only ever runs on the FP6 (4x Cortex-A520 + 4x
|
||||
# Cortex-A720), so tune for it. Spelled -march/-mtune, not -mcpu: GCC 16
|
||||
# expands -mcpu=cortex-a720 into a +sve-bitperm token that binutils 2.45
|
||||
# rejects at the assembler. +nosve+nomemtag: the FP6 exposes neither SVE nor
|
||||
# MTE (no sve/mte hwcaps), and without them the code would SIGILL.
|
||||
export CFLAGS="$CFLAGS -march=armv9.2-a+nosve+nomemtag -mtune=cortex-a720"
|
||||
subpackages="
|
||||
$pkgname-lang
|
||||
$pkgname-doc
|
||||
|
|
|
|||
Loading…
Reference in a new issue