On Wed, Mar 03, 2021 at 11:38:39AM +0100, Krzysztof Kozlowski wrote:
This is so far component of a SoC, so it cannot be re-used outside of
SoC. Unless it appears in a new SoC (just like recent re-use of Samsung
serial driver for Apple M1). Because of the architecture, you cannot
build universal kernel without ARCH_EXYNOS. You need it. Otherwise the
kernel won't boot on hardware with DWC Exynos.
So, to create a "generic" arm64 kernel, I need to go enable all of the
ARCH_* variants as well? I thought we were trying to NOT do the same
mess that arm32 had for this type of thing.
Since DWC Exynos won't work without ARCH_EXYNOS - the user will not get
any usable binary - I think all, or almost all, SoC specific drivers are
limited per ARCH. This limits the amount of choices for distro people
and other kernel configuring folks, so they won't have to consider
useless options.
Why do we have ARCH_EXYNOS at all? x86-64 doesn't have this, why is
arm64 somehow special here?
That's my complaint, it feels wrong that I have to go and enable all
different ARCH_ symbols just to build these drivers. If people want
'default' configurations, then provide an exynos default config file,
right?
Anyway, that's the convention or consensus so far for entire SoC. If we
want to change it - sure, but let's make it for everyone, not for just
this one USB driver.
Great, let's change it for everyone, I don't see a need for ARCH_*
symbols except for people who want to make it simpler for their one
board type. And for that, use a defconfig.
I've complained about this before, from a driver subsystem maintainer
point of view, this is crazy, drivers should be building and working on
everything. Worst case, it's a cpu-type issue, to build or not build a
driver (i.e. s390, i386), best case it's a feature-type issue to depend
on (i.e. USB, TTY, etc.). But never a "this one sub-architecture of
this one cpu"-type issue. That feels crazy to me...