-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
rk35xx-vendor: enable bcmdhd SDIO support #10437
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
Open
EvilOlaf
wants to merge
1
commit into
armbian:main
Choose a base branch
from
EvilOlaf:fix-wifi-on-opi5max-ultra
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1
−1
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
Repository: armbian/build
Length of output: 8508
🏁 Script executed:
Repository: armbian/build
Length of output: 25751
🏁 Script executed:
Repository: armbian/build
Length of output: 50369
🏁 Script executed:
Repository: armbian/build
Length of output: 50371
🏁 Script executed:
Repository: armbian/build
Length of output: 7140
🏁 Script executed:
Repository: armbian/build
Length of output: 50369
🌐 Web query:
Orange Pi 5 Max AP6611S Wi-Fi SDIO PCIe AP6275P💡 Result:
The Orange Pi 5 Max comes equipped with an onboard AP6611S module for Wi-Fi 6E and Bluetooth 5.3/BLE connectivity [1][2][3]. Regarding the components mentioned in your query: * AP6611S: This is the native Wi-Fi/Bluetooth module integrated into the Orange Pi 5 Max [1][3]. It utilizes an SDIO 3.0 interface for Wi-Fi and a UART/PCM interface for Bluetooth [1][2][3]. It is a Synaptics-based SiP module [4]. * AP6275P: This is a different Wi-Fi/Bluetooth module model, often found on other Orange Pi 5 series boards like the Orange Pi 5B [5][6]. Users occasionally encounter confusion between these modules when configuring firmware, overlays, or drivers, as some community-maintained OS images or legacy instructions for other Orange Pi 5 variants (e.g., the standard Orange Pi 5 or 5B) explicitly reference the AP6275P [7]. Technical notes for the Orange Pi 5 Max: * Driver Compatibility: The AP6611S requires specific driver support in the kernel. Because the AP6611S and AP6275P are distinct, community images or custom kernel builds for the Orange Pi 5 Max must be configured specifically for the AP6611S, particularly to ensure the Wi-Fi driver is built with correct SDIO interface support [8][9]. * Firmware: The system expects specific firmware files for the AP6611S (often identified in logs with names containing "syn43711a0"), and misconfiguration (such as attempting to use AP6275P-specific device tree overlays or firmware) will result in the Wi-Fi adapter not being found [8][10][11]. * Bluetooth: The Bluetooth component of the AP6611S typically connects via UART (specifically UART7 on the Orange Pi 5 Max) and may require a patchram utility to load firmware during the boot process, depending on the kernel version and distribution [12][13].
Citations:
🌐 Web query:
Orange Pi 5 Ultra AP6611S Wi-Fi interface SDIO PCIe💡 Result:
The Orange Pi 5 Ultra features an onboard AP6611S Wi-Fi 6E and Bluetooth 5.3 module, which utilizes the SDIO 3.0 interface for Wi-Fi connectivity [1][2][3]. It does not use a PCIe interface for its onboard Wi-Fi [1][4]. While the Orange Pi 5 Ultra does include PCIe interfaces, these are dedicated to other components: - The M.2 M-Key slot provides a PCIe 3.0 x4 interface, primarily intended for NVMe SSDs or other PCIe-based expansion modules [1][2][5]. - The 2.5G Ethernet port is connected via a PCIe interface using the RTL8125BG controller [1][2]. The AP6611S module itself is designed to support SDIO 3.0/2.0 for Wi-Fi and uses UART/PCM interfaces for Bluetooth [3][6].
Citations:
🌐 Web query:
github armbian linux-rockchip rk-6.1-rkr5.1 CONFIG_BCMDHD_PCIE CONFIG_BCMDHD_SDIO💡 Result:
In the Armbian
linux-rockchipkernel (branchrk-6.1-rkr5.1),CONFIG_BCMDHD_PCIEandCONFIG_BCMDHD_SDIOare mutually exclusive configuration options for the Broadcom (BCMDHD) Wi-Fi driver [1][2][3]. Because they are defined within achoiceblock in the kernel's Kconfig system, the kernel requires one of these interfaces to be selected, but not both [4][3]. Key details regarding these configurations include: Interface Mutuality: The driver architecture does not support both bus interfaces simultaneously [1][2]. You must select either SDIO or PCIe depending on how the specific Wi-Fi chip (typically part of the AP6xxx series) is connected to your board [5][3]. Default Selection: In many Rockchip-based kernel configurations,CONFIG_BCMDHD_SDIOis the default selection [2][3]. Switching Interfaces: If you need to switch from SDIO to PCIe (or vice versa), you cannot simply disable the active option; you must explicitly enable the alternative option in your kernel configuration (e.g., in yourkconfig.confor viamenuconfig), which will automatically deselect the other [3]. For example, enablingCONFIG_BCMDHD_PCIE=ywill effectively unsetCONFIG_BCMDHD_SDIO[3]. If you encounter issues where your desired configuration is reverted during the build, ensure that your Armbian build configuration (such asuserpatchesor board-specifickconfigfiles) explicitly sets the desired option [3]. In the context ofrk-6.1-rkr5.1, verify that your configuration does not contain conflicting directives [3].Citations:
Keep PCIe BCMDHD support at family scope.
linux-rk35xx-vendor.configis shared byrk35xxandrockchip-rk3588vendor builds. BecauseCONFIG_BCMDHD_PCIEandCONFIG_BCMDHD_SDIOare mutually exclusive, this change removes PCIe support from existing PCIe AP6275P consumers such as ArmSoM Sige7 and Khadas Edge 2. Keep the family setting at PCIe and apply SDIO only to Orange Pi 5 Max and Ultra through board-specific configuration.🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not possible, because adjusting kernel options on board level will result in two versions of like "linux-image-vendor", hence breaking apt repository. Alternatives?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EvilOlaf, correct. The board-specific configuration proposal is invalid. I used the repository guidance that boards in this kernel family share the same apt kernel packages.CONFIG_BCMDHD_PCIEandCONFIG_BCMDHD_SDIOare a mutually exclusive vendor-driver choice. A sharedlinux-image-vendorpackage cannot select both.The practical alternatives are:
Keep
CONFIG_BCMDHD_SDIO=yfor the shared family.This supports Orange Pi 5 Max and Orange Pi 5 Ultra.
First confirm whether the existing PCIe consumers still require BCMDHD. If they do, this option regresses them.
Create a separate kernel family and package flavor.
Move the SDIO boards to a separate
LINUXFAMILYor kernel package namespace.This is the clean solution if both PCIe BCMDHD and SDIO BCMDHD must remain supported. It has packaging and maintenance cost.
Modify the vendor BCMDHD driver to support both buses in one kernel.
This requires a kernel patch that removes or restructures the exclusive Kconfig choice.
This is high risk. It requires validation on both PCIe and SDIO boards.
Migrate the PCIe boards away from BCMDHD.
If their Broadcom chips work with
BRCMFMAC_PCIE, use that driver for the PCIe boards and retain BCMDHD SDIO for the Orange Pi boards.This requires hardware-specific device-tree, firmware, and runtime testing.
For this PR, option 1 is acceptable only if maintainers confirm that no supported
rk35xx-vendorPCIe board depends onCONFIG_BCMDHD_PCIE. Otherwise, option 2 is the safe architecture.🐇🔧
✏️ Learnings added
🧠 Learnings used
✅ Review thread resolved.
You are interacting with an AI system.