artik-wroc wrote: Sun Feb 16, 2025 10:45 am
On Panther there is a version that works with GAL Mach32, but on Hades uIPtool would be very useful.
Is the card address taken from ISA_BIOS?
It's hardcoded for port 300 at the moment.
That's usually the default and the MiNT etherne driver borrowed from Hades was hardcoded to that port so it made sense to follow suit for now.
I'd like to improve both of them sometime though and have them ask isabios to find a compatible card by PNPid.
The base IO address for the bus is indeed gotten from ISA_BIOS though, and failing that it knows it for a few existing machines itself;
Hades: 0xFFF30000, Milan: 0xC0000000, Raven: 0x81000000, Panther: needs C__P2I cookie since it's completely wild west territory
In theory, I think I could make ISA_BIOS guess the I/O base for Panther or Panther-like scenarios even without that cookie, if it probes for and detects the gfxcard it could figure out the base address for the bus.
The theoretical intent was that it, just like for PCI_BIOS, falls on the maker of a hardware platform to provide an implementation of it so that programs using the API will "just work" regardless of current or future hardware.
In reality that will of course never happen so I'm quite happy making Ravens standalone ISA_BIOS implementation work on other machines too and support at least the core stuff on the other ones.
When I'll get to adding hardware abstraction for things like setting up IRQ callbacks and such I'm only going to be able to do those kinds of implementations for Raven though.
I'm still not 100% sure about ISA_BIOS in general and if I should just drop it and make a PCI_BIOS implementation for Raven instead -- handing the ISA stuff. The PCI_BIOS design intent mentions ISA and the API itself is fairly suitable for both, though might need some extension specific for ISA especially in terms of card configuration.