OHCI 1000 interrupts per second, is it normal?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
alex1237424
Posts: 3
Joined: Wed Oct 18, 2023 3:28 pm

OHCI 1000 interrupts per second, is it normal?

Post by alex1237424 »

Hi guys. I implemented OHCI on some SoC (that also has EHCI) for basic usb/mouse/storage support. I checked some simple os drivers to understand the basic flow of how controller works, and one thing still bothers me. For interrupt transfers I put endpoint descriptors into hcca.interrupt_table, and what is the best way to check the result?

I found that if interrupt endpoint happened, it does not put this endpoint head into hcca.headDone, also no real hardware interrupt is triggered. And those implementations of simple os drivers that I saw, check if any of interrupt endpoint in table has completed flags.

That means that we have to interrupt cpu 1000 times per second and do a check of table with 32 entries each time. Is this the right way of doing it or I am missing some real implementation? And what about EHCI, is it kind of same?
Post Reply