Re: [RFC PATCH] m68k: nommu: Fix behaviour of io macros on non-CF

From: Arnd Bergmann

Date: Mon Apr 13 2026 - 12:54:34 EST


On Sat, Apr 4, 2026, at 04:46, Daniel Palmer wrote:
> Currently for 68000 readl() and friends are broken in that they
> return the value from the bus as-is but should be reading a little
> endian value and swapping it to big endian.
>
> This was found using virtio-mmio on a 68000 virt machine. virtio-mmio
> is little endian even if the emulated machine is big endian. This works
> for MMU m68k because the io macros do what is expected there, but if
> the kernel was built for nommu it breaks.
>
> Potentially this will break some stuff for nommu non-CF m68k users
> but since there are probably 2 or 3 of us in the world I think we
> can work it out.
>
> Suggested-by: Arnd Bergmann <arnd@xxxxxxxxxx>
> Link:
> https://lore.kernel.org/lkml/ada73dc9-edf5-458c-8849-9f9db23ff304@xxxxxxxxxxxxxxxx/
> Signed-off-by: Daniel Palmer <daniel@xxxxxxxx>

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>

It looks like the non-swapping readl() on nommu-m68k predates
the git history, but apparently the coldfire version was fixed
in 4d5303787627 ("m68k: fix read/write multi-byte IO for PCI
on ColdFire") to behave like everything else, and dragonball
appears does not support ISA or PCI buses, so it never used
them.

Arnd