Kernel modules for PCI USB hubs -
bsdero - 03-02-2021
Hi all,
some years ago I attempted to write a real, serious USB kernel module for IRIX with support for UHCI and EHCI.
It detects a lot of PCI cards. Also detects the number of USB ports, and UHCI/EHCI number of interfaces. I developed a test tool that helps to detect the functionality of the kernel modules. Also some scripts for load/unload the kernel modules.
So we have 3 kernel modules:
uhci driver,
ehci driver and
usb_core.
The idea was to write mouse, keyboard and other stuff communicating with usb_core, who would take care of the low-level usb communications with the PCI cards.
Unfortunately I was unable to handle the low level setup required to establish communications with the PCI card. I did all kind of attempts to setup the DMA addresses in the PCI card, and it caused panics when a real USB transmition is attempted. I never could figure out what was happening and passed hour and hours reading and studying the IRIX drivers developers manuals and source code for others PCI drivers.
Finally I found the sources after years. I dunno if somebody else is doing a real effort, but here is my code. I hope somebody find this useful.
RE: Kernel modules for PCI USB hubs -
weblacky - 03-02-2021
Wow, seriously generous of you to let us see your hard work. Completely understood that sometimes we hit a wall, no help, and have to move on to other things.
Each piece helps future efforts, thanks for allowing us to inspect it and learn from it.
RE: Kernel modules for PCI USB hubs -
chulofiasco - 03-02-2021
The le got sharing ! There are some hard workers amongst us that are very talented. Will be great if something beneficial comes from this..
RE: Kernel modules for PCI USB hubs -
bsdero - 03-02-2021
Maybe I can continue helping. Unfortunately my old fuel looks like its failing and It's not booting. Not enough time to check it out what's happening.
However if somebody else want to check the code out and have questions, I would be glad to help, give answers and maybe write some code. I really would love to see a working USB stack in Irix.
RE: Kernel modules for PCI USB hubs -
Raion - 03-02-2021
Hey BSDero, thanks for sharing this stuff. I'll message you shortly since we may have areas we can collaborate on.
RE: Kernel modules for PCI USB hubs -
chulofiasco - 03-09-2021
(03-02-2021, 05:53 PM)bsdero Wrote: Hi all,
some years ago I attempted to write a real, serious USB kernel module for IRIX with support for UHCI and EHCI.
...
Finally I found the sources after years. I dunno if somebody else is doing a real effort, but here is my code. I hope somebody find this useful.
So I was talking with some folks about this and the subject of a license came up. Obviously the code has your copyright statements in it, so under what kind of license would this be given, or are you releasing this into the public domain, credit the source and it's a wrap?
Some kind of clarification or "yes, this is now in the public domain" would be really helpful.
Kindly advise
RE: Kernel modules for PCI USB hubs -
bsdero - 03-10-2021
Hi,
The code is now in the public domain. People is free to use it and improve it in any way.
I open it with the best intention, but I will not take responsabilities if something goes wrong.
I wonder if you, guys, were able to check it?
I mean, did you built the code, and ran some tests?
RE: Kernel modules for PCI USB hubs -
Raion - 03-10-2021
My caution about PD on this is someone wrapping it in GPL. I suggest that you release it under the MIT or another license, because GPL contamination is a legitimate concern. I don't expect bad faith actors doing that, but you shouldn't trust people to do the right thing unfortunately.
I'll add this to gitea and give you credits, and "unlicense" (Public Domain) mark it. But if it were mine I'd add some kind of license protection.
RE: Kernel modules for PCI USB hubs -
robespierre - 03-10-2021
My understanding is that not every country on Earth has jurisprudence around "public domain", so it is not an enforceable legal concept in every place that matters.
For example, some countries have "unalienable authorship rights".
The Creative Commons 0 (CC0) license was created to allow you to waive as many rights as you possibly can across the world.
RE: Kernel modules for PCI USB hubs -
Raion - 03-10-2021
That too.
It's online here:
https://gitea.irixce.org/Nekoware-II/IRIX-USB
If solidcore, or I or anyone else fork it and work on it we'll probably apply an MIT license to our changes to protect the code.
Yes, if you've got a BSD or MIT licensed project, you can't just remove license notices (or indeed, license files) and wrap it in GPL. That will get you sued, and that's why BSD-licensed projects cannot be "stolen" like that.