Re: Linux 6.4.4 on m68k - Q40 - pata_falcon causes oops at boot time

Michael Schmitz
2023-07-27T03:18:06Z

Hi Finn,

Am 27.07.2023 um 13:16 schrieb Finn Thain:
>> A correct fix would keep the current IO translation intact, and instead
>> use the platform mem resource to register the driver IO range, and the
>> platform IO resource as base offset to populate the port ioaddr struct
>> (minus the register scaling and byte offset, mind you).
>>
>> I'll give this some more thought ASAP.
>>
>
> I wonder whether Will's suggestion (CONFIG_HAS_IOPORT_MAP) is feasible in
> light of the needs of Gayle and EtherNEC drivers.

I'll have to see how that works - both Gayle and EtherNEC don't just
need address translation but their respective quirky IO access functions.

>
>> And yes, I'm painfully aware the m68k low level IO code is becoming a
>> bit of a maintainance legacy, in no small part due to my hacks around
>> Atari EtherNEC.
>>
>
> I guess you and I both can share the blame for 44b1fbc0f5f30e66...
>
> Anyway, you make a good point about on-going maintenance. Do you think
> that by supporting standard ISA drivers we might actually reduce the
> ideosyncracies in m68k IO code?

You and DaveM ought to have a chat about that - abstracting the legacy
drivers from the ISA constraints was his preferred option when I last
attempted to get the Gayle network driver patches merged. When I say
'preferred', I'm probably understating a little.

I had toyed with that using the EtherNEC driver as test case but never
got very far (this would have been splitting the driver into a core
lib8390 module and a platform-specific module that allows to hook a
variety of IO accessors as hooks, not static defines, and I wasn't too
certain about performance impacts of such a change, the performance of
the EtherNEC being so shitty it won't make any impact there),

The only other option (that I can see) would be creating a bus driver
for the ISA bus, with platforms allowed to register their particular IO
accessors for IO and memory accesses - again, performance impacts to
consider and getting test coverage on legacy ISA hardware a nightmare.
This would allow to use legacy driver code more or less unchanged.
Haven't given that much thought at all (the idea pretty much originated
from this present mess, but that's all).

There may be other approaches that can be considered, if none of this is
what you had in mind.

Cheers,

Michael