On Fri, Jun 05, 2020 at 02:23:50PM +1000, Finn Thain wrote:
On Fri, 5 Jun 2020, Finn Thain wrote:
I think we need to be able to restart the IOP's internal ADB driver.
Otherwise it's impossible to have ADB input resume when the floppy
drives go idle for a while or when the swim module exits.
The alternative is to revive swip_iop.c, and the downside there is that
the block layer API has completely changed, meaning that the driver
needs a rewrite on the block layer side, as well as needing more work on
the IOP protocol side.
I should also mention that swim.c has some pretty serious limitations: no
write support and no GCR support. These features could be added much more
easily to swim_iop.c than swim.c because the IOP supports them internally.
With all of that, it sounds like it would be easier to bring back and
fix the swim_iop driver in spite of the need to update the interface
to the kernel. I don't know when I might be able to get my IIfx or Q950
back out and running, but I'll see if I can take a look at the code
even without having the hardware ready to actually test it.
Ideally we would have the code to actually do a full reset on an IOP
and bootstrap the IOP kernel and each IOP driver. I suspect the images
for them are somewhere in the ROM. That's likely only necessary if we
start doing a boot where the MacOS hasn't already loaded fully.
Brad Boyer
flar@xxxxxxxxxxxxx