Remove "AMD P-State Self Test" as it's only for debugging. Adjust some
forced settings as X86_INTEL_PSTATE may be unset if SCHED_MC unset.
Mention X86 Platform Specific Device Drivers may provide platform
profile support (actually more powerful than CPUFreq).
Also fix a glitch in kernel-config.py so it won't mark "'" as hotkey
anymore.
The special parse_choice function is just duplicating code unnecessary
and it has some flaws. Remove it and handle choice's with parse_config
too.
All kernel.xml files regenerated and there is no change.
For example:
menu "Power management and ACPI options"
config ARCH_SUPPORTS_ACPI
bool
config ACPI
bool
depends on ARCH_SUPPORTS_ACPI
prompt "ACPI (Advanced Configuration and Power Interface) Support"
endmenu
If ACPI=y, we need to "backward propagate" it to ARCH_SUPPORTS_ACPI, in
order to further mark the menu used. Otherwise the ACPI menu won't show
up.
1. Don't throw unspecified entries too early. Doing so caused various
rendering glitches. And we can now also check if an entry is
selected but it's parent not.
2. "menu"s in Kconfig can also have dependencies...
Some pre-existing .toml data files are found problematic after the
change, fix them and regenerate all rendered -kernel.xml files.
This is stupid and it will cause meaningless diffs in version control
(like this commit does :( ).
Remove the kernel version from the generated XML files. Add
kernel.version file into git to track the kernel version.
I don't know these FS very well so I did not change things, except:
- "SCSI_LOW_LEVEL" should be "SCSI_LOWLEVEL" (without the "_" between
"LOW" and "LEVEL").
- RAID append mode is deprecated, so I removed it.
And I've fixed some issues in kernel-config.py as well.
The kernel-config.py script takes a toml file containing a set of
kernel configuration key-value pairs. Then it parses the Kconfig files
in a kernel source tree and render the given configuration as a
LFS-style <screen> in a separate XML file. The XML file can be used in
the book with xinclude.
Some "features":
1. The lines are limited to 80 columns.
If the text of the configuration option is too long, it will be
trimmed; if the symbolic name of the option cannot fit in this line,
a separate line will be used for it.
2. If a configuration option is given but it does not exist in Kconfig
files, the script will abort immediately. This helps catching
removed options.
3. The script also aborts immediately if a configuration option is
illegal, for example setting an option to 'M' while it cannot be a
module.
4. The infrastructure is not wired into the main Makefile. It's because
not all editors have the latest kernel tree, and even if they do the
locations of the kernel tree are still different. To update the
generated XML files, use
"make -C kernel-config KERNEL_TREE=/sources/linux-x.y.z".
Backword incompatible change:
The script no longer outputs "CONFIG_" prefix for the symbolic name. It
really does not make too much sense to waste 7 characters here because
it's a common prefix for all options!
A limitation:
The script does not really validate the configuration. Generally
validating the configuration requires to solve the 3-CNF-SAT problem,
which is NP-complete.