diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/conf/machine/include/mips/README | 19 | ||||
-rw-r--r-- | meta/conf/machine/include/mips/arch-mips.inc | 10 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-mips32r6.inc | 29 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-mips64r6.inc | 32 |
4 files changed, 88 insertions, 2 deletions
diff --git a/meta/conf/machine/include/mips/README b/meta/conf/machine/include/mips/README index c375f316df..62fa1561ba 100644 --- a/meta/conf/machine/include/mips/README +++ b/meta/conf/machine/include/mips/README | |||
@@ -1,3 +1,6 @@ | |||
1 | 2016/09/30 - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> | ||
2 | - Add Release 6 support | ||
3 | |||
1 | 2012/03/30 - Mark Hatle <mark.hatle@windriver.com> | 4 | 2012/03/30 - Mark Hatle <mark.hatle@windriver.com> |
2 | - Initial Version | 5 | - Initial Version |
3 | 6 | ||
@@ -6,9 +9,14 @@ MIPS currently defines 12 ABIs. Combinations of: | |||
6 | *) Hardware/Software Floating Point | 9 | *) Hardware/Software Floating Point |
7 | *) o32, n32, n64 ABI | 10 | *) o32, n32, n64 ABI |
8 | 11 | ||
12 | Release 6 of the ISA is a major revision and doesn't build up on previous | ||
13 | releases of the ISA. | ||
14 | |||
15 | For more details about tuples, check https://wiki.debian.org/Multiarch/Tuples | ||
16 | |||
9 | TUNE_ARCH, the GNU canonical arch, is defined as: | 17 | TUNE_ARCH, the GNU canonical arch, is defined as: |
10 | 18 | ||
11 | mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN} | 19 | "mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}" |
12 | 20 | ||
13 | The package arch is defined in such a way to generated a standard naming | 21 | The package arch is defined in such a way to generated a standard naming |
14 | scheme. The scheme is: <mips variant>[-nf][-n32] | 22 | scheme. The scheme is: <mips variant>[-nf][-n32] |
@@ -34,3 +42,12 @@ that the tune is using a non-floating point ABI. | |||
34 | MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous | 42 | MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous |
35 | values are not enough to distringuish the package. "-n32" is added when | 43 | values are not enough to distringuish the package. "-n32" is added when |
36 | building for N32 ABI. | 44 | building for N32 ABI. |
45 | |||
46 | MIPSPKGSFX_R6 - This is used to specify the presence of release 6. | ||
47 | "r6" is added in the tuple for release 6 of the isa. | ||
48 | |||
49 | MIPSPKGSFX_64R6 - This is used to specify "isa" in the tuple. | ||
50 | Release 6 onwards we use "mipsisa64" instead of just "mips64". | ||
51 | |||
52 | MIPSPKGSFX_32R6 - This is used to specify "isa32" in the tuple. | ||
53 | Release 6 onwards we use "mipsisa32" instead of just "mips". | ||
diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc index 28d3b51b05..50c4c82683 100644 --- a/meta/conf/machine/include/mips/arch-mips.inc +++ b/meta/conf/machine/include/mips/arch-mips.inc | |||
@@ -32,14 +32,22 @@ TUNEVALID[fpu-hard] = "Use hardware FPU" | |||
32 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', ' -msoft-float', d)}" | 32 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', ' -msoft-float', d)}" |
33 | TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '', 'soft', d)}" | 33 | TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '', 'soft', d)}" |
34 | 34 | ||
35 | # MIPS r6 ABI | ||
36 | TUNEVALID[r6] = "Use r6" | ||
37 | TUNEVALID[mipsisa64r6] = "Use 64r6" | ||
38 | TUNEVALID[mipsisa32r6] = "Use 32r6" | ||
39 | |||
35 | # Package naming | 40 | # Package naming |
36 | MIPSPKGSFX_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}" | 41 | MIPSPKGSFX_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}" |
37 | MIPSPKGSFX_BYTE = "${@bb.utils.contains('TUNE_FEATURES', 'n64' , '64', '', d)}" | 42 | MIPSPKGSFX_BYTE = "${@bb.utils.contains('TUNE_FEATURES', 'n64' , '64', '', d)}" |
38 | MIPSPKGSFX_BYTE .= "${@bb.utils.contains('TUNE_FEATURES', 'n32' , '64', '', d)}" | 43 | MIPSPKGSFX_BYTE .= "${@bb.utils.contains('TUNE_FEATURES', 'n32' , '64', '', d)}" |
39 | MIPSPKGSFX_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard' , '', '-nf', d)}" | 44 | MIPSPKGSFX_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard' , '', '-nf', d)}" |
40 | MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}" | 45 | MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}" |
46 | MIPSPKGSFX_R6 = "${@bb.utils.contains('TUNE_FEATURES', 'r6', 'r6', '', d)}" | ||
47 | MIPSPKGSFX_64R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', 'isa', '', d)}" | ||
48 | MIPSPKGSFX_32R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', 'isa32', '', d)}" | ||
41 | 49 | ||
42 | TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}" | 50 | TUNE_ARCH = "mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}" |
43 | TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}" | 51 | TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}" |
44 | 52 | ||
45 | # Base tunes | 53 | # Base tunes |
diff --git a/meta/conf/machine/include/tune-mips32r6.inc b/meta/conf/machine/include/tune-mips32r6.inc new file mode 100644 index 0000000000..47213198c4 --- /dev/null +++ b/meta/conf/machine/include/tune-mips32r6.inc | |||
@@ -0,0 +1,29 @@ | |||
1 | DEFAULTTUNE ?= "mipsisa32r6el" | ||
2 | |||
3 | require conf/machine/include/mips/arch-mips.inc | ||
4 | |||
5 | TUNEVALID[mipsisa32r6] = "Enable mipsisa32r6 specific processor optimizations" | ||
6 | TUNECONFLICTS[mipsisa32r6] = "n64 n32" | ||
7 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', ' -march=mips32r6', '', d)}" | ||
8 | |||
9 | # Base Tunes | ||
10 | AVAILTUNES += "mipsisa32r6 mipsisa32r6el" | ||
11 | |||
12 | TUNE_FEATURES_tune-mipsisa32r6 = "bigendian mipsisa32r6 fpu-hard r6" | ||
13 | MIPSPKGSFX_VARIANT_tune-mipsisa32r6 = "${TUNE_ARCH}" | ||
14 | PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6 = "mipsisa32r6" | ||
15 | |||
16 | TUNE_FEATURES_tune-mipsisa32r6el = "fpu-hard mipsisa32r6 r6" | ||
17 | MIPSPKGSFX_VARIANT_tune-mipsisa32r6el = "${TUNE_ARCH}" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el = "mipsisa32r6el" | ||
19 | |||
20 | # Soft Float | ||
21 | AVAILTUNES += "mipsisa32r6-nf mipsisa32r6el-nf" | ||
22 | |||
23 | TUNE_FEATURES_tune-mipsisa32r6-nf = "bigendian mipsisa32r6 r6" | ||
24 | MIPSPKGSFX_VARIANT_tune-mipsisa32r6-nf = "${TUNE_ARCH}" | ||
25 | PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6-nf = "mipsisa32r6-nf" | ||
26 | |||
27 | TUNE_FEATURES_tune-mipsisa32r6el-nf = "mipsisa32r6 r6" | ||
28 | MIPSPKGSFX_VARIANT_tune-mipsisa32r6el-nf = "${TUNE_ARCH}" | ||
29 | PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el-nf = "mipsisa32r6el-nf" | ||
diff --git a/meta/conf/machine/include/tune-mips64r6.inc b/meta/conf/machine/include/tune-mips64r6.inc new file mode 100644 index 0000000000..f0ad564686 --- /dev/null +++ b/meta/conf/machine/include/tune-mips64r6.inc | |||
@@ -0,0 +1,32 @@ | |||
1 | DEFAULTTUNE ?= "mipsisa64r6el" | ||
2 | |||
3 | require conf/machine/include/mips/arch-mips.inc | ||
4 | |||
5 | TUNEVALID[mipsisa64r6] = "Enable mipsisa64r6 specific processor optimizations" | ||
6 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', ' -march=mips64r6', '', d)}" | ||
7 | |||
8 | # Base Tunes | ||
9 | AVAILTUNES += "mipsisa64r6 mipsisa64r6el" | ||
10 | |||
11 | TUNE_FEATURES_tune-mipsisa64r6 = "bigendian fpu-hard n64 mipsisa64r6 r6" | ||
12 | MIPSPKGSFX_VARIANT_tune-mipsisa64r6 = "${TUNE_ARCH}" | ||
13 | BASE_LIB_tune-mipsisa64r6 = "lib64" | ||
14 | PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6 = "mipsisa64r6" | ||
15 | |||
16 | TUNE_FEATURES_tune-mipsisa64r6el = "fpu-hard r6 n64 mipsisa64r6" | ||
17 | MIPSPKGSFX_VARIANT_tune-mipsisa64r6el = "${TUNE_ARCH}" | ||
18 | BASE_LIB_tune-mipsisa64r6el = "lib64" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el = "mipsisa64r6el" | ||
20 | |||
21 | # Soft Float | ||
22 | AVAILTUNES += "mipsisa64r6-nf mipsisa64r6el-nf" | ||
23 | |||
24 | TUNE_FEATURES_tune-mipsisa64r6-nf = "bigendian r6 n64 mipsisa64r6" | ||
25 | MIPSPKGSFX_VARIANT_tune-mipsisa64r6-nf = "${TUNE_ARCH}" | ||
26 | BASE_LIB_tune-mipsisa64r6-nf = "lib64" | ||
27 | PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf = "mipsisa64r6" | ||
28 | |||
29 | TUNE_FEATURES_tune-mipsisa64r6el-nf = "r6 n64 mipsisa64r6" | ||
30 | MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-nf = "${TUNE_ARCH}" | ||
31 | BASE_LIB_tune-mipsisa64r6el-nf = "lib64" | ||
32 | PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el-nf = "mipsisa64r6el-nf" | ||