Message ID | 20230320211451.2512800-1-chris.packham@alliedtelesis.co.nz |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1449944wrt; Mon, 20 Mar 2023 14:38:33 -0700 (PDT) X-Google-Smtp-Source: AK7set/XmnSXQhOvxyuveDAkoxAWNIBTQbGrGIzLMDagCPRfJaoY9pTXNcgyOz7HUusqil0AfknZ X-Received: by 2002:a05:6a20:69a3:b0:cb:e735:65a5 with SMTP id t35-20020a056a2069a300b000cbe73565a5mr28113075pzk.40.1679348312723; Mon, 20 Mar 2023 14:38:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679348312; cv=none; d=google.com; s=arc-20160816; b=fsyurNyKLMQeMhrQ8Vy7sXr0WLuDN6LoyrwmGlZrgrHgsjR5sI8w3qxVbhnaTdq6fI oLMNvrfRNm9dvWs5ALCRwgf2FU8JqXZdCS7obcyPQZ33/8fYueQP/NotpxkWwpTZoHO8 glWylBoJf6byY3wigyyWBHtJyJDtkJsRkhjZdBNo90foCZkln90xyvz7n+2gPNWbZ8YO b8c8BIuOVQbfVlu90PX/oc1QrOl7EOPVe94x7xYlsl0fD+j4LkR3VfH2UBMQ111sjXYI xL8KV2DJvOAvM15Y+h0YDErl4x+nFf2Cr3u9+zG4V8n58GaZ9cXurD9MfAaInuGh5Q/B cwQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=5fbUoPoaf6SIruAr40HkxELYXpDyUBwBU0mIygv7a/Q=; b=fWo74uedvDU+F1cJaS0N21BHN9zhDlmFKzJMzAWblt3Zb55yrCar7nzK4o8XiHbix3 PtefcQW2gGKAqIxI2Y2fjU5MwVS6+BX9K7FkSeY2cqrnfeRRwSdG6KoO4jZ70JWFMLEH wIdzQKPBRoVUHMyN0D9s9+s1AEKkF61I9OUehoKZA6AHn/xykKIPjtL4Jp4CGVGoP/u0 /aX/lgi0sbudkYmhsS+qOnoThcHyZbaC/Am+QrTvCL5CdG55spCUBBTILGM5iWowN/Vi yF/53yW0+srFzwE9NhNahddOmA3CzDQvxtfuG6WW/uMUQzwip/sXs1WcgE6mMkw4gGwn /52g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b=gyE7Aosa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=alliedtelesis.co.nz Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y71-20020a638a4a000000b0050fa9bc63cbsi44188pgd.432.2023.03.20.14.38.20; Mon, 20 Mar 2023 14:38:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b=gyE7Aosa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=alliedtelesis.co.nz Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229768AbjCTVPG (ORCPT <rfc822;pusanteemu@gmail.com> + 99 others); Mon, 20 Mar 2023 17:15:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37610 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbjCTVPF (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 20 Mar 2023 17:15:05 -0400 Received: from gate2.alliedtelesis.co.nz (gate2.alliedtelesis.co.nz [IPv6:2001:df5:b000:5::4]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DC3726A8 for <linux-kernel@vger.kernel.org>; Mon, 20 Mar 2023 14:15:02 -0700 (PDT) Received: from svr-chch-seg1.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 991E82C02A8; Tue, 21 Mar 2023 10:15:00 +1300 (NZDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail181024; t=1679346900; bh=5fbUoPoaf6SIruAr40HkxELYXpDyUBwBU0mIygv7a/Q=; h=From:To:Cc:Subject:Date:From; b=gyE7AosaQVDk1Xjj+wC/8SLZPl+EIj0XpVBPHFZh03efZqJKTr1b62HkYZ/VID36S EFTlMgcfF43pgdOijOv4uH9+Lc96ThWryhrZZyRPBiDGtWnbJExIo0lrkmPo/72JNu xuxDa8Po/8JOPXYbJfw4eHT73s+vl5xcgqLM0suJjVodswZOYyyuhaEhzxsA25vWZY BPokAre/U3K3hbGOjzpzS7Q3WLCbI2cGUZPh7xhlDbcL5tij3jqbmk/brwZmMgae4T I3OSjyMw86521pfN9kTnqt2Daj5hEtv+UY1hpSMVlV7kVLYflwBpw71VPFoMOAQgGl rjj6ayIBqm13g== Received: from pat.atlnz.lc (Not Verified[10.32.16.33]) by svr-chch-seg1.atlnz.lc with Trustwave SEG (v8,2,6,11305) id <B6418ccd40001>; Tue, 21 Mar 2023 10:15:00 +1300 Received: from chrisp-dl.ws.atlnz.lc (chrisp-dl.ws.atlnz.lc [10.33.22.30]) by pat.atlnz.lc (Postfix) with ESMTP id 79B5513ED0C; Tue, 21 Mar 2023 10:15:00 +1300 (NZDT) Received: by chrisp-dl.ws.atlnz.lc (Postfix, from userid 1030) id 75BF0282452; Tue, 21 Mar 2023 10:15:00 +1300 (NZDT) From: Chris Packham <chris.packham@alliedtelesis.co.nz> To: catalin.marinas@arm.com, will@kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Chris Packham <chris.packham@alliedtelesis.co.nz> Subject: [PATCH] arm64: Support CMDLINE_EXTEND Date: Tue, 21 Mar 2023 10:14:51 +1300 Message-Id: <20230320211451.2512800-1-chris.packham@alliedtelesis.co.nz> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SEG-SpamProfiler-Analysis: v=2.3 cv=F6spiZpN c=1 sm=1 tr=0 a=KLBiSEs5mFS1a/PbTCJxuA==:117 a=k__wU0fu6RkA:10 a=Q_Ijp8T_OeaM2KZaP48A:9 X-SEG-SpamProfiler-Score: 0 x-atlnz-ls: pat X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760924336320063244?= X-GMAIL-MSGID: =?utf-8?q?1760924336320063244?= |
Series |
arm64: Support CMDLINE_EXTEND
|
|
Commit Message
Chris Packham
March 20, 2023, 9:14 p.m. UTC
Support extending the bootloader provided command line for arm64
targets. This support is already present via generic DT/EFI code the
only thing required is for the architecture to make it selectable.
Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
arch/arm64/Kconfig | 6 ++++++
1 file changed, 6 insertions(+)
Comments
Hello Chris, On 3/21/23 02:44, Chris Packham wrote: > Support extending the bootloader provided command line for arm64 > targets. This support is already present via generic DT/EFI code the > only thing required is for the architecture to make it selectable. Does this config really depend on given platform's active support or it is just matter of selecting this for interested platforms ? Could this config definition be unified in a single place i.e arch/Kconfig and be selected (unconditionally or conditionally) on all subscribing platforms. There seems to be a redundancy in defining the exact same config the same way, on multiple platforms. $git grep "config CMDLINE_EXTEND" arch/arm/Kconfig:config CMDLINE_EXTEND arch/loongarch/Kconfig:config CMDLINE_EXTEND arch/powerpc/Kconfig:config CMDLINE_EXTEND arch/riscv/Kconfig:config CMDLINE_EXTEND arch/sh/Kconfig:config CMDLINE_EXTEND I guess this redundancy should be removed as a pre-requisite, before enabling it on arm64 as proposed here, which in itself seems alright. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > --- > arch/arm64/Kconfig | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 1023e896d46b..3c837b085f21 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -2228,6 +2228,12 @@ config CMDLINE_FROM_BOOTLOADER > the boot loader doesn't provide any, the default kernel command > string provided in CMDLINE will be used. > > +config CMDLINE_EXTEND > + bool "Extend bootloader kernel arguments" > + help > + The command-line arguments provided by the boot loader will be > + appended to the default kernel command string. > + > config CMDLINE_FORCE > bool "Always use the default kernel command string" > help
Hi, On 21/03/23 16:54, Anshuman Khandual wrote: > Hello Chris, > > On 3/21/23 02:44, Chris Packham wrote: >> Support extending the bootloader provided command line for arm64 >> targets. This support is already present via generic DT/EFI code the >> only thing required is for the architecture to make it selectable. > Does this config really depend on given platform's active support or > it is just matter of selecting this for interested platforms ? Most modern platforms using DT or UEFI should be able to use the common code. There are some older ones (arm and powerpc) that have other/legacy methods of passing the kernel command line so retaining support for that while at the same time providing support for the generic methods as well could get tricky. It looks as though it won't be too bad as the code seems to use the same Kconfig options. > Could > this config definition be unified in a single place i.e arch/Kconfig > and be selected (unconditionally or conditionally) on all subscribing > platforms. There seems to be a redundancy in defining the exact same > config the same way, on multiple platforms. > > $git grep "config CMDLINE_EXTEND" > > arch/arm/Kconfig:config CMDLINE_EXTEND > arch/loongarch/Kconfig:config CMDLINE_EXTEND > arch/powerpc/Kconfig:config CMDLINE_EXTEND > arch/riscv/Kconfig:config CMDLINE_EXTEND > arch/sh/Kconfig:config CMDLINE_EXTEND Same applies to CMDLINE_FROM_BOOTLOADER/CMDLINE_FORCE. Although sh uses CMDLINE_OVERWRITE instead of CMDLINE_FORCE. I guess it'd be possible to move it to some common place and have the arches source it like they do for things like power management. > I guess this redundancy should be removed as a pre-requisite, before > enabling it on arm64 as proposed here, which in itself seems alright. I was kind of hoping it wouldn't be a pre-requisite mainly because it turns a quick patch I can actually test on hardware I have in front of me to something that I can't test on half the platforms that are affected. I also haven't had to co-ordinate a change across 6 maintainer trees before. But I guess I can give it a try if that's the only way of getting it in. > >> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> >> --- >> arch/arm64/Kconfig | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >> index 1023e896d46b..3c837b085f21 100644 >> --- a/arch/arm64/Kconfig >> +++ b/arch/arm64/Kconfig >> @@ -2228,6 +2228,12 @@ config CMDLINE_FROM_BOOTLOADER >> the boot loader doesn't provide any, the default kernel command >> string provided in CMDLINE will be used. >> >> +config CMDLINE_EXTEND >> + bool "Extend bootloader kernel arguments" >> + help >> + The command-line arguments provided by the boot loader will be >> + appended to the default kernel command string. >> + >> config CMDLINE_FORCE >> bool "Always use the default kernel command string" >> help
On 3/21/23 02:44, Chris Packham wrote: > Support extending the bootloader provided command line for arm64 > targets. This support is already present via generic DT/EFI code the > only thing required is for the architecture to make it selectable. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > --- > arch/arm64/Kconfig | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 1023e896d46b..3c837b085f21 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -2228,6 +2228,12 @@ config CMDLINE_FROM_BOOTLOADER > the boot loader doesn't provide any, the default kernel command > string provided in CMDLINE will be used. > > +config CMDLINE_EXTEND > + bool "Extend bootloader kernel arguments" > + help > + The command-line arguments provided by the boot loader will be > + appended to the default kernel command string. > + > config CMDLINE_FORCE > bool "Always use the default kernel command string" > help LGTM, FWIW Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
On Tue, Mar 21, 2023 at 10:14:51AM +1300, Chris Packham wrote: > Support extending the bootloader provided command line for arm64 > targets. This support is already present via generic DT/EFI code the > only thing required is for the architecture to make it selectable. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> We deliberately dropped support for CMDLINE_EXTEND in commit: cae118b6acc3 ("arm64: Drop support for CMDLINE_EXTEND") ... which was mentioned the last time somone tried to re-add it: https://lore.kernel.org/linux-arm-kernel/ZAh8dWvbNkVQT11C@arm.com/ Has something changes such that those issues no longer apply? If so, please call that out explicitly in the commit message. If not, I do not think we should take this patch. Thanks, Mark. > --- > arch/arm64/Kconfig | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 1023e896d46b..3c837b085f21 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -2228,6 +2228,12 @@ config CMDLINE_FROM_BOOTLOADER > the boot loader doesn't provide any, the default kernel command > string provided in CMDLINE will be used. > > +config CMDLINE_EXTEND > + bool "Extend bootloader kernel arguments" > + help > + The command-line arguments provided by the boot loader will be > + appended to the default kernel command string. > + > config CMDLINE_FORCE > bool "Always use the default kernel command string" > help > -- > 2.40.0 >
On Tue, Mar 21, 2023 at 11:19:55AM +0000, Mark Rutland wrote: > We deliberately dropped support for CMDLINE_EXTEND in commit: > cae118b6acc3 ("arm64: Drop support for CMDLINE_EXTEND") > ... which was mentioned the last time somone tried to re-add it: > https://lore.kernel.org/linux-arm-kernel/ZAh8dWvbNkVQT11C@arm.com/ > Has something changes such that those issues no longer apply? If so, please > call that out explicitly in the commit message. If not, I do not think we > should take this patch. Given that there have been multiple attempts to readd it is it worth documenting this in the code?
On 22/03/23 08:06, Mark Brown wrote: > On Tue, Mar 21, 2023 at 11:19:55AM +0000, Mark Rutland wrote: > >> We deliberately dropped support for CMDLINE_EXTEND in commit: >> cae118b6acc3 ("arm64: Drop support for CMDLINE_EXTEND") >> ... which was mentioned the last time somone tried to re-add it: >> https://lore.kernel.org/linux-arm-kernel/ZAh8dWvbNkVQT11C@arm.com/ >> Has something changes such that those issues no longer apply? I'm not sure I see any "issues" (although perhaps that's just me not being able to find the rest of the series on lore). My specific use case is that I want to have the sbsa_gwdt watchdog driver built-in to the kernel but I also want it to produce panic output instead of silently resetting the board so I want to have sbsa_gwdt.action=1 in my kernel command line. Either appending or prepending that on the command line would work for me. >> If so, please >> call that out explicitly in the commit message. If not, I do not think we >> should take this patch. To save a click here is the relevant part from cae118b6acc3 The documented behaviour for CMDLINE_EXTEND is that the arguments from the bootloader are appended to the built-in kernel command line. This also matches the option parsing behaviour for the EFI stub and early ID register overrides. Bizarrely, the fdt behaviour is the other way around: appending the built-in command line to the bootloader arguments, resulting in a command-line that doesn't necessarily line-up with the parsing order and definitely doesn't line-up with the documented behaviour. This appears to be a current problem for arm an powerpc. If it weren't for the fact that EFI version had different behaviour I'd be suggesting just updating the help text. Maybe that should be done anyway regardless of any unification so that the documentation reflects reality. > Given that there have been multiple attempts to readd it is it worth > documenting this in the code? The proposed CMDLINE_APPEND would work well for my use-case but two attempts at landing such generic support seem to have failed. I could attempt to resurrect [1] or the alternative [2] but I'm worried I'll end up with the same road blocks. Also looks like I just found a 3rd [3]. I hope I haven't kicked a hornets nest here. -- [1] - https://lore.kernel.org/lkml/20190319232448.45964-2-danielwa@cisco.com/ [2] - https://patchwork.ozlabs.org/project/linuxppc-dev/cover/cover.1554195798.git.christophe.leroy@c-s.fr/ [3] - https://lore.kernel.org/lkml/20210416040924.2882771-1-danielwa@cisco.com/
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 1023e896d46b..3c837b085f21 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2228,6 +2228,12 @@ config CMDLINE_FROM_BOOTLOADER the boot loader doesn't provide any, the default kernel command string provided in CMDLINE will be used. +config CMDLINE_EXTEND + bool "Extend bootloader kernel arguments" + help + The command-line arguments provided by the boot loader will be + appended to the default kernel command string. + config CMDLINE_FORCE bool "Always use the default kernel command string" help