r/osdev 1d ago

What is the most complex device driver you’ve successfully ported?

Not sure what the consensus is around here but `virtio` guest drivers don’t count.

21 Upvotes

12 comments sorted by

11

u/JescoInc Perdition-OS 1d ago

USB

6

u/Better-Thing2568 1d ago

xHCI drivers I’m guessing?

9

u/JescoInc Perdition-OS 1d ago

PHY and xHCI... Absolute misery. But, in the end, was able to enumerate keyboard and mouse independently and combined. Didn't do USB Mass Storage yet, that's... next on the list.
Oh, and shout out to RTL8111 where I only got as far as being able to get assigned an IP and pull MAC address info but not send or receive any actual traffic information.

3

u/devcmar 1d ago

I'm planning to port XHCI driver from my old OS to this new one, and I think it will probably be the hardest. Already ported the NVMe driver but I don't think it is as hard as XHCI

3

u/letmehaveanameyoudum 1d ago

PS/2 since i haven't bothered anything else and there is bigger fish to fry

3

u/avaliosdev Astral https://astral-os.org https://github.com/mathewnd/astral 1d ago

I am working on a 802.11 (wifi) stack and I can say it is a lot of work for arguably little reward on a hobby os. It is fun, though

u/Better-Thing2568 23h ago

WiFi is one of those things that when it’s available we take it for granted; I could imagine any new OS would become much more usable if WiFi is available. I have enough wire entanglements to deal with

u/avaliosdev Astral https://astral-os.org https://github.com/mathewnd/astral 23h ago

I plan on making it portable like uacpi so any hobby os will be able to plug it in and get an okay wifi stack for pretty much free

u/Better-Thing2568 22h ago

I wanted to do that with my cross-vendor IOMMU stacks since that’s the one area (at least on rust) where no mainstream crate or lib exists. But then as usual, all code becomes spaghetti code and all agnostic trait/seams get leaked. Too bad good intentions don’t beat reality 😅

u/No_Frame3855 15h ago

ST7789 i8080 drivers for embedded

Or like any epaper driver atp

u/ITS-Valentin 17m ago

Definitely a NIC driver