SGI: Development

USB Mass Storage - Page 3

zizban wrote: What do you suggest should be the first small step then?


A user space device driver for some world-wide popular and easily available COTS USB PCI Card? ...then a kernel driver for the same card? ...and then a 08h device driver for the mass storage class? What do you think?

[EDIT:] there is some well condensed information from X-Ample related to RISC OS about: USB Classes and of course the official one from Class Codes ...but I'm sure you know about them! :) [EDIT]
zizban wrote: What do you suggest should be the first small step then?


I have made a very very small step.
I have made a wiki entry under IRIX for Projects, under projects I made a topic "USB mass storage" driver.
More projects can go under the Projects section if there is something anyone is interested in.

http://www.nekochan.net/wiki/ ... age_driver

Since I have built about 80% of the wiki from copying bits of posts from the forums and elsewhere, how much confidence do you think I have in an effort like this... ??
Especially when the wiki is not updated for like months at a time if I am not the one to do it..

This is how I had planned to do things.. I might be wrong... I am often 100% wrong, your views may differ...

1. Research and obtain hardware. There are actually several different types of USB mass storage devices as described in "USB Mass storage" (i), (ii) && (iii) ... Decisions need to be made about the type devices supported and the approach to be taken.
2.Test that the device actually works with the hardware. I did this with Gentoo Linux/MIPS with a VT6212 chipset card. Yes, I can muck about with this card under Linux/MIPS and it works.
3. Write userland code to explore the device, using the user land PCI interface. I never got far with this but this is the interest aspect.. not commercial project aspect comes in.
4. roll a simple loadable kernel module. That is no real effort copying from example PCI skeleton but anyway.
5. write userland programs to interact and test the driver.
6. Add step by step by step driver functionality for registration, open, close, ioctls, etc..
7. try to get the driver to display vendor strings, or recognise events.. user land PCI programs can actually respond to interrupts on IRIX.
8. try to get the driver to copy anything at all from IO space to the u_ area.
9. write test cases and debugging.

Why not use existing SGI USB devices..? You will be fighting with the device drivers that only support ohci anyway.

That is just the first driver..
Once you have userland access to say a keyboard or other HID then...

Then do similar to the above for a USB class drier.
Then a file system driver.

Oh, and it does not have to be me doing any of this either... its just interest for me.. I have NFS and gigabit networking on most of my SGIs. 'Tis the drinking and business card swapping season, downunder.

R.

i. Jan Axelson, "USB Mass storage" ISBN 978-1-931448-04-8
ii Jan Axelson, "USB Complete" same publisher and should turn up on Amazon.
iii Mindshare books on USB and PCI.
死の神はりんごだけ食べる

開いた括弧は必ず閉じる -- あるプログラマー

:Tezro: :Tezro: :Onyx2R: :Onyx2RE: :Onyx2: :O3x04R: :O3x0: :O200: :Octane: :Octane2: :O2: :O2: :Indigo2IMP: :PI: :PI: :1600SW: :1600SW: :Indy: :Indy: :Indy: :Indy: :Indy:
:hpserv: J5600, 2 x Mac, 3 x SUN, Alpha DS20E, Alpha 800 5/550, 3 x RS/6000, Amiga 4000 VideoToaster, Amiga4000 -030, 733MHz Sam440 AmigaOS 4.1 update 1.

Sold: :Indy: :Indy: :Indy: :Indigo: Tandem Himalaya S-Series Nonstop S72000 ServerNet.

Twitter @PymbleSoftware
Current Apps (iOS) -> https://itunes.apple.com/au/artist/pymb ... d553990081
(Android) https://play.google.com/store/apps/deve ... +Ltd&hl=en
(Onyx2) Cortex ---> http://www.facebook.com/pages/Cortex-th ... 11?sk=info
(0300s) Minnie ---> http://www.facebook.com/pages/Minnie-th ... 02?sk=info
Github ---> https://github.com/pymblesoftware
If Kickstarter accepts the project, then the first chunk of money raised will be a bounty. Anyone who wants to make a driver can claim all (or part) of the bounty. People can even work together and share the bounty,
zski128 wrote: Count me in for $50.


Ditto! :)
How about this for a submission for Kickstart:

What would you like to do?

Create a mass storage drive for Irix. Irix is an Unix operating system with solid hardware to run on. However, Irix is no longer being developed and the community would like to extend it's functionality. The goal is to raise money to develop an open source USB mass storage driver to extend the usefulness of of Irix.

Money raised will be used to acquire equipment and to offer bounties to developers. The development will be broken down into smaller goals:

1. Write a basic user land driver with the ability to mount and mount a usb file system with command line tools.

2. Write a kernel module for usb mass storage support. Enable the ability to read/write from a usb device.

3. A gui interface to usb drivers. Optionally, extended support for other usb items such as keyboards, mice and webcams.

As each step is finished, a bounty from money raised will be paid. The driver and code will be open source.

What rewards would you offer?

All contributors will receive a T-shirt or a USB flashdrive with the project's logo.

Where can we find out more about you and your project?

www.nekochan.net

The goal will be to raise a $1,000-$2,000

Worse comes to worse, I'll do something with PayPal. I have $50 set aside already for this project.
cesss wrote:
small appliance with an ethernet port on one side and an USB port on the other side, and with logic in the middle so that an arbitrary USB storage device can be used from IRIX via ethernet, using any mechanism already present on IRIX, maybe via NFS?

That's a pretty accurate description of a NAS ;)

_________________
Now this is a deep dark secret, so everybody keep it quiet :)
It turns out that when reset, the WD33C93 defaults to a SCSI ID of 0, and it was simpler to leave it that way... -- Dave Olson, in comp.sys.sgi

Currently in commercial service: Image :Onyx2: (2x) :O3x02L:
In the museum : almost every MIPS/IRIX system.
Wanted : GM1 board for Professional Series GT graphics (030-0076-003, 030-0076-004)
jan-jaap wrote:
cesss wrote:
small appliance with an ethernet port on one side and an USB port on the other side, and with logic in the middle so that an arbitrary USB storage device can be used from IRIX via ethernet, using any mechanism already present on IRIX, maybe via NFS?

That's a pretty accurate description of a NAS ;)


I don't think anything like that will work, right? :cry:
Attachment:
USB-RJ45-Adapter.jpg
USB-RJ45-Adapter.jpg [ 42.34 KiB | Viewed 744 times ]

...except that your USB expectations can be reduced to some USB Modem.

But I think at some point Hamei wrote a thread about some kind of Multi-Port NAS that probably could work... and of course I don't know where the thread is! :)

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
This:
Image
http://cgi.ebay.co.uk/HIGH-SPEED-USB-2- ... 255c3b6183

Which is also sold as this:
Image
http://bifferos.bizhat.com/
karbonKid wrote:


Wow!, this is very interesting! I really want mine right now!
It is not the unit that Hamei pointed up at some post, but looks perfect for the occasion. Any reports to confirm that it works reliably on any SGI box (I can't see why not!) with IRIX?

If these thing works... do we really need an USB Stack? I guess it is time to experience it, to see what is supported and what not. But it looks positively... positive! :)

Thanks for the links.

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
karbonKid wrote:


Hi,

I noticed this thread as it seems to be bringing more than a few people to my site (thanks :-) ), however I have to point out that the two items above are not the same hardware. Most of the 'NAS dongles' out there now have 16M/1M DRAM/Flash whereas the Bifferboard has 32/8. If you want to run Linux, because you'd like an NFS server, for instance, then you'll probably find it a lot easier with the Bifferboard. Of course, if the NAS does what you want out of the box, no problem (and the setup is easier). You'll probably notice that NAS dongle is cheaper than Bifferboard + case + PSU. There is a reason for this!

I'm posting this because we've had a few people who bought the NAS dongle come to us and ask us how to convert it to a Bifferboard, which is a little cheeky, but in all cases so far it turned out we couldn't even if we wanted to.

thanks,
Biff.
Hey there, Biff! ...very nice development, it seems your boards would make some nice partnership along with our SGI equipment. Do you have any distribution chain for Argentina? Dealers, resellers, etc.
All the best,
Diego

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
GeneratriX wrote:
Hey there, Biff! ...very nice development, it seems your boards would make some nice partnership along with our SGI equipment. Do you have any distribution chain for Argentina? Dealers, resellers, etc.
All the best,
Diego


Hi Diego,

Thanks. I'm afraid I know next to nothing about SGI, and only registered to post the clarification, so the forum 'captcha' was a little hard to figure out, but I got there in the end :) . At the moment we're a fairly small concern, and have no resellers, however we ship all over the world, and had no problems sending to Argentina so far. Although we've been selling the Bifferboards for a couple of years I feel there's still a lot of untapped potential. I've been meaning to get usbip working on this for some time ( http://usbip.sourceforge.net/ ). Pah... too many cool projects, and too little time :( .

cheers,
Biff
bifferos wrote:
Hi Diego,

Thanks. I'm afraid I know next to nothing about SGI, and only registered to post the clarification, so the forum 'captcha' was a little hard to figure out, but I got there in the end :) .


Hey, be careful to not purchase some SGI box or you will be assimilated! :twisted:

bifferos wrote:
At the moment we're a fairly small concern, and have no resellers, however we ship all over the world, and had no problems sending to Argentina so far.


No problem, I'm kinda an entrepreneur, so I guess I'm asking just out of curiosity since your board looks interestingly cool not only to allow USB over Ethernet on an SGI box, but also to try some other activities here. Good to know you ship over here.

bifferos wrote:
Although we've been selling the Bifferboards for a couple of years I feel there's still a lot of untapped potential. I've been meaning to get usbip working on this for some time ( http://usbip.sourceforge.net/ ). Pah... too many cool projects, and too little time :( .

cheers,
Biff


Well, if you can add a Parallel Port while you're at it, it would be very cool too! :-) ...you know: RTAI and a Parallel Port will make it a killer platform to develop some easily automated power appliances too.
All the best,
Diego

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
Thanks for the visit, bifferos!

I first found out about Bifferboard by someone mentioning it to be the same as one of those NAS dongles. Sorry for not checking my facts. It sure does look an awesome piece of hardware :)

You guys realize that aswell as giving us USB mass storage, we could also install NFS and nekosync on a Bifferboard for pocket-sized DINA! Of course you would need a second storage medium on which to place Nekoware, but you could do that with a hub..
For some additional insight into what USB devices work <or don't> under IRIX, it'd probably be worth taking a look inside of the IRIX Kernel Hardware Inventory file - /usr/include/sys/invent.h <my references are to the IRIX 6.5.30 version of the file - the invent.h found in earlier IRIX revisions may be different>.

invent.h recognizes only four USB device classes, the root hub/controller, USB hubs, human interface devices, and the graphics compositor (used to composite multiple VPros into a single output), while the at-large USB specification includes a significantly larger list of device classes . To further muddy the water, invent.h also includes a note that mentions the listed classes might not match those defined in the at-large USB specification.

invent.h also includes a list of specific types of devices <that fall within each of the invent.h defined classes> and mentions these use data generated by the USB device to identify which class they belong in. Since the USB spec lists a number of device classes, this might the source of problems when a USB device is attached that doesn't define itself as belonging to one of the classes implicitly listed by invent.h. That need not be quite as dire as it sounds, in spite of the lack of an invent.h USB audio device class, the Griffin iMic USB audio device works under IRIX.

Device types include an OHCI root hub <the USB PCI controller - practical experience has shown this to be limited to certain TI OHCI chipsets>, human interface device <HID> keyboards, HID mice, and HID tablets. There's a mention that no USB hub types have been specifically defined <my Origin 300 shipped from the factory with an SIIG USB SlimHub 2.0, but in that particular case the USB controller is in the L2, which runs embedded PPC linux>.

_________________
***********************************************************************
Welcome to ARMLand - 0/0x0d00
running...(sherwood-root 0607201829)
* InfiniteReality/Reality Software, IRIX 6.5 Release *
***********************************************************************
Hi,

This company called "Speeddragon" does manufacture some LAN to USB converter.

http://www.speeddragon.com/index.php?co ... nfo&Id=311

They provide source files in the BSD driver. Any chance to port to Irix?

I guess the converter is about $10-15. Probably other companies do such converters.

Any thoughts?
SBCAM wrote:
Any thoughts?


Hi!
Would not be necessary an inverted version of these converter?
...I mean, something like [Male Ethernet]-To-[Female USB] to be really useful for any SGI?

I don't know if it can be used inverted with a suitable set of adapters, probably yes because both protocols and physical interfaces should be bi-directional, but you'll need for sure a power supply on the USB side...

[EDIT] I've extended some concepts...[/EDIT]

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
I know this isn't appropriate for everyone, but here is a simple, cheap, space-saving way to add USB mass storage access to an IRIX desktop PC running IRIX 6.5.22 which I have implemented.

Basically, I use a Wyse Winterm thin client (currently an S30 I bought for $25, previously a WT3125 for $5). These look like modems or routers, very small form factor which was a priority for me on my little fold-out desk. Note that Wyse thin clients are exceptionally easy to hack, being well documented with all the "official" software readily available for free download from Wyse. Simple to implement small Linuxes like DSL, Puppy, etc. The S30 is a low power Intel chip so you can basically load any S/W you want pretty easily.

So I set up my SGI automatically to provide OS's to the Winterm (by built-in anonymous ftp pull from the Winterm), then installed the nekoware Samba and vnc client on the SGI. With the Winterm on my router, it ain't fancy but I can access pretty much any USB storage device and my SGI filesystem from the vnc window. Mainly my phones, e-books, Pocket Drives, and memory sticks. Also cameras and such, but there are some issues with those.

In practice, I have chosen to use the WinCE 6.0 OS, not because its cool, but because it performs much faster than the Linuxes I tried. I think it is because WinCE is an RTOS, not a virtual store OS. Not sure.

So, you might ask, why vnc into the Winterm and use SGI Samba service instead of NFSing from the SGI as client and the Winterm as server? The answer is that I have been unable to source original media for NFS for IRIX 6.5. Likewise the IDO, which I'd really like to find.

So, feel free to abuse me for such a "Rube Goldberg" hack -- Doesn't bother me. This actually does the job

J
nelsonjm9 wrote:
So, feel free to abuse me for such a "Rube Goldberg" hack -- Doesn't bother me. This actually does the job

J


No problem for me with the Rube Goldberg's approach... I always liked a lot "Wile E. Coyote And The Road Runner", in fact I'm anxiously waiting for the new 3D Avant Premiere from their last movie, so it is more than fine for me! :)

So... how good is the speed? Does it fully saturate the Ethernet bandwidth?

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
I'm not certain. Both devices are physically plugged into my Wireless G router. A dozen other systems including my TV and telephone are wireless on the same router. I did a quick benchmark by backing up a large file to my USB HP Pocket Drive. Nothing much else going on. Speed was about 1Mbyte/sec end-to-end for that.