All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Saravana Kannan <saravanak@google.com>
Cc: Olof Johansson <olof@lixom.net>,
	Will McVicker <willmcvicker@google.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	John Stultz <john.stultz@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Lee Jones <lee.jones@linaro.org>,
	"Cc: Android Kernel" <kernel-team@android.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	linux-rtc@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v2 00/12] arm64: Kconfig: Update ARCH_EXYNOS select configs
Date: Fri, 1 Oct 2021 10:19:58 +0200	[thread overview]
Message-ID: <CAMuHMdWhCB_zg6TwjYfz+=vc+_Wd5yzuAAzk=2ToZOQSAyaiJA@mail.gmail.com> (raw)
In-Reply-To: <CAGETcx-b0ea-rqH+fj37sq9SLWY=+ePK94Y6rnLPuNbqFVBWmw@mail.gmail.com>

Hi Saravana,

On Fri, Oct 1, 2021 at 7:24 AM Saravana Kannan <saravanak@google.com> wrote:
> I skimmed through the emails and you all make a lot of good points. It
> looks like you all at least like the idea of being able to have a
> minimal generic kernel where everything that can be a module is a
> module. Please correct me if I'm wrong on that.
>
> I was thinking about this patch series and I was wondering if it'd be
> good to come at it from the other end. Instead of taking the mostly
> builtin generic kernel and trying to rip out drivers as modules (and
> not having enough hardware to test them all) and hitting all these
> issues, we could come at it from the other end.
>
> A config like ARM64_MINIMAL_GENERIC_KERNEL that's off by default. But
> if it's selected, all the "selects" done by the various ARCH_XXX are
> not done any more. Something like:
>
> ARCH_XXX
>     select XXX_CLK1 if !ARM64_MINIMAL_GENERIC_KERNEL
>     select XXX_PINCTRL1 if !ARM64_MINIMAL_GENERIC_KERNEL
>
> ARCH_YYY
>     select YYY_CLK1 if !ARM64_MINIMAL_GENERIC_KERNEL
>     select YYY_PINCTRL1 if !ARM64_MINIMAL_GENERIC_KERNEL
>
> And ARM64_MINIMAL_GENERIC_KERNEL itself would select the absolutely
> mandatory stuff that can never be made into a module like the GIC,
> architectured timer (as Geert mentioned) and UART early console
> driver. I'm not sure if ARM32 has an equivalent to the standardized

While the UART early console can work (assuming the related hardware
setup has been done by the boot loader), the actual serial driver
usually cannot, as it relies on clocks, PM Domains, pin control, which
won't be available until the corresponding modular drivers are loaded.
Actually earlycon is a debug feature, so I'm wondering if you actually
want that in your GKI kernel?

> GIC and arch timer. Basically the minimal kernel would need a timer
> for the scheduler tick and IRQ controller to get the timer IRQ and the
> fixed clock driver if the archtimer uses one to get its frequency and
> the early UART console is pointless as a module (so build it in to
> allow debugging/development).
>
> And then all new drivers, we should make sure are implemented as
> tristate drivers. And we can go back and slowly work on converting
> existing drivers to modules (community effort -- not one person or
> entity) -- at least the ones where the author has hardware or ones
> where the change is very likely to be correct and someone else is
> willing to test it. We'll never be able to support some/all ARM32 (do
> they even have a GIC/arch timer standard?), but at least for ARM64,
> this seems like a viable goal.

Cortex-A7/A15 and later have GIC and architectured timer, so it should
work for contemporary systems.
Cortex-A9 systems may have GIC, and TWD and/or Global Timer (but I've
seen SoCs where the interrupt for the latter was not wired :-(.

What are the plans for other architectures?
I've seen similar patches being applied for e.g. MIPS.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Saravana Kannan <saravanak@google.com>
Cc: Olof Johansson <olof@lixom.net>,
	Will McVicker <willmcvicker@google.com>,
	 Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Russell King <linux@armlinux.org.uk>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	 Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	 Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	 Chanwoo Choi <cw00.choi@samsung.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	 John Stultz <john.stultz@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	 Lee Jones <lee.jones@linaro.org>,
	"Cc: Android Kernel" <kernel-team@android.com>,
	 Linux ARM <linux-arm-kernel@lists.infradead.org>,
	 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	 linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	 "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	linux-rtc@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v2 00/12] arm64: Kconfig: Update ARCH_EXYNOS select configs
Date: Fri, 1 Oct 2021 10:19:58 +0200	[thread overview]
Message-ID: <CAMuHMdWhCB_zg6TwjYfz+=vc+_Wd5yzuAAzk=2ToZOQSAyaiJA@mail.gmail.com> (raw)
In-Reply-To: <CAGETcx-b0ea-rqH+fj37sq9SLWY=+ePK94Y6rnLPuNbqFVBWmw@mail.gmail.com>

Hi Saravana,

On Fri, Oct 1, 2021 at 7:24 AM Saravana Kannan <saravanak@google.com> wrote:
> I skimmed through the emails and you all make a lot of good points. It
> looks like you all at least like the idea of being able to have a
> minimal generic kernel where everything that can be a module is a
> module. Please correct me if I'm wrong on that.
>
> I was thinking about this patch series and I was wondering if it'd be
> good to come at it from the other end. Instead of taking the mostly
> builtin generic kernel and trying to rip out drivers as modules (and
> not having enough hardware to test them all) and hitting all these
> issues, we could come at it from the other end.
>
> A config like ARM64_MINIMAL_GENERIC_KERNEL that's off by default. But
> if it's selected, all the "selects" done by the various ARCH_XXX are
> not done any more. Something like:
>
> ARCH_XXX
>     select XXX_CLK1 if !ARM64_MINIMAL_GENERIC_KERNEL
>     select XXX_PINCTRL1 if !ARM64_MINIMAL_GENERIC_KERNEL
>
> ARCH_YYY
>     select YYY_CLK1 if !ARM64_MINIMAL_GENERIC_KERNEL
>     select YYY_PINCTRL1 if !ARM64_MINIMAL_GENERIC_KERNEL
>
> And ARM64_MINIMAL_GENERIC_KERNEL itself would select the absolutely
> mandatory stuff that can never be made into a module like the GIC,
> architectured timer (as Geert mentioned) and UART early console
> driver. I'm not sure if ARM32 has an equivalent to the standardized

While the UART early console can work (assuming the related hardware
setup has been done by the boot loader), the actual serial driver
usually cannot, as it relies on clocks, PM Domains, pin control, which
won't be available until the corresponding modular drivers are loaded.
Actually earlycon is a debug feature, so I'm wondering if you actually
want that in your GKI kernel?

> GIC and arch timer. Basically the minimal kernel would need a timer
> for the scheduler tick and IRQ controller to get the timer IRQ and the
> fixed clock driver if the archtimer uses one to get its frequency and
> the early UART console is pointless as a module (so build it in to
> allow debugging/development).
>
> And then all new drivers, we should make sure are implemented as
> tristate drivers. And we can go back and slowly work on converting
> existing drivers to modules (community effort -- not one person or
> entity) -- at least the ones where the author has hardware or ones
> where the change is very likely to be correct and someone else is
> willing to test it. We'll never be able to support some/all ARM32 (do
> they even have a GIC/arch timer standard?), but at least for ARM64,
> this seems like a viable goal.

Cortex-A7/A15 and later have GIC and architectured timer, so it should
work for contemporary systems.
Cortex-A9 systems may have GIC, and TWD and/or Global Timer (but I've
seen SoCs where the interrupt for the latter was not wired :-(.

What are the plans for other architectures?
I've seen similar patches being applied for e.g. MIPS.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-10-01  8:20 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-28 23:56 [PATCH v2 00/12] arm64: Kconfig: Update ARCH_EXYNOS select configs Will McVicker
2021-09-28 23:56 ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 01/12] arm64: don't have ARCH_EXYNOS select EXYNOS_CHIPID Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29 13:58   ` (subset) " Krzysztof Kozlowski
2021-09-29 13:58     ` Krzysztof Kozlowski
2021-09-29 14:00   ` Krzysztof Kozlowski
2021-09-29 14:00     ` Krzysztof Kozlowski
2021-09-28 23:56 ` [PATCH v2 02/12] timekeeping: add API for getting timekeeping_suspended Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29  3:42   ` John Stultz
2021-09-29  3:42     ` John Stultz
2021-09-29 20:01     ` Will McVicker
2021-09-29 20:01       ` Will McVicker
2021-09-29 20:46       ` John Stultz
2021-09-29 20:46         ` John Stultz
2021-09-30 18:31         ` Will McVicker
2021-09-30 18:31           ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 03/12] clk: samsung: add support for CPU clocks Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 04/12] clk: samsung: exynos5433: update apollo and atlas clock probing Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 05/12] clk: export __clk_lookup Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-10-08  4:31   ` Stephen Boyd
2021-10-08  4:31     ` Stephen Boyd
2021-09-28 23:56 ` [PATCH v2 06/12] clk: samsung: modularize exynos arm64 clk drivers Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 07/12] clk: samsung: set exynos arm64 clk driver as tristate Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29 13:09   ` Krzysztof Kozlowski
2021-09-29 13:09     ` Krzysztof Kozlowski
2021-09-28 23:56 ` [PATCH v2 08/12] pinctrl: samsung: modularize the ARM and ARM64 pinctrls Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29  2:01   ` Chanho Park
2021-09-29  2:01     ` Chanho Park
2021-09-28 23:56 ` [PATCH v2 09/12] pinctrl: samsung: set PINCTRL_EXYNOS and PINCTRL_SAMSUNG as tristate Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-28 23:56 ` [PATCH v2 10/12] soc: samsung: pmu: modularize the Exynos ARMv8 PMU driver Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29 13:11   ` Krzysztof Kozlowski
2021-09-29 13:11     ` Krzysztof Kozlowski
2021-09-28 23:56 ` [PATCH v2 11/12] soc: samsung: pm_domains: modularize EXYNOS_PM_DOMAINS Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29 13:36   ` Krzysztof Kozlowski
2021-09-29 13:36     ` Krzysztof Kozlowski
2021-09-28 23:56 ` [PATCH v2 12/12] ARM: rtc: remove HAVE_S3C_RTC in favor of direct dependencies Will McVicker
2021-09-28 23:56   ` Will McVicker
2021-09-29 11:52   ` Alexandre Belloni
2021-09-29 11:52     ` Alexandre Belloni
2021-09-29 13:02 ` [PATCH v2 00/12] arm64: Kconfig: Update ARCH_EXYNOS select configs Krzysztof Kozlowski
2021-09-29 13:02   ` Krzysztof Kozlowski
2021-09-29 19:48   ` Will McVicker
2021-09-29 19:48     ` Will McVicker
2021-09-30  6:14     ` Krzysztof Kozlowski
2021-09-30  6:14       ` Krzysztof Kozlowski
2021-09-30  9:01       ` Arnd Bergmann
2021-09-30  9:01         ` Arnd Bergmann
2021-09-30  9:30         ` Lee Jones
2021-09-30  9:30           ` Lee Jones
2021-09-30 10:33           ` Krzysztof Kozlowski
2021-09-30 10:33             ` Krzysztof Kozlowski
2021-09-30 12:34             ` Lee Jones
2021-09-30 12:34               ` Lee Jones
2021-09-30 12:38               ` Krzysztof Kozlowski
2021-09-30 12:38                 ` Krzysztof Kozlowski
2021-09-30 10:05         ` Geert Uytterhoeven
2021-09-30 10:05           ` Geert Uytterhoeven
2021-09-30  9:23       ` Lee Jones
2021-09-30  9:23         ` Lee Jones
2021-09-30 10:17         ` Geert Uytterhoeven
2021-09-30 10:17           ` Geert Uytterhoeven
2021-09-30 10:56           ` Lee Jones
2021-09-30 10:56             ` Lee Jones
2021-09-30 11:25             ` Geert Uytterhoeven
2021-09-30 11:25               ` Geert Uytterhoeven
2021-09-30 12:08               ` Lee Jones
2021-09-30 12:08                 ` Lee Jones
2021-09-30 16:09                 ` Geert Uytterhoeven
2021-09-30 16:09                   ` Geert Uytterhoeven
2021-09-30 10:52         ` Krzysztof Kozlowski
2021-09-30 10:52           ` Krzysztof Kozlowski
2021-09-30 12:32           ` Lee Jones
2021-09-30 12:32             ` Lee Jones
2021-09-30 11:01         ` Tomasz Figa
2021-09-30 11:01           ` Tomasz Figa
2021-09-30 11:27           ` Geert Uytterhoeven
2021-09-30 11:27             ` Geert Uytterhoeven
2021-09-30 11:51           ` Lee Jones
2021-09-30 11:51             ` Lee Jones
2021-09-30 12:10             ` Tomasz Figa
2021-09-30 12:10               ` Tomasz Figa
2021-09-30 12:15               ` Krzysztof Kozlowski
2021-09-30 12:15                 ` Krzysztof Kozlowski
2021-09-30 12:45               ` Lee Jones
2021-09-30 12:45                 ` Lee Jones
2021-10-01  4:01               ` Christoph Hellwig
2021-10-01  4:01                 ` Christoph Hellwig
2021-10-01  4:52                 ` Saravana Kannan
2021-10-01  4:52                   ` Saravana Kannan
2021-10-01  4:55                   ` Christoph Hellwig
2021-10-01  4:55                     ` Christoph Hellwig
2021-09-30 12:21         ` Krzysztof Kozlowski
2021-09-30 12:21           ` Krzysztof Kozlowski
2021-09-30 12:39           ` Lee Jones
2021-09-30 12:39             ` Lee Jones
2021-09-30 13:08             ` Krzysztof Kozlowski
2021-09-30 13:08               ` Krzysztof Kozlowski
2021-09-30 13:29               ` Lee Jones
2021-09-30 13:29                 ` Lee Jones
2021-09-30 16:12                 ` Geert Uytterhoeven
2021-09-30 16:12                   ` Geert Uytterhoeven
2021-09-30 16:21                   ` Lee Jones
2021-09-30 16:21                     ` Lee Jones
2021-09-30 16:26                     ` Geert Uytterhoeven
2021-09-30 16:26                       ` Geert Uytterhoeven
2021-09-30 18:02                       ` Will McVicker
2021-09-30 18:02                         ` Will McVicker
2021-10-01  4:04             ` Christoph Hellwig
2021-10-01  4:04               ` Christoph Hellwig
2021-10-01  4:52     ` Olof Johansson
2021-10-01  4:52       ` Olof Johansson
2021-10-01  5:23       ` Saravana Kannan
2021-10-01  5:23         ` Saravana Kannan
2021-10-01  5:35         ` Olof Johansson
2021-10-01  5:35           ` Olof Johansson
2021-10-01  5:59           ` Will McVicker
2021-10-01  5:59             ` Will McVicker
2021-10-01  8:01             ` Krzysztof Kozlowski
2021-10-01  8:01               ` Krzysztof Kozlowski
2021-10-01  6:02           ` Saravana Kannan
2021-10-01  6:02             ` Saravana Kannan
2021-10-01  6:27             ` Olof Johansson
2021-10-01  6:27               ` Olof Johansson
2021-10-01  6:30               ` Olof Johansson
2021-10-01  6:30                 ` Olof Johansson
2021-10-01 12:00             ` Arnd Bergmann
2021-10-01 12:00               ` Arnd Bergmann
2021-10-01 12:31               ` Lee Jones
2021-10-01 12:31                 ` Lee Jones
2021-10-01 15:43                 ` Olof Johansson
2021-10-01 15:43                   ` Olof Johansson
2021-10-01 11:38           ` Linus Walleij
2021-10-01 11:38             ` Linus Walleij
2021-10-01 11:59           ` Geert Uytterhoeven
2021-10-01 11:59             ` Geert Uytterhoeven
2021-10-01 15:59             ` Olof Johansson
2021-10-01 15:59               ` Olof Johansson
2021-10-01 16:51               ` Will McVicker
2021-10-01 16:51                 ` Will McVicker
2021-10-01 17:15                 ` Olof Johansson
2021-10-01 17:15                   ` Olof Johansson
2021-10-01 17:48                   ` Will McVicker
2021-10-01 17:48                     ` Will McVicker
2021-10-01  8:19         ` Geert Uytterhoeven [this message]
2021-10-01  8:19           ` Geert Uytterhoeven
2021-10-01  9:00           ` Arnd Bergmann
2021-10-01  9:00             ` Arnd Bergmann
2021-10-01 15:27             ` Olof Johansson
2021-10-01 15:27               ` Olof Johansson
2021-10-01 19:26               ` Saravana Kannan
2021-10-01 19:26                 ` Saravana Kannan
2021-10-02  1:47                 ` Tomasz Figa
2021-10-02  1:47                   ` Tomasz Figa
2021-10-02 21:03                 ` Olof Johansson
2021-10-02 21:03                   ` Olof Johansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMuHMdWhCB_zg6TwjYfz+=vc+_Wd5yzuAAzk=2ToZOQSAyaiJA@mail.gmail.com' \
    --to=geert@linux-m68k.org \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=cw00.choi@samsung.com \
    --cc=john.stultz@linaro.org \
    --cc=kernel-team@android.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mturquette@baylibre.com \
    --cc=olof@lixom.net \
    --cc=s.nawrocki@samsung.com \
    --cc=saravanak@google.com \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tomasz.figa@gmail.com \
    --cc=will@kernel.org \
    --cc=willmcvicker@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.