Re: [PATCH] m68k/mac: Replace macide driver with generic platform driver

Michael Schmitz
2021-06-01T03:33:08Z

Hi Geert,

Am 28.04.2021 um 18:53 schrieb Geert Uytterhoeven:
>>> I wonder whether q40 could re-use the pata_falcon driver . I suppose
>>
>> I'm pretty sure it could, but there is no reason why it would have to be
>> crippled in that way. Interrupts should work perfectly fine with IDE on
>> Q40.
>>
>> There is another reason why using the same module binary for both might
>> fail - the awkward address translation code in io_mm.h. Not certain at
>> all whether we can even have Q40 and Atari in the same kernel binary...
>
> That's supposed to work, else our multi_defconfig is broken.

Took a while to get back to this, but I believe unless this
configuration sets CONFIG_ISA && !CONFIG_ATARI_ROM_ISA, Q40 ISA support
will indeed be broken, due to

#define inb(port) ((port) < 1024 ? isa_rom_inb(port) : in_8(port))

using incorrect address translation on Q40 (either that for the Atari
ROM port, or none)? Not entirely sure what I had been smoking when
writing that ...

Conversely, if that combination _is_ set, neither ROM port access nor
IDE access on Atari will work (again due to incorrect address
translation - indiscriminately applying the one required for the ROM
port in that case, which is inappropriate for Atari IDE).

I'm currently considering a fix that does conditional address
translation in isa_itb() and its buddys, and replaces in_8() by
isa_inb() in the definition above (and equivalent changes elsewhere).

Can you see anything wrong with that, just off the bat?

Cheers,

Michael

(CC: trimmed a little to cut down on spam to the general lists...)