Search Linux Wireless

RE: Is RTL8822CE with Kernel 6.1 for imx6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




From: 施小丰(医用制品产业集团-医用制品集团本部) <shixiaofeng@xxxxxxxxxxxxxxx> 
Sent: Thursday, March 21, 2024 9:13 PM
To: linux-wireless <linux-wireless@xxxxxxxxxxxxxxx>
Subject: Is RTL8822CE with Kernel 6.1 for imx6

> 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

The rtw_pci_read32() is very simple that just use 'rtwpci->mmap' as address,
so I wonder this exception is caused by NULL of rtwpci->mmap.

But, rtw_pci_io_mapping() has handled the NULL case:

static int rtw_pci_io_mapping(struct rtw_dev *rtwdev,
			      struct pci_dev *pdev)
{
	...

	rtwpci->mmap = pci_iomap(pdev, bar_id, len);
	if (!rtwpci->mmap) {
		pci_release_regions(pdev);
		rtw_err(rtwdev, "failed to map pci memory\n");
		return -ENOMEM;
	}
	...
}

So, did you change something for your board? 

Ping-Ke





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux