LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   USB ports not responding after PSU failure (https://www.linuxquestions.org/questions/linux-hardware-18/usb-ports-not-responding-after-psu-failure-636068/)

sleepingdragon 04-17-2008 03:07 PM

USB ports not responding after PSU failure
 
OK. Here's the problem. I've lost all comms on my USB ports, both front and back ports. Ubuntu can see all the ports, plugging in various USB devices causes them to light up/recharge, but there's no response. Ubuntu can't see any device, including my printer.

Checking my syslog, I get a message for each port - "HCRESET not performed yet!" Would this indicate that they're stuck in some form of configuration and need to be released or is the damage permanent (new MoBo)?

Any help would be greatly appreciated!

kilgoretrout 04-17-2008 04:00 PM

It's pretty easy to blow usb ports in my experience. I would guess that your blown psu took them out when it went. If your motherboard is otherwise functioning OK, you could just get a usb expansion card if you have a spare slot. However, if the blown psu was a lower quality model from a marginal or unknown manufacturer, I'd just replace the motherboard. Low quality psus are notorious for taking out components with them when they go. Higher quality models have protective circuitry to prevent that.

GrapefruiTgirl 04-17-2008 04:52 PM

While the above info from kilgoretrout may well be the situation (they are blown) and it IS fairly easy to blow USB ports, I do remember way back when I used Winblowzzz that if we plugged & unplugged our HP Scan/Print/Fax thingy a few times, it would overload one of my ports, and the bus would go out.
Windows had a little lightning bolt that would pop up, and when you clicked it, it would reset the breaker so to speak, and the usb bus would come back.

I would not yet settle on that they are dead-- though I do NOT know how this functionality might be implemented today, and/or with Linux, or whatever, nor how to maybe reset them besides maybe totally powering off & unplugging the computer, perhaps even taking out the CMOS battery. And then, this may not work.. Maybe they are all blown :rolleyes:..

Sasha

PS - you may need to do some hardcore Googling, and/or maybe contact the mobo maker, to find some info about this.
FWIW, you can go get a new mobo, but what if it happens again, or you do like me and it IS just an overload-- can't get a new mobo every time! That'd be crazy..

GrapefruiTgirl 04-17-2008 05:05 PM

http://www.nxp.com/acrobat_download/.../AN10054_4.pdf

UPDATE - I am downloading the above PDF mhich allegedly explaing what M$ does -- they write a 2h (HCRESET) to the USBCMD register (2c) to do the reset.

I dunno in reality how to do this, but I am sure someone in the devel or programming or kernel driver community can tell us how to go about this..
If I read the PDF and find it real useful, I'll letcha know.

UPDATE - turns out the PDF is chock full or hardware-specific mumbo jumbo and prolly not directly applicable to YOUR controller. However, the principle still likely applies: send the HCRESET code to your USB controller, and it should reset :)

sleepingdragon 04-17-2008 05:07 PM

Thanks for replying. I'm gonna keep on searching for solutions with this MoBo. When I get the time tomorrow, I have found a BIOS update that needs doing, I might see if that resolves something. I've already done a CMOS reset with no joy, so does look likely that USB is gone, but I'm holding out for hope that everything still seems "live", even though no data is being sent through. Out of interest, specs on my USB ports mention surge protection - here's a C&P of one of my ports:

Bus 001 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed hub
bMaxPacketSize0 64
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.22-14-generic uhci_hcd
iProduct 2 UHCI Host Controller
iSerial 1 0000:00:10.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0108 power oc
Port 2: 0000.0108 power oc
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled

GrapefruiTgirl 04-17-2008 05:40 PM

Here's another thought, based on a Windoze thread somewhere:

Windoze says to 'uninstall' the HCD, then reinstall them (new hardware found).

So by that methodology, could you un-modprobe your kernel USB drivers? and then replug them? Look in LSMOD and see if your USB stuff is modularized. if it is, RMMOD (or modprobe -r) the modules, then MODPROBE them back in. Maybe......?

Do let us know anyhow, if you get anywhere with this.

S

Electro 04-17-2008 06:10 PM

USB ports includes a resettable fuse for each port. They do not protect against surges. Actually diodes does this well and cheaply. If they blow, they can act lack a short and making your USB ports fail to work because the fuses keeps going out. You can try use an active USB hub.

I suggest get a whole house surge suppressor. Also use a surge suppressor for your electronics. Make sure your house is well grounded. If it is floating (above 0 volts), lightning will find a way through you, your devices, your house. Also a floating ground is not good for electronics too. A surge suppressor is a one time only protection, so replace it often.

You can try to include the following in your modules.conf or modules directory.

options uhci-hcd ignore_oc=1

Unload that module and load it up with the verbose option to make sure it is using the option. Then use an active hub.

If they still do not work, disable them in the BIOS and get a USB card. It is best to get a new motherboard, so other devices connected to the motherboard does follow the same fate as the USB ports.

Power supplies does not provide any protection when they fail. If they fail so will their protection. I doubt they have any protection. It is best to replace them before they fail.

lambchops468 04-17-2008 06:25 PM

Quote:

Originally Posted by GrapefruiTgirl (Post 3124581)
http://www.nxp.com/acrobat_download/.../AN10054_4.pdf

UPDATE - I am downloading the above PDF mhich allegedly explaing what M$ does -- they write a 2h (HCRESET) to the USBCMD register (2c) to do the reset.

I dunno in reality how to do this, but I am sure someone in the devel or programming or kernel driver community can tell us how to go about this..
If I read the PDF and find it real useful, I'll letcha know.

UPDATE - turns out the PDF is chock full or hardware-specific mumbo jumbo and prolly not directly applicable to YOUR controller. However, the principle still likely applies: send the HCRESET code to your USB controller, and it should reset :)


The setting is probably done with setpci...
I really don't have experience with this...but if you're feeling adventurous, please post the output of lspci -vv for your usb controller(s) and your motherboard model.

sleepingdragon 04-18-2008 01:13 AM

Here's that lspci -vv...
 
00:00.0 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
Subsystem: ASRock Incorporation Unknown device 0314
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
Latency: 8
Region 0: Memory at e0000000 (32-bit, prefetchable) [size=256M]
Capabilities: [80] AGP version 3.5
Status: RQ=8 Iso- ArqSz=0 Cal=2 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
Command: RQ=1 ArqSz=0 Cal=2 SBA+ AGP+ GART64- 64bit- FW- Rate=x8
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:00.1 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
Subsystem: ASRock Incorporation Unknown device 1314
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:00.2 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
Subsystem: ASRock Incorporation Unknown device 2314
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:00.3 Host bridge: VIA Technologies, Inc. PT890 Host Bridge
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:00.4 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
Subsystem: ASRock Incorporation Unknown device 4314
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:00.7 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
Subsystem: ASRock Incorporation Unknown device 7314
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: faa00000-feafffff
Prefetchable memory behind bridge: bff00000-dfefffff
Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR+ <PERR-
BridgeCtl: Parity+ SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
Capabilities: [70] Power Management version 2
Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:09.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
Subsystem: C-Media Electronics Inc CMI8738/C3DX PCI Audio Device
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (500ns min, 6000ns max)
Interrupt: pin A routed to IRQ 20
Region 0: I/O ports at b800 [size=256]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0a.0 Communication controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Intel Corporation Digium X100P/X101P analogue PSTN FXO interface
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (250ns min, 32000ns max)
Interrupt: pin A routed to IRQ 5
Region 0: I/O ports at c000 [size=256]
Region 1: Memory at febfe000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA PME(D0+,D1-,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
Subsystem: ASRock Incorporation K7VT6 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin B routed to IRQ 16
Region 0: I/O ports at ec00 [size=8]
Region 1: I/O ports at e800 [size=4]
Region 2: I/O ports at e400 [size=8]
Region 3: I/O ports at e000 [size=4]
Region 4: I/O ports at dc00 [size=16]
Region 5: I/O ports at d800 [size=256]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
Subsystem: ASRock Incorporation K7VT2/K7VT6 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin A routed to IRQ 16
Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
Region 4: I/O ports at fc00 [size=16]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) (prog-if 00 [UHCI])
Subsystem: ASRock Incorporation K7VT6
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 17
Region 4: I/O ports at c400 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) (prog-if 00 [UHCI])
Subsystem: ASRock Incorporation K7VT6
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 17
Region 4: I/O ports at c800 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) (prog-if 00 [UHCI])
Subsystem: ASRock Incorporation K7VT6
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin B routed to IRQ 17
Region 4: I/O ports at cc00 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) (prog-if 00 [UHCI])
Subsystem: ASRock Incorporation K7VT6
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin B routed to IRQ 17
Region 4: I/O ports at d000 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) (prog-if 20 [EHCI])
Subsystem: ASRock Incorporation K7VT6 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 128 bytes
Interrupt: pin C routed to IRQ 17
Region 0: Memory at febff800 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
Subsystem: ASRock Incorporation K7VT4 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
Subsystem: ASRock Incorporation K7VT6 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (750ns min, 2000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at d400 [size=256]
Region 1: Memory at febffc00 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:00.0 VGA compatible controller: nVidia Corporation NV44A [GeForce 6200] (rev a1) (prog-if 00 [VGA])
Subsystem: XFX Pine Group Inc. Unknown device 2145
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 248 (1250ns min, 250ns max)
Interrupt: pin A routed to IRQ 19
Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at c0000000 (32-bit, prefetchable) [size=256M]
Region 2: Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
[virtual] Expansion ROM at feae0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [44] AGP version 3.0
Status: RQ=256 Iso- ArqSz=0 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
Command: RQ=8 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x8

That setpci function looks very promising. I'm giving the man pages a good look-over and I'll see if I can google for further info. Keep it coming, it's all looking good. Thanks!

GrapefruiTgirl 04-18-2008 07:03 AM

OK, as is my nature, I began toying with setpci, and have at least gotten some feedback from the bus about the register(s), specifically the 2C register.

(NOTE that I haven't a clue whether this USBCMD register is ALWAYS 2C on every computer--- prolly not, however how would one go about getting the actual register specs/names of ones' USB bus, thereby knowing precisely which register on XYZ computer, is the USBCMD register??)

So anyhow, another thing is, as per my previous post above, how does one set a value of 2H to a register? I mean, 2H is not a valid hex code, so what do they mean by 2H ??

Interesting stuff... :)

sleepingdragon 04-18-2008 01:01 PM

Here's an update
 
OK. Upgraded the BIOS, that went smoothly enough, but still no USB. Shame, if there was a chance to reset any problems with the hub, I thought an upgrade to the BIOS might do things. Oh well...

GrapefruiTGirl, can you give me the setpci command you used? I'm prepared to give it a try and see what happens. What's the worst thing it will do, cripple my USB?

GrapefruiTgirl 04-18-2008 01:53 PM

Nah, I doubt you could permanently cripple anything with code these days, short of
a) installing Windoze, or
b) corrupting the BIOS.

Here's what I was doing:
Code:

*root@darkstarSSI:/home/Sasha# setpci -P /proc/bus/pci/00 -v -D -G -H1 -s 00:0b.1 2c
Decided to use Intel-conf1
Scanning bus 00 for devices...
Scanning bus 01 for devices...
Scanning bus 02 for devices...
Scanning bus 03 for devices...
Scanning bus 04 for devices...
Scanning bus 05 for devices...
00:0b.1:2c = 62
root@darkstarSSI:/home/Sasha#

Now, the 00:0b.1 is what I see from lspci where it shows my USB controllers. I have two onboard, so one is 0b.0 and the second is 0b.1. Both show a value (hex? decimal??) of 62 for the register 2c.

Read the man page for setpci. You will see the -D flag makes any command you do only a test, it does not actually write. Remove the -D to actually do a function.
H1 or H2 is the type of hardware access you want to use. I got only a useful reply when using H1.
-v means verbose.
-G means 'enable PCI access debugging'
OH, and the -P tells the command where to look for PCI info. I found that it was already looking in the right place, but I added it anyway. You can prolly remove the -P /proc... stuff.


To actually write, you would end the line with 2c=<value> instead of just 2c.

Again, this is all assuming 2c IS the USBCMD register.

You ccan also do the command like:

*root@darkstarSSI:/home/Sasha# setpci -P /proc/bus/pci/00 -v -D -G -H1 -s 00:0b.1 USBCMD

Note the "USBCMD" at the end. This looks for a register with that name. But I couldn't get any type of "found" response, like it kept saying "no such register" or some such thing..

sleepingdragon 04-18-2008 05:10 PM

Thanks for the command...

sudo setpci -P /proc/bus/pci/00 -v -D -G -H1 -s 00:10.4
Decided to use Intel-conf1
Scanning bus 00 for devices...
Scanning bus 01 for devices...
00:10.1:c2 = 00

And that's all I get for any of my ports. Adding "USBCMD" to the end of that command returns that same error as you - Unknown Register. My hub runs from 10.0 to 10.4. I suspect from the slightly different returns on c2 that we have different controllers. I have contacted VIA Technologies about assistance in mapping out the various registers, but I've yet to hear a reply. Unfortunately, they make it quite clear that the full datasheets are only available to VIATech partners, governments, blah... blah... blah.

GrapefruiTgirl 04-18-2008 07:09 PM

Cool :)
Well it would be good for us to know what the registers are, and what each are used for.
If VIA tells you anything at all, do let us know..
Meanwhile, why not remove the -D and try sticking a different value in there :) who knows, (or even try another register than 2c) maybe the ports will come back to life!

Sasha

sleepingdragon 04-19-2008 02:43 AM

Here's an interesting site for datasheets

http://www.datasheet4u.com/search.php


All times are GMT -5. The time now is 05:53 AM.