Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

David Woodhouse
2008-02-08T09:04:48Z

On Thu, 2008-02-07 at 21:23 +0100, Sam Ravnborg wrote:
> Both situations are trivially fixable by introducing
> HAVE_IDE and HAVE_MTD.
> See attached patch.

HAVE_MTD is wrong. The actual problem we're trying to solve is that when
the architecture lacks alignment fixups, certain patterns of write
access to 16-bit or 32-bit NOR flash arrays are broken. So it's not
'MTD' which should be conditional -- but only certain configurations of
NOR flash, which could perhaps be prevented by disallowing any of the
MTD_MAP_BANK_WIDTH_* options other than MTD_MAP_BANK_WIDTH_1 from being
set.

And it's not just an ARM-specific problem; a number of our MMU-less
architectures also lack alignment traps now. It _used_ to be the case
that platforms without alignment fixups were simply considered to be
broken -- if the hardware didn't support unaligned access, either
natively or through traps, it just wasn't supported by Linux. But since
that isn't really the case any more, perhaps we should seek a better
option than just disabling certain functionality (or _not_ disabling it,
in the case of the network stack, and just kind of praying that it works
even though we don't really think it does).

We could add get_unaligned() in certain places in the code, but that
isn't ideal for the majority of architectures. What we really want, I
suppose, is get_something_which_may_be_but_probably_is_not_unaligned().

With a better name.

--
dwmw2