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
|
|
@ -8,7 +8,7 @@ _flavor="postmarketos-qcom-milos"
|
|||
pkgname=linux-$_flavor
|
||||
pkgver=7.2.0
|
||||
# always sorts above the upstream aport (r0..r99)
|
||||
pkgrel=101
|
||||
pkgrel=102
|
||||
pkgdesc="Milos mainline kernel + Catcrafts FP6 bring-up carries (combined-stable)"
|
||||
arch="aarch64"
|
||||
_carch="arm64"
|
||||
|
|
@ -57,7 +57,14 @@ prepare() {
|
|||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
# Build for the cores this image runs on: 4x Cortex-A520 + 4x Cortex-A720.
|
||||
# The stock arm64 build gives the compiler no arch flag so one image boots
|
||||
# any Armv8 board; this one boots the FP6. armv8.6-a is the highest level
|
||||
# whose mandatory set the phone exposes (8.7 would assume WFxT, 9.x SVE2;
|
||||
# neither is in its hwcaps); +fp16fml+aes+sha3+sm4 are the optional
|
||||
# extensions it has, the same set `gcc -march=native` derives on the phone.
|
||||
make ARCH="$_carch" LLVM=1 \
|
||||
KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4 -mtune=cortex-a720" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor"
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue