Are you saying 10_fix_wifi_mac
won't work? i do have a fix for cal data but 11-ath11k-caldata
has no DEVPATH
reference?
But why do you even need the DEVPATH
?
Where are the MAC addresses stored?
WLAN ones should be stored in ART like usually
ART partition contains noise
u-boot says this
eth0 MAC Address from ART is not valid
eth1 MAC Address from ART is not valid
eth2 MAC Address from ART is not valid
eth3 MAC Address from ART is not valid
eth4 MAC Address from ART is not valid
eth5 MAC Address from ART is not valid
I'm using baseMAC
env variable which matches label MAC and the MACs are set by OEM like this
wan = label_mac
lan (RTL) = label_mac + 1
2.4G wifi = label_mac + 2
5G wifi = label_mac + 3
6G wifi = label_mac + 4
I was able to set wan and lan in 02_network
script, and 6G wifi somehow also reads proper MAC;
2.4G and 5G wifi are the only ones remaining
I assume that caller of 10_fix_wifi_mac
executes it for each wifi, setting proper DEVPATH
. I can't find where/how its actually gets called though
./devices/platform/soc/20000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0/ieee80211/phy2/macaddress
./devices/platform/soc/c000000.wifi/ieee80211/phy1/macaddress
./devices/platform/soc/c000000.wifi/ieee80211/phy0/macaddress
ART MAC-s for WLAN are in the caldata directly, wired networking ones are at 0x0 of ART.
You can just patch the ath11k MAC in caldata extraction, no need for more hotplug scripts.
For the bravehearts:
First beta initramfs only image
https://transfer.sh/hY9dLeWjYS/openwrt-qualcommax-ipq807x-verizon_cr1000a-initramfs-uImage.itb
If used properly it won't affect your router in any way as it writes nothing to MMC yet
Instructions
- You MUST have serial connected for easy recovery (see this early topic how to get there)
- Once you have it and used jailbroken OEM image (also see this topic earlier) to set the
fw_setenv TestMode mfg
- you will be able to stop the boot process and run
setenv loadaddr 44000000;setenv ipaddr 192.168.10.1;setenv serverip 192.168.10.10;tftpboot openwrt-qualcommax-ipq807x-verizon_cr1000a-initramfs-uImage.itb; bootm
using WAN port
That's it.
Whats working
- RTL switch (initialized via OEM blob for now), all ports work (at least report correct link speed and ping) @ their respective speeds
- WAN: 10Gb (added advertisement fix till this issue is resolved
- all 3 WIFI radios, including 6E one working in 6G
- USB
- etc.
What's not working
- MoCA port: didn't have a chance to look at it closely but it reports 2.5G connection to switch
- RTL9301 is working as dumb switch for now (there is OEM script to make each port separate VLAN)
- thermal zones: DTS fix needed?
- clock gets reset to 0 on reboot
- LED: DTS fix?
- done
proper MACs for 2.4G and 5G radios - actual install to MMC (WiP)
Any samples for this?
I guess we have the same issue here?
Nice, going to try this this week when I get free time.
MAC setting is also configured in the BDF itself, I dont understand why they did not put the correct MAC like its meant to be.
Patching the MAC during caldata extraction should work like on ath10k devices by using ath10k_patch_mac
, check IPQ40xx for inspiration.
Apparently the first script I created works, just needs radios to get activated first.
I tried the way you suggested but it doesn't work. I'll leave it as is for now and move to next item.
I was looking at MoCA support. Seems like another unexplored territory? I only see the referencees to mxl371x SDK in asus-merlin repo...
MoCA is unexplored yes, what is the IC they are using for it?
Maybe its like MaxLinear G.Fast IC-s that you dont need anything special for other than specify the correct phy-mode as they are usually just SGMII or HSGMII and then it just "works" but they usually also have userspace apps for control.
They use MXL3711 which is the same one they use in standalone moca-ethernet bridges. In standalone mode it has its own web interface so I guess it's another Linux there.
Here is it connected to one of the RTL ports and it's 'up' according to realtek tool. Not sure if it's real Ethernet port or just some SGMII type connection too. OEM firmware has some βen15β 'virtual' device. How do they create it? I see nothing in dts for that.
Is there a possibility that 'x0f' device on mdio bus IS a MoCA chip?
Well, it can be connected either via H/SGMII or PCIe, my bet would be that its just connected via SGMII to the switch as that should just work.
It does have MDIO so I wouldn't be surprised if they saved some money and rely on the host CPU to load the FW to its RAM instead of a dedicated SPI NOR
I think that's exactly what I see in logs. But they don't have that phy in the DTS. Hmmm. Will dive into it tonight
Thanks for the help!
@robimarko how could I tell if this is a maxlinear's ID here?
No idea, docs that are public dont share any details about it.
@robimarko Unfortunately, with your patch is still crashed on this device when phandle is provided. but still works as before without it
GMAC5(ffffff8003d07900) Invalid MAC@ - using 1e:20:bd:b5:98:f1
[ 5.089533] nss-dp 3a003000.dp5-syn: Could not attach to PHY
[ 5.135592] nss-dp: probe of 3a003000.dp5-syn failed with error -14
and later
[ 27.272693] Internal error: Oops: 0000000096000005 [#1] SMP
[ 27.281179] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_inet ath11k_pci ath11k_ahb ath11k pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 cfg80211 spidev slhc qrtr_smd qrtr_mhi qrtr qmi_helpers nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 mhi mdio_netlink libcrc32c crc_ccitt compat sha512_generic seqiv jitterentropy_rng drbg michael_mic hmac cmac uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk gpio_button_hotplug ext4 mbcache jbd2 aquantia hwmon crc32c_generic
[ 27.334987] CPU: 0 PID: 12 Comm: ksoftirqd/0 Not tainted 6.1.34 #0
[ 27.357223] Hardware name: Verizon CR1000A (DT)
[ 27.363382] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 27.367812] pc : edma_napi+0x28c/0x48c [qca_nss_dp]
[ 27.374754] lr : edma_napi+0x25c/0x48c [qca_nss_dp]
[ 27.379616] sp : ffffffc009753c40
[ 27.384473] x29: ffffffc009753c40 x28: ffffffc009753d80 x27: ffffffc0095c6000
[ 27.387952] x26: ffffffc0766b8000 x25: 00000000ffff9575 x24: ffffffc009753d70
[ 27.395072] x23: ffffffc000854a60 x22: ffffffc009753d6f x21: 0000000000000003
[ 27.402189] x20: 0000000000000000 x19: 0000000000000001 x18: 0000000000000000
[ 27.409308] x17: ffffffc0766b8000 x16: ffffffc008000000 x15: 0000000000000000
[ 27.416426] x14: 000000000000026e x13: 0000000000000001 x12: 0000000000000000
[ 27.423543] x11: 0000000000000001 x10: 00000000000008c0 x9 : ffffffc009753da0
[ 27.430662] x8 : ffffff8002899520 x7 : 0000000000000000 x6 : 0000000000000000
[ 27.437779] x5 : ffffffc0766b8000 x4 : ffffffc000854c18 x3 : 00000000000007c0
[ 27.444897] x2 : 0000000000000000 x1 : ffffff8003d07000 x0 : ffffffc000854c08
[ 27.452016] Call trace:
[ 27.459124] edma_napi+0x28c/0x48c [qca_nss_dp]
[ 27.461385] __napi_poll+0x38/0x190
[ 27.465896] net_rx_action+0x160/0x320
[ 27.469370] _stext+0x10c/0x290
[ 27.473188] run_ksoftirqd+0x54/0x70
[ 27.476227] smpboot_thread_fn+0x140/0x180
[ 27.480047] kthread+0xd8/0xe4
[ 27.483952] ret_from_fork+0x10/0x20
[ 27.486994] Code: 54000280 f9400001 b4ffff81 f941e022 (f9404843)
[ 27.490731] ---[ end trace 0000000000000000 ]---
[ 27.496717] Kernel panic - not syncing: Oops: Fatal exception in interrupt
[ 27.501408] SMP: stopping secondary CPUs
[ 27.508090] Kernel Offset: disabled
[ 27.512163] CPU features: 0x00000,00000000,0000400b
[ 27.515379] Memory Limit: none
[ 27.520238] Rebooting in 3 seconds..
Can you post your DTS?