i feel i read all uhci articles in this forum, but i couldn't get the proper answer to my question.
At first: sry for my english.
I try to implement a uhci driver.
I test it in QEMU.
Here are my steps:
- get pci address
SETUP - deactivate Interrupts
- deactivate Legacy Support
- HCReset
- GReset
- zero's USBINT, USBPORTSC1, USBPORTSC2
CONFIGURATION - USBSOFMOD -> 1ms
- create Framelist, each entry is invalid (T=1)
- set USBFLBASEADD = Framelist
- USBFRNUM -> 0
- set/reset FGR in USBCMD
- set CF and RS -> HC runs
- reset ports
- setupTD.status = lowspeed+active
- setupTD.token = 8Byte MaxLen (8-1) + SetupPID + ADDR=ENDP=0
- setupTD.buffer = pointer to Standard Request
My TD's, QH's and Framelist are aligned.
I put the QH in the Framelist and wait 2 seconds.
At that point setupTD.status = Lowspeed + STALLED.
My setupTD links to other TD's, because I would like to make a GET_DESCRIPTOR Request.
But the fault occurs after the setupTD.
I hope you know the issue
best regards!