From patchwork Fri Nov 10 01:38:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451992 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA7FAC04A95 for ; Fri, 10 Nov 2023 01:39:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345610AbjKJBj1 (ORCPT ); Thu, 9 Nov 2023 20:39:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345552AbjKJBj0 (ORCPT ); Thu, 9 Nov 2023 20:39:26 -0500 Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED3ED44A6; Thu, 9 Nov 2023 17:39:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=15884; q=dns/txt; s=iport; t=1699580364; x=1700789964; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2zpjNmUmWwZwxiataEmxp6v7MvBGFqz3QmaNiU6feSY=; b=O7PzfnA+243B8zcnN88AWCNvCY8RJxAmxW5bHZip8VuUyd/a/kNP/tYP /dykYsR16QUVavwkjwGMAmflpLg5q6XrnxpMN+He6oNMiSrJch15KFQCj IytVPStbzNklPGfOKqPpypV80rMfn48lG/g8iyYhKFoVNa3j7VEaFsUb2 U=; X-CSE-ConnectionGUID: dzObIHfnTia/+UBezvqEaw== X-CSE-MsgGUID: kbYIso6XSayN5H5Lh00lQw== X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="134472536" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-9.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:21 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVH011466; Fri, 10 Nov 2023 01:38:20 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: xe-linux-external@cisco.com, Ruslan Bilovol , linux-kernel@vger.kernel.org Subject: [PATCH 1/8] CMDLINE: add generic builtin command line Date: Thu, 9 Nov 2023 17:38:05 -0800 Message-Id: <20231110013817.2378507-2-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This code allows architectures to use a generic builtin command line. The state of the builtin command line options across architecture is diverse. MIPS and X86 once has similar systems, then mips added some options to allow extending the command line. Powerpc did something simiar in adding the ability to extend. Even with mips and powerpc enhancement the needs of Cisco are not met on these platforms. The code in this commit unifies the code into a generic header file under the CONFIG_GENERIC_CMDLINE option. When this option is enabled the architecture can call the cmdline_add_builtin() to add the builtin command line. The generic code provides both append and/or prepend options and provides a way to redefine these option after the kernel is compiled. This code also includes test's which are meant to confirm functionality. This unified implementation offers the same functionality needed by Cisco on all platform which we enable it on. Cc: xe-linux-external@cisco.com Signed-off-by: Ruslan Bilovol Signed-off-by: Daniel Walker --- include/linux/cmdline.h | 106 ++++++++++++++++++++++++++++++ init/Kconfig | 79 +++++++++++++++++++++++ lib/Kconfig | 4 ++ lib/Makefile | 3 + lib/generic_cmdline.S | 53 +++++++++++++++ lib/test_cmdline1.c | 139 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 384 insertions(+) create mode 100644 include/linux/cmdline.h create mode 100644 lib/generic_cmdline.S create mode 100644 lib/test_cmdline1.c diff --git a/include/linux/cmdline.h b/include/linux/cmdline.h new file mode 100644 index 000000000000..a94758a0f257 --- /dev/null +++ b/include/linux/cmdline.h @@ -0,0 +1,106 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_CMDLINE_H +#define _LINUX_CMDLINE_H +/* + * + * Copyright (C) 2006,2021. Cisco Systems, Inc. + * + * Generic Append/Prepend cmdline support. + */ + + +#include +#include +#include + +#ifdef CONFIG_CMDLINE_BOOL +extern char cmdline_prepend[]; +extern char cmdline_append[]; +extern char cmdline_tmp[]; +#define CMDLINE_PREPEND cmdline_prepend +#define CMDLINE_APPEND cmdline_append +#define CMDLINE_TMP cmdline_tmp +#define CMDLINE_STATIC_PREPEND CONFIG_CMDLINE_PREPEND +#define CMDLINE_STATIC_APPEND CONFIG_CMDLINE_APPEND +#else +#define CMDLINE_PREPEND "" +#define CMDLINE_APPEND "" +#define CMDLINE_TMP "" +#define CMDLINE_STATIC_PREPEND "" +#define CMDLINE_STATIC_APPEND "" +#endif + +#ifndef CMDLINE_STRLCAT +#define CMDLINE_STRLCAT strlcat +#endif + +#ifndef CMDLINE_STRLEN +#define CMDLINE_STRLEN strlen +#endif + +/* + * This function will append or prepend a builtin command line to the command + * line provided by the bootloader. Kconfig options can be used to alter + * the behavior of this builtin command line. + * @dest: The destination of the final appended/prepended string + * @tmp: temporary space used for prepending + * @prepend: string to prepend to @dest + * @append: string to append to @dest + * @length: the maximum length of the strings above. + * @cmdline_strlen: point to a compatible strlen + * @cmdline_strlcat: point to a compatible strlcat + * This function returns true when the builtin command line was copied successfully + * and false when there was not enough room to copy all parts of the command line. + */ +static inline bool +__cmdline_add_builtin( + char *dest, + char *tmp, + char *prepend, + char *append, + unsigned long length, + size_t (*cmdline_strlen)(const char *s), + size_t (*cmdline_strlcat)(char *dest, const char *src, size_t count)) +{ + size_t total_length = 0, tmp_length; + + if (!IS_ENABLED(CONFIG_GENERIC_CMDLINE)) + return true; + + if (!IS_ENABLED(CONFIG_CMDLINE_BOOL)) + return true; + + if (IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) + dest[0] = '\0'; + else + total_length += cmdline_strlen(dest); + + tmp_length = cmdline_strlen(append); + if (tmp_length > 0) { + cmdline_strlcat(dest, append, length); + total_length += tmp_length; + } + + tmp_length = cmdline_strlen(prepend); + if (tmp_length > 0) { + cmdline_strlcat(tmp, prepend, length); + cmdline_strlcat(tmp, dest, length); + dest[0] = '\0'; + cmdline_strlcat(dest, tmp, length); + total_length += tmp_length; + } + + tmp[0] = '\0'; + + if (total_length > length) + return false; + + return true; +} + +#define cmdline_add_builtin(dest) \ + __cmdline_add_builtin(dest, CMDLINE_TMP, CMDLINE_PREPEND, CMDLINE_APPEND, COMMAND_LINE_SIZE, CMDLINE_STRLEN, CMDLINE_STRLCAT) + +#define cmdline_get_static_builtin(dest) \ + (CMDLINE_STATIC_PREPEND CMDLINE_STATIC_APPEND) +#endif diff --git a/init/Kconfig b/init/Kconfig index 6d35728b94b2..703eed88d140 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1922,6 +1922,85 @@ config TRACEPOINTS source "kernel/Kconfig.kexec" +config GENERIC_CMDLINE + bool + +if GENERIC_CMDLINE + +config CMDLINE_BOOL + bool "Built-in kernel command line" + help + Allow for specifying boot arguments to the kernel at + build time. On some systems (e.g. embedded ones), it is + necessary or convenient to provide some or all of the + kernel boot arguments with the kernel itself (that is, + to not rely on the boot loader to provide them.) + + To compile command line arguments into the kernel, + set this option to 'Y', then fill in the + the boot arguments in CONFIG_CMDLINE. + + Systems with fully functional boot loaders (i.e. non-embedded) + should leave this option set to 'N'. + +config CMDLINE_APPEND + string "Built-in kernel command string append" + depends on CMDLINE_BOOL + default "" + help + Enter arguments here that should be compiled into the kernel + image and used at boot time. If the boot loader provides a + command line at boot time, this string is appended to it to + form the full kernel command line, when the system boots. + + However, you can use the CONFIG_CMDLINE_OVERRIDE option to + change this behavior. + + In most cases, the command line (whether built-in or provided + by the boot loader) should specify the device for the root + file system. + +config CMDLINE_PREPEND + string "Built-in kernel command string prepend" + depends on CMDLINE_BOOL + default "" + help + Enter arguments here that should be compiled into the kernel + image and used at boot time. If the boot loader provides a + command line at boot time, this string is prepended to it to + form the full kernel command line, when the system boots. + + However, you can use the CONFIG_CMDLINE_OVERRIDE option to + change this behavior. + + In most cases, the command line (whether built-in or provided + by the boot loader) should specify the device for the root + file system. + +config CMDLINE_EXTRA + bool "Reserve more space for inserting prepend and append without recompiling" + depends on CMDLINE_BOOL + select SYSTEM_EXTRA_CERTIFICATE + help + If set, space for an append and prepend will be reserved in the kernel + image. This allows updating or changing the append and prepend to a large + string then the kernel was compiled for without recompiling the kernel. + + The maximum size is the command line size for each prepend and append. + +config CMDLINE_OVERRIDE + bool "Built-in command line overrides boot loader arguments" + depends on CMDLINE_BOOL + help + Set this option to 'Y' to have the kernel ignore the boot loader + command line, and use ONLY the built-in command line. In this case + append and prepend strings are concatenated to form the full + command line. + + This is used to work around broken boot loaders. This should + be set to 'N' under normal conditions. +endif + endmenu # General setup source "arch/Kconfig" diff --git a/lib/Kconfig b/lib/Kconfig index c686f4adc124..d520f1aa7c32 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -729,6 +729,10 @@ config PARMAN config OBJAGG tristate "objagg" if COMPILE_TEST +config TEST_CMDLINE + depends on CMDLINE_BOOL && !CMDLINE_OVERRIDE + tristate "Test generic command line handling" + endmenu config GENERIC_IOREMAP diff --git a/lib/Makefile b/lib/Makefile index 740109b6e2c8..aa7b14a0ced7 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -438,3 +438,6 @@ $(obj)/$(TEST_FORTIFY_LOG): $(addprefix $(obj)/, $(TEST_FORTIFY_LOGS)) FORCE ifeq ($(CONFIG_FORTIFY_SOURCE),y) $(obj)/string.o: $(obj)/$(TEST_FORTIFY_LOG) endif + +obj-$(CONFIG_TEST_CMDLINE) += test_cmdline1.o +obj-$(CONFIG_CMDLINE_BOOL) += generic_cmdline.o diff --git a/lib/generic_cmdline.S b/lib/generic_cmdline.S new file mode 100644 index 000000000000..223763f9eeb6 --- /dev/null +++ b/lib/generic_cmdline.S @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#include +#include + +#include + + __INITDATA + + .align 8 + .global cmdline_prepend +cmdline_prepend: + .ifnc CONFIG_CMDLINE_PREPEND,"" + .ascii CONFIG_CMDLINE_PREPEND + .string " " + .else + .byte 0x0 + .endif +#ifdef CONFIG_CMDLINE_EXTRA + .space COMMAND_LINE_SIZE - (.-cmdline_prepend) + .size cmdline_prepend, COMMAND_LINE_SIZE +#endif /* CONFIG_CMDLINE_EXTRA */ + +cmdline_prepend_end: + .size cmdline_prepend, (cmdline_prepend_end - cmdline_prepend) + + .align 8 + .global cmdline_tmp +cmdline_tmp: + .ifnc CONFIG_CMDLINE_PREPEND,"" + .size cmdline_tmp, COMMAND_LINE_SIZE + .space COMMAND_LINE_SIZE + .else + .byte 0x0 + .endif +cmdline_tmp_end: + .size cmdline_tmp, (cmdline_tmp_end - cmdline_tmp) + + .align 8 + .global cmdline_append + .size cmdline_append, COMMAND_LINE_SIZE +cmdline_append: + .ifnc CONFIG_CMDLINE_APPEND,"" + .ascii " " + .string CONFIG_CMDLINE_APPEND + .else + .byte 0x0 + .endif +#ifdef CONFIG_CMDLINE_EXTRA + .space COMMAND_LINE_SIZE - (.-cmdline_append) +#endif /* CONFIG_CMDLINE_EXTRA */ +cmdline_append_end: + .size cmdline_append, (cmdline_append_end - cmdline_append) + diff --git a/lib/test_cmdline1.c b/lib/test_cmdline1.c new file mode 100644 index 000000000000..bcaffcc024e4 --- /dev/null +++ b/lib/test_cmdline1.c @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../tools/testing/selftests/kselftest_module.h" + +KSTM_MODULE_GLOBALS(); + +char test1_prepend[] = "prepend "; +char test1_append[] = " append"; +char test1_bootloader_args[] = "console=ttyS0 log_level=3"; +char test1_result[] = "prepend console=ttyS0 log_level=3 append"; + +char test2_append[] = " append"; +char test2_bootloader_args[] = "console=ttyS0 log_level=3"; +char test2_result[] = "console=ttyS0 log_level=3 append"; + +char test3_prepend[] = "prepend "; +char test3_bootloader_args[] = "console=ttyS0 log_level=3"; +char test3_result[] = "prepend console=ttyS0 log_level=3"; + +char test4_bootloader_args[] = "console=ttyS0 log_level=3"; +char test4_result[] = "console=ttyS0 log_level=3"; + +char test5_prepend[] = "prepend "; +char test5_append[] = " append"; +static char test5_bootloader_args[] = +"00000000000000 011111111111111 0222222222222222 033333333333333 " +"10000000000000 111111111111111 1222222222222222 133333333333333 " +"20000000000000 211111111111111 2222222222222222 233333333333333 " +"30000000000000 311111111111111 3222222222222222 333333333333333 " +"40000000000000 411111111111111 4222222222222222 433333333333333 " +"50000000000000 511111111111111 5222222222222222 533333333333333 " +"60000000000000 611111111111111 6222222222222222 633333333333333 " +"70000000000000 711111111111111 7222222222222222 733333333333333"; +static char test5_result[] = +"prepend 00000000000000 011111111111111 0222222222222222 033333333333333 " +"10000000000000 111111111111111 1222222222222222 133333333333333 " +"20000000000000 211111111111111 2222222222222222 233333333333333 " +"30000000000000 311111111111111 3222222222222222 333333333333333 " +"40000000000000 411111111111111 4222222222222222 433333333333333 " +"50000000000000 511111111111111 5222222222222222 533333333333333 " +"60000000000000 611111111111111 6222222222222222 633333333333333 " +"70000000000000 711111111111111 7222222222222222 7333333"; + +char test5_boot_command_line[COMMAND_LINE_SIZE]; + +char test_tmp[COMMAND_LINE_SIZE]; + +char test_boot_command_line[COMMAND_LINE_SIZE]; + +static void __init selftest(void) +{ + bool result; + + /* Normal operation */ + strcpy(test_boot_command_line, test1_bootloader_args); + test_tmp[0] = '\0'; + result = __cmdline_add_builtin(test_boot_command_line, test_tmp, test1_prepend, test1_append, COMMAND_LINE_SIZE, CMDLINE_STRLEN, CMDLINE_STRLCAT); + + if (result == true && !strncmp(test_boot_command_line, test1_result, COMMAND_LINE_SIZE)) { + pr_info("test1 success.\n"); + } else { + pr_info("test1 failed. OUTPUT BELOW:\n"); + pr_info("\"%s\"\n", test_boot_command_line); + failed_tests++; + } + total_tests++; + + /* Missing prepend */ + strcpy(test_boot_command_line, test2_bootloader_args); + test_tmp[0] = '\0'; + result = __cmdline_add_builtin(test_boot_command_line, test_tmp, "", test2_append, COMMAND_LINE_SIZE, CMDLINE_STRLEN, CMDLINE_STRLCAT); + + if (result == true && !strncmp(test_boot_command_line, test2_result, COMMAND_LINE_SIZE)) { + pr_info("test2 success.\n"); + } else { + pr_info("test2 failed. OUTPUT BELOW:\n"); + pr_info("\"%s\"\n", test_boot_command_line); + failed_tests++; + } + total_tests++; + + /* Missing append */ + strcpy(test_boot_command_line, test3_bootloader_args); + test_tmp[0] = '\0'; + result = __cmdline_add_builtin(test_boot_command_line, test_tmp, test3_prepend, "", COMMAND_LINE_SIZE, CMDLINE_STRLEN, CMDLINE_STRLCAT); + + if (result == true && !strncmp(test_boot_command_line, test3_result, COMMAND_LINE_SIZE)) { + pr_info("test3 success.\n"); + } else { + pr_info("test3 failed. OUTPUT BELOW:\n"); + pr_info("\"%s\"\n", test_boot_command_line); + failed_tests++; + } + total_tests++; + + /* Missing append and prepend */ + strcpy(test_boot_command_line, test4_bootloader_args); + test_tmp[0] = '\0'; + result = __cmdline_add_builtin(test_boot_command_line, test_tmp, "", "", COMMAND_LINE_SIZE, CMDLINE_STRLEN, CMDLINE_STRLCAT); + + if (result == true && !strncmp(test_boot_command_line, test4_result, COMMAND_LINE_SIZE)) { + pr_info("test4 success.\n"); + } else { + pr_info("test4 failed. OUTPUT BELOW:\n"); + pr_info("\"%s\"\n", test_boot_command_line); + failed_tests++; + } + total_tests++; + + /* Already full boot arguments */ + strcpy(test5_boot_command_line, test5_bootloader_args); + test_tmp[0] = '\0'; + result = __cmdline_add_builtin(test5_boot_command_line, test_tmp, test5_prepend, test5_append, 512, CMDLINE_STRLEN, CMDLINE_STRLCAT); + + if (result == false && !strncmp(test5_boot_command_line, test5_result, COMMAND_LINE_SIZE)) { + pr_info("test5 success.\n"); + } else { + pr_info("test5 failed. OUTPUT BELOW:\n"); + pr_info("\"%s\"\n", test5_boot_command_line); + failed_tests++; + } + total_tests++; +} + +KSTM_MODULE_LOADERS(cmdline_test); +MODULE_AUTHOR("Daniel Walker "); +MODULE_LICENSE("GPL"); From patchwork Fri Nov 10 01:38:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451993 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F4B8C4332F for ; Fri, 10 Nov 2023 01:39:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345667AbjKJBjd (ORCPT ); Thu, 9 Nov 2023 20:39:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345552AbjKJBj2 (ORCPT ); Thu, 9 Nov 2023 20:39:28 -0500 Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C22D44BA; Thu, 9 Nov 2023 17:39:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8964; q=dns/txt; s=iport; t=1699580366; x=1700789966; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ph2cgjZ6gaQSUAykW430HJcmt2goGg2TB7Xn0db8Fr8=; b=K6jC6q9nucQltdcR9DLyls/sc0OPk4MHsyRDY8j3ipco03uTrJIo0ylb ULvLGzhEox5ZeoPnLRijj1ZRqd0qn4XZHNhwyB3D2q9Twl/6EiLFFL6q/ Hx1DWzZlsrTjv07QUZj5S65mZOPtFKu1NLv8IEnAlWiiSATNnb7hoPAEB E=; X-CSE-ConnectionGUID: zhrdqHU/QkuzLT/zKJjFkQ== X-CSE-MsgGUID: G+b1gXNoRHWSvsGOy/K6pw== X-IPAS-Result: A0AHAADbh01lmJtdJa1aGgEBAQEBAQEBAQEDAQEBARIBAQEBAgIBAQEBgX4CAQEBAQsBhAdASJYxgRaeEANWDwEBAQ9EBAEBhQYChyYCJjcGDgECBAEBAQEDAgMBAQEBAQEBAgEBBQEBAQIBBwQUAQEBAQEBAQEeGQUQDieFdYZNAwMnCwFGEFFXBgESgn6CXwOtV4F5M4EBsyiBaBiBMAGMQ4EehDUnG4FJRIEVgnJ2iwYEiSUHMoIigj6BFI1Lf0daFh0DBwNWKRArBwQtIgYJFC0jBlEEFxEkCRMSPgSBY4FRCn8/Dw4Rgj8iAj02GUiCWxVABEZ2ECoEFBeBEm4bFR43ERIXDQMIdB0CESM8AwUDBDMKEg0LIQUUQgNCBkkLAwIaBQMDBIE2BQ0eAhAtJwMDE00CEBQDOwMDBgMLMQMwVUQMUQNvHxocCTwPDB8CGx4NJygCNUMDEQUSAhYDJBkERQMJAwcFSUADCxgNSBEsNQYOGwY/cwegY2sFAQF7E0OBQ2WTBo8ugh2gR4QXgV+fKhozhAGMc5kPmD8goyKFD4F5JIFbMxoIGxWDIlIZD44pAw0JkxIBXSMyOwIHCwEBAwmLSgEB IronPort-Data: A9a23:MGYXh6qHWLr9tLqmxckn06t/cYFeBmI2YhIvgKrLsJaIsI4StFCzt garIBmGaKuNY2f9Ktx/adi0p0IHscTcnNYySlRlrS0wEysb9+PIVI+TRqvS04x+DSFioGZPt Zh2hgzodZhsJpPkjk7wdOCn9T8ljf3gqoPUUIbsIjp2SRJvVBAvgBdin/9RqoNziLBVOSvV0 T/Ji5OZYATNNwJcaDpOsPva8Us35ZwehRtB1rAATaET1LPhvyF94KI3fcmZM3b+S49IKe+2L 86rIGaRpz6xE78FU7tJo56jGqE4aue60Tum1hK6b5Ofbi1q/UTe5EqU2M00Mi+7gx3R9zx4J U4kWZaYEW/FNYWU8AgRvoUx/yxWZcV7FLH7zXeXo8yJw1TmTjzVwOh8KH1xL646+Mh0ODQbn RAYAGhlghGrnem6xvewTfNhw5hlJ8jwN4RZsXZlpd3bJa95GtaYHOObvpkBgWpYasNmRZ4yY +IVYDxuYRDfajVEO0wcD9Q1m+LAanzXKmYE+ALI/fFti4TV5CMy2uHiAPzSQPy1fttOsWGJ4 UGY53usV3n2M/TGmWbarRpAnNTnmSL9RZJXF7Ci8PNuqEOcy3ZVCxAMU1a/5/6jhSaWX9NZN lwM4iFroaUs3EiqVcXmGRqqpHeOpVgbQdU4O+k77hydj6/V+x2xGGcJVHhCZcYguctwQiYlv neZz43BBjF1trCRD3WH+d+8tj67P24cK2MPfzQDSyMe7tLk5oo0i3rnUtFmGbXzi8D5Ayz2w Dmioy03hrFVhskOv42i4FHMtCqmvJHJSwcd/xjWVWOj5UVyY4vNT4Wr8V3z6fdGMZbcQF6cu nQNh8mZ6qYJF57lvCCERuQAGJmm5vOdPTnRn19kH986/jLo9WSqe4tR+zp5YkxgdNsfERfzZ 0XTkQBc/pleOD2td6AfS4mxEcUx0a/4FdmjUv3OactmaYN+bgia5GdjeCa4wGHplGAvnLs5N JPddtyjZUv2Eox9xzawAuway7JummY1xHjYQtbwyBHPPaeiiGC9W7cfPEKuU6cA776WhDmS4 fV9NeWJ8kAKOAHhWRX//YkWJFEMCHE0A5HqtsBaHtJvxCI7RgnN7NeMnNscl5xZc7d9zbiXo ynsMqNM4B+u2i2dcFTihmVLMeu3Bf5CQWQH0TvA1GtENlA5aoqpqawYbZZyIf8s9fdoyrh/S PxtlyS87hZnFGivF9c1NMSVQGlemPKD2V7m082NPGBXQnKYb1aVkuIIhyO2nMX0MgK5tNElv 5qr3R7BTJwISmxKVZiHOa/ykw3t7SNCxIqeunckxPENIS0AF6A0c0TMYgMff6ng1D2anGLBj lbKafvmjbOR+dFdHCb1aVCs9tf1TLQW8rtyFGjA5rH+LjjB4mem2ud9vBWgI1jguJfP0Pz6P 419lqikWNVexQYim9QnSd5Dk/lhj+YDUpcHlGyI6l2RMQTyYl6hS1HbtfRyWlpln+QJ4VfmB RLTqrG3+9yhYavYLbLYHyJ9Bszr6B3esmC6ASgdSKki2BJKwQ== IronPort-HdrOrdr: A9a23:ZyeMI6AvpK+VkRDlHemX55DYdb4zR+YMi2TDGXocdfUzSL39qy nAppomPHPP4gr5HUtQ+uxoW5PwJE80i6QV3WB5B97LNzUO+lHYTr2KhrGM/9SPIUDDH8dmpM BdmtBFaOEZyTNB/L/HCM7SKadH/OW6 X-Talos-CUID: 9a23:wWqg4GzSMUYp0AaECXDiBgUGGtopa13gi07TPl2cNSF7a5+XZ1yprfY= X-Talos-MUID: 9a23:VBkX/gm8UdLSI3zTlkKadnpNd80x7JSID3otrq4YoOajJGtTZS+C2WE= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="134885032" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-1.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:22 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVI011466; Fri, 10 Nov 2023 01:38:21 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: xe-linux-external@cisco.com, linux-kernel@vger.kernel.org Subject: [PATCH 2/8] scripts: insert-sys-cert: add command line insert capability Date: Thu, 9 Nov 2023 17:38:06 -0800 Message-Id: <20231110013817.2378507-3-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This adds changes to the insert-sys-cert tool to allow updating the cmdline_prepend and cmdline_append symbols in addition to adding certificates. Updating the cmdline symbols was tested on a PVH virtual machine with a vmlinux, and with a bzImage which was repackaged on x86. This commit intentionally keeps the tool filename the same to allow the changes to be seen more easily. The next commit will change the name of the tool. Cc: xe-linux-external@cisco.com Signed-off-by: Daniel Walker --- scripts/insert-sys-cert.c | 241 +++++++++++++++++++++++++++----------- 1 file changed, 170 insertions(+), 71 deletions(-) diff --git a/scripts/insert-sys-cert.c b/scripts/insert-sys-cert.c index 8902836c2342..77d3306cfbfb 100644 --- a/scripts/insert-sys-cert.c +++ b/scripts/insert-sys-cert.c @@ -30,6 +30,9 @@ #define USED_SYM "system_extra_cert_used" #define LSIZE_SYM "system_certificate_list_size" +#define CMDLINE_APPEND "cmdline_append" +#define CMDLINE_PREPEND "cmdline_prepend" + #define info(format, args...) fprintf(stderr, "INFO: " format, ## args) #define warn(format, args...) fprintf(stdout, "WARNING: " format, ## args) #define err(format, args...) fprintf(stderr, "ERROR: " format, ## args) @@ -267,95 +270,46 @@ static void print_sym(Elf_Ehdr *hdr, struct sym *s) static void print_usage(char *e) { - printf("Usage %s [-s ] -b -c \n", e); + printf("Usage %s [-s ] -b [ -c | -p | -a ]-\n", e); } -int main(int argc, char **argv) +static char *cmdline_prepend, *cmdline_append; +static char *system_map_file; +static char *cert_file; +static char *cli_name; + +static int insert_certificate(Elf_Ehdr *hdr) { - char *system_map_file = NULL; - char *vmlinux_file = NULL; - char *cert_file = NULL; - int vmlinux_size; + struct sym cert_sym, lsize_sym, used_sym; + Elf_Shdr *symtab = NULL; + unsigned long *lsize; + FILE *system_map; int cert_size; - Elf_Ehdr *hdr; char *cert; - FILE *system_map; - unsigned long *lsize; int *used; - int opt; - Elf_Shdr *symtab = NULL; - struct sym cert_sym, lsize_sym, used_sym; - - while ((opt = getopt(argc, argv, "b:c:s:")) != -1) { - switch (opt) { - case 's': - system_map_file = optarg; - break; - case 'b': - vmlinux_file = optarg; - break; - case 'c': - cert_file = optarg; - break; - default: - break; - } - } - if (!vmlinux_file || !cert_file) { - print_usage(argv[0]); - exit(EXIT_FAILURE); + if (!cert_file) { + print_usage(cli_name); + return EXIT_FAILURE; } cert = read_file(cert_file, &cert_size); if (!cert) - exit(EXIT_FAILURE); - - hdr = map_file(vmlinux_file, &vmlinux_size); - if (!hdr) - exit(EXIT_FAILURE); - - if (vmlinux_size < sizeof(*hdr)) { - err("Invalid ELF file.\n"); - exit(EXIT_FAILURE); - } - - if ((hdr->e_ident[EI_MAG0] != ELFMAG0) || - (hdr->e_ident[EI_MAG1] != ELFMAG1) || - (hdr->e_ident[EI_MAG2] != ELFMAG2) || - (hdr->e_ident[EI_MAG3] != ELFMAG3)) { - err("Invalid ELF magic.\n"); - exit(EXIT_FAILURE); - } - - if (hdr->e_ident[EI_CLASS] != CURRENT_ELFCLASS) { - err("ELF class mismatch.\n"); - exit(EXIT_FAILURE); - } - - if (hdr->e_ident[EI_DATA] != endianness()) { - err("ELF endian mismatch.\n"); - exit(EXIT_FAILURE); - } - - if (hdr->e_shoff > vmlinux_size) { - err("Could not find section header.\n"); - exit(EXIT_FAILURE); - } + return EXIT_FAILURE; symtab = get_symbol_table(hdr); if (!symtab) { warn("Could not find the symbol table.\n"); if (!system_map_file) { err("Please provide a System.map file.\n"); - print_usage(argv[0]); - exit(EXIT_FAILURE); + print_usage(cli_name); + return EXIT_FAILURE; } system_map = fopen(system_map_file, "r"); if (!system_map) { perror(system_map_file); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } get_symbol_from_map(hdr, system_map, CERT_SYM, &cert_sym); get_symbol_from_map(hdr, system_map, USED_SYM, &used_sym); @@ -371,7 +325,7 @@ int main(int argc, char **argv) } if (!cert_sym.offset || !lsize_sym.offset || !used_sym.offset) - exit(EXIT_FAILURE); + return EXIT_FAILURE; print_sym(hdr, &cert_sym); print_sym(hdr, &used_sym); @@ -382,14 +336,14 @@ int main(int argc, char **argv) if (cert_sym.size < cert_size) { err("Certificate is larger than the reserved area!\n"); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } /* If the existing cert is the same, don't overwrite */ if (cert_size == *used && strncmp(cert_sym.content, cert, cert_size) == 0) { warn("Certificate was already inserted.\n"); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } if (*used > 0) @@ -406,5 +360,150 @@ int main(int argc, char **argv) cert_sym.address); info("Used %d bytes out of %d bytes reserved.\n", *used, cert_sym.size); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; +} + +static int insert_cmdline(Elf_Ehdr *hdr) +{ + struct sym cmdline_prepend_sym, cmdline_append_sym; + Elf_Shdr *symtab = NULL; + FILE *system_map; + + symtab = get_symbol_table(hdr); + if (!symtab) { + warn("Could not find the symbol table.\n"); + if (!system_map_file) { + err("Please provide a System.map file.\n"); + print_usage(cli_name); + return EXIT_FAILURE; + } + + system_map = fopen(system_map_file, "r"); + if (!system_map) { + perror(system_map_file); + return EXIT_FAILURE; + } + get_symbol_from_map(hdr, system_map, CMDLINE_PREPEND, &cmdline_prepend_sym); + get_symbol_from_map(hdr, system_map, CMDLINE_APPEND, &cmdline_append_sym); + } else { + info("Symbol table found.\n"); + if (system_map_file) + warn("System.map is ignored.\n"); + get_symbol_from_table(hdr, symtab, CMDLINE_PREPEND, &cmdline_prepend_sym); + get_symbol_from_table(hdr, symtab, CMDLINE_APPEND, &cmdline_append_sym); + } + + print_sym(hdr, &cmdline_prepend_sym); + print_sym(hdr, &cmdline_append_sym); + + + if (cmdline_prepend) { + if ((strlen(cmdline_prepend) + 1) > cmdline_prepend_sym.size) { + err("cmdline prepend is larger than the reserved area!\n"); + return EXIT_FAILURE; + } + + memcpy(cmdline_prepend_sym.content, cmdline_prepend, strlen(cmdline_prepend) + 1); + if ((strlen(cmdline_prepend) + 1) < cmdline_prepend_sym.size) + memset(cmdline_prepend_sym.content + strlen(cmdline_prepend) + 1, + 0, cmdline_prepend_sym.size - (strlen(cmdline_prepend) + 1)); + + info("Inserted cmdline prepend of \"%s\" into vmlinux.\n", cmdline_prepend); + + } + if (cmdline_append) { + if ((strlen(cmdline_append) + 1) > cmdline_append_sym.size) { + err("cmdline append is larger than the reserved area!\n"); + return EXIT_FAILURE; + } + + memcpy(cmdline_append_sym.content, cmdline_append, strlen(cmdline_append) + 1); + if ((strlen(cmdline_append) + 1) < cmdline_append_sym.size) + memset(cmdline_append_sym.content + strlen(cmdline_append) + 1, + 0, cmdline_append_sym.size - (strlen(cmdline_append) + 1)); + + info("Inserted cmdline append of \"%s\" into vmlinux.\n", cmdline_append); + + } + return EXIT_SUCCESS; +} + +int main(int argc, char **argv) +{ + char *vmlinux_file = NULL; + int vmlinux_size; + Elf_Ehdr *hdr; + int opt; + int ret = EXIT_SUCCESS; + + while ((opt = getopt(argc, argv, "b:c:s:p:a:")) != -1) { + switch (opt) { + case 's': + system_map_file = optarg; + break; + case 'b': + vmlinux_file = optarg; + break; + case 'c': + cert_file = optarg; + break; + case 'p': + cmdline_prepend = optarg; + break; + case 'a': + cmdline_append = optarg; + break; + default: + break; + } + } + + cli_name = argv[0]; + + if (!vmlinux_file) { + print_usage(cli_name); + exit(EXIT_FAILURE); + } + + hdr = map_file(vmlinux_file, &vmlinux_size); + if (!hdr) + exit(EXIT_FAILURE); + + if (vmlinux_size < sizeof(*hdr)) { + err("Invalid ELF file.\n"); + exit(EXIT_FAILURE); + } + + if ((hdr->e_ident[EI_MAG0] != ELFMAG0) || + (hdr->e_ident[EI_MAG1] != ELFMAG1) || + (hdr->e_ident[EI_MAG2] != ELFMAG2) || + (hdr->e_ident[EI_MAG3] != ELFMAG3)) { + err("Invalid ELF magic.\n"); + exit(EXIT_FAILURE); + } + + if (hdr->e_ident[EI_CLASS] != CURRENT_ELFCLASS) { + err("ELF class mismatch.\n"); + exit(EXIT_FAILURE); + } + + if (hdr->e_ident[EI_DATA] != endianness()) { + err("ELF endian mismatch.\n"); + exit(EXIT_FAILURE); + } + + if (hdr->e_shoff > vmlinux_size) { + err("Could not find section header.\n"); + exit(EXIT_FAILURE); + } + + if (cert_file) { + ret = insert_certificate(hdr); + printf("%s\n", cert_file); + } + + if (cmdline_append || cmdline_prepend) + ret = insert_cmdline(hdr); + + exit(ret); } From patchwork Fri Nov 10 01:38:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451994 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D8EEC41535 for ; Fri, 10 Nov 2023 01:39:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345661AbjKJBje (ORCPT ); Thu, 9 Nov 2023 20:39:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345647AbjKJBjc (ORCPT ); Thu, 9 Nov 2023 20:39:32 -0500 Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8BD2144BE; Thu, 9 Nov 2023 17:39:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1933; q=dns/txt; s=iport; t=1699580367; x=1700789967; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c/Q35i8hpBkyhFgxIzufstblbWRm7GVHZuKP0zbOYiw=; b=eIUvkAcz3Zf3aewzoludFTUSjqNGy/3qPf+Ln7RhLI6IaZjU5ywa/iD+ yD5NfCvR9aNvUJb6DAnYHWUpiwFcC0njqyBXpoh/NUGAJaAiwE7MDwLzH IrGtZtJJ7LVdS5R5b3awjau8PujquzOPwbI/Hu8C372RMHHrU6FfL2su0 s=; X-CSE-ConnectionGUID: AFTc024tQGuMjV+1t9ZQ5w== X-CSE-MsgGUID: eo+cn697Sr+idbU1lrqE9A== X-IPAS-Result: A0APAABsiE1lmJtdJa1aHAEBAQEBAQcBARIBAQQEAQGBewcBAQsBhAdASIxvp0OBJQNWDwEBAQ9EBAEBghKCdAKHJgImNAkOAQIEAQEBAQMCAwEBAQEBAQECAQEFAQEBAgEHBBQBAQEBAQEBAR4ZBRAOJ4V1hk0DAzIBRhBRVwYBEoJ+gl8DrViCLIEBsyiBaBiBMAGMQ4EehDUnG4FJRIQHdosGBIklBzIJghmDUoI5A4sPf0daFh0DBwNWKRArBwQtIgYJFC0jBlEEFxEkCRMSPgSBY4FRCn8/Dw4Rgj8iAj02GUiCWxVABEZ2ECoEFBeBEm4bFR43ERIXDQMIdB0CESM8AwUDBDMKEg0LIQUUQgNCBkkLAwIaBQMDBIE2BQ0eAhAtJwMDE00CEBQDOwMDBgMLMQMwVUQMUQNvHxocCTwPDB8CGx4NJygCNUMDEQUSAhYDJBkERQMJAwcFSUADCxgNSBEsNQYOGwY/cwehVAGBDgGlHoIdoEeEF4FfnyoaM4QBpgKYPyCCL6YCgWM6gVszGggbFYMiUhkPjjmTGwFdIzI7AgcLAQEDCYtKAQE IronPort-Data: A9a23:YhR/LK6v4m6WYqedano87wxRtKPAchMFZxGqfqrLsTDasY5as4F+v mUWCmDQafaMamP3ed8iYNjlp0hTu8TQztBjHVdtrXszZn8b8sCt6fZ1gavT04J+CuWZESqLO u1HMoGowPgcFyKa/lH1dOG58RGQ7InQLpLkEunIJyttcgFtTSYlmHpLlvUw6mJSqYDR7zil5 5Wq+KUzBHf/g2QvaztNs/rawP9SlK2aVA0w7wRWic9j5Dcyp1FNZLoDKKe4KWfPQ4U8NoZWk M6akdlVVkuAl/scIovNfoTTKyXmcZaOVeS6sUe6boD56vR0SoPe5Y5gXBYUQR8/ZzxkBLmdw v0V3XC7YV9B0qEhBI3xXjEAexySM5Gq95fuD0S06ZbP03Tpbl7u/bY3EBAEBNAHr7Mf7WFmr ZT0KRgXZRyFwumx2r/+Fq9nh98oK4/gO4Z3VnNIlG6CS615B8GYBfyXuLe03x9o7ixKNfrXY csUbSVmRB/BeBZIfFwQDfrSmc/x3SSnKmMD9wz9Sawf7m+QxwovgefWKpnUdta3HMFPh2vJj zeTl4j+KkhKaIPAodafyVqoh+nSjWb4VZgUGbmQ6PFnmhuQy3YVBRlQUkG0ydG9i0ijS5dcI VEV/iYGs6c/7gqoQ8P7Uhn+p2SL1jYaWtFXF+QhwA+Pw7HQ7kCUGwAsSDJMc9U7sMk3SCYx/ lCOmNztCHpkt7j9YXSU6redqxuxNDITIGtEYjULJSMA6sLqoIApiQPnTdt5FqOxyNrvFlnYx zGMsTgmn75WgcMV/6G65kzcxTW+opHDVUgy/Aq/dmak6B5pIYukf5eA91fW97BDIZyfQ13Hu 2IL8+COvL4mDpyXkiGJBuIXE9mB/PuMNnvVh1JiBYIm8Ry29nWkO4tX5VlWOEBsO91CfCLle lLVugp565paPX/sZqhyC6qoFsUh+rDqD93lU/n8d8dPaZl3f0mM+yQGTUeTx2XFlEkqjLF6N 5CGd8qlEXcdD+Jg1jXeb+sU174mwggxxGbLSJT20RWs0fyFbXjQR60MNlCPdes+qqiN5hjOm /5FMMGK4xZSSuvzZm/Q64F7BVsKN3kgGZfuq8ERcuOZJRtOE3ouEfjM2fUsZuRNgKVRks/L8 2u7V0sez0Dw7UArMi2QYXxlLbjoR5s68TQwPDcnOhCj3H1LjZuTALk3XrULduF9qPBa4uNRT cdGItnRMM0SVWGSk9gCVqXVoItnfRWtoAuBOSu5fTQyF6KMoSSUpLcImSOyqUEz4jqLWdgW+ OL/i1uKKXYXb0EzU5aMMaPHI0aZ5CBFwIpPs130zs6/kXgAHaBwICD3y/QwOcxJdVPIxyCR0 ECdBhJwSQjxT20droWhaUOs9trB/w5C8qxyQzWzAVGeaXGyw4Zb6dUcONtkhBiEPI8OxI2sZ P9O09b3O+AdkVBBvuJUSug6nP9ju4Wz9+QFkmyI+UkniXz1U9uMxVHYhaFyWlFlmte1RCPvA BvUo4kGUVl3EJm5SgB5yPUZghSrjKFIxWa6AQUdK0Th7yg/56ucTUhXJHGxZN91ctNI3Hce6 b554qY+slXn4jJza4bupn4PrQykcCdfO5jLQ7lHWucHfCJxlAEbCXEdYweriKyyhyJkaxJ6e mPE2/qe19yxBCPqKhIOKJQE5sIF7bxmhfyA5AZqy4ih8jYdusIK4Q== IronPort-HdrOrdr: A9a23:6Sa77K7YPMw8nKU2rQPXwPPXdLJyesId70hD6qm+c3Bom6uj5q STdZsguyMc5Ax6ZJhko6HiBEDiewK4yXcK2+gs1N6ZNWGMhILrFvAB0WKI+VLd8kPFm9K1/J 0QFJSWcOeRMbC/5vyKmTVR1L0bsb+6zJw= X-Talos-CUID: 9a23:JiU6l2lHMvS7/y1q5Sbg/y54HMvXOVTz8HyIeROkMEl0bb+rCgaMqZFdztU7zg== X-Talos-MUID: 9a23:82mMYwZLviHIteBTujivjzc8ZZhT+eevBEowyJEcouTVHHkl X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="135016376" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-5.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:24 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVJ011466; Fri, 10 Nov 2023 01:38:23 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier Cc: xe-linux-external@cisco.com, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] scripts: insert-sys-cert: change name to insert-symbol Date: Thu, 9 Nov 2023 17:38:07 -0800 Message-Id: <20231110013817.2378507-4-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org Since the tool is used to update the command line and/or to update the certificates, I think it makes sense to changes the name of this tool. Update the name of the tool to better reflect it's new use. Cc: xe-linux-external@cisco.com Signed-off-by: Daniel Walker --- scripts/Makefile | 2 +- scripts/{insert-sys-cert.c => insert-symbol.c} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename scripts/{insert-sys-cert.c => insert-symbol.c} (99%) diff --git a/scripts/Makefile b/scripts/Makefile index 576cf64be667..2d7618fa5d6b 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -8,10 +8,10 @@ hostprogs-always-$(BUILD_C_RECORDMCOUNT) += recordmcount hostprogs-always-$(CONFIG_BUILDTIME_TABLE_SORT) += sorttable hostprogs-always-$(CONFIG_ASN1) += asn1_compiler hostprogs-always-$(CONFIG_MODULE_SIG_FORMAT) += sign-file -hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert hostprogs-always-$(CONFIG_RUST_KERNEL_DOCTESTS) += rustdoc_test_builder hostprogs-always-$(CONFIG_RUST_KERNEL_DOCTESTS) += rustdoc_test_gen always-$(CONFIG_RUST) += target.json +hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-symbol filechk_rust_target = $< < include/config/auto.conf diff --git a/scripts/insert-sys-cert.c b/scripts/insert-symbol.c similarity index 99% rename from scripts/insert-sys-cert.c rename to scripts/insert-symbol.c index 77d3306cfbfb..6866e3a84974 100644 --- a/scripts/insert-sys-cert.c +++ b/scripts/insert-symbol.c @@ -7,7 +7,7 @@ * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. * - * Usage: insert-sys-cert [-s -b -c + * Usage: insert-symbol [-s -b -c */ #define _GNU_SOURCE From patchwork Fri Nov 10 01:38:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451996 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD093C4332F for ; Fri, 10 Nov 2023 01:39:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345660AbjKJBjg (ORCPT ); Thu, 9 Nov 2023 20:39:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345654AbjKJBje (ORCPT ); Thu, 9 Nov 2023 20:39:34 -0500 Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0F3844BC; Thu, 9 Nov 2023 17:39:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=37012; q=dns/txt; s=iport; t=1699580371; x=1700789971; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vJBa01mKyZaFU95wqbINxHeiLhIt/IfgiGWPZq5C14s=; b=P/tG3jiVE4G6FNGqXZ7C0e+f0G0u9slTGbdSkJx5DbTd448gc6OhMUkt adWcr/DT/65IrZgb3M15XoM9xLp16W16ho/AwK4JQBh/nHWA/GtASYMJn wxmm7JjwS6om0vY/Sydyd2ENgWRVteHs+la61NlKrN1klhJ2cMnb8LyrY g=; X-CSE-ConnectionGUID: rcrZ8nhaTFCvv7RVNa6Ynw== X-CSE-MsgGUID: wLhxpbV3R5C6+zcUb+RAUQ== X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="134585027" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-7.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:28 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVK011466; Fri, 10 Nov 2023 01:38:27 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Thomas Bogendoerfer Cc: xe-linux-external@cisco.com, Ruslan Ruslichenko , Ruslan Bilovol , linux-kernel@vger.kernel.org Subject: [PATCH 4/8] CMDLINE: mips: convert to generic builtin command line Date: Thu, 9 Nov 2023 17:38:08 -0800 Message-Id: <20231110013817.2378507-5-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This updates the mips code to use the CONFIG_GENERIC_CMDLINE option. This deletes the option for MIPS_CMDLINE_BUILTIN_EXTEND and replaces the functionality with generic code. Of note, the pic32 has some strange handling of the current built in command line. It was converted to use the static variant which can't be updated after compilation. It should eventually be updated to use to append and prepend symbols. This includes a scripted mass convert of the config files to use the new generic cmdline. There is a bit of a trim effect here. It would seems that some of the config haven't been trimmed in a while. The script used is as follows, if [[ -z "$1" || -z "$2" ]]; then echo "Two arguments are needed." exit 1 fi mkdir $1 cp $2 $1/.config sed -i 's/CONFIG_CMDLINE=/CONFIG_CMDLINE_BOOL=y\nCONFIG_CMDLINE_PREPEND=/g' $1/.config make ARCH=$1 O=$1 olddefconfig make ARCH=$1 O=$1 savedefconfig cp $1/defconfig $2 rm -Rf $1 Cc: xe-linux-external@cisco.com Signed-off-by: Ruslan Ruslichenko Signed-off-by: Ruslan Bilovol Signed-off-by: Daniel Walker --- arch/mips/Kconfig | 4 +- arch/mips/Kconfig.debug | 44 ------- arch/mips/configs/ar7_defconfig | 12 +- arch/mips/configs/bcm47xx_defconfig | 10 +- arch/mips/configs/bcm63xx_defconfig | 21 ++-- arch/mips/configs/bmips_be_defconfig | 17 ++- arch/mips/configs/bmips_stb_defconfig | 139 ++++++++-------------- arch/mips/configs/ci20_defconfig | 8 +- arch/mips/configs/cu1000-neo_defconfig | 19 ++- arch/mips/configs/cu1830-neo_defconfig | 19 ++- arch/mips/configs/generic_defconfig | 15 +-- arch/mips/configs/gpr_defconfig | 33 ++--- arch/mips/configs/loongson3_defconfig | 29 ++--- arch/mips/include/asm/setup.h | 2 + arch/mips/kernel/relocate.c | 17 ++- arch/mips/kernel/setup.c | 36 +----- arch/mips/pic32/pic32mzda/early_console.c | 2 +- arch/mips/pic32/pic32mzda/init.c | 3 +- 18 files changed, 144 insertions(+), 286 deletions(-) diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index bc8421859006..65fd3decc6b1 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -31,6 +31,7 @@ config MIPS select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1) select CPU_PM if CPU_IDLE select GENERIC_ATOMIC64 if !64BIT + select GENERIC_CMDLINE select GENERIC_CMOS_UPDATE select GENERIC_CPU_AUTOPROBE select GENERIC_GETTIMEOFDAY @@ -2989,9 +2990,6 @@ choice config MIPS_CMDLINE_FROM_BOOTLOADER bool "Bootloader kernel arguments if available" - config MIPS_CMDLINE_BUILTIN_EXTEND - depends on CMDLINE_BOOL - bool "Extend builtin kernel arguments with bootloader arguments" endchoice endmenu diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index f4ae7900fcd3..f9da53d4ebd2 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug @@ -26,50 +26,6 @@ config EARLY_PRINTK_8250 config USE_GENERIC_EARLY_PRINTK_8250 bool -config CMDLINE_BOOL - bool "Built-in kernel command line" - help - For most systems, it is firmware or second stage bootloader that - by default specifies the kernel command line options. However, - it might be necessary or advantageous to either override the - default kernel command line or add a few extra options to it. - For such cases, this option allows you to hardcode your own - command line options directly into the kernel. For that, you - should choose 'Y' here, and fill in the extra boot arguments - in CONFIG_CMDLINE. - - The built-in options will be concatenated to the default command - line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default - command line will be ignored and replaced by the built-in string. - - Most MIPS systems will normally expect 'N' here and rely upon - the command line from the firmware or the second-stage bootloader. - -config CMDLINE - string "Default kernel command string" - depends on CMDLINE_BOOL - help - On some platforms, there is currently no way for the boot loader to - pass arguments to the kernel. For these platforms, and for the cases - when you want to add some extra options to the command line or ignore - the default command line, you can supply some command-line options at - build time by entering them here. In other cases you can specify - kernel args so that you don't have to set them up in board prom - initialization routines. - - For more information, see the CMDLINE_BOOL and CMDLINE_OVERRIDE - options. - -config CMDLINE_OVERRIDE - bool "Built-in command line overrides firmware arguments" - depends on CMDLINE_BOOL - help - By setting this option to 'Y' you will have your kernel ignore - command line arguments from firmware or second stage bootloader. - Instead, the built-in command line will be used exclusively. - - Normally, you will choose 'N' here. - config SB1XXX_CORELIS bool "Corelis Debugger" depends on SIBYTE_SB1xxx_SOC diff --git a/arch/mips/configs/ar7_defconfig b/arch/mips/configs/ar7_defconfig index 329c60aa570a..0dff0795705e 100644 --- a/arch/mips/configs/ar7_defconfig +++ b/arch/mips/configs/ar7_defconfig @@ -9,17 +9,18 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y # CONFIG_ELF_CORE is not set # CONFIG_KALLSYMS is not set -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_COMPAT_BRK is not set +CONFIG_KEXEC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="rootfstype=squashfs,jffs2" CONFIG_AR7=y CONFIG_HZ_100=y -CONFIG_KEXEC=y # CONFIG_SECCOMP is not set CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set CONFIG_PARTITION_ADVANCED=y CONFIG_BSD_DISKLABEL=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y @@ -39,7 +40,6 @@ CONFIG_TCP_CONG_WESTWOOD=y # CONFIG_TCP_CONG_HTCP is not set # CONFIG_IPV6 is not set CONFIG_NETFILTER=y -# CONFIG_BRIDGE_NETFILTER is not set CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_FTP=m @@ -115,5 +115,3 @@ CONFIG_SQUASHFS=y # CONFIG_CRYPTO_HW is not set CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="rootfstype=squashfs,jffs2" diff --git a/arch/mips/configs/bcm47xx_defconfig b/arch/mips/configs/bcm47xx_defconfig index 6a68a96d13f8..26e2134f83af 100644 --- a/arch/mips/configs/bcm47xx_defconfig +++ b/arch/mips/configs/bcm47xx_defconfig @@ -3,8 +3,9 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_BLK_DEV_INITRD=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_EXPERT=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="console=ttyS0,115200" CONFIG_BCM47XX=y -CONFIG_PCI=y # CONFIG_SUSPEND is not set CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y @@ -31,6 +32,7 @@ CONFIG_NET_SCH_FQ_CODEL=y CONFIG_HAMRADIO=y CONFIG_CFG80211=y CONFIG_MAC80211=y +CONFIG_PCI=y CONFIG_MTD=y CONFIG_MTD_BCM47XX_PARTS=y CONFIG_MTD_BLOCK=y @@ -67,14 +69,10 @@ CONFIG_BCMA_DRIVER_GMAC_CMN=y CONFIG_USB=y CONFIG_USB_HCD_BCMA=y CONFIG_USB_HCD_SSB=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_CRC32_SARWATE=y CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_REDUCED=y CONFIG_STRIP_ASM_SYMS=y -CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=ttyS0,115200" +CONFIG_DEBUG_FS=y diff --git a/arch/mips/configs/bcm63xx_defconfig b/arch/mips/configs/bcm63xx_defconfig index 34d0ca638ef0..0a73fd34063f 100644 --- a/arch/mips/configs/bcm63xx_defconfig +++ b/arch/mips/configs/bcm63xx_defconfig @@ -1,5 +1,4 @@ # CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set CONFIG_NO_HZ=y CONFIG_EXPERT=y # CONFIG_FUTEX is not set @@ -9,18 +8,16 @@ CONFIG_EXPERT=y # CONFIG_EVENTFD is not set # CONFIG_SHMEM is not set # CONFIG_AIO is not set -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_SLUB_DEBUG is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="console=ttyS0,115200" CONFIG_BCM63XX=y CONFIG_BCM63XX_CPU_6338=y CONFIG_BCM63XX_CPU_6345=y CONFIG_BCM63XX_CPU_6348=y CONFIG_BCM63XX_CPU_6358=y # CONFIG_SECCOMP is not set -CONFIG_PCI=y -CONFIG_PCCARD=y -CONFIG_PCMCIA_BCM63XX=y -# CONFIG_BLK_DEV_BSG is not set +# CONFIG_SWAP is not set +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_UNIX=y CONFIG_INET=y @@ -29,6 +26,10 @@ CONFIG_INET=y CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_MAC80211=y +CONFIG_PCI=y +# CONFIG_VGA_ARB is not set +CONFIG_PCCARD=y +CONFIG_PCMCIA_BCM63XX=y # CONFIG_STANDALONE is not set # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_MTD=y @@ -47,11 +48,8 @@ CONFIG_B43=y # CONFIG_SERIO is not set # CONFIG_VT is not set # CONFIG_UNIX98_PTYS is not set -CONFIG_SERIAL_BCM63XX=y -CONFIG_SERIAL_BCM63XX_CONSOLE=y # CONFIG_HW_RANDOM is not set # CONFIG_HWMON is not set -# CONFIG_VGA_ARB is not set CONFIG_USB=y CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set @@ -62,5 +60,4 @@ CONFIG_PROC_KCORE=y # CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_CRYPTO_HW is not set CONFIG_MAGIC_SYSRQ=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=ttyS0,115200" +# CONFIG_SLUB_DEBUG is not set diff --git a/arch/mips/configs/bmips_be_defconfig b/arch/mips/configs/bmips_be_defconfig index daef132d000b..0b2b7685330f 100644 --- a/arch/mips/configs/bmips_be_defconfig +++ b/arch/mips/configs/bmips_be_defconfig @@ -1,17 +1,17 @@ # CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set CONFIG_NO_HZ=y CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_SLUB_DEBUG is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon" CONFIG_BMIPS_GENERIC=y CONFIG_HIGHMEM=y CONFIG_SMP=y CONFIG_NR_CPUS=4 -# CONFIG_SECCOMP is not set CONFIG_MIPS_O32_FP64_SUPPORT=y -# CONFIG_BLK_DEV_BSG is not set +# CONFIG_SECCOMP is not set +# CONFIG_SWAP is not set +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_PACKET_DIAG=y @@ -34,6 +34,7 @@ CONFIG_MTD_PHYSMAP=y # CONFIG_BLK_DEV is not set CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y +# CONFIG_BLK_DEV_BSG is not set # CONFIG_SCSI_LOWLEVEL is not set CONFIG_NETDEVICES=y CONFIG_BCMGENET=y @@ -41,7 +42,6 @@ CONFIG_USB_USBNET=y # CONFIG_INPUT is not set # CONFIG_SERIO is not set # CONFIG_VT is not set -CONFIG_SERIAL_BCM63XX=y CONFIG_SERIAL_BCM63XX_CONSOLE=y # CONFIG_HW_RANDOM is not set CONFIG_POWER_RESET=y @@ -70,7 +70,6 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y # CONFIG_CRYPTO_HW is not set CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon" +CONFIG_DEBUG_FS=y +# CONFIG_SLUB_DEBUG is not set diff --git a/arch/mips/configs/bmips_stb_defconfig b/arch/mips/configs/bmips_stb_defconfig index cd0dc37c3d84..4f96a1da7610 100644 --- a/arch/mips/configs/bmips_stb_defconfig +++ b/arch/mips/configs/bmips_stb_defconfig @@ -1,59 +1,44 @@ # CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y CONFIG_NO_HZ=y -CONFIG_HZ=1000 +CONFIG_HIGH_RES_TIMERS=y +CONFIG_CGROUPS=y CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_SLUB_DEBUG is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon" CONFIG_BMIPS_GENERIC=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_HIGHMEM=y -CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y CONFIG_NR_CPUS=4 -# CONFIG_SECCOMP is not set CONFIG_MIPS_O32_FP64_SUPPORT=y -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set -CONFIG_RD_XZ=y -# CONFIG_RD_LZO is not set -# CONFIG_RD_LZ4 is not set -CONFIG_PCI=y -CONFIG_PCI_MSI=y -CONFIG_PCIEASPM_POWERSAVE=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_BRCMSTB=y +CONFIG_MIPS_CMDLINE_DTB_EXTEND=y +CONFIG_PM_DEBUG=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_BMIPS_CPUFREQ=y -# CONFIG_BLK_DEV_BSG is not set +# CONFIG_SECCOMP is not set +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_SWAP is not set +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_PACKET_DIAG=y CONFIG_UNIX=y CONFIG_INET=y -# CONFIG_INET_DIAG is not set -CONFIG_CFG80211=y -CONFIG_NL80211_TESTMODE=y -CONFIG_WIRELESS=y -CONFIG_MAC80211=y -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_BRCMSTB_GISB_ARB=y -CONFIG_MODULES=y -CONFIG_MODULE_FORCE_LOAD=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODVERSIONS=y CONFIG_IP_MULTICAST=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y @@ -62,25 +47,32 @@ CONFIG_IP_PNP_RARP=y CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_INET_UDP_DIAG=y +# CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=y # CONFIG_TCP_CONG_WESTWOOD is not set # CONFIG_TCP_CONG_HTCP is not set # CONFIG_IPV6 is not set -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_FILTER=y CONFIG_NETFILTER=y -CONFIG_NETFILTER_XTABLES=y -CONFIG_BRIDGE=y CONFIG_BRIDGE_NETFILTER=m +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE=y CONFIG_NET_DSA=y -CONFIG_NET_SWITCHDEV=y -CONFIG_DMA_CMA=y -CONFIG_CMA_ALIGNMENT=12 -CONFIG_SPI=y +CONFIG_VLAN_8021Q=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_MAC80211=y +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEASPM_POWERSAVE=y +CONFIG_PCI_MSI=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_BLOCK=y @@ -91,22 +83,21 @@ CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_CFI_STAA=y CONFIG_MTD_ROM=y CONFIG_MTD_ABSENT=y -CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_RAW_NAND=y CONFIG_MTD_NAND_BRCMNAND=y CONFIG_MTD_SPI_NOR=y # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set CONFIG_MTD_UBI=y CONFIG_MTD_UBI_GLUEBI=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=8192 # CONFIG_BLK_DEV is not set -CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_SG=y +# CONFIG_BLK_DEV_BSG is not set # CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_BRCM=y CONFIG_NETDEVICES=y -CONFIG_VLAN_8021Q=y CONFIG_MACVLAN=y CONFIG_BCMGENET=y CONFIG_USB_USBNET=y @@ -116,15 +107,16 @@ CONFIG_INPUT_EVDEV=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=y # CONFIG_SERIO is not set -CONFIG_VT=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_HW_RANDOM is not set +CONFIG_SPI=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_BRCMSTB=y CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_SUPPLY=y # CONFIG_HWMON is not set @@ -135,21 +127,18 @@ CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_STORAGE=y -CONFIG_SOC_BRCMSTB=y CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=16 CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_SOC_BRCMSTB=y +CONFIG_PHY_BRCM_SATA=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_DNOTIFY is not set -CONFIG_PROC_KCORE=y -CONFIG_CIFS=y CONFIG_JBD2_DEBUG=y +# CONFIG_DNOTIFY is not set CONFIG_FUSE_FS=y -CONFIG_FHANDLE=y -CONFIG_CGROUPS=y CONFIG_CUSE=y CONFIG_ISO9660_FS=y CONFIG_JOLIET=y @@ -157,6 +146,7 @@ CONFIG_ZISOFS=y CONFIG_UDF_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y +CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_JFFS2_FS=y CONFIG_UBIFS_FS=y @@ -169,42 +159,17 @@ CONFIG_NFS_V4=y CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_ROOT_NFS=y +CONFIG_CIFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y +# CONFIG_CRYPTO_HW is not set CONFIG_PRINTK_TIME=y CONFIG_DYNAMIC_DEBUG=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_INFO_REDUCED is not set -CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y -CONFIG_LOCKUP_DETECTOR=y -CONFIG_DEBUG_USER=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon" -# CONFIG_MIPS_CMDLINE_FROM_DTB is not set -CONFIG_MIPS_CMDLINE_DTB_EXTEND=y -# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set -# CONFIG_CRYPTO_HW is not set -CONFIG_FW_CFE=y -CONFIG_ATA=y -CONFIG_SATA_AHCI_PLATFORM=y -CONFIG_GENERIC_PHY=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_SYSFS=y -CONFIG_PHY_BRCM_USB=y -CONFIG_PHY_BRCM_SATA=y -CONFIG_PM_DEBUG=y -CONFIG_SYSVIPC=y -CONFIG_FUNCTION_GRAPH_TRACER=y -CONFIG_DYNAMIC_FTRACE=y -CONFIG_FUNCTION_TRACER=y +# CONFIG_SLUB_DEBUG is not set CONFIG_FUNCTION_PROFILER=y +CONFIG_STACK_TRACER=y CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y -CONFIG_BLK_DEV_IO_TRACE=y CONFIG_FTRACE_SYSCALLS=y -CONFIG_TRACER_SNAPSHOT=y -CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y -CONFIG_STACK_TRACER=y -CONFIG_AHCI_BRCM=y -CONFIG_MTD_RAW_NAND=y +CONFIG_BLK_DEV_IO_TRACE=y diff --git a/arch/mips/configs/ci20_defconfig b/arch/mips/configs/ci20_defconfig index cdf2a782dee1..87d34b903f04 100644 --- a/arch/mips/configs/ci20_defconfig +++ b/arch/mips/configs/ci20_defconfig @@ -17,8 +17,10 @@ CONFIG_CGROUP_CPUACCT=y CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_KALLSYMS_ALL=y CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon console=ttyS4,115200 clk_ignore_unused" CONFIG_MACH_INGENIC_SOC=y CONFIG_JZ4780_CI20=y CONFIG_HIGHMEM=y @@ -126,7 +128,6 @@ CONFIG_DRM_INGENIC=m CONFIG_DRM_INGENIC_DW_HDMI=m CONFIG_FB=y # CONFIG_VGA_CONSOLE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_DWC2=y @@ -225,7 +226,4 @@ CONFIG_DEBUG_FS=y CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_TIMEOUT=10 # CONFIG_SCHED_DEBUG is not set -CONFIG_STACKTRACE=y # CONFIG_FTRACE is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon console=ttyS4,115200 clk_ignore_unused" diff --git a/arch/mips/configs/cu1000-neo_defconfig b/arch/mips/configs/cu1000-neo_defconfig index 19517beaf540..f5be8b992a0c 100644 --- a/arch/mips/configs/cu1000-neo_defconfig +++ b/arch/mips/configs/cu1000-neo_defconfig @@ -14,20 +14,22 @@ CONFIG_CGROUP_CPUACCT=y CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_KALLSYMS_ALL=y CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_COMPAT_BRK is not set +CONFIG_KALLSYMS_ALL=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon clk_ignore_unused" CONFIG_MACH_INGENIC_SOC=y CONFIG_X1000_CU1000_NEO=y CONFIG_HIGHMEM=y CONFIG_HZ_100=y -# CONFIG_SECCOMP is not set # CONFIG_SUSPEND is not set +# CONFIG_SECCOMP is not set CONFIG_MODULES=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_COMPAT_BRK is not set # CONFIG_COMPACTION is not set CONFIG_CMA=y +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y @@ -66,7 +68,6 @@ CONFIG_SENSORS_ADS7828=m CONFIG_WATCHDOG=y CONFIG_JZ4740_WDT=y # CONFIG_VGA_CONSOLE is not set -# CONFIG_HID is not set CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_DWC2=y @@ -86,7 +87,6 @@ CONFIG_DMA_JZ4780=y # CONFIG_INGENIC_TIMER is not set CONFIG_INGENIC_SYSOST=y # CONFIG_IOMMU_SUPPORT is not set -CONFIG_JZ4770_PHY=y CONFIG_EXT4_FS=y # CONFIG_DNOTIFY is not set CONFIG_AUTOFS_FS=y @@ -97,15 +97,14 @@ CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_CONFIGFS_FS=y CONFIG_NFS_FS=y -CONFIG_NLS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_936=y CONFIG_NLS_CODEPAGE_950=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y CONFIG_PRINTK_TIME=y @@ -119,8 +118,4 @@ CONFIG_DEBUG_FS=y CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_TIMEOUT=10 # CONFIG_SCHED_DEBUG is not set -# CONFIG_DEBUG_PREEMPT is not set -CONFIG_STACKTRACE=y # CONFIG_FTRACE is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon clk_ignore_unused" diff --git a/arch/mips/configs/cu1830-neo_defconfig b/arch/mips/configs/cu1830-neo_defconfig index b403e67ab105..b02d32f19604 100644 --- a/arch/mips/configs/cu1830-neo_defconfig +++ b/arch/mips/configs/cu1830-neo_defconfig @@ -14,20 +14,22 @@ CONFIG_CGROUP_CPUACCT=y CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_KALLSYMS_ALL=y CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_COMPAT_BRK is not set +CONFIG_KALLSYMS_ALL=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon clk_ignore_unused" CONFIG_MACH_INGENIC_SOC=y CONFIG_X1830_CU1830_NEO=y CONFIG_HIGHMEM=y CONFIG_HZ_100=y -# CONFIG_SECCOMP is not set # CONFIG_SUSPEND is not set +# CONFIG_SECCOMP is not set CONFIG_MODULES=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_COMPAT_BRK is not set # CONFIG_COMPACTION is not set CONFIG_CMA=y +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y @@ -69,7 +71,6 @@ CONFIG_SENSORS_ADS7828=m CONFIG_WATCHDOG=y CONFIG_JZ4740_WDT=y # CONFIG_VGA_CONSOLE is not set -# CONFIG_HID is not set CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_DWC2=y @@ -89,7 +90,6 @@ CONFIG_DMA_JZ4780=y # CONFIG_INGENIC_TIMER is not set CONFIG_INGENIC_SYSOST=y # CONFIG_IOMMU_SUPPORT is not set -CONFIG_JZ4770_PHY=y CONFIG_EXT4_FS=y # CONFIG_DNOTIFY is not set CONFIG_AUTOFS_FS=y @@ -100,15 +100,14 @@ CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_CONFIGFS_FS=y CONFIG_NFS_FS=y -CONFIG_NLS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_936=y CONFIG_NLS_CODEPAGE_950=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y CONFIG_PRINTK_TIME=y @@ -122,8 +121,4 @@ CONFIG_DEBUG_FS=y CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_TIMEOUT=10 # CONFIG_SCHED_DEBUG is not set -# CONFIG_DEBUG_PREEMPT is not set -CONFIG_STACKTRACE=y # CONFIG_FTRACE is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon clk_ignore_unused" diff --git a/arch/mips/configs/generic_defconfig b/arch/mips/configs/generic_defconfig index 071e2205c7ed..53eddba32478 100644 --- a/arch/mips/configs/generic_defconfig +++ b/arch/mips/configs/generic_defconfig @@ -1,5 +1,6 @@ CONFIG_SYSVIPC=y CONFIG_NO_HZ_IDLE=y +CONFIG_BPF_SYSCALL=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_MEMCG=y @@ -15,11 +16,9 @@ CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_SCHED_AUTOGROUP=y CONFIG_BLK_DEV_INITRD=y -CONFIG_BPF_SYSCALL=y -CONFIG_USERFAULTFD=y CONFIG_EXPERT=y -# CONFIG_SLUB_DEBUG is not set -# CONFIG_COMPAT_BRK is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="earlycon" CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_MIPS_CPS=y CONFIG_HIGHMEM=y @@ -29,6 +28,8 @@ CONFIG_JUMP_LABEL=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_TRIM_UNUSED_KSYMS=y +# CONFIG_COMPAT_BRK is not set +CONFIG_USERFAULTFD=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y @@ -44,14 +45,11 @@ CONFIG_HW_RANDOM=y # CONFIG_HWMON is not set CONFIG_MFD_SYSCON=y CONFIG_HID_A4TECH=y -CONFIG_HID_APPLE=y CONFIG_HID_BELKIN=y CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y CONFIG_HID_CYPRESS=y CONFIG_HID_EZKEY=y CONFIG_HID_KENSINGTON=y -CONFIG_HID_LOGITECH=y CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y # CONFIG_MIPS_PLATFORM_DEVICES is not set @@ -85,7 +83,6 @@ CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_REDUCED=y CONFIG_DEBUG_FS=y +# CONFIG_SLUB_DEBUG is not set # CONFIG_SCHED_DEBUG is not set # CONFIG_FTRACE is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlycon" diff --git a/arch/mips/configs/gpr_defconfig b/arch/mips/configs/gpr_defconfig index 92fc0edbac47..5c070a81a26d 100644 --- a/arch/mips/configs/gpr_defconfig +++ b/arch/mips/configs/gpr_defconfig @@ -9,9 +9,10 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y CONFIG_PROFILING=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="console=ttyS0,115200 root=/dev/nfs rw ip=auto" CONFIG_MIPS_ALCHEMY=y CONFIG_MIPS_GPR=y -CONFIG_PCI=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y @@ -45,7 +46,6 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_REALM=m @@ -102,27 +102,21 @@ CONFIG_IPDDP_ENCAP=y CONFIG_X25=m CONFIG_LAPB=m CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m @@ -145,6 +139,8 @@ CONFIG_BAYCOM_SER_HDX=m CONFIG_YAM=m CONFIG_CFG80211=y CONFIG_MAC80211=y +CONFIG_PCI=y +# CONFIG_VGA_ARB is not set CONFIG_MTD=y CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y @@ -232,8 +228,6 @@ CONFIG_WATCHDOG=y CONFIG_WATCHDOG_NOWAYOUT=y CONFIG_SSB=m CONFIG_SSB_DRIVER_PCICORE=y -# CONFIG_VGA_ARB is not set -# CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_VGA_CONSOLE is not set CONFIG_USB_HID=m @@ -250,10 +244,6 @@ CONFIG_USB_STORAGE=m CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_SIERRAWIRELESS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # CONFIG_DNOTIFY is not set # CONFIG_INOTIFY_USER is not set CONFIG_ISO9660_FS=m @@ -275,20 +265,15 @@ CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_ISO8859_1=y CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_DEFLATE=m CONFIG_MAGIC_SYSRQ=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw ip=auto" diff --git a/arch/mips/configs/loongson3_defconfig b/arch/mips/configs/loongson3_defconfig index 07839a4b397e..aca4797b5bb6 100644 --- a/arch/mips/configs/loongson3_defconfig +++ b/arch/mips/configs/loongson3_defconfig @@ -5,6 +5,8 @@ CONFIG_POSIX_MQUEUE=y CONFIG_AUDIT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y CONFIG_PREEMPT=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y @@ -22,18 +24,18 @@ CONFIG_CGROUP_CPUACCT=y CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_SCHED_AUTOGROUP=y -CONFIG_SYSFS_DEPRECATED=y CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y -CONFIG_BPF_SYSCALL=y CONFIG_EXPERT=y CONFIG_PERF_EVENTS=y +CONFIG_KEXEC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE_PREPEND="ieee754=relaxed" CONFIG_MACH_LOONGSON64=y CONFIG_CPU_HAS_MSA=y CONFIG_NUMA=y CONFIG_NR_CPUS=16 CONFIG_HZ_256=y -CONFIG_KEXEC=y CONFIG_MIPS32_O32=y CONFIG_MIPS32_N32=y CONFIG_VIRTUALIZATION=y @@ -47,15 +49,12 @@ CONFIG_MODVERSIONS=y CONFIG_PARTITION_ADVANCED=y CONFIG_MQ_IOSCHED_DEADLINE=m CONFIG_IOSCHED_BFQ=y -CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_BINFMT_MISC=m CONFIG_KSM=y CONFIG_NET=y CONFIG_PACKET=y -CONFIG_UNIX=y CONFIG_XFRM_USER=y CONFIG_NET_KEY=y -CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTIPLE_TABLES=y @@ -128,7 +127,6 @@ CONFIG_L2TP=m CONFIG_BRIDGE=m CONFIG_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS=m -CONFIG_BPF_JIT=y CONFIG_CFG80211=m CONFIG_CFG80211_WEXT=y CONFIG_MAC80211=m @@ -196,7 +194,6 @@ CONFIG_VIRTIO_NET=m # CONFIG_NET_VENDOR_ARC is not set # CONFIG_NET_VENDOR_ATHEROS is not set # CONFIG_NET_VENDOR_BROADCOM is not set -# CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_CHELSIO is not set # CONFIG_NET_VENDOR_CIRRUS is not set # CONFIG_NET_VENDOR_CISCO is not set @@ -216,6 +213,7 @@ CONFIG_IXGBE=y # CONFIG_NET_VENDOR_NVIDIA is not set # CONFIG_NET_VENDOR_OKI is not set # CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_RDC is not set CONFIG_8139CP=m CONFIG_8139TOO=m @@ -276,15 +274,14 @@ CONFIG_MEDIA_SUPPORT=m CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_DRM=y +CONFIG_DRM_RADEON=m CONFIG_DRM_AMDGPU=m CONFIG_DRM_AMDGPU_SI=y CONFIG_DRM_AMDGPU_CIK=y CONFIG_DRM_AMDGPU_USERPTR=y CONFIG_DRM_AMD_ACP=y -CONFIG_DRM_AMD_DC=y CONFIG_DRM_AMD_DC_SI=y CONFIG_DRM_AST=m -CONFIG_DRM_RADEON=m CONFIG_DRM_QXL=y CONFIG_DRM_VIRTIO_GPU=y CONFIG_FB=y @@ -292,7 +289,6 @@ CONFIG_FB_RADEON=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_LCD_PLATFORM=m # CONFIG_VGA_CONSOLE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_LOGO=y CONFIG_SOUND=y @@ -350,7 +346,6 @@ CONFIG_EXT3_FS_SECURITY=y CONFIG_XFS_FS=y CONFIG_XFS_POSIX_ACL=y CONFIG_QUOTA=y -# CONFIG_PRINT_QUOTA_WARNING is not set CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_AUTOFS_FS=y @@ -390,24 +385,20 @@ CONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_PATH=y CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_DEFLATE=m CONFIG_PRINTK_TIME=y CONFIG_STRIP_ASM_SYMS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y # CONFIG_SCHED_DEBUG is not set -# CONFIG_DEBUG_PREEMPT is not set CONFIG_FUNCTION_TRACER=y CONFIG_FTRACE_SYSCALLS=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="ieee754=relaxed" diff --git a/arch/mips/include/asm/setup.h b/arch/mips/include/asm/setup.h index 8c56b862fd9c..798bc3c68080 100644 --- a/arch/mips/include/asm/setup.h +++ b/arch/mips/include/asm/setup.h @@ -5,6 +5,7 @@ #include #include +#ifndef __ASSEMBLY__ extern void prom_putchar(char); extern void setup_early_printk(void); @@ -27,5 +28,6 @@ extern unsigned long ebase; extern unsigned int hwrena; extern void per_cpu_trap_init(bool); extern void cpu_cache_init(void); +#endif #endif /* __SETUP_H */ diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c index 58fc8d089402..089d67c476ae 100644 --- a/arch/mips/kernel/relocate.c +++ b/arch/mips/kernel/relocate.c @@ -23,6 +23,7 @@ #include #include #include +#include #define RELOCATED(x) ((void *)((long)x + offset)) @@ -247,16 +248,26 @@ static inline __init bool kaslr_disabled(void) char *str; #if defined(CONFIG_CMDLINE_BOOL) - const char *builtin_cmdline = CONFIG_CMDLINE; + char *builtin_cmdline = CMDLINE_PREPEND; str = strstr(builtin_cmdline, "nokaslr"); if (str == builtin_cmdline || (str > builtin_cmdline && *(str - 1) == ' ')) return true; #endif - str = strstr(arcs_cmdline, "nokaslr"); - if (str == arcs_cmdline || (str > arcs_cmdline && *(str - 1) == ' ')) + if (!IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) { + str = strstr(arcs_cmdline, "nokaslr"); + if (str == arcs_cmdline || (str > arcs_cmdline && *(str - 1) == ' ')) + return true; + } + +#if defined(CONFIG_CMDLINE_BOOL) + builtin_cmdline = CMDLINE_APPEND; + str = strstr(builtin_cmdline, "nokaslr"); + if (str == builtin_cmdline || + (str > builtin_cmdline && *(str - 1) == ' ')) return true; +#endif return false; } diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index cb871eb784a7..38e0e19b9c0d 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -70,12 +71,6 @@ EXPORT_SYMBOL(mips_machtype); static char __initdata command_line[COMMAND_LINE_SIZE]; char __initdata arcs_cmdline[COMMAND_LINE_SIZE]; -#ifdef CONFIG_CMDLINE_BOOL -static const char builtin_cmdline[] __initconst = CONFIG_CMDLINE; -#else -static const char builtin_cmdline[] __initconst = ""; -#endif - /* * mips_io_port_base is the begin of the address space to which x86 style * I/O ports are mapped. @@ -561,27 +556,7 @@ static void __init bootcmdline_init(void) { bool dt_bootargs = false; - /* - * If CMDLINE_OVERRIDE is enabled then initializing the command line is - * trivial - we simply use the built-in command line unconditionally & - * unmodified. - */ - if (IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) { - strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); - return; - } - - /* - * If the user specified a built-in command line & - * MIPS_CMDLINE_BUILTIN_EXTEND, then the built-in command line is - * prepended to arguments from the bootloader or DT so we'll copy them - * to the start of boot_command_line here. Otherwise, empty - * boot_command_line to undo anything early_init_dt_scan_chosen() did. - */ - if (IS_ENABLED(CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND)) - strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); - else - boot_command_line[0] = 0; + boot_command_line[0] = 0; #ifdef CONFIG_OF_EARLY_FLATTREE /* @@ -604,12 +579,9 @@ static void __init bootcmdline_init(void) bootcmdline_append(arcs_cmdline, COMMAND_LINE_SIZE); /* - * If the user specified a built-in command line & we didn't already - * prepend it, we append it to boot_command_line here. + * Use the generic system for builtin prepend and append. */ - if (IS_ENABLED(CONFIG_CMDLINE_BOOL) && - !IS_ENABLED(CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND)) - bootcmdline_append(builtin_cmdline, COMMAND_LINE_SIZE); + cmdline_add_builtin(boot_command_line); } /* diff --git a/arch/mips/pic32/pic32mzda/early_console.c b/arch/mips/pic32/pic32mzda/early_console.c index 3cd1b408fa1c..f14bc1846706 100644 --- a/arch/mips/pic32/pic32mzda/early_console.c +++ b/arch/mips/pic32/pic32mzda/early_console.c @@ -76,7 +76,7 @@ static char * __init pic32_getcmdline(void) * command line setup if using CONFIG_CMDLINE_BOOL. */ #ifdef CONFIG_CMDLINE_OVERRIDE - return CONFIG_CMDLINE; + return CMDLINE_STATIC_PREPEND " " CMDLINE_STATIC_APPEND; #else return fw_getcmdline(); #endif diff --git a/arch/mips/pic32/pic32mzda/init.c b/arch/mips/pic32/pic32mzda/init.c index 53b227a9074c..ba2524255857 100644 --- a/arch/mips/pic32/pic32mzda/init.c +++ b/arch/mips/pic32/pic32mzda/init.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -41,7 +42,7 @@ void __init plat_mem_setup(void) pr_info(" boot_command_line: %s\n", boot_command_line); pr_info(" arcs_cmdline : %s\n", arcs_cmdline); #ifdef CONFIG_CMDLINE_BOOL - pr_info(" builtin_cmdline : %s\n", CONFIG_CMDLINE); + pr_info(" builtin_cmdline : %s\n", CMDLINE_STATIC_PREPEND " " CMDLINE_STATIC_APPEND); #endif if (dtb != __dtb_start) strscpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE); From patchwork Fri Nov 10 01:38:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451995 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66C73C04E85 for ; Fri, 10 Nov 2023 01:39:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345707AbjKJBjh (ORCPT ); Thu, 9 Nov 2023 20:39:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345662AbjKJBje (ORCPT ); Thu, 9 Nov 2023 20:39:34 -0500 Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F5D144BF; Thu, 9 Nov 2023 17:39:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6396; q=dns/txt; s=iport; t=1699580372; x=1700789972; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=18cNsTNuiRDR0CKbESUnPHmzPvgXjxbhXvQdZpLLd3E=; b=jJPFmxSbS8TGTke58aPBjycXJg2mh04+ndS8OsPk213/XuTGblx74JCi euyeL7pWY5fYFXkbyCKWeXkNff9YxsAXl9e1pNmNk3TnCv0CM2h1FNfhA O2fEvyEiEXNnZIQnef0N87hOdpV2cPfORSP+T1a9g5PC0KmlKPb8ojySy s=; X-CSE-ConnectionGUID: D0vmuO0vRjqFrfnxF9Eo0g== X-CSE-MsgGUID: 4eBf7R0bRICauPeKld8sbw== X-IPAS-Result: A0ANAABsiE1lmJtdJa1aHAEBAQEBAQcBARIBAQQEAQGBewcBAQsBhAdASIxviUKeAYElA1YPAQEBD0QEAQGFBgKHJgImNAkOAQIEAQEBAQMCAwEBAQEBAQECAQEFAQEBAgEHBBQBAQEBAQEBAR4ZBQ4QJ4V1hk0DAycLAUYQUVcGARKCfoJfA61YgXkzgQGzKIFoGIEwAYxDgR6ENScbgUlEgRWBO4ItiwYEiSUHMoIig1KNS39HWhYdAwcDVikQKwcELSIGCRQtIwZRBBcRJAkTEj4EgWOBUQp/Pw8OEYI/IgIHNjYZSIJbFUAERnYQKgQUF4ESbhsVHjcREhcNAwh0HQIRIzwDBQMEMwoSDQshBRRCA0IGSQsDAhoFAwMEgTYFDR4CEC0nAwMTTQIQFAM7AwMGAwsxAzBVRAxRA28fGhwJPA8MHwIbHg0nKAI1QwMRBRICFgMkGQRFAwkDBwVJQAMLGA1IESw1Bg4bBj9zB6FVPVIwGwKCVZIoFQcCAZFSgTGdX4E3hBeBX5wkgwYaM6oDmD8gonCFQYFjOoFbMxoIGxWDIlIZD44sDQmTEgFdIzI7AgcLAQEDCYZLhH8BAQ IronPort-Data: A9a23:rhVaWawIuIS5buo7e6l6t+flwSrEfRIJ4+MujC+fZmUNrF6WrkUOz mFJXjvUbPeCMGD3fItwO4qw80IHvJbVyIJiGwo9pFhgHilAwSbn6Xt1DatR0we6dJCroJdPt p1GAjX4BJlpCCea/lH0auSJQUBUjcmgXqD7BPPPJhd/TAplTDZJoR94kobVuKYw6TSCK13L4 YiaT/H3Ygf/gGctazpMsspvlTs21BjMkGJA1rABTagjUG/2zxE9EJ8ZLKetGHr0KqE88jmSH rurIBmRpws1zj91Yj+Xuu+Tnn4iHtY+CTOzZk9+AMBOtPTtShsaic7XPNJEAateZq7gc9pZk L2hvrToIesl0zGldOk1C3Fl/y9C0aJu1OfZJGWY6dKpzVToaXXq09s/IUZuMthNkgp3KTkmG f0wMjsBaFWIgPi7he79Qeh3jcNlJ87uVG8dkig/lneCUrB3GtaaHviiCdxwhF/cguhCFPDfa s4GYBJkbQ/LZFtEPVJ/5JcWxbz13iChL2QHwL6TjfY6yWaM9lR76pnGOcftd/+OSZVOlFnN8 woq+EygUk1Fa7Rz0wGt9nOqm/+Kni7hXo8WPKO3++Qsg1CJwGEXThoMWjOTpfi/l177VtxeA 1Ib9zBorqUo8kGvCN7nUHWQqWSItDYfVsBWHul87xuCooLQ4gCEFnAcRXtNZcIOsM4tWSds0 U2NltnyQzt1v9W9TXOb66fRqDKqIgALImIYIywJVw0I55/kuo5bpgKfEP5gHbSzg9mzHiv/q xiRoSE4wbwVgcMRzKK91UvKiDXqrZ/MJiYp4QDeRSSg8w9jeYimbqSn7FHa6bBLK4PxZkCcv XMzg8KE5eALBLmUiS2GQeMGWrqu4p6tOT7EhHZrHp8853Gj/GOlcYlM4TZ4YkBzPa4sdTbvY ULXkQxQ4YdeOHa0bKR3JZm4DYEk16HmHtX+XfeSZdMIf4MZXBWA9iFGZkOK2W3p1k82nskXM peBcN2wCm4aBOJjwSCxVs8WyrAxwT0mg27OLbjkzhCj+bmTfniYTfECKlTmUwwixLmPrAOQ+ NFFOo7WjR5eS+b5JCLQ9Ob/MGzmM1AXXY7ztusPaNSBOyR8FmcxJa78xusuLtkNc7tuqs/E+ XS0W0l9wVX5hGHaJQjiVpyFQO6xNXqYhS9mVRHALWpEyFB4PtnytPZ3m48fOOh4pLY6nJaYW tFcI53YasmjXAgr7Nj0UHUQhJZpeBLujgWUMm/5JjM+ZJVnAQfO/7cInzcDFgFQUkJbVuNn/ tVMMz83p7JfG2yO6+6KMJqSI6uZ5yR1pQ6LdxKgziNvUEvt6pN2DCf6k+U6JcoBQT2amGrLi lvKX0tI/raRy2PQzDUvrf7dx2tOO7Umdne240GHhVpLHXCApzH6kdMovBigJ2yHCgsYB5lOl c0Mn62jb5XrbX5BspF3FP5w3Lki6t70z4K2PSw6dEgnm2+DU+s6SlHfhJEnnvQUmtdx51DsM mrRoYYyBFl8EJ6/eLLnDFB7Pr3rODB9smS60MnZ122jv38voOrYARkCV/RO4QQERIZI3Eoe6 b9JkKYrB8aX03LG7v7uYvhoylmx IronPort-HdrOrdr: A9a23:EhAwAKCsAXGH8yrlHemX55DYdb4zR+YMi2TDGXocdfUzSL39qy nAppomPHPP4gr5HUtQ+uxoW5PwJE80i6QV3WB5B97LNzUO+lHYTr2KhrGM/9SPIUDDH8dmpM BdmtBFaOEZyTNB/L/HCM7SKadH/OW6 X-Talos-CUID: 9a23:t/nNLm6e/652txrJltss2BYKH90CKmPnzm7+OUG+GUg4ZbrNRgrF X-Talos-MUID: 9a23:0eoxMg12us+7xDL05uML/17/9DUjv6mEBh83yZ88muKNKBR9GDOR3C+9Xdpy X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="135016417" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-5.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:30 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVL011466; Fri, 10 Nov 2023 01:38:29 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: xe-linux-external@cisco.com, Ard Biesheuvel , linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/8] drivers: firmware: efi: libstub: enable generic commandline Date: Thu, 9 Nov 2023 17:38:09 -0800 Message-Id: <20231110013817.2378507-6-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This adds code to handle the generic command line changes. The efi code appears that it doesn't benefit as much from this design as it could. For example, if you had a prepend command line with "nokaslr" then you might be helpful to re-enable it in the boot loader or dts, but there appears to be no way to re-enable kaslr or some of the other options. The efi command line handling is incorrect. x86 and arm have an append system however the efi code prepends the command line. For example, you could have a non-upgradable bios which sends efi=disable_early_pci_dma This hypothetically could have been set because early pci dma caused issues on early versions of the product. Then later the early pci dma was made to work and the company desired to start using it. To override the bios you could set the CONFIG_CMDLINE to, efi=no_disable_early_pci_dma then parsing would normally start with the bios command line, then move to the CONFIG_CMDLINE and you would end up with early pci dma turned on. however, current efi code keeps early pci dma off because the bios arguments always override the built in. Per my reading this is different from the main body of x86, arm, and arm64. The generic command line provides both append and prepend, so it alleviates this issue if it's used. However not all architectures use it. It would be desirable to allow the efi stub to have it's builtin command line to be modified after compile, but I don't see a feasible way to do that currently. Cc: xe-linux-external@cisco.com Signed-off-by: Daniel Walker --- .../firmware/efi/libstub/efi-stub-helper.c | 29 +++++++++++++++++++ drivers/firmware/efi/libstub/efi-stub.c | 9 ++++++ drivers/firmware/efi/libstub/efistub.h | 1 + drivers/firmware/efi/libstub/x86-stub.c | 14 +++++++-- 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c index bfa30625f5d0..952fa2cdff51 100644 --- a/drivers/firmware/efi/libstub/efi-stub-helper.c +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c @@ -11,6 +11,7 @@ #include #include +#include #include #include @@ -29,6 +30,34 @@ bool __pure __efi_soft_reserve_enabled(void) return !efi_nosoftreserve; } +/** + * efi_handle_cmdline() - handle adding in built-in parts of the command line + * @cmdline: kernel command line + * + * Add in the generic parts of the commandline and start the parsing of the + * command line. + * + * Return: status code + */ +efi_status_t efi_handle_builtin_cmdline(char const *cmdline) +{ + efi_status_t status = EFI_SUCCESS; + + if (sizeof(CMDLINE_STATIC_PREPEND) > 1) + status |= efi_parse_options(CMDLINE_STATIC_PREPEND); + + if (!IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) + status |= efi_parse_options(cmdline); + + if (sizeof(CMDLINE_STATIC_APPEND) > 1) + status |= efi_parse_options(CMDLINE_STATIC_APPEND); + + if (status != EFI_SUCCESS) + efi_err("Failed to parse options\n"); + + return status; +} + /** * efi_parse_options() - Parse EFI command line options * @cmdline: kernel command line diff --git a/drivers/firmware/efi/libstub/efi-stub.c b/drivers/firmware/efi/libstub/efi-stub.c index f9c1e8a2bd1d..770abe95c0ee 100644 --- a/drivers/firmware/efi/libstub/efi-stub.c +++ b/drivers/firmware/efi/libstub/efi-stub.c @@ -127,6 +127,14 @@ efi_status_t efi_handle_cmdline(efi_loaded_image_t *image, char **cmdline_ptr) return EFI_OUT_OF_RESOURCES; } +#ifdef CONFIG_GENERIC_CMDLINE + status = efi_handle_builtin_cmdline(cmdline); + if (status != EFI_SUCCESS) { + goto fail_free_cmdline; + } +#endif + +#ifdef CONFIG_CMDLINE if (IS_ENABLED(CONFIG_CMDLINE_EXTEND) || IS_ENABLED(CONFIG_CMDLINE_FORCE) || cmdline_size == 0) { @@ -144,6 +152,7 @@ efi_status_t efi_handle_cmdline(efi_loaded_image_t *image, char **cmdline_ptr) goto fail_free_cmdline; } } +#endif *cmdline_ptr = cmdline; return EFI_SUCCESS; diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h index 212687c30d79..1ac6631905c5 100644 --- a/drivers/firmware/efi/libstub/efistub.h +++ b/drivers/firmware/efi/libstub/efistub.h @@ -996,6 +996,7 @@ efi_status_t efi_relocate_kernel(unsigned long *image_addr, unsigned long alignment, unsigned long min_addr); +efi_status_t efi_handle_builtin_cmdline(char const *cmdline); efi_status_t efi_parse_options(char const *cmdline); void efi_parse_option_graphics(char *option); diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c index 9d5df683f882..273a8a9c8bbb 100644 --- a/drivers/firmware/efi/libstub/x86-stub.c +++ b/drivers/firmware/efi/libstub/x86-stub.c @@ -847,6 +847,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle, struct setup_header *hdr = &boot_params->hdr; const struct linux_efi_initrd *initrd = NULL; unsigned long kernel_entry; + unsigned long cmdline_paddr = ((u64)hdr->cmd_line_ptr | + ((u64)boot_params->ext_cmd_line_ptr << 32)); efi_status_t status; boot_params_pointer = boot_params; @@ -877,6 +879,14 @@ void __noreturn efi_stub_entry(efi_handle_t handle, goto fail; } +#ifdef CONFIG_GENERIC_CMDLINE + status = efi_handle_builtin_cmdline((char *)cmdline_paddr); + if (status != EFI_SUCCESS) { + efi_err("Failed to parse options\n"); + goto fail; + } +#else /* CONFIG_GENERIC_CMDLINE */ + #ifdef CONFIG_CMDLINE_BOOL status = efi_parse_options(CONFIG_CMDLINE); if (status != EFI_SUCCESS) { @@ -885,8 +895,6 @@ void __noreturn efi_stub_entry(efi_handle_t handle, } #endif if (!IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) { - unsigned long cmdline_paddr = ((u64)hdr->cmd_line_ptr | - ((u64)boot_params->ext_cmd_line_ptr << 32)); status = efi_parse_options((char *)cmdline_paddr); if (status != EFI_SUCCESS) { efi_err("Failed to parse options\n"); @@ -894,6 +902,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle, } } +#endif + status = efi_decompress_kernel(&kernel_entry); if (status != EFI_SUCCESS) { efi_err("Failed to decompress kernel\n"); From patchwork Fri Nov 10 01:38:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451997 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B713C4332F for ; Fri, 10 Nov 2023 01:39:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345735AbjKJBjr (ORCPT ); Thu, 9 Nov 2023 20:39:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345698AbjKJBjg (ORCPT ); Thu, 9 Nov 2023 20:39:36 -0500 Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A55224680; Thu, 9 Nov 2023 17:39:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4126; q=dns/txt; s=iport; t=1699580374; x=1700789974; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XQfpZaDuXlcOMYdjdqSlNlugSI0rTVR45ET5BA9fTo8=; b=U88hdUtjrnxYdsaSgei2Bhb+Io4WpBXJPr/M40BdQ4iu0W8VUH8slsQ4 jfrXwc63w0xUyJNPmbPnNXbhz+XdR8DbAGvi3ZjiUdh/LqOy4MERVjjWP qWFQV0y1kI5une0La9ZnUcNZIQAgp66V66choAePSeNfsSOQ0ZnE1kNsQ o=; X-CSE-ConnectionGUID: opm4U75yQ5qWqlXpJd47ng== X-CSE-MsgGUID: keBfZVW7R96+J9PTUrvyaw== X-IPAS-Result: A0ANAADbh01lmJtdJa1aHAEBAQEBAQcBARIBAQQEAQGBewcBAQsBhAdASIxviUKLX5IigSUDVg8BAQEPRAQBAYUGAocmAiY0CQ4BAgQBAQEBAwIDAQEBAQEBAQIBAQUBAQECAQcEFAEBAQEBAQEBHhkFEA4nhXWGTQMDMgE4DhBRITYGARKCfoIrAzEDrVeCLIEBsjENaoFoGIEwAYdthFaBHoQ1JxuBSUSCUIItgh+IZwSJJQcygiKDUo1Lf0daFh0DBwNWKRArBwQtIgYJFC0jBlEEFxEkCRMSPgSBY4FRCn8/Dw4Rgj8iAj02GUiCWxVABEZ2ECoEFBeBEm4bFR43ERIXDQMIdB0CESM8AwUDBDMKEg0LIQUUQgNCBkkLAwIaBQMDBIE2BQ0eAhAtJwMDE00CEBQDOwMDBgMLMQMwVUQMUQNvHxocCTwPDB8CGx4NJygCNUMDEQUSAhYDJBkERQMJAwcFSUADCxgNSBEsNQYOGwY/cwehVAF1GQEKJQGBVYEdkkcHgxWONp9Yb4QXgV+ZN4VzGjOqA5g/IJE6lneBYzqBWzMaCBsVgyJSGQ+OLA0JkxIBXSMyOwIHCwEBAwmLSgEB IronPort-Data: A9a23:oFFen6P54cIn6nXvrR0FkMFynXyQoLVcMsEvi/4bfWQNrUpx3zEOm zYXXjuHb6uOZDP2Kowjaoq28RhXup/Xm99nSXM5pCpnJ55oRWUpJjg4wmPYZX76whjrFRo/h ykmQoCdaphyFjmF/kvF3oHJ9RFUzbuPSqf3FNnKMyVwQR4MYCo6gHqPocZh6mJTqYb/W1jlV e/a+ZWFYwb8gmYsawr41orawP9RlKWq0N8nlgRWicBj5Df2i3QTBZQDEqC9R1OQrl58R7PSq 07rldlVz0uBl/sfIorNfoXTLiXmdoXv0T2m0RK6bUQNbi9q/UTe2o5jXBYVhNw+Zz+hx7idw /0V3XC8pJtA0qDkwIwgvxdk/y5WOrVDpIKYfGmG7NWs1kn2a1ngn6poAxRjVWEY0r4f7WBm7 /cULnUGaQqOwr7wy7OgQe4qjcMmRCXpFNpA4Tc7kneIVrB/HM2rr6bivbe02B88j8ZPEPLBb uISaCFka1LLZBgn1lI/Uclizbfy2SinG9FegFGYj6QF3VeM9l0vk5q8COboYMKbTNoAyy50o UqfrzimXXn2Lue3zTuD72LpheLVmy7/cJwdGaf+9fNwhlCXgGsJB3U+T0agpfC/zES/X9VBL Eg89S8nrKx0/0uuJvH9RxSQsm+YuQRaUN1Ve8U24R+AjKrd5R2UAEAATzhceJonstM7QXoh0 Vrht9nxLTVrsbCTGTSR+9+8qDK0Ni89N2IOZSYYCwAC5rHLvI43njrLT9B+DLSyiNzlXz39q xiOrS4jl60LhosH2ruT+VHcnynqoYrNRwQuoALNUQqN6gJ/eZ7gYo2w8nDF4vtaaoWUVF+Mu D4Dgcf2xPBeU7mOmTaLTeFLG6umj96ePTTax1dpE5Q77DOr02WudocW6zZ7TG91NcMNYnnsf UPJpAVS7bdcOXKrael8ZIfZI903zKPXDd7/X/DRZ/JXf5l6dQmMuippYCa41mP1lWAokKciK dKVdtuqAX8GCKNhij2sSI813bYtxy067WzSQIj2yxm50LGeImWcT/ILKlKIZeEi56TCqwyT7 s03H9GNwRV3U+DkZCTTt4kJIjgiJnghBIvqrNRXe6iHLxBhCUkqEPDLxq45PYF494xKl+PM1 nKwQElVzBz4n3KvFOmRQmpoZLWqVpFloDdneyctJl2vnXMkZO5D8ZvzabMwZbx7ybM+3McpV sYcf/WYIPgTFTLIrmF1gYbGkKRucxGihASrNiWjYSQic5MIe+Av0oK6FucI3HRTZhdbpffSs JX7iVyGGctrqxBKSZeJOKj2njtdqFBEwLoqN3YkNOW/b6kFzWSHAzb6gvlyKMYWJFCfgDCbz A2RRxwfoIEhQrPZEvGX2choTK/wToOS+3a2+UGHsd5a0gGGpgKeLXdoCrrgQNwkfDqcFF+eT etU1ergF/YMgUxHtYFxe54yk/Nvuoaz+eMKlVs4dJkuU7hNIu05SpVh9ZcX3pChOpcF0edLc hvVo4IDaenh1D3NSgJLemLJkdhvJdlNymWNspzZ0W3x5TR8+/KcQF5OMhyX4BGx35MrWL7JN dwJ4ZZMgyTm00JCGo/f3kh8qT/WRlReCPpPi33vKNKx4ubd4gscMcW05+6fyMznVuigxWFze W/M2Pqd1+gMrqcAGlJqfUXwMSNmrcxmkHh3IJUqfjxlRvKtaicL4SBs IronPort-HdrOrdr: A9a23:Q6j4cqM5yUMLHMBcTvqjsMiBIKoaSvp037Dk7SxMoHtuA6ilfq +V8sjzuSWftN9VYgBCpTniAtjkfZqjz/9ICOAqVN/IYOClghrLEGgI1+TfKlPbdhEW39Qtsp uIC5IfNDU1ZmIK9PoTJ2KDYrAd/OU= X-Talos-CUID: 9a23:SrpMfG37Hfq4oOBx6DfY/rxfHdggLkCCkWbpflaHEGJZUJ+ZFQCW9/Yx X-Talos-MUID: 9a23:9KHXXQuRrMWoa/bens2nhzxIOvVW3PuUWR5Os8Q+h/SeKz15JGLI X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="134982790" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-4.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:32 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVM011466; Fri, 10 Nov 2023 01:38:30 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Cc: xe-linux-external@cisco.com, Ruslan Ruslichenko , Ruslan Bilovol , linux-kernel@vger.kernel.org Subject: [PATCH 6/8] CMDLINE: x86: convert to generic builtin command line Date: Thu, 9 Nov 2023 17:38:10 -0800 Message-Id: <20231110013817.2378507-7-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This updates the x86 code to use the CONFIG_GENERIC_CMDLINE option. Cc: xe-linux-external@cisco.com Signed-off-by: Ruslan Ruslichenko Signed-off-by: Ruslan Bilovol Signed-off-by: Daniel Walker --- arch/x86/Kconfig | 44 +---------------------------------------- arch/x86/kernel/setup.c | 18 ++--------------- 2 files changed, 3 insertions(+), 59 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 66bfabae8814..390ffaa743df 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -145,6 +145,7 @@ config X86 select EDAC_SUPPORT select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC) select GENERIC_CLOCKEVENTS_MIN_ADJUST + select GENERIC_CMDLINE select GENERIC_CMOS_UPDATE select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_VULNERABILITIES @@ -2309,49 +2310,6 @@ choice endchoice -config CMDLINE_BOOL - bool "Built-in kernel command line" - help - Allow for specifying boot arguments to the kernel at - build time. On some systems (e.g. embedded ones), it is - necessary or convenient to provide some or all of the - kernel boot arguments with the kernel itself (that is, - to not rely on the boot loader to provide them.) - - To compile command line arguments into the kernel, - set this option to 'Y', then fill in the - boot arguments in CONFIG_CMDLINE. - - Systems with fully functional boot loaders (i.e. non-embedded) - should leave this option set to 'N'. - -config CMDLINE - string "Built-in kernel command string" - depends on CMDLINE_BOOL - default "" - help - Enter arguments here that should be compiled into the kernel - image and used at boot time. If the boot loader provides a - command line at boot time, it is appended to this string to - form the full kernel command line, when the system boots. - - However, you can use the CONFIG_CMDLINE_OVERRIDE option to - change this behavior. - - In most cases, the command line (whether built-in or provided - by the boot loader) should specify the device for the root - file system. - -config CMDLINE_OVERRIDE - bool "Built-in command line overrides boot loader arguments" - depends on CMDLINE_BOOL && CMDLINE != "" - help - Set this option to 'Y' to have the kernel ignore the boot loader - command line, and use ONLY the built-in command line. - - This is used to work around broken boot loaders. This should - be set to 'N' under normal conditions. - config MODIFY_LDT_SYSCALL bool "Enable the LDT (local descriptor table)" if EXPERT default y diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index b098b1fa2470..bd025c003f32 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -55,6 +55,7 @@ #include #include #include +#include /* * max_low_pfn_mapped: highest directly mapped pfn < 4 GB @@ -162,9 +163,6 @@ unsigned long saved_video_mode; #define RAMDISK_LOAD_FLAG 0x4000 static char __initdata command_line[COMMAND_LINE_SIZE]; -#ifdef CONFIG_CMDLINE_BOOL -static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE; -#endif #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) struct edd edd; @@ -959,19 +957,7 @@ void __init setup_arch(char **cmdline_p) bss_resource.start = __pa_symbol(__bss_start); bss_resource.end = __pa_symbol(__bss_stop)-1; -#ifdef CONFIG_CMDLINE_BOOL -#ifdef CONFIG_CMDLINE_OVERRIDE - strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); -#else - if (builtin_cmdline[0]) { - /* append boot loader cmdline to builtin */ - strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE); - strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE); - strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); - } -#endif -#endif - + cmdline_add_builtin(boot_command_line); strscpy(command_line, boot_command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; From patchwork Fri Nov 10 01:38:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451998 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71E48C4332F for ; Fri, 10 Nov 2023 01:39:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345769AbjKJBjw (ORCPT ); Thu, 9 Nov 2023 20:39:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345719AbjKJBjk (ORCPT ); Thu, 9 Nov 2023 20:39:40 -0500 Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4599E469F; Thu, 9 Nov 2023 17:39:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3742; q=dns/txt; s=iport; t=1699580376; x=1700789976; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hVMC2g6F+sS5xh4dm4+qY8r7kQHgggs8qh2zLFytqSA=; b=JhlMP1dPTIyUwm1rec5aMwHGZIFrepP8tOUXFodpJwuc7/JCwT8zHsP8 E2Bskw0xhe+HYAFiOp3Xx3yvKKpQX2Sug+CbsyAaJ08RLKeuRgQBWpvPA BVxvpaCt5vTZ/9ohFjssN+k4bdGwZOTyTVSarh7q534oOGjMsZFZHevrj Q=; X-CSE-ConnectionGUID: t3gihvnOTkyYQzPMwAhgsg== X-CSE-MsgGUID: suRZL8VFTx6nMj9/gpbWKg== X-IPAS-Result: A0ANAADbh01lmJtdJa1aHAEBAQEBAQcBARIBAQQEAQGBewcBAQsBhAdASIxviUKeARSBEQNWDwEBAQ9EBAEBhQYChyYCJjQJDgECBAEBAQEDAgMBAQEBAQEBAgEBBQEBAQIBBwQUAQEBAQEBAQEeGQUQDieFdYZNAwMyAUYQHTRJDgYBEoJ+gl8DrVeCLIEBsyiBaBiBMAGMQ4EehDUnG4FJRIEVgTuCLYQphl0EiSUHMoIig1KNS39HWhYdAwcDVikQKwcELSIGCRQtIwZRBBcRJAkTEj4EgWOBUQp/Pw8OEYI/IgIHNjYZSIJbFUAERnYQKgQUF4ESbhsVHjcREhcNAwh0HQIRIzwDBQMEMwoSDQshBRRCA0IGSQsDAhoFAwMEgTYFDR4CEC0nAwMTTQIQFAM7AwMGAwsxAzBVRAxRA28fGhwJPA8MHwIbHg0nKAI1QwMRBRICFgMkGQRFAwkDBwVJQAMLGA1IESw1Bg4bBj9zB6FOBgGBD4EIgSASkzaRS6BHhBeBX58qGjOqA5g/IKgxgWM6gVszGggbFYMiUhkPjjmTGwFdIzI7AgcLAQEDCYtKAQE IronPort-Data: A9a23:USJ/Na22r4fJoxrhGfbD5SV2kn2cJEfYwER7XKvMYLTBsI5bpzQCz mUfCziOaPqNazf8c4hzaY++oxxXvpbUz9IxTARr3Hw8FHgiRegpqji6wuYcGwvIc6UvmWo+t 512huHodZ1yFjmE4E71btANlFEkvYmQXL3wFeXYDS54QA5gWU8JhAlq8wIDqtYAbeORXUXV4 rsen+WFYAX+gmctajpNg06+gEoHUMra6WtwUmMWPZinjHeG/1EJAZQWI72GLneQauG4ycbjG o4vZJnglo/o109F5uGNy94XQWVWKlLmBjViv1INM0SUbreukQRpukozHKJ0hU66EFxllfgpo DlGncTYpQvEosQglcxFOyS0HR2SMoVao7DGIWa5lvCQ3nz/YUPJ3NxuA1o5aNhwFuZfWQmi9 NQCIzwLKxuEne/znPSwS/JngYIoK8yD0IE34y47i2qGS6d9B8meHs0m5vcAtNs0rsxHG/fTY 9UQQTFudx/HJRZIPz/7Dbpnx7v51iOvK2UwRFS9vrcN0UyD8iJNwObrFdiEPdOST/p2kRPNz o7B1z2pXk5FXDCF8hKB83SxlqrMkDn9VYY6CrK17LhpjUeVy2hVDwcZPXO3rOe4gUOiQd9SA 1Ib9zBorqUo8kGvCN7nUHWQrmSDoRcaV5xUEvYmwA6Iw6vQpQ2eAwAsVDlLaJ8qqOc1SCYs2 1vPmMnmbRRrsbuIWWqF/fKYoC2aPSkOMXREYj0ARAEepd75r+kbihPJU8YmFa+tlfXrFjzqh TOHti4zg/MUl8Fj/7Xro3jEjiiqq5yPSRQ6ji3MU2ujqAp/aIO/fIuuwUPW5vEGJ4GcJnGdu 30NgI6b8ewUEJeOnQSCRewMGPei4PPtGCTBgFVYB5M7/jSo8la6YIFb4Td1YkxuN64scDzxZ WfXuAVM9NpdO2asYaZrYoW3TcMwwsDIGd3jV/3QRtVPZ4B8cAKZ/SpuI1WZ2SXjikEqmqAkM pDdes/qEG1yIb5gxjqeROoH17IvgCckygv7TpDhzg+71qKeaTiRRK0CIXOFde8j676c5gjIm /5ANs+O4xZSSuvzZm/Q64F7ELwRBWIwCZazoMtNe6vfZAFnA2omTfTWxNvNZrCJgYxJzejJ/ m+7fXNb2WvGl0XiNiyKZWtsPeaHsYlEkVo3OiklPFCN0nclYJqy4Kp3S3fRVeR5nACE5aMpJ 8Tpa/lsEdwUFWuao2V1gY3V6d09JE7y1GpiKgL8OGBnF6OMUTAl7TMNQ+cC3DMFAizyvswkr vj8kAjaWpEEAQ9lCa46ic5DLXvv4RDxe8orAiMkx+W/nm2wrOCGzASt1pcKzzkkc0mr+9dj/ 1/+7e0kjefMuZQp19LCmLqJqYyke8MnQBsLQjSHs+rmbnaGloZG/WOmeLjRFdw6fD2skJhOm c0Jpx0BGKRdxQ0T49YU/0hDl/5kubMDWIO2Piw9TCmUMDxH+5trI2KN2oFUp7ZRy7pC0TZaq WrRkuS2zY6hYZu/eHZIfVJNRr3ahZk8xGKIhdxrexqS2cOC1OfdOamkF0PS2HU1wXocGN5N/ NrNT+ZPsFzn1kp1YorW5s2WnkzVRkE9v2wcnslyKOfWZsADkzmuvbS05vfK3ayy IronPort-HdrOrdr: A9a23:8hX10KzJCp3ev/u3nQRoKrPwF71zdoMgy1knxilNoNJuHvBw8P re+MjzuiWbtN98YhsdcJW7Scq9qBDnhPtICPcqXItKNTOO0ACVxcNZnOnfKlbbdBEWmNQx6U 5ISdkYNDSJNzhHZQKQ2njALz7mq+P3lpyVuQ== X-Talos-CUID: 9a23:ovLiuG2jLCZwgmjd/3mxMbxfBpsqc33DylDsIF6JMHRRbaK8SVCL9/Yx X-Talos-MUID: 9a23:Dz9OZAirh9HKqH0Sbu1iIsMpL9pS0YD+Nm4xgcsAnsvVciNoMQi+g2Hi X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="134982800" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-4.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:33 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVN011466; Fri, 10 Nov 2023 01:38:32 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Rob Herring , Frank Rowand Cc: xe-linux-external@cisco.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/8] of: replace command line handling Date: Thu, 9 Nov 2023 17:38:11 -0800 Message-Id: <20231110013817.2378507-8-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org Rob Herring has complained about this section of code. I removed the command line handling code to the cmdline.h header. This hopefully makes it easier for Rob to maintain it (at least he doesn't have to look at it directly anymore). I would like to add a Kconfig option called OF_DEPRECATED_CMDLINE which an architecture would set if it uses this code. This would allow a platform to use the cmdline.h and the added function directly and remove the Kconfig option. This change would be in a subsequent patch. This code was boot tested on powerpc 32bit, powerpc 64bit without any generic command line conversion. Cc: xe-linux-external@cisco.com Signed-off-by: Daniel Walker --- drivers/of/fdt.c | 22 +++------------------- include/linux/cmdline.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index bf502ba8da95..1fc1b17d04dc 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -26,6 +26,7 @@ #include #include #include +#include #include /* for COMMAND_LINE_SIZE */ #include @@ -1183,27 +1184,10 @@ int __init early_init_dt_scan_chosen(char *cmdline) /* Retrieve command line */ p = of_get_flat_dt_prop(node, "bootargs", &l); - if (p != NULL && l > 0) - strscpy(cmdline, p, min(l, COMMAND_LINE_SIZE)); handle_cmdline: - /* - * CONFIG_CMDLINE is meant to be a default in case nothing else - * managed to set the command line, unless CONFIG_CMDLINE_FORCE - * is set in which case we override whatever was found earlier. - */ -#ifdef CONFIG_CMDLINE -#if defined(CONFIG_CMDLINE_EXTEND) - strlcat(cmdline, " ", COMMAND_LINE_SIZE); - strlcat(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); -#elif defined(CONFIG_CMDLINE_FORCE) - strscpy(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); -#else - /* No arguments from boot loader, use kernel's cmdl*/ - if (!((char *)cmdline)[0]) - strscpy(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); -#endif -#endif /* CONFIG_CMDLINE */ + + of_deprecated_cmdline_update(cmdline, p, l); pr_debug("Command line is: %s\n", (char *)cmdline); diff --git a/include/linux/cmdline.h b/include/linux/cmdline.h index a94758a0f257..c772afb7340f 100644 --- a/include/linux/cmdline.h +++ b/include/linux/cmdline.h @@ -103,4 +103,35 @@ __cmdline_add_builtin( #define cmdline_get_static_builtin(dest) \ (CMDLINE_STATIC_PREPEND CMDLINE_STATIC_APPEND) + +#ifndef CONFIG_GENERIC_CMDLINE +static inline bool of_deprecated_cmdline_update(char *cmdline, const char *dt_bootargs, int length) +{ + if (dt_bootargs != NULL && length > 0) + strlcpy(cmdline, dt_bootargs, min(length, COMMAND_LINE_SIZE)); + /* + * CONFIG_CMDLINE is meant to be a default in case nothing else + * managed to set the command line, unless CONFIG_CMDLINE_FORCE + * is set in which case we override whatever was found earlier. + */ + +#ifdef CONFIG_CMDLINE +#if defined(CONFIG_CMDLINE_EXTEND) + strlcat(cmdline, " ", COMMAND_LINE_SIZE); + strlcat(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); +#elif defined(CONFIG_CMDLINE_FORCE) + strscpy(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); +#else + /* No arguments from boot loader, use kernel's cmdl*/ + if (!((char *)cmdline)[0]) + strscpy(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE); #endif +#endif /* CONFIG_CMDLINE */ + return true; +} +#else +static inline bool of_deprecated_cmdline_update(char *cmdline, const char *dt_bootargs, int length) { return false; } +#endif /* CONFIG_GENERIC_CMDLINE */ + + +#endif /* _LINUX_CMDLINE_H */ From patchwork Fri Nov 10 01:38:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Daniel Walker (danielwa)" X-Patchwork-Id: 13451999 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4794AC4332F for ; Fri, 10 Nov 2023 01:39:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345787AbjKJBjz (ORCPT ); Thu, 9 Nov 2023 20:39:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345697AbjKJBjq (ORCPT ); Thu, 9 Nov 2023 20:39:46 -0500 Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 899B146B4; Thu, 9 Nov 2023 17:39:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5564; q=dns/txt; s=iport; t=1699580378; x=1700789978; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=G3mzXCo9zuU2hguTVdS6rnUvvYqWcYPaShxuD6OBkN0=; b=F2nUfxUCtcFveI3oyIjsm4cpIR/FGXOMK+WdV1NC63TpwUmtTPdnK4dn wyjbd+xUeI5JWaDcewY1of+WBqNftJKnbd2E8CqXZ5ZWTtvZ030SeeMe2 66D5s2XYrC2cpyj2STElo1d0exYw0SWDqJBNkMXHMSvHTD/TfECxO/m7M g=; X-CSE-ConnectionGUID: YdHHS5cKSjOdkXWDdGQbWA== X-CSE-MsgGUID: 3j2JtuLcRJaUnDnLONU/TA== X-IPAS-Result: A0ANAABsiE1lmJtdJa1aHAEBAQEBAQcBARIBAQQEAQGBewcBAQsBhAdASIxvp0OBJQNWDwEBAQ9EBAEBhQYChyYCJjQJDgECBAEBAQEDAgMBAQEBAQEBAgEBBQEBAQIBBwQUAQEBAQEBAQEeGQUOECeFdYZNAwMyAUYQUVcGARKCfoJfA61YgiyBAbMogWgYgTABjEOBHoQ1JxuBSUSCUIItiwYEiSUHMoIig1KNS39HWhYdAwcDVikQKwcELSIGCRQtIwZRBBcRJAkTEj4EgWOBUQp/Pw8OEYI/IgI9NhlIglsVQARGdhAqBBQXgRJuGxUeNxESFw0DCHQdAhEjPAMFAwQzChINCyEFFEIDQgZJCwMCGgUDAwSBNgUNHgIQLScDAxNNAhAUAzsDAwYDCzEDMFVEDFEDbx8aHAk8DwwfAhseDScoAjVDAxEFEgIWAyQZBEUDCQMHBUlAAwsYDUgRLDUGDhsGP3MHoVQBgQ+CBW6ScwqRS6BHhBeBX58qGjOqA5g/IKJxhUCBYzqBWzMaCBsVgyJSGQ+OLA0JkxIBXSMyOwIHCwEBAwmLSgEB IronPort-Data: A9a23:Qrw7/6MulgG1lqvvrR1KkMFynXyQoLVcMsEvi/4bfWQNrUol0WEGy WcZW2jXbK6IYWH1c4t2aNjgphtVsZ/RmIAyHHM5pCpnJ55oRWUpJjg4wmPYZX76whjrFRo/h ykmQoCdaphyFjmF/kvF3oHJ9RFUzbuPSqf3FNnKMyVwQR4MYCo6gHqPocZh6mJTqYb/W1jlV e/a+ZWFYwb8gmYsawr41orawP9RlKWq0N8nlgRWicBj5Df2i3QTBZQDEqC9R1OQrl58R7PSq 07rldlVz0uBl/sfIorNfoXTLiXmdoXv0T2m0RK6bUQNbi9q/UTe2o5jXBYVhNw+Zz+hx7idw /0V3XC8pJtA0qDkwIwgvxdk/y5WDKFm2ISaKluEs+ufzH35X3fD+v9RJRRjVWEY0r4f7WBm7 /cULnUGaQqOwr7wy7OgQe4qjcMmRCXpFNpA4Tc7kneIVrB/HM2rr6bivbe02B88j8ZPEPLBb uISaCFka1LLZBgn1lI/UcljxL722iSjG9FegAmX/4gr/kzY9i547b7BNv7yXOHNeewAyy50o UqfrzimXXn2Lue3zTuD72LpheLVmy7/cJwdGaf+9fNwhlCXgGsJB3U+UVq9vOn8g1S7HtFSM UoZ/gIqrLMu7wqqSNfnVhG1qXLCuQQTM/JbGvEz7ACLjK/d+QefD3MsRyRELtchsaceQT0sy 0+Rh9isCTFxmLmUUm6GsLCGqTq4Im4SN2BqTSsFSxYVptziuJobkB3CVJBgHbSzg9mzHiv/q xia/HYWhLgJi8MPkaKh8jjvmD+loN7ASAI4/B7QWEq+4wh+IoWiYuSA9V/e5O0GKZuVVESHv 3EslM2X7eRIBpaI/ASUXeQGK6mj/f+FNTT0mENuFJgn/HKm/HvLVYlT+DRWIEZvL9ZBdzj0Z kPapQJW4tlUJnTCRaN+ZYO8D+wlzK34GNDoSPHfbpxVa540ehWO+ipvfkWXmWvk1lU3+YklP p2bWcWhF3AXDeJg1jXeb+wdy74w2icmxW6VQZ3hyAWP2qGRfnmIUfEILTOmceE96IuHrR/T/ tIZMNGFoyizS8XkaSXRtIUUN11PcT4wBIv9rIpccevrzhda9H8JOvPx4Yh8cK9enYNZldf30 n2SY0Vn4Q+q7ZHYEjmiZndmYbLpeJ9wq3MnICAhVWpEPVB+P+5DC49CKvMKkakbGP9LlqErE qFUEymUKrEeFWSdomV1gYzV9dQ6LHyWaRSy0z1JiQXTkrZ6TADPv9TjZAaqqG8FDzG8so01p LjIOuLnrXgrGVgK4CX+Ma/HI7aNUZ41xL4as6zgfoE7RakU2NI2QxEdd9duSy32FT3NxyGBy yGdCgoCqO/GrucdqYeY1P3Z89n1Q7AhQiK2+lU3C57obEE2GUL9med9vBqgIVgxqUutovz5P LUJpx0CGKdbxggiX3VA/0ZDlPJiuISHS05yxQV/F3KDdEWwFr5lORG7MTpn6MVwKktikVLuA Cqno4ACUZ3QYZ+NOABKfmINML/cvcz4bxGPt5zZ1m2gun8ulFdGOG0PVySxZNt1deAlaN91n rd96Kb7KWWX03IXDzpPtQgMn0zkE5DKe/xPWk0yaGMztjcW9w== IronPort-HdrOrdr: A9a23:b/Ygcq9TQsiw84BTBQ9uk+DjI+orL9Y04lQ7vn2ZhyY4TiX+rb HLoB1173HJYVoqMk3I3OrwW5VoIkmskKKdn7NxAV7KZmCP01dAbrsSj7cKqAeOJ8SRzINgPI 5bAs9D4aXLbWSTSa3BkXCF+xFK+qjgzJyV X-Talos-CUID: 9a23:zo7SVGl8chH7+ZqbvLEe1TvEUczXOUzR7FfrfkSbMmRORL6ldnOc15purOM7zg== X-Talos-MUID: 9a23:1okezwpl1HEpOPbxGLsez2pgbuV0/oClMmIErJMqve2jExE3Bx7I2Q== X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,291,1694736000"; d="scan'208";a="135016454" Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-5.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2023 01:38:35 +0000 Received: from goliath.lan ([10.25.128.169]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 3AA1cHVO011466; Fri, 10 Nov 2023 01:38:34 GMT From: Daniel Walker To: Will Deacon , Christophe Leroy , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , x86@kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Catalin Marinas Cc: xe-linux-external@cisco.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 8/8] CMDLINE: arm64: convert to generic builtin command line Date: Thu, 9 Nov 2023 17:38:12 -0800 Message-Id: <20231110013817.2378507-9-danielwa@cisco.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231110013817.2378507-1-danielwa@cisco.com> References: <20231110013817.2378507-1-danielwa@cisco.com> MIME-Version: 1.0 X-Auto-Response-Suppress: DR, OOF, AutoReply X-Outbound-SMTP-Client: 10.25.128.169, [10.25.128.169] X-Outbound-Node: rcdn-core-4.cisco.com Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org This removes arm64 from the device tree handling of the command line arguments. The boot_command_line variable is populated inside the earliest user of the command line, which is in idreg-override.c. The device tree should not be needed to do any further handling of the boot command line options. Cc: xe-linux-external@cisco.com Signed-off-by: Daniel Walker --- arch/arm64/Kconfig | 33 +---------------------------- arch/arm64/include/asm/setup.h | 4 ++++ arch/arm64/include/uapi/asm/setup.h | 2 ++ arch/arm64/kernel/idreg-override.c | 9 ++++---- arch/arm64/kernel/pi/kaslr_early.c | 14 ++++++------ 5 files changed, 19 insertions(+), 43 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 78f20e632712..d3b7fd1080d0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -131,6 +131,7 @@ config ARM64 select GENERIC_ALLOCATOR select GENERIC_ARCH_TOPOLOGY select GENERIC_CLOCKEVENTS_BROADCAST + select GENERIC_CMDLINE select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_VULNERABILITIES select GENERIC_EARLY_IOREMAP @@ -2217,38 +2218,6 @@ config ARM64_ACPI_PARKING_PROTOCOL protocol even if the corresponding data is present in the ACPI MADT table. -config CMDLINE - string "Default kernel command string" - default "" - help - Provide a set of default command-line options at build time by - entering them here. As a minimum, you should specify the the - root device (e.g. root=/dev/nfs). - -choice - prompt "Kernel command line type" if CMDLINE != "" - default CMDLINE_FROM_BOOTLOADER - help - Choose how the kernel will handle the provided default kernel - command line string. - -config CMDLINE_FROM_BOOTLOADER - bool "Use bootloader kernel arguments if available" - help - Uses the command-line options passed by the boot loader. If - the boot loader doesn't provide any, the default kernel command - string provided in CMDLINE will be used. - -config CMDLINE_FORCE - bool "Always use the default kernel command string" - help - Always use the default kernel command string, even if the boot - loader passes other arguments to the kernel. - This is useful if you cannot or don't want to change the - command-line options your boot loader passes to the kernel. - -endchoice - config EFI_STUB bool diff --git a/arch/arm64/include/asm/setup.h b/arch/arm64/include/asm/setup.h index f4af547ef54c..5a8037262cbb 100644 --- a/arch/arm64/include/asm/setup.h +++ b/arch/arm64/include/asm/setup.h @@ -3,10 +3,13 @@ #ifndef __ARM64_ASM_SETUP_H #define __ARM64_ASM_SETUP_H +#ifndef __ASSEMBLY__ #include +#endif #include +#ifndef __ASSEMBLY__ void *get_early_fdt_ptr(void); void early_fdt_map(u64 dt_phys); @@ -30,5 +33,6 @@ static inline bool arch_parse_debug_rodata(char *arg) return false; } #define arch_parse_debug_rodata arch_parse_debug_rodata +#endif /* __ASSEMBLY__ */ #endif diff --git a/arch/arm64/include/uapi/asm/setup.h b/arch/arm64/include/uapi/asm/setup.h index 5d703888f351..f5fc5b806369 100644 --- a/arch/arm64/include/uapi/asm/setup.h +++ b/arch/arm64/include/uapi/asm/setup.h @@ -20,7 +20,9 @@ #ifndef __ASM_SETUP_H #define __ASM_SETUP_H +#ifndef __ASSEMBLY__ #include +#endif #define COMMAND_LINE_SIZE 2048 diff --git a/arch/arm64/kernel/idreg-override.c b/arch/arm64/kernel/idreg-override.c index 3addc09f8746..6334a9228909 100644 --- a/arch/arm64/kernel/idreg-override.c +++ b/arch/arm64/kernel/idreg-override.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -304,11 +305,11 @@ static __init void parse_cmdline(void) { const u8 *prop = get_bootargs_cmdline(); - if (IS_ENABLED(CONFIG_CMDLINE_FORCE) || !prop) - __parse_cmdline(CONFIG_CMDLINE, true); + strscpy(boot_command_line, prop, COMMAND_LINE_SIZE); + cmdline_add_builtin(boot_command_line); + + __parse_cmdline(boot_command_line, true); - if (!IS_ENABLED(CONFIG_CMDLINE_FORCE) && prop) - __parse_cmdline(prop, true); } /* Keep checkers quiet */ diff --git a/arch/arm64/kernel/pi/kaslr_early.c b/arch/arm64/kernel/pi/kaslr_early.c index 17bff6e399e4..1e00bc01fa7a 100644 --- a/arch/arm64/kernel/pi/kaslr_early.c +++ b/arch/arm64/kernel/pi/kaslr_early.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -42,7 +43,7 @@ static bool cmdline_contains_nokaslr(const u8 *cmdline) static bool is_kaslr_disabled_cmdline(void *fdt) { - if (!IS_ENABLED(CONFIG_CMDLINE_FORCE)) { + if (!IS_ENABLED(CONFIG_CMDLINE_OVERRIDE)) { int node; const u8 *prop; @@ -54,16 +55,15 @@ static bool is_kaslr_disabled_cmdline(void *fdt) if (!prop) goto out; + if (cmdline_contains_nokaslr(CMDLINE_STATIC_APPEND)) + return true; if (cmdline_contains_nokaslr(prop)) return true; - - if (IS_ENABLED(CONFIG_CMDLINE_EXTEND)) - goto out; - - return false; + if (cmdline_contains_nokaslr(CMDLINE_STATIC_PREPEND)) + return true; } out: - return cmdline_contains_nokaslr(CONFIG_CMDLINE); + return cmdline_contains_nokaslr(cmdline_get_static_builtin()); } static u64 get_kaslr_seed(void *fdt)