mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-27 07:23:30 +08:00
874916567a
The MMU option is currently located in the "Toolchain" menu, but it doesn't make sense as it's really architecture related. In addition, the selection of MMU has an impact on the choice of binary format available, which is visible in the architecture menu. Therefore, this commit moves the MMU option into the architecture menu. However, if we simply move it in arch/Config.in, it means that we would have the following order of options: Target architecture Target architecture variant ABI MMU Binary format But really, the MMU option should be right below the Target architecture variant, and the available ABIs derived from that. The variant and ABI are arch-specfic, and defined in the per-arch Config.in fragments; a Kconfig option can have only one prompt defined, even under conditions, and appears at the place in the menu where its prompt was defined. So, there is no (easy) possibility to have a generic option appear where we want it. Since in fact only 2 architectures show a visible prompt for the MMU option (RISC-V and Xtensa), we move this option in arch/Config.in.riscv and arch/Config.in.xtensa. Some walkthrough the commit: - BR2_ARCH_HAS_MMU_MANDATORY and BR2_ARCH_HAS_MMU_OPTIONAL are removed as they are no longer needed - BR2_USE_MMU becomes a hidden boolean - All the places where we used to select BR2_ARCH_HAS_MMU_MANDATORY now select BR2_USE_MMU directly. - Introduce BR2_RISCV_USE_MMU and BR2_XTENSA_USE_MMU. - All defconfigs that used "# BR2_USE_MMU is not set" are switched to using the new option. All in all, this simplifies things quite a bit, and allows to have a good option ordering in the Target architecture menu. This commit might raise a concern in terms of backward compatibility with existing configurations. The only configurations that will be broken by this change are RISC-V noMMU (which was very recently introduced) and Xtensa noMMU (which we can probably agree is not such a widely popular configuration). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> [yann.morin.1998@free.fr: - expand further why we need per-arch MMU options ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
67 lines
1.5 KiB
Plaintext
67 lines
1.5 KiB
Plaintext
choice
|
|
prompt "Target Architecture Variant"
|
|
default BR2_xtensa_fsf
|
|
depends on BR2_xtensa
|
|
|
|
config BR2_XTENSA_CUSTOM
|
|
bool "Custom Xtensa processor configuration"
|
|
|
|
config BR2_xtensa_fsf
|
|
bool "fsf - Default configuration"
|
|
select BR2_USE_MMU
|
|
|
|
endchoice
|
|
|
|
config BR2_XTENSA_OVERLAY_FILE
|
|
string "Overlay file for custom configuration"
|
|
depends on BR2_XTENSA_CUSTOM
|
|
help
|
|
Enter the path to the overlay tarball for a custom processor
|
|
configuration.
|
|
|
|
These overlay files are tar packages with updated
|
|
configuration files for various toolchain packages and Xtensa
|
|
processor configurations. They are provided by the processor
|
|
vendor or directly from Tensilica.
|
|
|
|
The path can be either absolute, or relative to the top
|
|
directory of buildroot.
|
|
|
|
choice
|
|
prompt "Target Architecture Endianness"
|
|
default BR2_XTENSA_LITTLE_ENDIAN
|
|
depends on BR2_XTENSA_CUSTOM
|
|
|
|
config BR2_XTENSA_LITTLE_ENDIAN
|
|
bool "Little endian"
|
|
|
|
config BR2_XTENSA_BIG_ENDIAN
|
|
bool "Big endian"
|
|
|
|
endchoice
|
|
|
|
config BR2_XTENSA_USE_MMU
|
|
bool "MMU support"
|
|
default y
|
|
depends on BR2_XTENSA_CUSTOM
|
|
select BR2_USE_MMU
|
|
help
|
|
Enable this option if your Xtensa core has a MMU (Memory
|
|
Management Unit).
|
|
|
|
config BR2_ENDIAN
|
|
default "LITTLE" if BR2_XTENSA_LITTLE_ENDIAN
|
|
default "BIG" if BR2_xtensa_fsf || BR2_XTENSA_BIG_ENDIAN
|
|
|
|
config BR2_ARCH
|
|
default "xtensa" if BR2_xtensa
|
|
|
|
config BR2_NORMALIZED_ARCH
|
|
default "xtensa"
|
|
|
|
config BR2_READELF_ARCH_NAME
|
|
default "Tensilica Xtensa Processor"
|
|
|
|
# vim: ft=kconfig
|
|
# -*- mode:kconfig; -*-
|