aboutsummaryrefslogtreecommitdiff
path: root/package/kernel/qca-ssdk
Commit message (Collapse)AuthorAge
* qca-ssdk: disable building ISISCRobert Marko2023-11-15
| | | | | | | | | | | | | | ISISC is the QCA codename for their Atheros switch family including AR237, QCA8337 etc. Since we have qca8k support in OpenWrt, there is no need to have SSDK support for these switches, and boards that also have external switches can just use qca8k. Disable QCA803x PHY support as well, since all of those are supportable via at803x driver. Signed-off-by: Robert Marko <robimarko@gmail.com>
* qca-ssdk: disable PTP and swconfig by defaultRobert Marko2023-11-14
| | | | | | | | PTP and swconfig support in SSDK require kernel modifications we dont need nor we want to support for now, so move the PTP and swconfig disablement into general build options as they are not ipq807x specific. Signed-off-by: Robert Marko <robimarko@gmail.com>
* qca-ssdk: pass SoC to buildRobert Marko2023-11-14
| | | | | | | | | | | Recent SSDK versions started also parsing the "SoC" variable to identify the SoC along with the "CHIP_TYPE". We are not passing "SoC" currently and this leads to components we dont need like MHT (New 2.5G quad port switch) being compiled and then unused, so lets just pass the "SoC" as well. Signed-off-by: Robert Marko <robimarko@gmail.com>
* qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmpChristian Marangi2023-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 947b44d ("ipq807x: fix wrong define for LAN and WAN ess mask") started fixing wrong switch_lan_bmp that defined lan there weren't actually present. This displayed a fragility in the malibu phy init code in qca-ssdk. Add patch to fix this. Also update each DTS with the new required property if needed. The new binding malibu_phy_start_addr is required with devices that place the malibu first PHY referring port1 on a different PHY addres than 0. The most common configuration is 0 but some device (for example Qnap 301W) place the malibu PHY at an offset to address 16. Refer to ipq8074-ess dtsi for extensive description on how to derive this value. Quoting the patch detailed description: The usage of first_phy_addr is EXTREMELY FRAGILE and results in dangerous results if the OEM (or anyone that by chance try to implement things in a logical manner) deviates from the default values from the "magical template". To be in more details. With QSDK 12.4, some tweaks were done to improve autoneg and now on every call of port status, the phydev is tried to add. This resulted in the call and log spam of an error with ports that are actually not present on the system with qsdk reporting phydev is NULL. This itself is not an error and printing the error is correct. What is actually an error from ages is setting generic bitmap reporting presence of port that are actually not present. This is very common on OEM where the switch_lan_bmp is always a variant of 0x1e (that on bitmap results in PORT1 PORT2 PORT3 PORT4 present) or 0x3e (PORT1 PORT2 PORT3 PORT4 PORT5). Reality is that many device are used as AP with one LAN port or one WAN port. (or even exotic configuration with PORT1 not present and PORT2 PORT3 PORT4 present (Xiaomi 3600) With this finding one can say... ok nice, then lets update the DT and set the correct bitmap... Again world is a bad place and reality is that this cause wonderful regression in some case of by extreme luck the first ever connected port working and the rest of the switch dead. The problem has been bisected to all the device that doesn't have the PORT1 declared in any of the bitmap. With this prefaction in mind, on to the REAL problem. malibu_phy_hw_init FOR SOME REASON, set a global variable first_phy_addr to the first detected PHY addr that coincidentally is always PORT1. PORT1 addr is 0x0. The entire code in malibu_phy use this variable to derive the phy addrs in some function. Declaring a bitmap where the PORT1 is missing (or worse PORT4 the only one connected) result in first_phy_addr set to 1 or whatever phy addr is detected first setting wrong value all over the init stage. To fix this, introduce a new binding malibu_first_phy_addr to manually declare the first phy that the malibu PHY driver should use and permit to detach it from port bmp detection. The legacy detection is kept for compatibility reason. Fixes: #13945 Fixes: 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Tested-by: Robert Marko <robimarko@gmail.com> # Qnap 301W Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* Revert "qca-ssdk: fix unsupported scenario with PORT1 not declared in switch ↵Christian Marangi2023-11-13
| | | | | | | | | | | bmp" This reverts commit 8cce00bc9dddc3fc47d63625b0f512693c27ce2f. The confusion was real and this change cause regression on other advanced devices that makes actual use of the first_phy_addr value. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmpChristian Marangi2023-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask") started fixing wrong switch_lan_bmp that defined lan there weren't actually present. This displayed a fragility in the malibu phy init code in qca-ssdk. Add patch to fix this. Quoting the patch detailed description: I'm very confused by this and to me it's not clear the real usage of this logic. From what I can see the usage of this is EXTREMELY FRAGILE and results in dangerous results if the OEM (or anyone that by chance try to implement things in a logical manner) deviates from the default values from the "magical template". To be in more details. With QSDK 12.4, some tweaks were done to improve autoneg and now on every call of port status, the phydev is tried to add. This resulted in the call and log spam of an error with ports that are actually not present on the system with qsdk reporting phydev is NULL. This itself is not an error and printing the error is correct. What is actually an error from ages is setting generic bitmap reporting presence of port that are actually not present. This is very common on OEM where the switch_lan_bmp is always a variant of 0x1e (that on bitmap results in PORT1 PORT2 PORT3 PORT4 present) or 0x3e (PORT1 PORT2 PORT3 PORT4 PORT5). Reality is that many device are used as AP with one LAN port or one WAN port. (or even exotic configuration with PORT1 not present and PORT2 PORT3 PORT4 present (Xiaomi 3600) With this finding one can say... ok nice, then lets update the DT and set the correct bitmap... Again world is a bad place and reality is that this cause wonderful regression in some case of by extreme luck the first ever connected port working and the rest of the switch dead. The problem has been bisected to all the device that doesn't have the PORT1 declared in any of the bitmap. With this perfection in mind, on to the REAL problem. malibu_phy_hw_init FOR SOME REASON, set a global variable first_phy_addr to the first detected PHY addr that coincidentally is always PORT1. PORT1 addr is 0x0. The entire code in malibu_phy use this variable to derive the phy addrs in some function. Declaring a bitmap where the PORT1 is missing (or worse PORT4 the only one connected) result in first_phy_addr set to 1 or whatever phy addr is detected first setting wrong value all over the init stage. To fix this, just drop this variable and hardcode everything to assume the first phy adrr is ALWAYS 0 and remove calculation and use define for special case. With the following change normal switch traffic is restored and ports function is recovered. Fixes: #13945 Fixes: 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* kernel: qca-ssdk: update to 12.4Robert Marko2023-11-09
| | | | | | | Update SSDK version to 12.4, this fixes weird SFP port link up/downs while there is no SFP module plugged in. Signed-off-by: Robert Marko <robimarko@gmail.com>
* treewide: make use of new toolchain defineChristian Marangi2023-10-20
| | | | | | | | | | Make use of new toolchain define. TOOLCHAIN_DIR should be used only for toolchain related packages and for everything else TOOLCHAIN_ROOT_DIR and other define should be used instead. Switch to new entry where possible. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* kernel: qca-ssdk: update to 12.4.5.r1Robert Marko2023-06-26
| | | | | | | | | | Qualcomm has finally started the preparatory work in order to support kernel 6.1, so lets make use of that and update SSDK 12.4.5.r1 which allows us to drop almost all of the patches. Lets also install the forgotten SSDK netlink header. Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: move ipq807x support to subtargetRobert Marko2023-06-16
| | | | | | | | | | | | Now that qualcommax exists as a target and dependencies have been updated let move ipq807x support to subtarget of qualcommax. This is mostly copy/paste with the exception of having to update SSDK and NSS-DP to use CONFIG_TARGET_SUBTARGET. This is a preparation for later addition of IPQ60xx and IPQ50xx support. Signed-off-by: Robert Marko <robimarko@gmail.com>
* ipq807x: rename target to qualcommaxRobert Marko2023-06-16
| | | | | | | | | | | | | Currently, ipq807x only covers Qualcomm IPQ807x SoC-s. However, Qualcomm also has IPQ60xx and IPQ50xx SoC-s under the AX WiSoC-s and they share a lot of stuff with IPQ807x, especially IPQ60xx so to avoid duplicating kernel patches and everything lets make a common target with per SoC subtargets. Start doing that by renaming ipq807x to qualcommax so that dependencies on ipq807x target can be updated. Signed-off-by: Robert Marko <robimarko@gmail.com>
* kernel: qca-ssdk: renumber patchesRobert Marko2023-06-10
| | | | | | Lets reexport the patches in order to have them renumbered from 0 again. Signed-off-by: Robert Marko <robimarko@gmail.com>
* kernel: qca-ssdk: drop 5.15 supportRobert Marko2023-06-10
| | | | | | | There is no need for SSDK to support 5.15 anymore since the only user and possible future ones are on 6.1. Signed-off-by: Robert Marko <robimarko@gmail.com>
* kernel: qca-ssdk: add kernel 6.1 supportRobert Marko2023-05-28
| | | | | | | Add kernel 6.1 support to SSDK, it was just a case of adding the kernel version identification and fixing up get_random_u32. Signed-off-by: Robert Marko <robimarko@gmail.com>
* kernel: qca-ssdk: backport support for building as kernel moduleRobert Marko2023-05-23
| | | | | | | | | | | | | | Currently, SSDK is rather special in the sense that its not being built as a proper out of tree module at all but rather like a userspace application and that involves a lot of make magic which unfortunately broke with make version 4.4 and newer. Luckily QCA finally added a way to build SSDK as an out of tree module and it uses the kernel buildsystem which makes it compile with make 4.4 as well. So lets backport the support for it and switch to using it. Signed-off-by: Robert Marko <robimarko@gmail.com>
* kernel: remove unnecessary qca-sdk patch for 5.10 kernelNick Hainke2023-05-12
| | | | | | | | | | | We removed 5.10 kernel, so remove also the patch that only affects 5.10 kernels. Manually refresh: - 0005-SSDK-config-add-kernel-5.15.patch - 0010-QSDK-config-Avoid-Werror-heroics.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
* kernel: qca-ssdk: opt-out of LTORobert Marko2023-03-21
| | | | | | | | | SSDK is doing everything custom, so trying to use mold and/or LTO fails, so lets opt-out of using both of them. Signed-off-by: Robert Marko <robimarko@gmail.com> [a.heider: split and switch to PKG_BUILD_FLAGS] Signed-off-by: Andre Heider <a.heider@gmail.com>
* kernel: add Qualcomm SSDK driverRobert Marko2023-01-16
Qualcomm SSDK is driver for Qualcomm Atheros switches and PHY-s. It is quite complicated and used by rest of the Qualcomm SDK stack for anything switch or PHY related. It is required for IPQ807x support as currently, there is no better driver for the built-in switch or UNIPHY. So, lets add the fixed-up version that supports kernel 5.15 for use on ipq807x target until a better driver is available. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com>