prplos/profiles/qca_ipq95xx.yml
Tim Hsu 6d3667850a profiles: qca_ipq95xx: switch Freedom WPS button to gpio-keys-polled
On Freedom boards, GPIO12 (WPS button) pad leakage lets the pin
linger near the switching threshold during cold boot, so the mainline
gpio-keys edge IRQ (IRQ36) storms at hundreds of thousands to millions
of edges per second, all pinned to CPU0.

CPU0 gets wedged in hardirq context, stops reporting RCU quiescent states,
and the resulting rcu_preempt stall blocks any driver bring-up that waits on synchronize_rcu(),
stalling i2c-mux/expander/LED probe and locking the board up.

Move the WPS button to a separate gpio-keys-polled node so it no longer requests an edge IRQ,
decoupling it from the pad leakage entirely.

Fixes: PCF-2655

Signed-off-by: Tim Hsu <tim.hsu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased, removed PCI fix]
2026-08-11 14:03:01 +00:00

72 lines
1.7 KiB
YAML

---
profiles:
- prpl_freedom
target: ipq95xx
subtarget: generic
external_target: True
description: Build image for prpl Foundation Freedom board
feeds:
- name: feed_qca
uri: https://gitlab.com/prpl-foundation/prplOS/feed-qca.git
revision: latest-24.10/ath13.1@b6e2c2b11456fe0bcc01515102a0636783ae63dd
include:
- secure_boot_emmc
packages:
- ipq95xx
- wireless-regdb
- hostapd-qca-utils
- wpa-qca-cli
- ath12k-caldata
- aq-fw-download
- aq_phy
- qca-ssdk-shell
- efr32-boot-config
- wireless-freedom
- kmod-usb-phy-ipq807x
- kmod-usb-dwc3-internal
- kmod-usb-dwc3-qcom-internal
- kmod-usb-storage
- kmod-usb-storage-extras
- kmod-usb-storage-uas
- kmod-fs-vfat
- kmod-telemetry-agent
- kmod-i2c-mux-pca954x
- kmod-gpio-pca953x
- kmod-leds-lp5562
- freedom-lcm-partitioner
- kmod-qca8084
- kmod-qca81xx
- kmod-qca8xxx-phc
- kmod-ppp
- kmod-pppoe
- kmod-ath11k
- kmod-qca-nss-pppoe-mgr
- kmod-qca-nss-gre-mgr
- ppecfg
- taskset
- kmod-qca-nss-ppe-pppoe-mgr
- kmod-qca-nss-ppe-gre-mgr
- kmod-qca-mdio
- kmod-qca-nss-ppe-ath-clients
- kmod-qca-wifi-nss-plugins
- wifi-scripts
- wifi-helper-scripts
- kmod-input-gpio-keys-polled
diffconfig: |
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_BUSYBOX_CONFIG_I2CSET=y
CONFIG_PACKAGE_ATH_DEBUG=y
# CONFIG_PACKAGE_wififw_mount_script is not set
# CONFIG_KERNEL_SWAP is not set
CONFIG_PACKAGE_ppecfg=y
CONFIG_PACKAGE_libnl-ppe=y
CONFIG_PACKAGE_kmod-qseecom=m
CONFIG_BUSYBOX_CONFIG_DEVMEM=y
CONFIG_IMAGEGENERATOR_BOARD="qca_ipq95xx_freedom"
CONFIG_SAH_LIB_MFG_RO_PART_FILE="/dev/mmcblk0p30"
CONFIG_SWUPDATE_TARGET_HW_VERSION="freedom:1.0"
CONFIG_FWI_FLASH_PARTITIONS="u-boot,kernel,rootfs"