@balaton
Quote:
I don't know what Sirion drivers are but considering that USB HCD interface is pretty standard (there are only about 4 kinds) so getting hardware drivers should not be a problem.
Poseidon (used by MorphOS) and Sirion (used by AmigaOS 4.x) are the 2 most used USB stacks on AmigaOS, both were available for older AmigaOS versions already, for different USB hardware.
Most developers of classic Amiga USB hardware used Poseidon for the software part.
Even on a system like the AmigaOne XE/SE/µA1 which has standard PCI USB you need special drivers: The A1 uses the buggy VIA 686B south bridge and has additional USB related bugs on the motherboard which require workarounds in the drivers.
Of course it's no problem when running the AmigaOne version of AmigaOS 4.x on QEmu, but on real, buggy hardware a standard driver does't work.
On embedded/SoC CPUs like 4x0 or QorIQ standard PCI USB OHCI/UHCI/EHCI/XHCI drivers usually don't work either but you need special ones for each SoC instead.
On classic Amigas each Zorro II/III, clock port, etc., custom USB hardware controller needs a custom driver.
Even if you use a PCI USB controller with a Zorro<->PCI bridge like the Prometheus, Firestorm or Mediator in a classic Amiga you needed special drivers for the different ways those PCI bridges work on AmigaOS <= 3.9.
AmigaOS 4.x includes support for those Zorro<->PCI bridges in the kernel and all are accessed with the same expansion.library API, but that doesn't change the hardware limits of the bridges like no DMA support.
The only AmigaOS systems where standard PCI USB drivers work are probably the X1000 (AMD SB600 south bridge) and PegasosII (VIA VT8231).
Of course not only the hardware driver APIs but the OS/application APIs are different between Poseidon and Sirion as well, and unless you additionally implement a Sirion<->Poseidon API wrapper a port of Poseidon to AmigaOS 4.x, incl. implementing all required hardware drivers for Poseidon, would still be useless...
Edited by joerg on 2025/4/1 15:19:13