Revert "Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support""

This is not needed now that CONFIG_SYS_TARGET_NAME is correctly determined
when scanning Kconfig.

This reverts commit 25b8acee2e.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2022-07-11 19:04:07 -06:00 committed by Tom Rini
parent 256126c294
commit 5579ce747d
6 changed files with 4 additions and 111 deletions

View File

@ -452,19 +452,6 @@ config OF_STDOUT_VIA_ALIAS
incorrect when used with device tree as this option does not incorrect when used with device tree as this option does not
exist / should not be used. exist / should not be used.
config SYS_EXTRA_OPTIONS
string "Extra Options (DEPRECATED)"
help
The old configuration infrastructure (= mkconfig + boards.cfg)
provided the extra options field. If you have something like
"HAS_BAR,BAZ=64", the optional options
#define CONFIG_HAS
#define CONFIG_BAZ 64
will be defined in include/config.h.
This option was prepared for the smooth migration from the old
configuration to Kconfig. Since this option will be removed sometime,
new boards should not use this option.
config HAVE_SYS_TEXT_BASE config HAVE_SYS_TEXT_BASE
bool bool
depends on !NIOS2 && !XTENSA depends on !NIOS2 && !XTENSA

View File

@ -99,7 +99,6 @@ Kconfig. Each field of boards.cfg was converted as follows:
Vendor -> CONFIG_SYS_VENDOR defined by Kconfig Vendor -> CONFIG_SYS_VENDOR defined by Kconfig
Board -> CONFIG_SYS_BOARD defined by Kconfig Board -> CONFIG_SYS_BOARD defined by Kconfig
Target -> File name of defconfig (configs/<target>_defconfig) Target -> File name of defconfig (configs/<target>_defconfig)
Options -> CONFIG_SYS_EXTRA_OPTIONS defined by Kconfig
Maintainers -> "M:" entry of MAINTAINERS Maintainers -> "M:" entry of MAINTAINERS
@ -140,12 +139,6 @@ When removing an obsolete board, the following steps are generally needed:
TODO TODO
---- ----
- The option field of boards.cfg, which was used for the pre-Kconfig
configuration, moved to CONFIG_SYS_EXTRA_OPTIONS verbatim now.
Board maintainers are expected to implement proper Kconfig options
and switch over to them. Eventually CONFIG_SYS_EXTRA_OPTIONS will go away.
CONFIG_SYS_EXTRA_OPTIONS should not be used for new boards.
- In the pre-Kconfig, a single board had multiple entries in the boards.cfg - In the pre-Kconfig, a single board had multiple entries in the boards.cfg
file with differences in the option fields. The corresponding defconfig file with differences in the option fields. The corresponding defconfig
files were auto-generated when switching to Kconfig. Now we have too many files were auto-generated when switching to Kconfig. Now we have too many

View File

@ -295,8 +295,7 @@ Available options
-y, --yes -y, --yes
Instead of prompting, automatically go ahead with all operations. This Instead of prompting, automatically go ahead with all operations. This
includes cleaning up headers, CONFIG_SYS_EXTRA_OPTIONS, the config whitelist includes cleaning up headers, the config whitelist and the README.
and the README.
To see the complete list of supported options, run:: To see the complete list of supported options, run::

View File

@ -112,10 +112,6 @@ vpl/include/autoconf.mk: vpl/u-boot.cfg
# Prior to Kconfig, it was generated by mkconfig. Now it is created here. # Prior to Kconfig, it was generated by mkconfig. Now it is created here.
define filechk_config_h define filechk_config_h
(echo "/* Automatically generated - do not edit */"; \ (echo "/* Automatically generated - do not edit */"; \
for i in $$(echo $(CONFIG_SYS_EXTRA_OPTIONS) | sed 's/,/ /g'); do \
echo \#define CONFIG_$$i \
| sed '/=/ {s/=/ /;q; } ; { s/$$/ 1/; }'; \
done; \
echo \#define CONFIG_BOARDDIR board/$(if $(VENDOR),$(VENDOR)/)$(BOARD);\ echo \#define CONFIG_BOARDDIR board/$(if $(VENDOR),$(VENDOR)/)$(BOARD);\
echo \#include \<config_uncmd_spl.h\>; \ echo \#include \<config_uncmd_spl.h\>; \
echo \#include \<configs/$(CONFIG_SYS_CONFIG_NAME).h\>; \ echo \#include \<configs/$(CONFIG_SYS_CONFIG_NAME).h\>; \

View File

@ -10,30 +10,13 @@
# #
export LC_ALL=C LC_COLLATE=C export LC_ALL=C LC_COLLATE=C
# There are two independent greps. The first pulls out the component parts # Looks for the rest of the CONFIG options, but exclude those in Kconfig and
# of CONFIG_SYS_EXTRA_OPTIONS. An example is: # defconfig files.
# #
# SUN7I_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)
#
# We want this to produce:
# CONFIG_SUN7I_GMAC
# CONFIG_AHCI
# CONFIG_SATAPWR
#
# The second looks for the rest of the CONFIG options, but excludes those in
# Kconfig and defconfig files.
#
(
git grep CONFIG_SYS_EXTRA_OPTIONS |sed -n \
's/.*CONFIG_SYS_EXTRA_OPTIONS="\(.*\)"/\1/ p' \
| tr , '\n' \
| sed 's/ *\([A-Za-z0-9_]*\).*/CONFIG_\1/'
git grep CONFIG_ | \ git grep CONFIG_ | \
egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \ egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \
| tr ' \t' '\n\n' \ | tr ' \t' '\n\n' \
| sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' | sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' \
) \
|sort |uniq >scripts/config_whitelist.txt.tmp1; |sort |uniq >scripts/config_whitelist.txt.tmp1;
# Finally, we need a list of the valid Kconfig options to exclude these from # Finally, we need a list of the valid Kconfig options to exclude these from

View File

@ -443,70 +443,6 @@ def cleanup_headers(configs, args):
cleanup_one_header(header_path, patterns, args) cleanup_one_header(header_path, patterns, args)
cleanup_empty_blocks(header_path, args) cleanup_empty_blocks(header_path, args)
def cleanup_one_extra_option(defconfig_path, configs, args):
"""Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in one defconfig file.
Args:
defconfig_path: path to the cleaned defconfig file.
configs: A list of CONFIGs to remove.
args (Namespace): program arguments
"""
start = 'CONFIG_SYS_EXTRA_OPTIONS="'
end = '"'
lines = read_file(defconfig_path)
for i, line in enumerate(lines):
if line.startswith(start) and line.endswith(end):
break
else:
# CONFIG_SYS_EXTRA_OPTIONS was not found in this defconfig
return
old_tokens = line[len(start):-len(end)].split(',')
new_tokens = []
for token in old_tokens:
pos = token.find('=')
if not (token[:pos] if pos >= 0 else token) in configs:
new_tokens.append(token)
if new_tokens == old_tokens:
return
tolines = copy.copy(lines)
if new_tokens:
tolines[i] = start + ','.join(new_tokens) + end
else:
tolines.pop(i)
show_diff(lines, tolines, defconfig_path, args.color)
if args.dry_run:
return
write_file(defconfig_path, tolines)
def cleanup_extra_options(configs, args):
"""Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in defconfig files.
Args:
configs: A list of CONFIGs to remove.
args (Namespace): program arguments
"""
if not confirm(args, 'Clean up CONFIG_SYS_EXTRA_OPTIONS?'):
return
configs = [ config[len('CONFIG_'):] for config in configs ]
defconfigs = get_all_defconfigs()
for defconfig in defconfigs:
cleanup_one_extra_option(os.path.join('configs', defconfig), configs,
args)
def cleanup_whitelist(configs, args): def cleanup_whitelist(configs, args):
"""Delete config whitelist entries """Delete config whitelist entries
@ -1803,7 +1739,6 @@ doc/develop/moveconfig.rst for documentation.'''
if configs: if configs:
cleanup_headers(configs, args) cleanup_headers(configs, args)
cleanup_extra_options(configs, args)
cleanup_whitelist(configs, args) cleanup_whitelist(configs, args)
cleanup_readme(configs, args) cleanup_readme(configs, args)