From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8ADC7C433EF for ; Mon, 27 Sep 2021 19:55:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 646D261058 for ; Mon, 27 Sep 2021 19:55:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236677AbhI0T4j (ORCPT ); Mon, 27 Sep 2021 15:56:39 -0400 Received: from mail-vs1-f50.google.com ([209.85.217.50]:35487 "EHLO mail-vs1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235711AbhI0T4j (ORCPT ); Mon, 27 Sep 2021 15:56:39 -0400 Received: by mail-vs1-f50.google.com with SMTP id f18so19525067vsp.2; Mon, 27 Sep 2021 12:55:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/qYkJdocNMf64y4DQpFrkh7ip501uJ0j8evhtC6TmAM=; b=0fIY7wtBFrQO+SJMseuDECznpzHwKHekKh0hLdqAmfbIwq0B6mYPQzgMDu2YxuPqtf amtLQq4QS89LY5IjgacQpn7QsqiNBPPSeqcrEz1/F0i09mGdaA37xnPPoJ1AsLpbmLoA NiJNivANXR9p/MGRcc4tdm77YIkdyhfG9MSo32tSYU6o+KF4yM366uT6qPOQnwfCI0CO 4dpj/lq7ugfLv/SmhXgs1WJGZarmOZ4YRmzCa+zzYdriHtgkZ5vY96nbVny+VnqFl7qa pxXCvGQnEio1lyLqX9NfneZVH0XFjOj6xS5pdReCzKAXTj56Og/cQfoCrzBuaQICP/tf OaXQ== X-Gm-Message-State: AOAM531kFbQND+BtLqfVYl43pKZXCMPWNYEx6Bxi0KBY5dVNsYimYBPH 4jUp+sQNEt02YeqhtElmm+rgzXgxYg6dcXeXx2g= X-Google-Smtp-Source: ABdhPJwPJmXU/Uf1MApSAaImmnQ49AfoZTTvSJ9EYE8DADK73laAy0lsWW8ZIuxb0TKgP4nWS1QiGkDkmY8p1587B1s= X-Received: by 2002:a67:cc1c:: with SMTP id q28mr1689183vsl.37.1632772500240; Mon, 27 Sep 2021 12:55:00 -0700 (PDT) MIME-Version: 1.0 References: <20210920190350.3860821-1-willmcvicker@google.com> <7735b09c-cf1c-5e37-a737-9a330fbacf1e@canonical.com> <5ec72235-add4-d6dd-f89f-ca3941c9878e@canonical.com> In-Reply-To: From: Geert Uytterhoeven Date: Mon, 27 Sep 2021 21:54:48 +0200 Message-ID: Subject: Re: [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs To: Saravana Kannan Cc: Krzysztof Kozlowski , Lee Jones , Will McVicker , Catalin Marinas , Will Deacon , Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , Linus Walleij , Alessandro Zummo , Alexandre Belloni , Android Kernel Team , Linux ARM , Linux Kernel Mailing List , linux-samsung-soc , linux-clk , "open list:GPIO SUBSYSTEM" , linux-rtc@vger.kernel.org, Kevin Hilman Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Hi Saravana, On Mon, Sep 27, 2021 at 8:07 PM Saravana Kannan wrote: > On Mon, Sep 27, 2021 at 1:08 AM Krzysztof Kozlowski > wrote: > > On 25/09/2021 04:17, Saravana Kannan wrote: > > > On Tue, Sep 21, 2021 at 1:25 AM Krzysztof Kozlowski > > > wrote: > > >> On 21/09/2021 10:11, Lee Jones wrote: > > >>> On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote: > > >>>> On 20/09/2021 21:03, Will McVicker wrote: > > >>>>> This patch series tries to address the issue of ARCH_EXYNOS force selecting > > >>>>> a handful of drivers without allowing the vendor to override any of the > > >>>>> default configs. This takes away from the flexibilty of compiling a generic > > >>>>> kernel with exynos kernel modules. For example, it doesn't allow vendors to > > >>>>> modularize these drivers out of the core kernel in order to share a generic > > >>>>> kernel image across multiple devices that require device-specific kernel > > >>>>> modules. > > >>>> > > >>>> You do not address the issue in these patches. The problem you describe > > >>>> is that drivers are not modules and you are not changing them into modules. > > >>> > > >>> The wording is unfortunate. The reason for this change doesn't have > > >>> much to do with kernel modules. > > >>> > > >>> Let's go back in time 18 months or so when Greg KH submitted this [0] > > >>> patch, which you Acked. Greg was trying to solve the problem of not > > >>> having to enable ARCH_EXYNOS on kernels which are designed to be > > >>> platform agnostic (sometimes called Generic Kernels). For some reason > > >>> SERIAL_SAMSUNG is the only symbol with these dependencies, so the > > >>> solution seemed simple and straight forward at the time. > > >>> > > >>> However, For sound reasons Geert NACKed the patch. > > >>> > > >>> Quoting from [1] he says: > > >>> > > >>> "A generic kernel will include Samsung SoC support, hence > > >>> PLAT_SAMSUNG or ARCH_EXYNOS will be enabled." > > >> > > >> Yes, it's correct reasoning. There is also one more use-case - > > >> non-upstreamed (out of tree) platform which wants to use Exynos-specific > > >> drivers. Something like was happening with Apple M1 except that it got > > >> upstreamed and we do not care much about out-of-tree. > > >> > > >>> > > >>> However, since the entry for ARCH_EXYNOS *insists* on building-in a > > >>> bunch of other symbols (via 'select') which will be unused in most > > >>> cases, this is not a currently acceptable approach for many Generic > > >>> Kernels due to size constraints. > > >> > > >> In the mainline kernel there is no such use case. If you want to have > > >> Exynos-whatever-driver (e.g. SERIAL_SAMSUNG or S3C RTC), you should > > >> select ARCH_EXYNOS because otherwise it does not make any sense. Zero > > >> sense. Such kernel won't work. > > >> > > >> It makes sense only if there is some other work, hidden here, where > > >> someone might want to have SERIAL_SAMSUNG or S3C RTC without > > >> ARCH_EXYNOS. Although GKI is not that work because GKI kernel will > > >> select ARCH_EXYNOS. It must select ARCH_EXYNOS if it wants to support > > >> Exynos platforms. > > >> > > >> Therefore I expect first to bring this "some other work, hidden here" to > > >> broader audience, so we can review its use case. > > >> > > >>> > > >>> What this patch does is migrates those symbols from being 'select'ed > > >>> (always built-in with no recourse) to 'default y'. Where the former > > >>> cannot be over-ridden, but the latter can be via a vendor's > > >>> defconfig/fragment. > > >> > > >> It cannot be overridden by vendor fragment because options are not > > >> visible. You cannot change them. > > >> > > >> The patch does nothing in this regard (making them selectable/possible > > >> to disable), which is why I complained. > > >> > > >>> > > >>> I doubt many (any?) of these symbols can be converted to kernel > > >>> modules anyway, as they are required very early on in the boot > > >>> sequence. > > >> > > >> True, some could, some not. Also some platforms are set up via > > >> bootloader, so actually could "survive" till module is loaded from some > > >> initrd. > > > > > > I was trying to chime in, but the discussion got spread out across all > > > the patches. Since the cover letter seems to have everyone, I thought > > > I'd reply here. Hope you don't mind. I'll try to respond/chime in on > > > the various topics that were raised across the patches. > > > > > > Yes, the next patch series would To/Cc folks correctly. William simply > > > forgot to use the --to-cover and --cc-cover options when using git > > > send-email. > > > > > > I agree with you that it doesn't make sense to have ARCH_EXYNOS > > > enabled but to have all the clock drivers exynos compiled out. Then > > > one obviously can't boot an exynos platform using that kernel. > > > > If downstream kernel does not use any upstream platforms (e.g. > > Exynos5433 or Exynos7) and has its own drivers for everything, then > > downstream does not even need ARCH_EXYNOS. Just disable it. > > As Geert pointed out in another reply, that prevents the use of > earlyconsole on an exynos SoC + fully modular generic kernel. Are we > okay with removing the ARCH_EXYNOS dependency on the early console > driver now? IMHO not in upstream, as there is no upstream use yet for not having the dependencies. Even if there was, I think it is good to have dependencies like ARCH_EXYNOS, as they let us partition the (19000, as Arnd said recently) Kconfig symbols into better manageable groups. Without these, we cannot do better than "depends on ARM || ARM64 || COMPILE_TEST". Greg says that's what defconfig files are for, but the arm64 policy is to have a single defconfig file only. But thanks to the ARCH_* symbol, you can take arm64 defconfig, disable the ARCH_* symbols not applicable to your platform, and have a good start for a config file tailored to your platform. Note that works for the arm multi_v*_defconfigs, too. 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D81DC433EF for ; Mon, 27 Sep 2021 19:57:05 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CADA060F6E for ; Mon, 27 Sep 2021 19:57:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CADA060F6E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-m68k.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Kk2QnyPGXYC/JOMEy3DYvNeD0hHBtkBvaOrbFqrtuME=; b=j20rhRsTUXAgU6 /xd7fPZUPOA/dHIt0fFKmL7wr1CVznjT+GzC8MaJcdVQcad/lvMm5QTLKcxR2OSioIS3S8p5ktHrl TrNon7D6nsIKAHWntCaPIMz6w7pfTae1pJogpYHBUcBlVgMppZHShKd/O5BGfpO9jpUtxyGDzWqUP XE2b4hApFBk648pthGiYyulPh2zeWIQo2dYFutz5cac2LSW0bw2He5CKiKtRK0qyNG8sNlJ02Gc0z 1urnMYPovYJR75uwZedynH0s0TcrKY8BBPiLbVC8Y5lCSopkl58WoQVhLDcJQVzBLG0HYzmvCjxR8 v0HiYWX0Ww+bo6d2XyWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUwiQ-004489-4O; Mon, 27 Sep 2021 19:55:06 +0000 Received: from mail-vs1-f45.google.com ([209.85.217.45]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUwiL-00446r-LJ for linux-arm-kernel@lists.infradead.org; Mon, 27 Sep 2021 19:55:03 +0000 Received: by mail-vs1-f45.google.com with SMTP id 188so18517162vsv.0 for ; Mon, 27 Sep 2021 12:55:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/qYkJdocNMf64y4DQpFrkh7ip501uJ0j8evhtC6TmAM=; b=8Dj0p0ufjaZtgg3P6ERC8bfOkm4kyBNN0ldjSbsiOBdPfFwZWG3xRJPQNjxYrv/m1h HNZzUMVNGq3PPX3CssHaQWf4snSVY00k+7UL1GPMlrAAoySd2VJwvH3e6mWiTOZGl1+A Z543Z7h6WzZnezBlNo4nCMlEwFonzWZ8AkK4kAvCmLu392t0bnLe9/90Fa1NIk3q9rvl Ja5m+TbngBTxtNI2/rnhWjAk0KxjCOkBjmYInQZDjYgfRG9hiKPUHGDwdrA1wQbhms4z RhT5viJMAS4StNC5htzGPwzfkPDtpLR1mToV2ZkgFmgtLwuB6eJB1bmeOoHtgqSKut56 3lrw== X-Gm-Message-State: AOAM531A6scZf7a1bm/Uo5EEUSSESpF9czL/81TSKny22tQBq+1kMXlo iNb4h/rzlsqTvrYZifdxIg2AEWNOgLHBeSdoml8= X-Google-Smtp-Source: ABdhPJwPJmXU/Uf1MApSAaImmnQ49AfoZTTvSJ9EYE8DADK73laAy0lsWW8ZIuxb0TKgP4nWS1QiGkDkmY8p1587B1s= X-Received: by 2002:a67:cc1c:: with SMTP id q28mr1689183vsl.37.1632772500240; Mon, 27 Sep 2021 12:55:00 -0700 (PDT) MIME-Version: 1.0 References: <20210920190350.3860821-1-willmcvicker@google.com> <7735b09c-cf1c-5e37-a737-9a330fbacf1e@canonical.com> <5ec72235-add4-d6dd-f89f-ca3941c9878e@canonical.com> In-Reply-To: From: Geert Uytterhoeven Date: Mon, 27 Sep 2021 21:54:48 +0200 Message-ID: Subject: Re: [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs To: Saravana Kannan Cc: Krzysztof Kozlowski , Lee Jones , Will McVicker , Catalin Marinas , Will Deacon , Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , Linus Walleij , Alessandro Zummo , Alexandre Belloni , Android Kernel Team , Linux ARM , Linux Kernel Mailing List , linux-samsung-soc , linux-clk , "open list:GPIO SUBSYSTEM" , linux-rtc@vger.kernel.org, Kevin Hilman X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210927_125501_783808_0ED133DA X-CRM114-Status: GOOD ( 64.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Saravana, On Mon, Sep 27, 2021 at 8:07 PM Saravana Kannan wrote: > On Mon, Sep 27, 2021 at 1:08 AM Krzysztof Kozlowski > wrote: > > On 25/09/2021 04:17, Saravana Kannan wrote: > > > On Tue, Sep 21, 2021 at 1:25 AM Krzysztof Kozlowski > > > wrote: > > >> On 21/09/2021 10:11, Lee Jones wrote: > > >>> On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote: > > >>>> On 20/09/2021 21:03, Will McVicker wrote: > > >>>>> This patch series tries to address the issue of ARCH_EXYNOS force selecting > > >>>>> a handful of drivers without allowing the vendor to override any of the > > >>>>> default configs. This takes away from the flexibilty of compiling a generic > > >>>>> kernel with exynos kernel modules. For example, it doesn't allow vendors to > > >>>>> modularize these drivers out of the core kernel in order to share a generic > > >>>>> kernel image across multiple devices that require device-specific kernel > > >>>>> modules. > > >>>> > > >>>> You do not address the issue in these patches. The problem you describe > > >>>> is that drivers are not modules and you are not changing them into modules. > > >>> > > >>> The wording is unfortunate. The reason for this change doesn't have > > >>> much to do with kernel modules. > > >>> > > >>> Let's go back in time 18 months or so when Greg KH submitted this [0] > > >>> patch, which you Acked. Greg was trying to solve the problem of not > > >>> having to enable ARCH_EXYNOS on kernels which are designed to be > > >>> platform agnostic (sometimes called Generic Kernels). For some reason > > >>> SERIAL_SAMSUNG is the only symbol with these dependencies, so the > > >>> solution seemed simple and straight forward at the time. > > >>> > > >>> However, For sound reasons Geert NACKed the patch. > > >>> > > >>> Quoting from [1] he says: > > >>> > > >>> "A generic kernel will include Samsung SoC support, hence > > >>> PLAT_SAMSUNG or ARCH_EXYNOS will be enabled." > > >> > > >> Yes, it's correct reasoning. There is also one more use-case - > > >> non-upstreamed (out of tree) platform which wants to use Exynos-specific > > >> drivers. Something like was happening with Apple M1 except that it got > > >> upstreamed and we do not care much about out-of-tree. > > >> > > >>> > > >>> However, since the entry for ARCH_EXYNOS *insists* on building-in a > > >>> bunch of other symbols (via 'select') which will be unused in most > > >>> cases, this is not a currently acceptable approach for many Generic > > >>> Kernels due to size constraints. > > >> > > >> In the mainline kernel there is no such use case. If you want to have > > >> Exynos-whatever-driver (e.g. SERIAL_SAMSUNG or S3C RTC), you should > > >> select ARCH_EXYNOS because otherwise it does not make any sense. Zero > > >> sense. Such kernel won't work. > > >> > > >> It makes sense only if there is some other work, hidden here, where > > >> someone might want to have SERIAL_SAMSUNG or S3C RTC without > > >> ARCH_EXYNOS. Although GKI is not that work because GKI kernel will > > >> select ARCH_EXYNOS. It must select ARCH_EXYNOS if it wants to support > > >> Exynos platforms. > > >> > > >> Therefore I expect first to bring this "some other work, hidden here" to > > >> broader audience, so we can review its use case. > > >> > > >>> > > >>> What this patch does is migrates those symbols from being 'select'ed > > >>> (always built-in with no recourse) to 'default y'. Where the former > > >>> cannot be over-ridden, but the latter can be via a vendor's > > >>> defconfig/fragment. > > >> > > >> It cannot be overridden by vendor fragment because options are not > > >> visible. You cannot change them. > > >> > > >> The patch does nothing in this regard (making them selectable/possible > > >> to disable), which is why I complained. > > >> > > >>> > > >>> I doubt many (any?) of these symbols can be converted to kernel > > >>> modules anyway, as they are required very early on in the boot > > >>> sequence. > > >> > > >> True, some could, some not. Also some platforms are set up via > > >> bootloader, so actually could "survive" till module is loaded from some > > >> initrd. > > > > > > I was trying to chime in, but the discussion got spread out across all > > > the patches. Since the cover letter seems to have everyone, I thought > > > I'd reply here. Hope you don't mind. I'll try to respond/chime in on > > > the various topics that were raised across the patches. > > > > > > Yes, the next patch series would To/Cc folks correctly. William simply > > > forgot to use the --to-cover and --cc-cover options when using git > > > send-email. > > > > > > I agree with you that it doesn't make sense to have ARCH_EXYNOS > > > enabled but to have all the clock drivers exynos compiled out. Then > > > one obviously can't boot an exynos platform using that kernel. > > > > If downstream kernel does not use any upstream platforms (e.g. > > Exynos5433 or Exynos7) and has its own drivers for everything, then > > downstream does not even need ARCH_EXYNOS. Just disable it. > > As Geert pointed out in another reply, that prevents the use of > earlyconsole on an exynos SoC + fully modular generic kernel. Are we > okay with removing the ARCH_EXYNOS dependency on the early console > driver now? IMHO not in upstream, as there is no upstream use yet for not having the dependencies. Even if there was, I think it is good to have dependencies like ARCH_EXYNOS, as they let us partition the (19000, as Arnd said recently) Kconfig symbols into better manageable groups. Without these, we cannot do better than "depends on ARM || ARM64 || COMPILE_TEST". Greg says that's what defconfig files are for, but the arm64 policy is to have a single defconfig file only. But thanks to the ARCH_* symbol, you can take arm64 defconfig, disable the ARCH_* symbols not applicable to your platform, and have a good start for a config file tailored to your platform. Note that works for the arm multi_v*_defconfigs, too. 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