diff mbox series

ipq40xx: limit available radio channels for GL.iNet GL-B2200

Message ID 20220211094600.1483209-1-mrkiko.rs@gmail.com
State Accepted, archived
Headers show
Series ipq40xx: limit available radio channels for GL.iNet GL-B2200 | expand

Commit Message

Enrico Mioso Feb. 11, 2022, 9:46 a.m. UTC
The PCIe and built-in 5GHZ radios are meant to operate on different
frequency bands. The hardware enforces this via RF filters.
Add this information to allow software enforcing it as well.
Credits to Piotr Dymacz for the invaluable help.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
---
Also due to the nature of this patch, testing it might not be easy.
Still, applying it shoudn't cause issues, as the only uncertainty is whether we will need to stricter the limits. So I think this should go in.
---
 .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts   | 2 ++
 1 file changed, 2 insertions(+)

Comments

Christian Lamparter Feb. 11, 2022, 5:06 p.m. UTC | #1
On 11/02/2022 10:46, Enrico Mioso wrote:
> The PCIe and built-in 5GHZ radios are meant to operate on different
> frequency bands. The hardware enforces this via RF filters.
> Add this information to allow software enforcing it as well.
> Credits to Piotr Dymacz for the invaluable help.
> 
> Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
> ---
> Also due to the nature of this patch, testing it might not be easy.
> Still, applying it shoudn't cause issues, as the only uncertainty is whether we will need to stricter the limits. So I think this should go in.

Somewhat related question: (though, it's about the board itself)

Do you have the board? Can you tell me the pciid of the PCIe ath10k chip,
or a bootlog?

I'm asking because when I was converting it to nvmem
(see commit cfc13c44595db591092859fc6adc71f1d8159c50),
I noticed that the board-data-extraction used the
WAVE-1 files. However GL.iNet says it's a WAVE-2 9886 chip.

Thanks,
Christian

> ---
>   .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts   | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
> index 243dcb84d6..754af7c820 100644
> --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
> +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
> @@ -367,6 +367,7 @@
>   			nvmem-cell-names = "calibration";
>   			nvmem-cells = <&cal_art_9000>;
>   			qcom,ath10k-calibration-variant = "GL-B2200";
> +			ieee80211-freq-limit = <5450000 5900000>;
>   		};
>   	};
>   };
> @@ -383,4 +384,5 @@
>   	nvmem-cell-names = "pre-calibration";
>   	nvmem-cells = <&precal_art_5000>;
>   	qcom,ath10k-calibration-variant = "GL-B2200";
> +	ieee80211-freq-limit = <5100000 5400000>;
>   };
Enrico Mioso Feb. 14, 2022, 8:25 a.m. UTC | #2
Hi!!

Sory for me taking so long to answer, and provide the information.

I promise I'll do so at the end of the week; youcan find some bootlogs in the GitHub PR from where I started, but I'll provide fresh logs at the end of the week, since I will also need to test DS transition for this board.
In the meantime, you may have a look at:
https://github.com/openwrt/openwrt/issues/4691

Thanks for your help! :)

On Fri, 11 Feb 2022, Christian Lamparter wrote:

> Date: Fri, 11 Feb 2022 18:06:21
> From: Christian Lamparter <chunkeey@gmail.com>
> To: Enrico Mioso <mrkiko.rs@gmail.com>, openwrt-devel@lists.openwrt.org
> Subject: Re: [PATCH] ipq40xx: limit available radio channels for GL.iNet
>     GL-B2200
> 
> On 11/02/2022 10:46, Enrico Mioso wrote:
>> The PCIe and built-in 5GHZ radios are meant to operate on different
>> frequency bands. The hardware enforces this via RF filters.
>> Add this information to allow software enforcing it as well.
>> Credits to Piotr Dymacz for the invaluable help.
>> 
>> Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
>> ---
>> Also due to the nature of this patch, testing it might not be easy.
>> Still, applying it shoudn't cause issues, as the only uncertainty is 
>> whether we will need to stricter the limits. So I think this should go in.
>
> Somewhat related question: (though, it's about the board itself)
>
> Do you have the board? Can you tell me the pciid of the PCIe ath10k chip,
> or a bootlog?
>
> I'm asking because when I was converting it to nvmem
> (see commit cfc13c44595db591092859fc6adc71f1d8159c50),
> I noticed that the board-data-extraction used the
> WAVE-1 files. However GL.iNet says it's a WAVE-2 9886 chip.
>
> Thanks,
> Christian
>
>> ---
>>   .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts   | 2 ++
>>   1 file changed, 2 insertions(+)
>> 
>> diff --git 
>> a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts 
>> b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> index 243dcb84d6..754af7c820 100644
>> --- 
>> a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> +++ 
>> b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> @@ -367,6 +367,7 @@
>>   			nvmem-cell-names = "calibration";
>>   			nvmem-cells = <&cal_art_9000>;
>>   			qcom,ath10k-calibration-variant = "GL-B2200";
>> +			ieee80211-freq-limit = <5450000 5900000>;
>>   		};
>>   	};
>>   };
>> @@ -383,4 +384,5 @@
>>   	nvmem-cell-names = "pre-calibration";
>>   	nvmem-cells = <&precal_art_5000>;
>>   	qcom,ath10k-calibration-variant = "GL-B2200";
>> +	ieee80211-freq-limit = <5100000 5400000>;
>>   };
>
>
Enrico Mioso Feb. 14, 2022, 1:29 p.m. UTC | #3
Hello!!

Here are the logs! :)

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.87 (mrkiko@mStation) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 11.2.0 r18394+1-962c585580) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Wed Dec 22 19:13:00 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: GL.iNet GL-B2200
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x0000000087dfffff]
[    0.000000]   node   0: [mem 0x0000000087e00000-0x0000000087ffffff]
[    0.000000]   node   0: [mem 0x0000000088000000-0x000000009fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] On node 0 totalpages: 131072
[    0.000000]   Normal zone: 1152 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 131072 pages, LIFO batch:31
[    0.000000] percpu: Embedded 15 pages/cpu s30732 r8192 d22516 u61440
[    0.000000] pcpu-alloc: s30732 r8192 d22516 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: rootfsname=rootfs rootwait root=/dev/mmcblk0p2 rw rootwait clk_ignore_unused
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 506832K/524288K available (6164K kernel code, 601K rwdata, 1548K rodata, 1024K init, 237K bss, 17456K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x360/0x50c with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 48.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xb11fd3bfb, max_idle_ns: 440795203732 ns
[    0.000009] sched_clock: 56 bits at 48MHz, resolution 20ns, wraps every 4398046511096ns
[    0.000025] Switching to timer-based delay loop, resolution 20ns
[    0.000248] Calibrating delay loop (skipped), value calculated using timer frequency.. 96.00 BogoMIPS (lpj=480000)
[    0.000273] pid_max: default: 32768 minimum: 301
[    0.000459] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000480] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001477] CPU: Testing write buffer coherency: ok
[    0.001770] qcom_scm: convention: smc legacy
[    0.002513] Setting up static identity map for 0x80300000 - 0x8030003c
[    0.002646] rcu: Hierarchical SRCU implementation.
[    0.002853] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.003114] smp: Bringing up secondary CPUs ...
[    0.006201] smp: Brought up 1 node, 4 CPUs
[    0.006226] SMP: Total of 4 processors activated (384.00 BogoMIPS).
[    0.006235] CPU: All CPU(s) started in SVC mode.
[    0.011441] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.011606] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.011636] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.011868] pinctrl core: initialized pinctrl subsystem
[    0.013091] NET: Registered protocol family 16
[    0.013482] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.014609] thermal_sys: Registered thermal governor 'step_wise'
[    0.015003] cpuidle: using governor ladder
[    0.015063] cpuidle: using governor menu
[    0.041279] cryptd: max_cpu_qlen set to 1000
[    0.044876] usbcore: registered new interface driver usbfs
[    0.044950] usbcore: registered new interface driver hub
[    0.045011] usbcore: registered new device driver usb
[    0.045061] pps_core: LinuxPPS API ver. 1 registered
[    0.045073] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.045100] PTP clock support registered
[    0.046828] clocksource: Switched to clocksource arch_sys_counter
[    0.047779] NET: Registered protocol family 2
[    0.047953] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.048750] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.048810] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.048874] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.048964] TCP: Hash tables configured (established 4096 bind 4096)
[    0.049087] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.049128] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.049377] NET: Registered protocol family 1
[    0.049424] PCI: CLS 0 bytes, default 64
[    0.051578] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.056145] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.056172] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.187402] qcom-pcie 40000000.pci: host bridge /soc/pci@40000000 ranges:
[    0.187467] qcom-pcie 40000000.pci:       IO 0x0040200000..0x00402fffff -> 0x0040200000
[    0.187500] qcom-pcie 40000000.pci:      MEM 0x0040300000..0x0040ffffff -> 0x0040300000
[    0.468405] qcom-pcie 40000000.pci: Link up
[    0.468575] qcom-pcie 40000000.pci: PCI host bridge to bus 0000:00
[    0.468599] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.468629] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0x40200000-0x402fffff])
[    0.468647] pci_bus 0000:00: root bus resource [mem 0x40300000-0x40ffffff]
[    0.468702] pci 0000:00:00.0: [17cb:1001] type 01 class 0x060400
[    0.468731] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00000fff]
[    0.468809] pci 0000:00:00.0: PME# supported from D0 D3hot
[    0.470403] PCI: bus0: Fast back to back transfers disabled
[    0.470732] pci 0000:01:00.0: [168c:0056] type 00 class 0x028000
[    0.470909] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.471741] pci 0000:01:00.0: PME# supported from D0 D3hot
[    0.473552] PCI: bus1: Fast back to back transfers disabled
[    0.473608] pci 0000:00:00.0: BAR 8: assigned [mem 0x40400000-0x405fffff]
[    0.473626] pci 0000:00:00.0: BAR 0: assigned [mem 0x40300000-0x40300fff]
[    0.473650] pci 0000:01:00.0: BAR 0: assigned [mem 0x40400000-0x405fffff 64bit]
[    0.473740] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    0.473758] pci 0000:00:00.0:   bridge window [mem 0x40400000-0x405fffff]
[    0.476633] pcieport 0000:00:00.0: AER: enabled with IRQ 106
[    0.478729] bam-dma-engine 8e04000.dma: num-channels unspecified in dt
[    0.478752] bam-dma-engine 8e04000.dma: num-ees unspecified in dt
[    0.479442] tcsr 1949000.tcsr: setting wifi_glb_cfg = 41000000
[    0.479546] tcsr 194b000.tcsr: setting usb hs phy mode select = e700e7
[    0.479638] tcsr 1953000.ess_tcsr: setting ess interface select = 0
[    0.479731] tcsr 1957000.tcsr: setting wifi_noc_memtype_m0_m2 = 2222222
[    0.480428] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.481007] msm_serial 78af000.serial: msm_serial: detected port #0
[    0.481053] msm_serial 78af000.serial: uartclk = 1843200
[    0.481111] 78af000.serial: ttyMSM0 at MMIO 0x78af000 (irq = 36, base_baud = 115200) is a MSM
[    0.481142] msm_serial: console setup on port #0
[    1.170056] printk: console [ttyMSM0] enabled
[    1.175325] msm_serial 78b0000.serial: msm_serial: detected port #1
[    1.179044] msm_serial 78b0000.serial: uartclk = 1843200
[    1.185108] 78b0000.serial: ttyMSM1 at MMIO 0x78b0000 (irq = 37, base_baud = 115200) is a MSM
[    1.191112] msm_serial: driver initialized
[    1.204426] loop: module loaded
[    1.205457] spi_qup 78b5000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    1.207379] spi-nor spi0.0: w25q128 (16384 Kbytes)
[    1.213732] 8 fixed-partitions partitions found on MTD device spi0.0
[    1.218328] Creating 8 MTD partitions on "spi0.0":
[    1.224790] 0x000000000000-0x000000040000 : "SBL1"
[    1.230132] 0x000000040000-0x000000060000 : "MIBIB"
[    1.234788] 0x000000060000-0x0000000c0000 : "QSEE"
[    1.239585] 0x0000000c0000-0x0000000d0000 : "CDT"
[    1.244307] 0x0000000d0000-0x0000000e0000 : "DDRPARAMS"
[    1.249102] 0x0000000e0000-0x0000000f0000 : "APPSBLENV"
[    1.254188] 0x0000000f0000-0x000000170000 : "APPSBL"
[    1.259359] 0x000000170000-0x000000180000 : "ART"
[    1.268252] spi_qup 78b6000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    1.270685] libphy: Fixed MDIO Bus: probed
[    1.276503] libphy: ipq4019_mdio: probed
[    1.311176] ESS reset ok!
[    1.335461] ESS reset ok!
[    1.840331] i2c /dev entries driver
[    1.841836] sdhci: Secure Digital Host Controller Interface driver
[    1.842633] sdhci: Copyright(c) Pierre Ossman
[    1.848951] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.854426] sdhci_msm 7824900.sdhci: Got CD GPIO
[    1.862314] NET: Registered protocol family 10
[    1.865037] Segment Routing with IPv6
[    1.868025] NET: Registered protocol family 17
[    1.871679] 8021q: 802.1Q VLAN Support v1.8
[    1.876085] Registering SWP/SWPB emulation handler
[    1.891772] genirq: irq_chip msmgpio did not update eff. affinity mask of irq 107
[    1.891921] mmc0: SDHCI controller on 7824900.sdhci [7824900.sdhci] using ADMA 64-bit
[    1.894872] clk: Not disabling unused clocks
[    1.906618] Waiting for root device /dev/mmcblk0p2...
[    1.980618] mmc0: new HS200 MMC card at address 0001
[    1.982827] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB 
[    1.985785] mmcblk0boot0: mmc0:0001 8GTF4R partition 1 4.00 MiB
[    1.990226] mmcblk0boot1: mmc0:0001 8GTF4R partition 2 4.00 MiB
[    1.995124] mmcblk0rpmb: mmc0:0001 8GTF4R partition 3 512 KiB, chardev (247:0)
[    2.005366]  mmcblk0: p1 p2 p3 p4 p128
[    2.020710] VFS: Mounted root (squashfs filesystem) readonly on device 179:2.
[    2.022699] Freeing unused kernel memory: 1024K
[    2.080377] Run /sbin/init as init process
[    2.080600]   with arguments:
[    2.080680]     /sbin/init
[    2.080750]   with environment:
[    2.080824]     HOME=/
[    2.080895]     TERM=linux
[    2.080968]     rootfsname=rootfs
[    2.404121] init: Console is alive
[    3.221747] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.332147] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.334680] init: - preinit -
[    3.725474] random: fast init done
[    3.972959] random: jshn: uninitialized urandom read (4 bytes read)
[    4.022446] random: jshn: uninitialized urandom read (4 bytes read)
[    4.132123] random: jshn: uninitialized urandom read (4 bytes read)
[    4.636549] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.952997] F2FS-fs (mmcblk0p3): Mounted with checkpoint version = 6147d0db
[    8.955278] mount_root: switching to f2fs overlay
[    8.966435] urandom-seed: Seeding with /etc/urandom.seed
[    9.063883] procd: - early -
[    9.685643] procd: - ubus -
[    9.723227] urandom_read: 6 callbacks suppressed
[    9.723236] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.758064] procd: - init -
[   10.365043] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.438298] urngd: v1.0.2 started.
[   10.452542] Loading modules backported from Linux version v5.15.8-0-g43e577d7a2cb
[   10.452586] Backport generated by backports.git v5.15.8-1-0-g83f664bb
[   10.480629] xt_time: kernel timezone is -0000
[   10.525942] random: crng init done
[   10.526352] PPP generic driver version 2.4.2
[   10.529562] NET: Registered protocol family 24
[   10.535552] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[   10.537018] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[   10.587378] ath10k 5.15 driver, optimized for CT firmware, probing pci device: 0x56.
[   10.588306] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[   10.594929] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   11.631567] ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[   11.631622] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   11.644152] ath10k_pci 0000:01:00.0: firmware ver 10.4b-ct-9888-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 59e741e7
[   11.934144] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 6535d835
[   13.376455] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   13.376509] ath10k_pci 0000:01:00.0: msdu-desc: 2500  skid: 32
[   13.430886] ath10k_pci 0000:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   13.431809] ath10k_pci 0000:01:00.0: wmi print 'free: 114572 iram: 12644 sram: 29508'
[   13.628632] ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal file max-sta 32 raw 0 hwcrypto 1
[   13.820016] ath: EEPROM regdomain sanitized
[   13.820034] ath: EEPROM regdomain: 0x64
[   13.820041] ath: EEPROM indicates we should expect a direct regpair map
[   13.820055] ath: Country alpha2 being used: 00
[   13.820061] ath: Regpair used: 0x64
[   15.017779] ath10k_ahb a000000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   15.017833] ath10k_ahb a000000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   15.029784] ath10k_ahb a000000.wifi: firmware ver 10.4b-ct-4019-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 6b2b5c5b
[   15.116769] ath10k_ahb a000000.wifi: board_file api 2 bmi_id 0:20 crc32 1c506103
[   16.404345] ath10k_ahb a000000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   16.404400] ath10k_ahb a000000.wifi: msdu-desc: 2500  skid: 32
[   16.451572] ath10k_ahb a000000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   16.453257] ath10k_ahb a000000.wifi: wmi print 'free: 53252 iram: 13432 sram: 35752'
[   16.608257] ath10k_ahb a000000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   16.770520] ath: EEPROM regdomain sanitized
[   16.770540] ath: EEPROM regdomain: 0x64
[   16.770546] ath: EEPROM indicates we should expect a direct regpair map
[   16.770561] ath: Country alpha2 being used: 00
[   16.770566] ath: Regpair used: 0x64
[   17.521651] ath10k_ahb a800000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   17.521709] ath10k_ahb a800000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   17.543662] ath10k_ahb a800000.wifi: firmware ver 10.4b-ct-4019-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 6b2b5c5b
[   17.590236] ath10k_ahb a800000.wifi: board_file api 2 bmi_id 0:21 crc32 1c506103
[   18.877954] ath10k_ahb a800000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   18.878014] ath10k_ahb a800000.wifi: msdu-desc: 2500  skid: 32
[   18.926912] ath10k_ahb a800000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   18.927343] ath10k_ahb a800000.wifi: wmi print 'free: 53252 iram: 13432 sram: 35752'
[   19.065941] ath10k_ahb a800000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   19.225287] ath: EEPROM regdomain sanitized
[   19.225307] ath: EEPROM regdomain: 0x64
[   19.225313] ath: EEPROM indicates we should expect a direct regpair map
[   19.225326] ath: Country alpha2 being used: 00
[   19.225331] ath: Regpair used: 0x64
[   19.233397] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.477766] br-lan: port 1(eth0) entered blocking state
[   24.477806] br-lan: port 1(eth0) entered disabled state
[   24.482121] device eth0 entered promiscuous mode
[   25.205254] ath: EEPROM regdomain: 0x817c
[   25.205275] ath: EEPROM indicates we should expect a country code
[   25.205286] ath: doing EEPROM country->regdmn map search
[   25.205297] ath: country maps to regdmn code: 0x37
[   25.205308] ath: Country alpha2 being used: IT
[   25.205316] ath: Regpair used: 0x37
[   25.205329] ath: regdomain 0x817c dynamically updated by user
[   25.205362] ath: EEPROM regdomain: 0x817c
[   25.205370] ath: EEPROM indicates we should expect a country code
[   25.205379] ath: doing EEPROM country->regdmn map search
[   25.205387] ath: country maps to regdmn code: 0x37
[   25.205396] ath: Country alpha2 being used: IT
[   25.205403] ath: Regpair used: 0x37
[   25.205412] ath: regdomain 0x817c dynamically updated by user
[   25.205465] ath: EEPROM regdomain: 0x817c
[   25.205473] ath: EEPROM indicates we should expect a country code
[   25.205482] ath: doing EEPROM country->regdmn map search
[   25.205492] ath: country maps to regdmn code: 0x37
[   25.205500] ath: Country alpha2 being used: IT
[   25.205507] ath: Regpair used: 0x37
[   25.205516] ath: regdomain 0x817c dynamically updated by user
[   25.527517] br-lan: port 1(eth0) entered blocking state
[   25.527834] br-lan: port 1(eth0) entered forwarding state
[   25.535623] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   28.015406] ath10k_ahb a800000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   28.015463] ath10k_ahb a800000.wifi: msdu-desc: 2500  skid: 32
[   28.063034] ath10k_ahb a800000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   28.066794] ath10k_ahb a800000.wifi: wmi print 'free: 53252 iram: 13432 sram: 35752'
[   28.387300] ath10k_ahb a800000.wifi: rts threshold -1
[   28.394453] ath10k_ahb a800000.wifi: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4
[   28.957706] ath10k_ahb a800000.wifi: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   29.658452] wlan2: authenticate with <mac>
[   29.855078] wlan2: send auth to <mac> (try 1/3)
[   29.860820] wlan2: authenticated
[   29.867002] wlan2: associate with <mac> (try 1/3)
[   29.872964] wlan2: RX AssocResp from  <mac> (capab=0x11 status=0 aid=3)
[   29.873791] ath10k_ahb a800000.wifi: pdev param 0 not supported by firmware
[   29.879841] ath10k_ahb a800000.wifi: failed to enable peer stats info: -95
[   29.886775] wlan2: associated
[   29.906951] ath10k_ahb a800000.wifi: Invalid peer id 0 or peer stats buffer, peer: 00000000  sta: 00000000
[   30.175126] IPv6: ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready



On Fri, 11 Feb 2022, Christian Lamparter wrote:

> Date: Fri, 11 Feb 2022 18:06:21
> From: Christian Lamparter <chunkeey@gmail.com>
> To: Enrico Mioso <mrkiko.rs@gmail.com>, openwrt-devel@lists.openwrt.org
> Subject: Re: [PATCH] ipq40xx: limit available radio channels for GL.iNet
>     GL-B2200
> 
> On 11/02/2022 10:46, Enrico Mioso wrote:
>> The PCIe and built-in 5GHZ radios are meant to operate on different
>> frequency bands. The hardware enforces this via RF filters.
>> Add this information to allow software enforcing it as well.
>> Credits to Piotr Dymacz for the invaluable help.
>> 
>> Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
>> ---
>> Also due to the nature of this patch, testing it might not be easy.
>> Still, applying it shoudn't cause issues, as the only uncertainty is 
>> whether we will need to stricter the limits. So I think this should go in.
>
> Somewhat related question: (though, it's about the board itself)
>
> Do you have the board? Can you tell me the pciid of the PCIe ath10k chip,
> or a bootlog?
>
> I'm asking because when I was converting it to nvmem
> (see commit cfc13c44595db591092859fc6adc71f1d8159c50),
> I noticed that the board-data-extraction used the
> WAVE-1 files. However GL.iNet says it's a WAVE-2 9886 chip.
>
> Thanks,
> Christian
>
>> ---
>>   .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts   | 2 ++
>>   1 file changed, 2 insertions(+)
>> 
>> diff --git 
>> a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts 
>> b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> index 243dcb84d6..754af7c820 100644
>> --- 
>> a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> +++ 
>> b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
>> @@ -367,6 +367,7 @@
>>   			nvmem-cell-names = "calibration";
>>   			nvmem-cells = <&cal_art_9000>;
>>   			qcom,ath10k-calibration-variant = "GL-B2200";
>> +			ieee80211-freq-limit = <5450000 5900000>;
>>   		};
>>   	};
>>   };
>> @@ -383,4 +384,5 @@
>>   	nvmem-cell-names = "pre-calibration";
>>   	nvmem-cells = <&precal_art_5000>;
>>   	qcom,ath10k-calibration-variant = "GL-B2200";
>> +	ieee80211-freq-limit = <5100000 5400000>;
>>   };
>
>
Christian Lamparter Feb. 14, 2022, 8:30 p.m. UTC | #4
Hi,

On Mon, Feb 14, 2022 at 2:29 PM Enrico Mioso <mrkiko.rs@gmail.com> wrote:
> [    0.470732] pci 0000:01:00.0: [168c:0056] type 00 class 0x028000
> [   10.587378] ath10k 5.15 driver, optimized for CT firmware, probing pci device: 0x56.
> [   10.588306] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
> [   10.594929] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
> [   11.631567] ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
> [   11.631622] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
> [   11.644152] ath10k_pci 0000:01:00.0: firmware ver 10.4b-ct-9888-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 59e741e7
> [   11.934144] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 6535d835
> [   13.376455] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
> [   13.376509] ath10k_pci 0000:01:00.0: msdu-desc: 2500  skid: 32
> [   13.430886] ath10k_pci 0000:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
> [   13.431809] ath10k_pci 0000:01:00.0: wmi print 'free: 114572 iram: 12644 sram: 29508'
> [   13.628632] ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal file max-sta 32 raw 0 hwcrypto 1

Thank you! This ID matches a 9888 V2. It booted with the "cal file"
with no problem.

Cheers,
Christian
diff mbox series

Patch

diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
index 243dcb84d6..754af7c820 100644
--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts
@@ -367,6 +367,7 @@ 
 			nvmem-cell-names = "calibration";
 			nvmem-cells = <&cal_art_9000>;
 			qcom,ath10k-calibration-variant = "GL-B2200";
+			ieee80211-freq-limit = <5450000 5900000>;
 		};
 	};
 };
@@ -383,4 +384,5 @@ 
 	nvmem-cell-names = "pre-calibration";
 	nvmem-cells = <&precal_art_5000>;
 	qcom,ath10k-calibration-variant = "GL-B2200";
+	ieee80211-freq-limit = <5100000 5400000>;
 };