boot-deploy needs the AOSP mkbootimg (from android-tools) to build the
header v4 boot.img + vendor_boot.img pair; mkbootimg-osm0sis does not
handle GKI/vendor_boot. Matches the other header-v4 devices (Pixel 6).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
The reference-design rail voltages that both sm8550-mtp and the rtwo
downstream share are unchanged, but three rails carry board-specific
ranges in the Motorola DT / device DTB dump:
L11B (panel VDD): 1.20-1.50 V -> 1.23-1.28 V
L1E (USB HS phy): fixed 0.88 V -> 0.88-0.912 V
L1G (UFS VCCQ): fixed 1.20 V -> 1.144-1.256 V
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
Cross-referenced the LineageOS 23.2 sources (android_device_motorola_rtwo,
sm8550-common, sm8550-devicetrees) and the DTB dumped from the device:
- Fix debug UART: it is GENI SE7 under qupv3_id_0 (@ac0000), not qupv3_id_1.
- Add ramoops (0xae000000/0x60000) and a cont_splash reserved region
(0xb8000000), both matching the stock reserved-memory map.
- Add a simple-framebuffer at 0xb8000000 (1080x2400) so there is an early
console on the panel; deviceinfo screen size corrected to 1080x2400.
- Goodix GT9916 touchscreen on spi4 (SE4), reset TLMM24 / irq TLMM25,
avdd = pm8550 L9B, vddio = pm8550 L10B (new rails L8B/L10B added).
- gpio-keys: volume-up on pm8550 GPIO6; enable PMIC pwrkey + resin
(volume-down).
- SD card: real card-detect on pm8550 GPIO12, vqmmc = L8B.
- modules-initfs: add goodix-berlin + eusb2 phy modules.
Panel/DRM, GPU, modem, WiFi/BT (WCN7850), charger and camera are documented
as TODO in the .dts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
Bring-up for the Motorola Moto Edge 40 Pro (codename "rtwo", SM8550 /
Snapdragon 8 Gen 2).
New linux-postmarketos-qcom-sm8550 aport:
- Built from the postmarketOS soc/qcom-sm8550 tree (branch bringup,
6.13-rc3, commit 22591bbc).
- Kernel config is generated at build time from the in-tree upstream
defconfig plus the repo's pmos.config and devices.config fragments.
- Ships a WIP sm8550-motorola-rtwo.dts: SoC + PMICs + the sm8550-mtp
regulator tree, UART7 debug console, USB in high-speed peripheral mode,
UFS and SD card. Display panel, touchscreen, modem, WiFi/BT, GPU zap
shader and reserved-memory carveouts still need to be described from
Motorola's downstream sources.
device-motorola-rtwo:
- deviceinfo completed from bootimg analysis of the stock boot.img:
Android boot header v4, 4096-byte pages, no qcdt, fastboot flashing.
Added screen geometry, UFS sector size and a serial getty; framebuffer
disabled until the panel works.
- Depends on the new kernel, soc-qcom and mkbootimg.
Both packages still need 'pmbootstrap checksum' for the kernel tarball and
a real boot test; see the TODO comments in the APKBUILDs and the .dts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
The libdebuginfod package ships a profile.d script that reads
/etc/debuginfod/*.urls files, but that mechanism doesn't work on
Duranium because users can install gdb via coldbrew and coldbrew's
bubblewrap sandbox doesn't bind-mount the host's /etc so any .urls file
on the host is invisible inside the sandbox. I considered addign this to
the dev-tools sysext, but coldbrew is always installed and making users
install a sysext just to set a variable when they're already able to
install gdb via coldbrew didn't seem like great UX
Setting the environment variable via a profile.d script works for both
mutable pmOS and Duranium since the host's login shell sources it, and
coldbrew inherits the host's environment. I considered using a .urls
file for mutable pmOS but that would require adding a subpkg with an
`install_if=libdebuginfod` AND a profile.d thing like this for duranium,
so just adding a single profile.d file for both seemed a lot simpler
even if it's ignoring libdebuginfod's existing profile.d mechanism.
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9468>
The config was for an older version of Linux, so was getting new
defaults applied when being built. Now the committed config is the same
as Linux was actually using to build.
Apparently the compression changed slightly for the Github tar,
producing a different sha.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9421>
devices.config being dropped from linux-next partially broke expressatt
as the mainline kernels do not enable peripherals that are needed
by expressatt. Let's instead add it to kconfig-generic.toml and use
postmarketOS's generic kernels instead of Alpine's.
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9463>
This is not ideal, but while our kconfig keeps being very dynamic, we
very often bump into the following situation:
Author of kernel MR fixes kconfig -> the MR is fine ->
1 week passes and some other kconfig changes get merged ->
we assign to the bot for merge -> CI fails and we're back at the
beginning
This means the authors have to get back to fixing kconfig out of us
being slow. And if we are slow again, the same cycle can repeat, which
has happened in the past. This is frustrating for everybody. Instead,
if we are ready to merge and the merge bot is the committer, just
skip kconfigcheck failures. It means that some options might have to
wait for the next update to be included, but still forces authors to
fix kconfig on each of their own pushes, which is a possible trade-off
to reduce friction.
This should be save to revert the day kconfigcheck starts changing
only occassionally.
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9385>