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
qualcommax: add 6.6 testing kernel #14844
Conversation
Great work, thank you a lot!! |
QCA9984 on Linksys MX5300: |
35554d9
to
d71ea99
Compare
QCA9887 on Xiaomi AX3600:
|
When building with CONFIG_KERNEL_PERF_EVENTS following symbols are missing:
Otherwise seems to boot/init OK on ipq60xx, though I haven't checked the network performance. |
fbd3df4
to
457ea9d
Compare
457ea9d
to
e6c6429
Compare
Tested in a Xiaomi AX3600 used as AP in a MESH and all seems to be working... I will report back if I see some problem. |
This is basically done, but I need to make the path conversion script depend on 6.6 kernel only for now. |
I have this stack trace when sysupgrading on kernel 6.6:
|
What is the exact device? Hopefully it happens on anything using UBI so its easily reproducible |
Linksys MX8500. There is hardware name in logs. |
Not sure if there's any interest. I'm currently testing both 6.1 and 6.6 in a dual partition setup. I modified the #!/bin/sh
# This must run before 10-wifi-detect
[ "${ACTION}" = "add" ] || return
. /lib/functions.sh
check_kernel()
{
local kernel_current=$(ubus call system board|jsonfilter -q -e '@.kernel')
if [ ${kernel_current//./} -lt "6600" ]; then
return 1
fi
}
do_migrate_radio()
{
local cfg="$1" from="$2" to="$3"
config_get path "$cfg" path
[ "$path" = "$from" ] || return
uci set "wireless.${cfg}.path=${to}"
WIRELESS_CHANGED=true
logger -t wifi-migrate "Updated path of wireless.${cfg} from '${from}' to '${to}'"
}
check_path()
{
local config
config="$1"
config_get path "$config" path
to=${path/soc\//soc@0\/}
# Checks if kernel version is less than 6.6.0, if it is and the path is using the new format,
# then path should be migrated to the old format. This would allow users on platforms with two partitions,
# to test 6.1 and 6.6.
check_kernel || to=${path/soc@0\//soc\/}
[ "$path" = "$to" ] || do_migrate_radio "$config" "$path" "$to"
}
migrate_radio()
{
config_load wireless
# Check if there is already a section with the target path: In this case, the system
# was already upgraded to a version without this migration script before; better bail out,
# as we can't be sure we don't break more than we fix.
config_foreach check_path wifi-device
}
WIRELESS_CHANGED=false
case "$(board_name)" in
*)
migrate_radio
;;
esac
$WIRELESS_CHANGED && uci commit wireless
exit 0 BTW, using this PR successfully on dynalink dl-wrx36 on NSS build. With very few patch changes. Excellent work! |
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.
There are history-preserving scripts for this, those should be used instead of manually copying.
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.
There are history-preserving scripts which should be used for this instead.
It seems need to add "swiotlb=1" to bootargs-append, otherwise Linux 6.6 will pre-allocate 64M of memory, causing a memory drop. Adding this will only allocate 1M of memory (from 450 to 460m available to 500 to 510m available) |
@qosmio Now, that is awesome approach you have as we dont need to know the paths in advance. |
e6c6429
to
b545aa5
Compare
Yes, I plan to redo the copy/paste steps to preserve history |
Sure thing!
|
Test results for IPQ6018: Redmi AX5, after adding WLAN, it can be used normally without the need to add WLAN conversion like ipq807x. However, this device 360v6 occasionally reboots |
3df531b
to
94c2e88
Compare
So this has been reworked to preserve patch and config history, end result should be the same but some further testing would be greatly appreciated. I plan to merge this is testing shows its fine, we can always fix it up. |
94c2e88
to
430c4f6
Compare
Installed on one AX3600 acting as an AP in a MESH network. All seems to be working. |
This is an automatically generated commit. When doing `git bisect`, consider `git bisect --skip`. Signed-off-by: Robert Marko <robimarko@gmail.com>
This is an automatically generated commit which aids following Kernel patch history, as git will see the move and copy as a rename thus defeating the purpose. See: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html for the original discussion. Signed-off-by: Robert Marko <robimarko@gmail.com>
Drop backported patches already included in 6.6 and refresh the rest to apply. Signed-off-by: Robert Marko <robimarko@gmail.com>
Refresh 6.6 qualcommax kernel config via kernel_menuconfig. Signed-off-by: Robert Marko <robimarko@gmail.com>
SCM header was moved to <linux/firmware/qcom/qcom_scm.h> so adjust the WCSS patch accordingly. Signed-off-by: Robert Marko <robimarko@gmail.com>
Add a patch that makes SSDK recognize kernel 6.6 and thus allows compiling against it. Signed-off-by: Robert Marko <robimarko@gmail.com>
Since 6.5 netdev_rx_queue was moved out of netdevice.h so include the new header since that is where it lives now. Signed-off-by: Robert Marko <robimarko@gmail.com>
Kernel 6.6 has changed the path of WLAN devices as the soc node was updated to include an adress as well because according to spec it needed one: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v6.6.21&id=da6aa1111a17db11367817ddc10c5a6c188cdc44 So, this will break existing configuration as device path was changed for example: "platform/soc/c000000.wifi" to "platform/soc@0/c000000.wifi" "platform/soc/c000000.wifi+1" to "platform/soc@0/c000000.wifi+1" PCIe attached devices also have their path changed, so lets add a script that will migrate the paths based on the detected running kernel version so returning to kernel 6.1 will work as well. Co-developed-by: Sean Khan <datapronix@protonmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com>
Provide kernel 6.6 as the testing kernel for qualcommax. Signed-off-by: Robert Marko <robimarko@gmail.com>
430c4f6
to
36acf88
Compare
36acf88
Thanks! Rebased on top of main and merged! |
6.6 testing kernel support for
qualcommax
is based of PR #14751.I only tested this on a couple of
ipq807x
boards,ipq60xx
is untested.Do note that there is a WLAN device path change happening in 6.6 and so I added a migration for it, however I still need to collect and then add migrations for devices that use additional PCIe cards.
I would appreciate if people having those boards can post their current device paths from
/etc/config/wireless