PCI device has incorrect Vendor:Device ID when Southbridge used 0 wait writes

Bug #1513477 reported by lotuspsychje
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

No wifi connection showing, wifi network card is unclaimed

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-generic 4.2.0.16.18
ProcVersionSignature: Ubuntu 4.2.0-16.19-generic 4.2.3
Uname: Linux 4.2.0-16-generic x86_64
ApportVersion: 2.19.2-0ubuntu3
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: lotuspsychje 1410 F.... pulseaudio
CurrentDesktop: Unity
Date: Thu Nov 5 14:57:40 2015
HibernationDevice: RESUME=UUID=c391bf39-6cd0-4357-89f6-46b8c496b553
InstallationDate: Installed on 2015-10-28 (8 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Release amd64 (20151021)
IwConfig:
 lo no wireless extensions.

 enp0s14 no wireless extensions.
ProcFB: 0 radeondrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.2.0-16-generic root=UUID=c53d01a4-d573-4ab2-ad75-f2c8bd8645c3 ro pci=realloc
RelatedPackageVersions:
 linux-restricted-modules-4.2.0-16-generic N/A
 linux-backports-modules-4.2.0-16-generic N/A
 linux-firmware 1.152
RfKill:

SourcePackage: linux
UdevLog: Error: [Errno 2] Bestand of map bestaat niet: '/var/log/udev'
UpgradeStatus: Upgraded to xenial on 2015-10-28 (8 days ago)
dmi.bios.date: 06/29/2004
dmi.bios.vendor: Phoenix Technologies, LTD
dmi.bios.version: 6.00 PG
dmi.board.name: KV8-MAX3 (VIA K8T800-8237)
dmi.board.vendor: http://www.abit.com.tw/
dmi.board.version: 1.x
dmi.chassis.type: 3
dmi.modalias: dmi:bvnPhoenixTechnologies,LTD:bvr6.00PG:bd06/29/2004:svn:pn:pvr:rvnhttp//www.abit.com.tw/:rnKV8-MAX3(VIAK8T800-8237):rvr1.x:cvn:ct3:cvr:

Revision history for this message
lotuspsychje (lotuspsychje) wrote :
Revision history for this message
lotuspsychje (lotuspsychje) wrote :

sudo lshw -C network

Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Joseph Salisbury (jsalisbury) wrote : Re: Ralink RT2800pci doesnt work by default

Did this issue start happening after an update/upgrade? Was there a prior kernel version where you were not having this particular problem?

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.3 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3-unstable/

Changed in linux (Ubuntu):
importance: Undecided → Medium
Revision history for this message
lotuspsychje (lotuspsychje) wrote :

@ #4 joseph

I upgraded from 15.10 to 16.04

the card worked on 14.04.3 with latest linux-firmware installed

mainline 4.3 kernel doesnt fix my issue

Revision history for this message
lotuspsychje (lotuspsychje) wrote :
Revision history for this message
TJ (tj) wrote :
Download full text (3.4 KiB)

The problem here is that the PCI bus probe is returning a corrupted PCI Vendor ID. Querying the PCI config registers after the system has started shows the correct Vendor ID, but the kernel seems to 'lose' the 2nd nibble of byte 0, turning 0x18 into 0x10:

This is from the problem PC booted with a 64-bit kernel:

00:0c.0 Network controller [0280]: IBM Device [1014:0601]
 Subsystem: Linksys Device [1737:0067]
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR+ INTx-
 Latency: 32 (500ns min, 1000ns max), Cache Line Size: 32 bytes
 Interrupt: pin A routed to IRQ 5
 Region 0: Memory at eb000000 (32-bit, non-prefetchable) [size=64K]
 Capabilities: [40] Power Management version 3
  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
00: 14 18 01 06 07 00 10 84 00 00 80 02 08 20 00 00
10: 00 00 00 eb 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 01 80 00 00 37 17 67 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 05 01 02 04
40: 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

And this is from a different PC with the same device, on a 32-bit kernel:

01:09.0 Network controller [0280]: Ralink corp. RT2800 802.11n PCI [1814:0601]
 Subsystem: Linksys Device [1737:0067]
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Latency: 66 (500ns min, 1000ns max), Cache Line Size: 32 bytes
 Interrupt: pin A routed to IRQ 11
 Region 0: Memory at 40100000 (32-bit, non-prefetchable) [size=64K]
 Capabilities: [40] Power Management version 3
  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
 Kernel driver in use: rt2800pci
 Kernel modules: rt2800pci
00: 14 18 01 06 17 01 10 04 00 00 80 02 08 42 00 00
10: 00 00 10 40 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 01 80 00 00 37 17 67 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 02 04
40: 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 ...

Read more...

Revision history for this message
penalvch (penalvch) wrote :

lotuspsychje, the next step is to fully commit bisect from kernel 3.13 to 4.2 in order to identify the last good kernel commit, followed immediately by the first bad one. This will allow for a more expedited analysis of the root cause of your issue. Could you please do this following https://wiki.ubuntu.com/Kernel/KernelBisection ?

Please note, finding adjacent kernel versions is not fully commit bisecting.

Thank you for your understanding.

Helpful bug reporting tips:
https://wiki.ubuntu.com/ReportingBugs

tags: added: kernel-bug-exists-upstream kernel-bug-exists-upstream-4.3 needs-bisect regression-release
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
TJ (tj)
summary: - Ralink RT2800pci doesnt work by default
+ PCI device has incorrect Vendor:Device ID when Southbridge used 0 wait
+ reads
Changed in linux (Ubuntu):
status: Incomplete → Invalid
Revision history for this message
TJ (tj) wrote : Re: PCI device has incorrect Vendor:Device ID when Southbridge used 0 wait reads

As I suspected the cause was in hardware, and specifically due to the motherboard using Master Write 0-wait state access, which meant the device had not completed mapping its registers into the PCI Config address space when the kernel probed for the Vendor ID.

User applied my recommended BIOS configuration changes and the device is now correctly identified.

The solution is to alter the BIOS settings. In this case the "LDT and PCI Bus Control", and set "PCI1/PCI2 Master 0 WS Write" to Disabled to enforce 1 wait state. The device also had to be in ports PC1 or PCI2 (nearest the AGP slot) on this Abit KV8-MAX3 mobo.

summary: PCI device has incorrect Vendor:Device ID when Southbridge used 0 wait
- reads
+ writes
TJ (tj)
tags: removed: amd64 apport-bug kernel-bug-exists-upstream kernel-bug-exists-upstream-4.3 needs-bisect regression-release xenial
Revision history for this message
lotuspsychje (lotuspsychje) wrote :

@#9 TJ

Thank you for solving this issue, the card works like a charm on the PCI 2 port
of my motherboard with master write disabled

BUG has been solved

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.