diff options
author | Adrian Dudau <adrian.dudau@enea.com> | 2014-06-26 14:36:22 +0200 |
---|---|---|
committer | Adrian Dudau <adrian.dudau@enea.com> | 2014-06-26 15:32:53 +0200 |
commit | f4cf9fe05bb3f32fabea4e54dd92d368967a80da (patch) | |
tree | 487180fa9866985ea7b28e625651765d86f515c3 /meta/conf/machine/include/README | |
download | poky-f4cf9fe05bb3f32fabea4e54dd92d368967a80da.tar.gz |
initial commit for Enea Linux 4.0
Migrated from the internal git server on the daisy-enea branch
Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Diffstat (limited to 'meta/conf/machine/include/README')
-rw-r--r-- | meta/conf/machine/include/README | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README new file mode 100644 index 0000000000..d66130acbc --- /dev/null +++ b/meta/conf/machine/include/README | |||
@@ -0,0 +1,100 @@ | |||
1 | 2012/03/30 - Mark Hatle <mark.hatle@windriver.com> | ||
2 | - Initial Revision | ||
3 | |||
4 | |||
5 | Introduction | ||
6 | ============ | ||
7 | The individual CPU, and ABI tunings are contained in this directory. A | ||
8 | number of local and global variables are used to control the way the | ||
9 | tunings are setup and how they work together to specify an optimized | ||
10 | configuration. | ||
11 | |||
12 | The following is brief summary of the generic components that are used | ||
13 | in these tunings. | ||
14 | |||
15 | AVAILTUNES - This is a list of all of the tuning definitions currently | ||
16 | available in the system. Not all tunes in this list may be compatible | ||
17 | with the machine configuration, or each other in a multilib | ||
18 | configuration. Each tuning file can add to this list using "+=", but | ||
19 | should never replace the list using "=". | ||
20 | |||
21 | DEFAULTTUNE - This specifies the tune to use for a particular build. | ||
22 | Each tune should specify a reasonable default, which can be overriden by | ||
23 | a machine or multilib configuration. The specified tune must be listed | ||
24 | in the AVAILTUNES. | ||
25 | |||
26 | TUNEVALID[feature] - The <feature> is defined with a human readable | ||
27 | explanation for what it does. All architectural, cpu, abi, etc tuning | ||
28 | features must be defined using TUNEVALID. | ||
29 | |||
30 | TUNECONFLICTS[feature] - A list of features which conflict with <feature>. | ||
31 | New sanity checks will try to reject combinations in which a single | ||
32 | tuning ends up with features which conflict with each other. | ||
33 | |||
34 | TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>. | ||
35 | See TUNE_FEATURES_tune-<tune> for more information. | ||
36 | |||
37 | TUNE_FEATURES_tune-<tune> - Specify the features used to describe a | ||
38 | specific tune. This is a list of features that a tune support, each | ||
39 | feature must be in the TUNEVALID list. Note: the tune and a given | ||
40 | feature name may be the same, but they have different purposes. Only | ||
41 | features may be used to change behavior, while tunes are used to | ||
42 | describe an overall set of features. | ||
43 | |||
44 | ABIEXTENSION - An ABI extension may be specified by a specific feature | ||
45 | or other tuning setting, such as TARGET_FPU. Any ABI extensions either | ||
46 | need to be defined in the architectures base arch file, i.e. | ||
47 | ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune | ||
48 | files with a ".=". Spaces are not allowed in this variable. | ||
49 | |||
50 | TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings. | ||
51 | These should be additive when defined using "+=". All items in this | ||
52 | list should be dynamic! i.e. | ||
53 | ${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)} | ||
54 | |||
55 | TUNE_ARCH - The GNU canonical arch for a specific architecture. i.e. | ||
56 | arm, armeb, mips, mips64, etc. This value is used by bitbake to setup | ||
57 | configure. TUNE_ARCH definitions are specific to a given architecture. | ||
58 | They may be a single static definition, or may be dynamically adjusted. | ||
59 | See each architecture's README for details for that CPU family. | ||
60 | |||
61 | TUNE_PKGARCH - The package architecture used by the packaging systems to | ||
62 | define the architecture, abi and tuning of a particular package. | ||
63 | Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to | ||
64 | each architecture. See each architectures README for details for that | ||
65 | CPU family. | ||
66 | |||
67 | PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package | ||
68 | architectures. By default this is equal to | ||
69 | PACKAGE_EXTRA_ARCHS_tune-<tune>. If an architecture deviates from the | ||
70 | default it will be listed in the architecture README. | ||
71 | |||
72 | PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures | ||
73 | that are compatible with this specific tune. The package arch of this | ||
74 | tune must be in the list. | ||
75 | |||
76 | TARGET_FPU - The FPU setting for a given tune, hard (generate floating | ||
77 | point instructions), soft (generate internal gcc calls), "other" | ||
78 | architecture specific floating point. This is synchronized with the | ||
79 | compiler and other toolchain items. This should be dynamically | ||
80 | configured in the same way that TUNE_CCARGS is. | ||
81 | |||
82 | BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI. This is | ||
83 | used in a multilib configuration to place the libraries in the correct, | ||
84 | non-conflicting locations. | ||
85 | |||
86 | |||
87 | Best Practice | ||
88 | ============= | ||
89 | The tune infrastructure is designed to be hierarchical. When writing a | ||
90 | new tune file for a "fast-forward" CPU architecture (one that supports | ||
91 | everything from a previous generation), it is recommended to require the | ||
92 | previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the | ||
93 | previous generation's override and appending the new tune. Note that | ||
94 | only one previous tune file should be included to avoid mutiple includes | ||
95 | of the base arch which could lead to a broken configuration due to | ||
96 | multiple prepend and append assignments. | ||
97 | |||
98 | For example, for x86, there is a common x86/arch-x86.inc which is | ||
99 | included in the base i586 tune file. The core2 tune builds | ||
100 | on that, and corei7 builds on core2. | ||