On 3/21/24 08:13, 施小丰(医用制品产业集团-医用制品集团本部) wrote:
Dear linux wireless team:
This is Danny, a embedded software engineer
I have successfully run the 8822CE module in Linux kernel 5.4 with imx6
hardware platform.
But it doesnt work in Kernel 6.1 though i have put many efforts to this issue.
So, we'd like to check with you whether the RTL8822CE chip is compatible with
Linux Kernel 6.1.
My usage is as below:
1. imx6 board
2. build RTL8822CE as M in kernel 6.1 menuconfig
3. Each time after the board startup, i run four commands
insmod rtw88_core.ko
insmod rtw88_pci.ko
insmod rtw88_8822c.ko
insmod rtw88_8822ce.ko
4. When run insmod rtw88_8822ce.ko, in most cases, the error will show as
below. (few times can work)
Detail error log is attached.
Same step (1) -(4) works very well with kernel 5.4 in same hadrware platform.
================
root@imx6solosabresd:~/8822CE# ./insmod.sh
[ 60.541840] rtw_8822ce 0000:01:00.0: enabling device (0000 -> 0003)
[ 60.558145] rtw_8822ce 0000:01:00.0: Firmware version 9.9.4, H2C version 15
[ 60.567135] rtw_8822ce 0000:01:00.0: Firmware version 9.9.15, H2C version 15
[ 60.706697] 8<--- cut here ---
[ 60.709775] Unhandled fault: imprecise external abort (0x1406) at 0x01b77740
[ 60.716832] [01b77740] *pgd=00000000
[ 60.720421] Internal error: : 1406 [#1] PREEMPT SMP ARM
[ 60.725653] Modules linked in: rtw88_8822ce(+) rtw88_8822c rtw88_pci rtw88_core
[ 60.732991] CPU: 0 PID: 796 Comm: insmod Not tainted 6.1.22-g9c59b15a9e72 #1
[ 60.740049] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[ 60.746580] PC is at rtw_pci_read32+0x14/0x18 [rtw88_pci]
[ 60.752015] LR is at rtw_chip_info_setup+0x48/0x588 [rtw88_core]
[ 60.758170] pc : [<7f026048>] lr : [<7f0001c0>] psr: 60010013
[ 60.764442] sp : c1d0dd28 ip : 00000201 fp : 89344040
[ 60.769670] r10: 88b397a0 r9 : 88b3f890 r8 : 00000200
[ 60.774897] r7 : 000003da r6 : 000003d9 r5 : 7f03a2c8 r4 : 88b397a0
[ 60.781428] r3 : c09200f0 r2 : 00000000 r1 : 000000f0 r0 : 00000000
[ 60.787959] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 60.795100] Control: 10c5387d Table: 15d10059 DAC: 00000051
[ 60.800848] Register r0 information: NULL pointer
[ 60.805564] Register r1 information: non-paged memory
[ 60.810620] Register r2 information: NULL pointer
Danny,
Sorry, the previous message was sent too early and incomplete.
The RTL8822CE certainly works with kernel 6.1 on X86_64 hardware. Routine
rtw_pci_read32() where the unhandled fault happens has not been changed since
kernel 5.2.
That "imprecise external abort" is ARM specific. I have not yet found the reason
for it, nor what the value 0x1406 means.
The range of kernels (5.4 to 6.1) is pretty broad. Are there any intermediate
kernels for you to test?
Larry