Skip to content

bcm27xx: add support for 6.12 kernel version #17147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 73 commits into
base: main
Choose a base branch
from

Conversation

graysky2
Copy link
Contributor

@graysky2 graysky2 commented Dec 2, 2024

This PR builds on #16547 and namiltd#53 which is not yet merged and is an initial draft at including the 6.12 series kernels.

What fails to build when compiling an image with CONFIG_BUILDBOT=y

What needs attention

  • I removed patches if they provide Github workflows, wireless drivers, and defconfigs, but I may have missed some so a review by others is welcomed.
  • I am unsure if I correctly populated the config-6.12 files. Feedback and collaboration is welcomed.
Build system: x86/64
Build-tested: bcm2712/rpi-5
Run-tested: bcm2712/rpi-5

yes

@graysky2 graysky2 marked this pull request as draft December 2, 2024 18:48
@github-actions github-actions bot added target/bcm27xx pull request/issue for bcm27xx target build/scripts/tools pull request/issues for build, scripts and tools related changes kernel pull request/issue with Linux kernel related changes target/lantiq pull request/issue for lantiq target core packages pull request/issue for core (in-tree) packages target/ramips pull request/issue for ramips target target/x86 pull request/issue for x86 target target/ath79 pull request/issue for ath79 target target/mediatek pull request/issue for mediatek target target/bmips pull request/issue for bmips target labels Dec 2, 2024
@graysky2 graysky2 mentioned this pull request Dec 2, 2024
44 tasks
@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from 7f0cdf4 to 7a7b41e Compare December 2, 2024 20:27
@namiltd
Copy link
Contributor

namiltd commented Dec 2, 2024

Do: make kernel_oldconfig

@graysky2
Copy link
Contributor Author

graysky2 commented Dec 2, 2024

Do: make kernel_oldconfig

All that did was undo the options I manually added.

diff --git a/target/linux/bcm27xx/config-6.12 b/target/linux/bcm27xx/config-6.12
index a4545a3a6957..d55f73bc1edb 100644
--- a/target/linux/bcm27xx/config-6.12
+++ b/target/linux/bcm27xx/config-6.12
@@ -1,5 +1,4 @@
 CONFIG_64BIT=y
-# CONFIG_AF8133J is not set
 CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
 CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
 CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
@@ -40,18 +39,12 @@ CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
 CONFIG_ARM_GIC=y
 CONFIG_ARM_GIC_V3=y
 CONFIG_ARM_GIC_V3_ITS=y
-# CONFIG_ARM_NI is not set
 CONFIG_ARM_PSCI_FW=y
 CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
-# CONFIG_BACKLIGHT_KTD2801 is not set
-# CONFIG_BACKLIGHT_RPI is not set
-# CONFIG_BACKLIGHT_LM3509 is not set
-# CONFIG_BACKLIGHT_MP3309C is not set
 # CONFIG_BASE_SMALL is not set
 # CONFIG_BCACHEFS_FS is not set
 # CONFIG_BCM2712_MIP is not set
 # CONFIG_BRCM_CHAR_DRIVERS is not set
-# CONFIG_BT_HCIUART_AML is not set
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
@@ -66,7 +59,6 @@ CONFIG_CPUMASK_OFFSTACK=y
 CONFIG_CPU_BIG_ENDIAN=y
 CONFIG_CPU_MITIGATIONS=y
 CONFIG_CPU_RMAP=y
-# CONFIG_CPUSETS_V1 is not set
 CONFIG_CRYPTO_ECB=y
 CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
 CONFIG_CRYPTO_LIB_GF128MUL=y
@@ -76,34 +68,7 @@ CONFIG_DCACHE_WORD_ACCESS=y
 CONFIG_DEBUG_INFO=y
 CONFIG_DMA_DIRECT_REMAP=y
 CONFIG_DMA_NEED_SYNC=y
-# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
-# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
-# CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set
-# CONFIG_DRM_PANEL_BOE_TV101WUM_LL2 is not set
-# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set
-# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set
-# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
-# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set
-# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
-# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set
-# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set
-# CONFIG_DRM_PANEL_LG_SW43408 is not set
-# CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set
-# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
-# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set
-# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set
-# CONFIG_DRM_PANEL_TPO_Y17P is not set
-# CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN is not set
-# CONFIG_DRM_RP1_DSI is not set
-# CONFIG_DRM_RP1_DPI is not set
-# CONFIG_DRM_RP1_VEC is not set
-# CONFIG_DRM_PANIC is not set
-# CONFIG_DRM_PANTHOR is not set
-# CONFIG_DRM_POWERVR is not set
-# CONFIG_DRM_XE is not set
 CONFIG_DTC=y
-# CONFIG_DWC_PCIE_PMU is not set
 CONFIG_EDAC_SUPPORT=y
 CONFIG_EXCLUSIVE_SYSTEM_RAM=y
 CONFIG_FIX_EARLYCON_MEM=y
@@ -141,7 +106,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
 CONFIG_GENERIC_TIME_VSYSCALL=y
 CONFIG_GPIO_CDEV=y
 # CONFIG_GPIO_FSM is not set
-# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set
 # CONFIG_GPIO_VIRTUSER is not set
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_HAS_DMA=y
@@ -157,7 +121,6 @@ CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_IRQ_MSI_LIB=y
 CONFIG_IRQ_WORK=y
 # CONFIG_LAN966X_OIC is not set
-# CONFIG_LEDS_LP5569 is not set
 # CONFIG_LEDS_TRIGGER_ACTPWR is not set
 # CONFIG_LEDS_TRIGGER_INPUT is not set
 CONFIG_LIBFDT=y
@@ -165,9 +128,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_LRU_GEN_WALKS_MMU=y
 # CONFIG_LWQ_TEST is not set
-# CONFIG_MEDIA_PCI_HAILO is not set
 # CONFIG_MEM_ALLOC_PROFILING is not set
-# CONFIG_MEMCG_V1 is not set
 CONFIG_MIGRATION=y
 CONFIG_MMU_LAZY_TLB_REFCOUNT=y
 CONFIG_MODULES_USE_ELF_RELA=y
@@ -175,7 +136,6 @@ CONFIG_MODULES_USE_ELF_RELA=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEED_SG_DMA_LENGTH=y
-# CONFIG_NET_9P_USBG is not set
 # CONFIG_NETKIT is not set
 CONFIG_NET_EGRESS=y
 CONFIG_NET_FLOW_LIMIT=y
@@ -220,9 +180,7 @@ CONFIG_RPS=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 CONFIG_SERIAL_8250_FSL=y
 CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set
 CONFIG_SMP=y
-# CONFIG_SND_PIMIDI is not set
 CONFIG_SOCK_RX_QUEUE_MAPPING=y
 CONFIG_SOFTIRQ_ON_OWN_STACK=y
 CONFIG_SPARSEMEM=y
@@ -230,7 +188,6 @@ CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SPARSE_IRQ=y
-# CONFIG_SPI_RP2040_GPIO_BRIDGE is not set
 CONFIG_SPLIT_PMD_PTLOCKS=y
 CONFIG_SPLIT_PTE_PTLOCKS=y
 CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
@@ -251,7 +208,6 @@ CONFIG_TREE_SRCU=y
 CONFIG_UNMAP_KERNEL_AT_EL0=y
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_VDSO_GETRANDOM=y
-# CONFIG_W1_MASTER_UART is not set
 CONFIG_XPS=y
 CONFIG_XZ_DEC_BCJ=y
 CONFIG_ZONE_DMA32=y
-- 
2.47.1

@namiltd
Copy link
Contributor

namiltd commented Dec 3, 2024

Please rebase.

@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from 7a7b41e to 29408cf Compare December 3, 2024 20:07
@graysky2
Copy link
Contributor Author

graysky2 commented Dec 3, 2024

Rebased but am wondering what is a more efficient method. I did this:

git format-patch -6 # to save my 6 commits
git reset --hard upstream/master # this is openwrt master
git fetch nam-6.12
git rebase nam-6.12/6.12 # to apply your stuff
git am 0001-kernel-bcm27xx-Create-kernel-files-for-v6.12-from-v6.patch 0002-kernel-bcm27xx-Restore-kernel-files-for-v6.6.patch 0003-kernel-bcm27xx-bcm2712-enable-testing-kernel.patch 0004-patches-6.12-bcm27xx-refresh-patch-set.patch 0005-bcm27xx-bcm2712-refresh-6.12-kernel-config.patch 0006-bcm27xx-bcm2712-refresh-6.12-kernel-config.patch```

Would be nice if I could:

git fetch nam-6.12
git rebase nam-6.12/6.12

But doing that gave conflicts

@namiltd
Copy link
Contributor

namiltd commented Dec 3, 2024

git reset --hard 7c9c26f47490f2ce05765860b9dd4e21d31ef437
git cherry-pick 586bd9fda2b38610d5246f7ece6dc35c19235314~..29408cff28e76c4c9a10d6d6c8f08c470d7ab896
git push --force

@namiltd
Copy link
Contributor

namiltd commented Dec 3, 2024

Try patches namiltd@3338c7a and namiltd@504728d

@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from d7bc111 to 7ccbcf6 Compare December 3, 2024 23:02
@graysky2
Copy link
Contributor Author

graysky2 commented Dec 3, 2024

Try patches namiltd@3338c7a and namiltd@504728d

Test building now with minimal config:

CONFIG_TARGET_bcm27xx=y
CONFIG_TARGET_bcm27xx_bcm2712=y
CONFIG_TARGET_bcm27xx_bcm2712_DEVICE_rpi-5=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
# CONFIG_BINUTILS_USE_VERSION_2_42 is not set
CONFIG_BINUTILS_USE_VERSION_2_43=y
CONFIG_BINUTILS_VERSION="2.43.1"
CONFIG_BINUTILS_VERSION_2_43=y
# CONFIG_GCC_USE_VERSION_13 is not set
CONFIG_GCC_USE_VERSION_14=y
CONFIG_GCC_VERSION="14.2.0"
CONFIG_GCC_VERSION_14=y
CONFIG_LINUX_6_12=y
CONFIG_TARGET_KERNEL_PARTSIZE=32
CONFIG_TARGET_ROOTFS_PARTSIZE=512
CONFIG_TESTING_KERNEL=y
CONFIG_KERNEL_WERROR=y

@graysky2
Copy link
Contributor Author

graysky2 commented Dec 3, 2024

Made it further but build still fails:

#
# configuration written to .config
#
Building backport-include/backport/autoconf.h ... done.
  CC [M]  /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.o
/scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1187:19: error: 'no_llseek' undeclared here (not in a function); did you mean 'noop_llseek'?
 1187 |         .llseek = no_llseek,
      |                   ^~~~~~~~~
      |                   noop_llseek
make[12]: *** [scripts/Makefile.build:244: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.o] Error 1
make[11]: *** [scripts/Makefile.build:485: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom/brcm80211/brcmfmac] Error 2
make[10]: *** [scripts/Makefile.build:485: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom/brcm80211] Error 2
make[9]: *** [scripts/Makefile.build:485: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless/broadcom] Error 2
make[8]: *** [scripts/Makefile.build:485: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/drivers/net/wireless] Error 2
make[7]: *** [Makefile:1936: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2] Error 2
make[6]: *** [Makefile.build:13: modules] Error 2
make[5]: *** [Makefile.real:105: modules] Error 2
make[4]: *** [Makefile:121: modules] Error 2
make[3]: *** [Makefile:402: /scratch/union/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/mac80211-regular/backports-6.11.2/.built] Error 2
make[3]: Leaving directory '/scratch/union/package/kernel/mac80211'
time: package/kernel/mac80211/regular/compile#0.97#0.21#1.17
    ERROR: package/kernel/mac80211 failed to build (build variant: regular).
make[2]: *** [package/Makefile:185: package/kernel/mac80211/compile] Error 1
make[2]: Leaving directory '/scratch/union'
make[1]: *** [package/Makefile:179: /scratch/union/staging_dir/target-aarch64_cortex-a76_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/scratch/union'
make: *** [/scratch/union/include/toplevel.mk:233: world] Error 2

@namiltd
Copy link
Contributor

namiltd commented Dec 4, 2024

Patched: 9ebe799, try again.
Yo can test it at your own risk. On ramips/mt7620 it starts up, but resets after half a minute from turning on the wifi and so on cyclically. Unfortunately I do not currently have access to its serial terminal.

@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from 7ccbcf6 to 9c641d9 Compare December 4, 2024 18:27
@graysky2
Copy link
Contributor Author

graysky2 commented Dec 4, 2024

Adding that commit allowed the build to complete. I did not try using the wifi on the RPi5B (pretty worthless) but all other functionality that I use, routing, VLANs, etc. is working under 6.12.1. Main thing is the successful build until the mac80211 stuff can be updated.

@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch 2 times, most recently from a9034cc to e813ab2 Compare December 4, 2024 20:40
@namiltd
Copy link
Contributor

namiltd commented Dec 4, 2024

Add

CONFIG_ARM_PAN=y

to bcm2708/config-6.12

@graysky2
Copy link
Contributor Author

graysky2 commented Dec 4, 2024

@namiltd - see 0ae771a

mhei and others added 26 commits February 7, 2025 14:56
Seems that the common style is to have whitespace around the operators
and the indent is single tab.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Replace outdated package names, order the remaining.

firewall4 is added again, since it is enabled by default.
The device is not a router by default, so this package
makes no sense in the default config. User can enable it
by theirself, or it will be automatically pulled via
dependency, e.g. luci-app-firewall.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
 - refresh patches
 - add patch to fix compilation with GCC13
   (referring to ARM-8933/1).

Link: https://lore.kernel.org/lkml/20220630133231.272605764@linuxfoundation.org/
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Uses upstream DSA switch modules (rtl8365mb, rtl8366), similar to
RTL8367C and rtl8366rb swconfig drivers.

The package dependencies exclude targets built without kernel CONFIG_OF.

It also fixes the rtl8366rb LED support.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
The codename for IPQ50xx is Maple (abbreviated as 'MP'), so let's pass
the codename to allow the QCA-SSDK to build for the IPQ50xx SoC.

In addition, disable compiling the MP_PHY driver in favor of a native
driver being upstreamed.

Co-developed-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for the Qualcomm IPQ50xx in the QCA NSS dataplane driver.
The QCA implementation uses depracated DMA api calls and a downstream SCM
call, so convert to proper Linux DMA and SCM api calls.
In addition, add fixed-link support to support SGMII which is used to
connect the internal IPQ50xx switch to an external switch (ex. QCA8337)

Co-developed-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Introduce support for the Qualcomm IPQ50xx SoC.
This series adds support for the following components:
- minimal boot support: GCC/pinctrl/watchdog/CPUFreq/SDI (upstreamed)
- USB2 (upstreamed)
- Thermal/Tsens
- PCIe gen2 1&2-lane PHY and controller
- PWM and PWM LED
- QPIC SPI NAND controller
- CMN PLL Block (provider of fixed rate clocks to GCC/ethernet/more.)
- Ethernet: IPQ5018 Internal GE PHY (1 gbps)
- Remoteproc MPD driver for IPQ5018 (2.4G) & QCN6122 (5/6G) Wifi

Co-developed-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add ability to download and package ath11k firmware for IPQ5018.

As part of commit 172ccf7, the source is pointed to the new QCA repo.
Until QCA publishes updated firmware for IPQ5018 and QCN6122, we need
to download the firmware from the old QUIC repo. As such, add a new
download routine for IPQ5018/QCN6122 to fetch the firmware files from
the old repo.

While at it, add support for packaging BDFs for IPQ5018-based boards
and update iwinfo to recognize IPQ5018 wifi.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
https://lore.kernel.org/linux-wireless/TYZPR01MB55563B3A689D54D18179E5B4C9192@TYZPR01MB5556.apcprd01.prod.exchangelabs.com/

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
IPQ5018 uses different BDF and caldb addresses for vairous boards,
so let's support reading these addresses from the device tree.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add ability to download and package ath11k firmware for QCN6122.
QCN6122 is specific/exclusive to the IPQ5018 platform and firmware
files are publishes in a subdirectory of the IPQ5018 firmware files.

While at it, add support for packaging BDFs for QCN6122 wifi and
update iwinfo to recognize QCN6122 wifi.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add QCN6122 platform support.

QCN6122 is a PCIe based solution that is attached to and enumerated
by the WPSS (Wireless Processor SubSystem) Q6 processor.

Though it is a PCIe device, since it is not attached to APSS processor
(Application Processor SubSystem), APSS will be unaware of such a decice
and hence it is registered to the APSS processor as a platform device(AHB).
Because of this hybrid nature, it is called as a hybrid bus device.

As such, QCN6122 is a hybrid bus type device and follows the same codepath
as for WCN6750.

This is a reversed engineered and heavily simplified version of below
downstream patch:
https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/ \
blob/NHSS.QSDK.12.4.5.r2/mac80211/patches/232-ath11k-qcn6122-support.patch

Co-developed-by: George Moussalem <george.moussalem@outlook.com>
Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for Linksys MX2000 (Atlas 6) and MX5500 (Atlas 6 Pro).
These devices are completely identical except for the secondary wifi
chip used for 5Ghz: QCN6102 is used on MX2000 while QCN9024 is used
on MX5500

Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Winbond W634GU6NB-11 (512 MiB DDR3-933)
* Serial Port: 3v3 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
* Wi-Fi: MX2000: QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
         MX5500: QCN9024 (4x4:4 5 Ghz 802.11an/ac/ax)
* Ethernet: IPQ5018 integrated virtual switch connected to an external
            QCA8337 switch (4 Ports 10/100/1000 GBASE-T)
* Flash: Macronix MX35UF2GE4AD (256 MiB)
* LEDs: 1x multi-color PWM LED
* Buttons: 1x WPS (GPIO 27 Active Low)
           1x Reset (GPIO 28 Acive Low)

Flash instructions (in case of MX2000, else replace with MX5500 images):
1. On OEM firmware, login to the device (typically at http://192.168.1.1) and click 'CA'
in the bottom right corner -> Connectivity -> Manual Upgrade. Alternatively, browse to
http://<router IP>/fwupdate.html.
Upgrade firmware using openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin image.
Optionally install on second partition, after first boot check actual partition:
fw_printenv -n boot_part
and install firmware on second partition using command in case of 2:
mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin kernel
and in case of 1:
mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin alt_kernel
2. Installation using serial connection from OEM firmware (default login: root, password: admin):
fw_printenv -n boot_part
In case of 2:
flash_erase /dev/mtd12 0 0
nandwrite -p /dev/mtd12 openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin
or in case of 1:
flash_erase /dev/mtd14 0 0
nandwrite -p /dev/mtd14 openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin
After first boot install firmware on second partition:
mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin kernel
or:
mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin alt_kernel
3. Back to the OEM firmware.
Download firmware from OEM website:
MX2000: https://support.linksys.com/kb/article/585-en/
MX5500: https://support.linksys.com/kb/article/587-en/
From serial or SSH:
fw_printenv boot_part
in case of 1:
mtd -r -e alt_kernel -n write FW_MX2000_1.1.7.210469_prod.img alt_kernel
else in case of 2:
mtd -r -e kernel -n write FW_MX2000_1.1.7.210469_prod.img kernel

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
This downstream patch fixes a bug which could flood the logs with the
following message and would eventually lead to a crash.

ath11k c000000.wifi: failed to send HAL_REO_CMD_UPDATE_RX_QUEUE cmd, tid 0 (-105)

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: openwrt#17182
Signed-off-by: Robert Marko <robimarko@gmail.com>
The ccache build requires xxhash, which is download from
the Internet. So add host-build package for xxhash.

Fixes: openwrt#16851
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
[ use git source proto ]
Link: openwrt#17700
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The ccache build relies on doctest, which
is useless and can be disabled.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: openwrt#17700
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
12948ce23744 Revert "ipq6018: add BDF for Edgecore EAP101"
6b3522faae1a ipq6018: add BDF for Edgecore EAP101
0411c6b1a00a ipq5018: add BDF for Linksys MX2000
feb4f2dfaa1b qcn6122: add BDF for Linksys MX2000
29819c35c8a5 ipq5018: add BDF for Linksys MX5500
38b0e9ee0f3c qcn9074: add BDF for Linksys MX5500

Link: openwrt#17877
Signed-off-by: Robert Marko <robimarko@gmail.com>
9ff15f7ee3a0 devices: add device id for MediaTek MT7992E
94b3a3c1a6c4 devices: add device id for Qualcomm Atheros IPQ5018
9cec6b4dd2df devices: add device id for Qualcomm Atheros QCN6122

Link: openwrt#17878
Signed-off-by: Robert Marko <robimarko@gmail.com>
Newly introduced IPQ5018 specific symbols will stop compilation of
ipq807x and ipq60xx subtargets, so make sure to disable them in the
generic config.

Link: openwrt#17884
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit adds new "mediatek,bmt-mtd-overridden-oobsize" property. The
property helps avoid "NMBM configuration mismatch" error if mtd "OOB size"
is not equal to the "spare size" which is stored in the nmbm signature.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: openwrt#17549
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit fixes nmbm configuration mismatch error on Xiaomi AX3000t
with Winbond W25N01KVZEIR spi-nand:
'''
[    0.786783] NMBM configuration mismatch
'''

Root cause:
1. U-Boot W25N01KV spi-nand driver ia compiled with 64B OOB size for the
   chip and store this size in the nmbm signature;
2. Linux W25N01KV driver use 96B OOB.

The change doesn't affect AX3000t variants with other spi-nand chips
(ESMT, Foresee) because their Linux drivers use 64B OOB.

Fixes: openwrt#16972
Tested-by: Aleksandr Danilov <sc16me@gmail.com>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: openwrt#17549
Signed-off-by: Robert Marko <robimarko@gmail.com>
Refresh the ipq50xx kernel config as it looks like it was created by hand
instead of kernel_menuconfig so we have stuff like DWC3 which is packaged
as a kmod in a generic way, QMI helpers are part of backports etc.

Link: openwrt#17890
Signed-off-by: Robert Marko <robimarko@gmail.com>
Unless another toolchain is present (or selected), build the bpf toolchain
whenever a package is selected that needs it.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Temporary patch for kernel 6.12

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Ran: make kernel_menuconfig CONFIG_TARGET=target then
make kernel_menuconfig CONFIG_TARGET=subtarget then
manually added needed missing config options base on building
the build bot config.  Corrected order using
scripts/kconfig-reorder.sh

Signed-off-by: John Audia <therealgraysky@proton.me>
Enable testing kernel for bcm2712

Signed-off-by: John Audia <therealgraysky@proton.me>
@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from 49a06c0 to 977461a Compare February 7, 2025 19:58
The patches were generated from the RPi repo with the following command:
git format-patch -N v6.12.12..HEAD
(HEAD -> 1f193661c9a0eb916b3c64c7a5d5dba31948b0c3)

Then used update_kernel.sh to rebase adjusting as needed.

Removed patches for Github workflow, and defconfigs.
The following was used to flag potential patches to exclude:

grep -i defconfig *.patch | awk '{ print $1 }' | sed 's/:.*$//' | uniq
grep -i github *.patch
Grep ISSUE_TEMPLATE *.patch

ls | grep -i brcm
ls | grep -i github
ls | grep -i config
ls | grep -i readme

Also helpful to grep for keywords in patches to manually inspect
like: grep defconfig *.patch

Signed-off-by: John Audia <therealgraysky@proton.me>
@graysky2 graysky2 force-pushed the 6.12/bcm27xx/bcm2712 branch from 977461a to c445f88 Compare February 7, 2025 20:01
@github-actions github-actions bot added the toolchain pull request/issue with toolchain related changes label Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build/scripts/tools pull request/issues for build, scripts and tools related changes core packages pull request/issue for core (in-tree) packages kernel pull request/issue with Linux kernel related changes target/airoha pull request/issue for airoha target target/ath79 pull request/issue for ath79 target target/bcm27xx pull request/issue for bcm27xx target target/bmips pull request/issue for bmips target target/imx pull request/issue for imx (imx6) target target/ipq40xx pull request/issue for ipq40xx target target/lantiq pull request/issue for lantiq target target/loongarch64 pull request/issue for loongarch64 target target/mediatek pull request/issue for mediatek target target/mvebu pull request/issue for mvebu target target/mxs pull request/issue for mxs target target/qualcommax pull request/issue for qualcommax target target/ramips pull request/issue for ramips target target/realtek pull request/issue for realtek target target/rockchip pull request/issue for rockchip target target/starfive pull request/issue for starfive target target/x86 pull request/issue for x86 target toolchain pull request/issue with toolchain related changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.