OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Apr 19, 2024 1:33 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Updated USB Wiki [Finished Draft]
PostPosted: Wed Jun 10, 2009 3:29 pm 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
Hi,

I've been working on EHCI support, so I thought I'd contribute to the USB wiki entry. I haven't finished it all, but I would like to get some feedback before I do.

Until I finish everything, I've left the original wiki entry contents at the bottom (I plan on making separate entries for OHCI, UHCI, and EHCI eventually).

So I hope you guys like it, let me know if anything is too vague, confusing, etc. If you have trouble understanding my diagrams (or even the ones taken from the USB 2.0 specifications), please tell me how you are interpreting the diagram and why it's confusing. If you think something needs (or does not need) diagrams, speak up. Especially let me know if I've misinterpreted or am flat-out wrong about something.

Here it is

Thanks

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Last edited by madeofstaples on Fri Jul 03, 2009 3:06 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Wed Jun 10, 2009 4:08 pm 
Offline
Member
Member
User avatar

Joined: Wed Oct 18, 2006 3:45 am
Posts: 9301
Location: On the balcony, where I can actually keep 1½m distance
=D> =D> =D>

*hands over a barnstar to madeofstaples the wikidragon*

_________________
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Wed Jun 10, 2009 5:53 pm 
Offline
Member
Member
User avatar

Joined: Fri Apr 18, 2008 4:40 pm
Posts: 1686
Location: Langley, Vancouver, BC, Canada
The Original Barnstar:
Image

YE GODS THAT'S A LOT OF EDITRY!!! *needs another barnstar to hand out*

The Working Man's Barnstar:
Image

_________________
Image
Image
Solar wrote:
It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.

I wish I could add more tex


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Fri Jun 12, 2009 11:19 am 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
I had never heard of these barnstars until now, um, thanks.

Fixed a few typos, will work on remaining content this weekend probably.

"USB Hubs" may need its own wiki entry, I don't know if there're any specific wiki protocol that would suggest otherwise, so that is my plan.

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Sun Jun 21, 2009 6:56 am 
Offline
Member
Member
User avatar

Joined: Thu Feb 12, 2009 5:12 pm
Posts: 286
wow, man thats alot of reading, good job =D>

_________________
My hero, is Mel.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Mon Jun 22, 2009 1:43 am 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7614
Location: Germany
Excellent text. Well structured, good language, well illustrated. I bow to you!

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Mon Jun 22, 2009 2:27 pm 
Offline
Member
Member

Joined: Fri Jan 02, 2009 4:00 pm
Posts: 33
Just wanted to thank madeofstaples for the contribution.
Thx.

_________________
Help this rabbit conquer the world by including it in your code: for(;;) fork();


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Mon Jun 22, 2009 8:59 pm 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
I'm glad you guys like it so far. :D

I've been slowly finishing items under TODO. The next two things that I'll be adding (protocol and framework) are much easier to understand (especially if you can at least get a basic idea of the topics that I've covered so far), but they will have a considerable amount of content and plenty of opportunities for illustrations.

I also would like to make an illustration or two to show the relationship between (micro)frame and transactions.

On the side, I've been working on programming the EHCI controller. I'm happy to say that so far it's going really well. I haven't worked with any device that requires interrupt or isochronous transfers (yet), but bulk and control transfers are working. I just today started working on code to wrap SCSI commands and send them over bulk transfers to mass storage class devices; so far I have successfully implemented the INQUIRY command. I have been testing with a netbook (hp mini 1030nr), and two laptops (a friend's high-end asus, and an off-brand MSI laptop). The Asus laptop has a broken webcam permanently connected to the USB, so I've even learned a bit about working with faulty hardware (it does not appear to properly enter the address state).

I know some hobbyists have gotten UHCI support working and probably already understand the USB specifications, so I may start working on an EHCI entry pretty soon, and eventually a USB Mass Storage Class entry. I've been writing in assembly, but I would have no problem using C or C++ examples in the wiki, if that's preferred?

Coddy wrote:
wow, man thats alot of reading, good job =D>
Thanks, but say that after looking at how long the USB 2.0 specification is :lol:

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Tue Jun 23, 2009 12:59 am 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7614
Location: Germany
madeofstaples wrote:
...and eventually a USB Mass Storage Class entry.


Now wouldn't that be cool?

Quote:
I've been writing in assembly, but I would have no problem using C or C++ examples in the wiki, if that's preferred?


I think C is perfect for the purpose of code examples. (Like English for the page itself, it's the lingua franca of OS developers worldwide.)

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Wed Jun 24, 2009 9:40 am 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
Solar wrote:
Quote:
I've been writing in assembly, but I would have no problem using C or C++ examples in the wiki, if that's preferred?


I think C is perfect for the purpose of code examples. (Like English for the page itself, it's the lingua franca of OS developers worldwide.)
Right, that's what I was thinking, too. Very well then, C it is.

I've almost finished the USB protocol section :) Finally some of the topics of the original USB entry have been covered in more detail, so I removed those. I'm not sure if/how I'll cover the BIOS support for USB devices (i.e, the two sections starting here). My intuition is to move these two sections to stubs for USB Human Input Devices and USB Mass Storage Devices, respectively. All the remaining content of the original USB wiki (besides those two sections) I plan to cover in more detail under USB Framework and Typical Organization of System Software.

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Thu Jun 25, 2009 9:02 pm 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
I finished the USB protocol section!

I also added illustrations for the frames/microframes section, and rearranged some of the diagrams at the beginning to make them easier to reference from reading the text (I didn't know about the gallery tag the first time around).

this is coming along...

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Fri Jun 26, 2009 3:47 am 
Offline
Member
Member
User avatar

Joined: Sat Nov 15, 2008 2:37 pm
Posts: 815
Location: The Fire Nation
congrats nice work :)


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Fri Jun 26, 2009 9:58 am 
Offline
Member
Member
User avatar

Joined: Fri Apr 18, 2008 4:40 pm
Posts: 1686
Location: Langley, Vancouver, BC, Canada
More barnstars are in order!!!

_________________
Image
Image
Solar wrote:
It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.

I wish I could add more tex


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Tue Jun 30, 2009 11:56 pm 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
Another update:

I spent most of the day pumping out the USB Framework section. I just have to cover the standard descriptors (I've made the tables for two of them, but would like to add some explanations before or after the tables), and then I will have covered just about everything you need to know from the USB 2.0 specifications (besides USB 2.0 hubs, which will end up as their own wiki entry, as they are a class of USB device).

Then the Typical Organization of System Software will just discuss the reasons for dividing up the usb-related drivers into categories like the host controller drivers, the hub driver, the usb driver, and the device drivers, etc. With it, I hope to draw a "bigger picture" to clarify any concepts that might have been confusing, but overall the section should be the easiest to complete :)

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
 Post subject: Re: Updated USB Wiki
PostPosted: Fri Jul 03, 2009 3:05 pm 
Offline
Member
Member

Joined: Thu Apr 12, 2007 8:15 am
Posts: 204
Location: Michigan
berkus wrote:
Tremendous work! Mucho gracias!

De nada :)

I've finished up the USB Framework section and wrote a brief "Typical Organization of System Software" section, which I'm not sure if it needs much more than what I've written.

I moved the remaining old wiki content to a wiki entry for USB Mass Storage Class Devices and USB Human Input Devices, though it wasn't clear to me if there was a specific way to mark an article as a stub :?

I am currently considering some potential final changes to the USB entry, but the article as it is now may be considered a draft.

Now, I'm going to treat my brain to a small vacation from USB before looking over the article for any of the inevitable, embarrassingly obvious typos or miswordings that I'm sure are there.

_________________
Some people are offended by the verifiable truth; such people tend to remain blissfully unencumbered by fact.
If you are one of these people, my posts may cause considerable discomfort. Read at your own risk.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 38 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group