123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- ##################################
- # Introduction
- ##################################
- Using config fragments in the Linux kernel is a supported model in the
- Linux kernel main line. TI has taken advantage of this model to be able
- to take a base defconfig and add or remove configuration flags based contained
- within a config fragment. This allows the base defconfig to be left in tact
- and helps facilitate and understanding of what config flags can be enabled
- or disabled. The config fragments drastically reduces the number of merge
- conflicts when the Linux stable dot release (LTS) is merged back to the
- integration point as well as merges for TI domain trees.
- But alas this creates another issue as with the config fragments there is no
- direct defconfig for customers to build just many, many, many options.
- Therefore the defconfig_builder script was derived to take a defconfig map file
- and present a command line interface to the customer to to create a standard
- defconfig based off the TI integration branches. The customer is walked through
- steps and if successful a defconfig will be created in the arch/arm/configs directory
- that can be built.
- ##################################
- # Requirements
- ##################################
- * awk v1.2 or greater.
- * bash shell 4.3.11(1)-release or greater.
- * Coreutils package v8.1 or greater.
- * grep (GNU grep) v2.16 or greater.
- * Linux kernel with merge_config script.
- * sed (GNU sed) v4.2.2 or greater.
- ##################################
- # Usage
- ##################################
- There is only one option for this script. This option defines the working
- path to where the Linux kernel resides.
- -w - Location of the TI Linux kernel
- -t - Indicates the type of defconfig to build. This will force the
- defconfig to build without user interaction.
- -l - List all buildable defconfig options
- Command line example to generate the TI SDK AM335x processor defconfig automatically
- without user interaction:
- ti_config_fragments/defconfig_builder.sh -t ti_sdk_am3x_release
- Command line Example if building from the ti_config_fragments directory:
- defconfig_builder.sh -w ../.
- User interactive command line example:
- ##################################
- # Defconfig Map File
- ##################################
- The defconfig map file contains the mapping of the defconfig options and the
- assembly instructions for the defconfig to be created.
- The file contains keywords and all are *required* to be filled out.
- classification: - Defines the class of the defconfig which can be Release, Debug, System Test.
- type: - Defines the type of build. Like debug build, LSK build or RT build
- defconfig: - Defines the base defconfig config to append the config fragments to
- config_file: - Defines a file that contains a list of config fragments. If there is not a list then declare "None" for this field.
- extra_configs: - These are individual config fragments that can be appended to the defconfig by themselves or in addition to
- the config_file.
- A Note on ordering of "extra_configs":
- In general, config fragments should be listed such that the fragment
- with more restrictive options goes towards the end of the list. This
- makes sure that those options are not inadvertently overridden by more
- generically applicable options. More concretely, the following ordering
- is recommended:
- 1) Pruning of non-TI features
- 2) Introduce domain specific features
- 3) Optimize for an SoC family
- 4) Optimize for a particular SoC
- 5) Introduce distribution specific features. (example: Android)
- Example:
- This is an example of an AM335x entry that will create a defconfig only for AM335x
- processors, based on the omap2plus_defconfig. The defconfig_fragment file adds features
- that have been enabled in the TI integrated kernel. The extra_configs will add in the
- debug options as well as undefine all processors that are not AM335x.
- classification: SDK_release type: ti_sdk_am3x_release defconfig: multi_v7_defconfig config_file: None extra_configs: multi_v7_prune.cfg baseport.cfg ipc.cfg connectivity.cfg audio_display.cfg omap_soc.cfg am33xx_only.cfg systemd.cfg
- ##################################
- # Defconfig Mapping
- ##################################
- #Processor Specific Defconfig options
- These defconfig options enable the Linux kernel for the targer processor only. Other processor platforms
- are disabled. The base for each of these defconfigs is the omap2plus_defconfig contained
- in the arch/arm/configs directory of the kernel.
- TI Base Integrated Kernel:
- am335x_only - Adds the configs from the files contained in the defconfig_fragment file.
- am335x_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg
- am43x_only - Adds the configs from the files contained in the defconfig_fragment file.
- am43x_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg
- dra7xx_only - Adds the configs from the files contained in the defconfig_fragment file.
- dra7xx_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg
- Linaro Stable Kernel builds: (These configurations are only available on the TI LSK branch.)
- am335x_lsk_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the linaro options from the linaro/configs directory
- am335x_lsk_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg as
- well as the linaro options from the linaro/configs directory
- am43x_lsk_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the linaro options from the linaro/configs directory
- am43x_lsk_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg as
- well as the linaro options from the linaro/configs directory
- dra7xx_lsk_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the linaro options from the linaro/configs directory
- dra7xx_lsk_debug_only - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg as
- well as the linaro options from the linaro/configs directory
- TI Based Real Time Kernel: (These configurations are only available on the TI RT branch.)
- am335x_rt_only - Adds the configs from the files contained in the rt_defconfig_fragment file.
- am335x_rt_debug_only - Adds the configs from the files contained in the rt_defconfig_fragment file and adds in the debug options from the debug_options.cfg.
- am43x_rt_only - Adds the configs from the files contained in the rt_defconfig_fragment file.
- am43x_rt_debug_only - Adds the configs from the files contained in the rt_defconfig_fragment file and adds in the debug options from the debug_options.cfg.
- dra7xx_rt_only - Adds the configs from the files contained in the rt_defconfig_fragment file.
- dra7xx_rt_debug_only - Adds the configs from the files contained in the rt_defconfig_fragment file and adds in the debug options from the debug_options.cfg.
- #OMAP2+ Defconfig Options
- These defconfig options use the omap2plus_defconfig in the arch/arm/configs directory as the base defconfig.
- These options do not disable any processor's or platforms but add additional features that
- TI Base Integrated Kernel:
- omap2plus_debug - Takes the omap2plus_defconfig and only adds the debug options from the debug_options.cfg.
- ti_omap2plus - Adds the configs from the files contained in the defconfig_fragment file.
- ti_omap2plus_debug - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg
- Linaro Stable Kernel builds: (These configurations are only available on the TI LSK branch.)
- ti_lsk_omap2plus - Adds the configs from the files contained in the defconfig_fragment file and adds in the linaro options from the linaro/configs directory.
- ti_lsk_omap2plus_debug - Adds the configs from the files contained in the defconfig_fragment file and adds in the debug options from the debug_options.cfg as
- well as the linaro options from the linaro/configs directory
- TI Based Real Time Kernel: (These configurations are only available on the TI RT branch.)
- ti_rt_omap2plus - Adds the configs from the files contained in the rt_defconfig_fragment file.
- ti_rt_omap2plus_debug - Adds the configs from the files contained in the rt_defconfig_fragment file and adds in the debug options from the debug_options.cfg.
- #Keystone Defconfig Options
- These defconfig options use the keystone_defconfig in the arch/arm/configs directory as the base defconfig.
- These options do not disable any processor's or platforms but add additional features that
- TI Base Integrated Kernel:
- base_keystone_debug - Takes the keystone_defconfig and only adds the debug options from the debug_options.cfg.
- ti_keystone defconfig - Adds the configs from the files contained in the multi_core_defconfig_fragment file.
- ti_keystone_debug - Adds the configs from the files contained in the multi_core_defconfig_fragment file and
- adds in the debug options from the debug_options.cfg.
- Linaro Stable Kernel builds: (These configurations are only available on the TI LSK branch.)
- ti_lsk_keystone - Adds the configs from the files contained in the multi_core_defconfig_fragment file and adds in the
- linaro options from the linaro/configs directory
- ti_lsk_keystone_debug_only - Adds the configs from the files contained in the multi_core_defconfig_fragment file and adds in the
- debug options from the debug_options.cfg as well as the linaro options from the linaro/configs directory
- TI Based Real Time Kernel: (These configurations are only available on the TI RT branch.)
- ti_rt_keystone - Adds the configs from the files contained in the rt_defconfig_fragment file.
- ti_rt_keystone_debug - Adds the configs from the files contained in the rt_defconfig_fragment file and adds in the debug options from the debug_options.cfg.
|