diff options
author | Mark Hatle <mark.hatle@xilinx.com> | 2020-01-30 12:17:59 -0800 |
---|---|---|
committer | Mark Hatle <mark.hatle@xilinx.com> | 2020-01-31 16:05:01 -0800 |
commit | 669b0410a23d61417d52ba50bf24a751436c0a21 (patch) | |
tree | f67ad917529325e0888e764ceda08d8c40482c17 | |
parent | 3a6f68ef34561ae3003cfbfd82d8b175e33e830a (diff) | |
download | meta-xilinx-669b0410a23d61417d52ba50bf24a751436c0a21.tar.gz |
Create new baremetal toolchain machines
Baremetal toolchain machines are specific to creating a very specific Xilinx
multilib toolchain configuration. These are not expected to be functional
MACHINE parameters for anything except SDK building.
The expected usage is:
MACHINE=<value> DISTRO=xilinx-standalone bitbake meta-toolchain
Add aarch32-tc
Multilibs:
base: (none)
arm/v5te/softfp: -marm -march=armv5te+fp -mfloat-abi=softfp
arm/v5te/hard: -marm -march=armv5te+fp -mfloat-abi=hard
thumb/nofp: -mthumb -mfloat-abi=soft
thumb/v7/nofp: -mthumb -march=armv7 -mfloat-abi=soft
thumb/v7+fp/softfp: -mthumb -march=armv7+fp -mfloat-abi=softfp
thumb/v7+fp/hard: -mthumb -march=armv7+fp -mfloat-abi=hard
thumb/v7-a/nofp: -mthumb -march=armv7-a -mfloat-abi=soft
thumb/v7-a+fp/softfp: -mthumb -march=armv7-a+fp -mfloat-abi=softfp
thumb/v7-a+fp/hard: -mthumb -march=armv7-a+fp -mfloat-abi=hard
thumb/v7-a+simd/softfp: -mthumb -march=armv7-a+simd -mfloat-abi=softfp
thumb/v7-a+simd/hard: -mthumb -march=armv7-a+simd -mfloat-abi=hard
thumb/v7ve+simd/softfp: -mthumb -march=armv7ve+simd -mfloat-abi=softfp
thumb/v7ve+simd/hard: -mthumb -march=armv7ve+simd -mfloat-abi=hard
thumb/v8-a/nofp: -mthumb -march=armv8-a -mfloat-abi=soft
thumb/v8-a+simd/softfp: -mthumb -march=armv8-a+simd -mfloat-abi=softfp
thumb/v8-a+simd/hard: -mthumb -march=armv8-a+simd -mfloat-abi=hard
Add aarch64-tc
Multilibs:
Base: (none)
ilp32: -mabi=ilp32
- ilp32 requires a custom machine dict
- Add xlnx-standalone.bbclass
- Enable with PACKAGEQA_EXTRA_MACHDEFFUNCS
Add arm-rm-tc
Multilibs:
Base: (none)
arm/v5te/softfp: -marm -march=armv5te+fp -mfloat-abi=softfp
arm/v5te/hard: -marm -march=armv5te+fp -mfloat-abi=hard
thumb/nofp: -mthumb -mfloat-abi=soft
thumb/v7/nofp: -mthumb -march=armv7 -mfloat-abi=soft
thumb/v7+fp/softfp: -mthumb -march=armv7+fp -mfloat-abi=softfp
thumb/v7+fp/hard: -mthumb -march=armv7+fp -mfloat-abi=hard
thumb/v6-m/nofp: -mthumb -march=armv6s-m -mfloat-abi=soft
thumb/v7-m/nofp: -mthumb -march=armv7-m -mfloat-abi=soft
thumb/v7e-m/nofp: -mthumb -march=armv7e-m -mfloat-abi=soft
thumb/v7e-m+fp/softfp: -mthumb -march=armv7e-m+fp -mfloat-abi=softfp
thumb/v7e-m+fp/hard: -mthumb -march=armv7e-m+fp -mfloat-abi=hard
thumb/v7e-m+dp/softfp: -mthumb -march=armv7e-m+fp.dp -mfloat-abi=softfp
thumb/v7e-m+dp/hard: -mthumb -march=armv7e-m+fp.dp -mfloat-abi=hard
thumb/v8-m.base/nofp: -mthumb -march=armv8-m.base -mfloat-abi=soft
thumb/v8-m.main/nofp: -mthumb -march=armv8-m.main -mfloat-abi=soft
thumb/v8-m.main+fp/softfp: -mthumb -march=armv8-m.main+fp -mfloat-abi=softfp
thumb/v8-m.main+fp/hard: -mthumb -march=armv8-m.main+fp -mfloat-abi=hard
thumb/v8-m.main+dp/softfp: -mthumb -march=armv8-m.main+fp.dp -mfloat-abi=softfp
thumb/v8-m.main+dp/hard: -mthumb -march=armv8-m.main+fp.dp -mfloat-abi=hard
Add microblaze-tc
Multilibs:
base: (none)
bs: -mxl-barrel-shift
le: -mlittle-endian
m: -mno-xl-soft-mul
m/mh: -mno-xl-soft-mul -mxl-multiply-high
le/m: -mlittle-endian -mno-xl-soft-mul
le/m/mh: -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high
bs/le: -mxl-barrel-shift -mlittle-endian
bs/m: -mxl-barrel-shift -mno-xl-soft-mul
bs/m/mh: -mxl-barrel-shift -mno-xl-soft-mul -mxl-multiply-high
bs/le/m: -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul
bs/le/m/mh: -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high
m64/le: -m64 -mlittle-endian
m64/le/m: -m64 -mlittle-endian -mno-xl-soft-mul
m64/le/m/mh: -m64 -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high
m64/bs/le: -m64 -mxl-barrel-shift -mlittle-endian
m64/bs/le/m: -m64 -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul
m64/bs/le/m/mh: -m64 -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high
- 64-bit MicroBlaze requires a custom machine dict
- Add xlnx-standalone.bbclass
- Enable with PACKAGEQA_EXTRA_MACHDEFFUNCS
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
Date: Thu Jan 30 12:17:59 2020 -0800
On branch multilib-baremetal
Your branch is ahead of 'xilinx/master-next' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
-rw-r--r-- | meta-xilinx-bsp/classes/xlnx-standalone.bbclass | 16 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/machine/aarch32-tc.conf | 220 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/machine/aarch64-tc.conf | 29 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/machine/arm-rm-tc.conf | 264 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/machine/include/baremetal-tc.conf | 7 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/machine/microblaze-tc.conf | 214 |
6 files changed, 750 insertions, 0 deletions
diff --git a/meta-xilinx-bsp/classes/xlnx-standalone.bbclass b/meta-xilinx-bsp/classes/xlnx-standalone.bbclass new file mode 100644 index 00000000..9232b1ef --- /dev/null +++ b/meta-xilinx-bsp/classes/xlnx-standalone.bbclass | |||
@@ -0,0 +1,16 @@ | |||
1 | # Only enabled when ilp32 is enabled. | ||
2 | def xlnx_ilp32_dict(machdata, d): | ||
3 | machdata["elf"] = { | ||
4 | "aarch64" : (183, 0, 0, True, 32), | ||
5 | "aarch64_be" :(183, 0, 0, False, 32), | ||
6 | } | ||
7 | return machdata | ||
8 | |||
9 | # Only enabled when microblaze64 is enabled. | ||
10 | def xlnx_mb64_dict(machdata, d): | ||
11 | machdata["elf"] = { | ||
12 | "microblaze": (189, 0, 0, False, 64), | ||
13 | "microblazeeb":(189, 0, 0, False, 64), | ||
14 | "microblazeel":(189, 0, 0, True, 64), | ||
15 | } | ||
16 | return machdata | ||
diff --git a/meta-xilinx-bsp/conf/machine/aarch32-tc.conf b/meta-xilinx-bsp/conf/machine/aarch32-tc.conf new file mode 100644 index 00000000..72fbc80f --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/aarch32-tc.conf | |||
@@ -0,0 +1,220 @@ | |||
1 | require conf/multilib.conf | ||
2 | require conf/machine/include/tune-cortexa9.inc | ||
3 | require conf/machine/include/baremetal-tc.conf | ||
4 | |||
5 | # Define all of the multilibs supproted by this configuration | ||
6 | MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" | ||
7 | |||
8 | MULTILIBS = "multilib:libarmv5tesoftfp multilib:libarmv5tehard" | ||
9 | MULTILIBS += "multilib:libnofp" | ||
10 | MULTILIBS += "multilib:libv7nofp multilib:libv7fpsoftfp multilib:libv7fphard" | ||
11 | MULTILIBS += "multilib:libv7anofp" | ||
12 | MULTILIBS += "multilib:libv7afpsoftfp" | ||
13 | MULTILIBS += "multilib:libv7afpthf multilib:libv7asimdsoftfp" | ||
14 | MULTILIBS += "multilib:libv7asimdhard multilib:libv7vesimdsoftfp" | ||
15 | MULTILIBS += "multilib:libvtvesimdhf" | ||
16 | MULTILIBS += "multilib:libv8anofp" | ||
17 | MULTILIBS += "multilib:libv8asimdsoftfp multilib:libv8asimdhard" | ||
18 | |||
19 | TUNE_CCARGS = "${TUNE_CCARGS_tune-${DEFAULTTUNE}}" | ||
20 | TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" | ||
21 | |||
22 | # Base configuration | ||
23 | # CFLAGS: | ||
24 | DEFAULTTUNE = "aarch32" | ||
25 | |||
26 | AVAILTUNES += "aarch32" | ||
27 | PACKAGE_EXTRA_ARCHS_tune-aarch32 = "${TUNE_PKGARCH_tune-aarch32}" | ||
28 | BASE_LIB_tune-aarch32 = "lib" | ||
29 | TUNE_FEATURES_tune-aarch32 = "arm" | ||
30 | TUNE_CCARGS_tune-aarch32 = "" | ||
31 | TUNE_PKGARCH_tune-aarch32 = "aarch32" | ||
32 | |||
33 | |||
34 | # arm/v5te/softfp | ||
35 | # CFLAGS: -marm -march=armv5te+fp -mfloat-abi=softfp | ||
36 | DEFAULTTUNE_virtclass-multilib-libarmv5tesoftfp = "armv5tesoftfp" | ||
37 | |||
38 | AVAILTUNES += "armv5tesoftfp" | ||
39 | PACKAGE_EXTRA_ARCHS_tune-armv5tesoftfp = "${TUNE_PKGARCH_tune-armv5tesoftfp}" | ||
40 | BASE_LIB_tune-armv5tesoftfp = "lib/arm/v5te/softfp" | ||
41 | TUNE_FEATURES_tune-armv5tesoftfp = "arm" | ||
42 | TUNE_CCARGS_tune-armv5tesoftfp = "-marm -march=armv5te+fp -mfloat-abi=softfp" | ||
43 | TUNE_PKGARCH_tune-armv5tesoftfp = "armv5tefp" | ||
44 | |||
45 | |||
46 | # arm/v5te/hard | ||
47 | # CFLAGS: -marm -march=armv5te+fp -mfloat-abi=hard | ||
48 | DEFAULTTUNE_virtclass-multilib-libarmv5tehard = "armv5tehard" | ||
49 | |||
50 | AVAILTUNES += "armv5tehard" | ||
51 | PACKAGE_EXTRA_ARCHS_tune-armv5tehard = "${TUNE_PKGARCH_tune-armv5tehard}" | ||
52 | BASE_LIB_tune-armv5tehard = "lib/arm/v5te/hard" | ||
53 | TUNE_FEATURES_tune-armv5tehard = "arm" | ||
54 | TUNE_CCARGS_tune-armv5tehard = "-marm -march=armv5te+fp -mfloat-abi=hard" | ||
55 | TUNE_PKGARCH_tune-armv5tehard = "armv5tefphf" | ||
56 | |||
57 | |||
58 | # thumb/nofp | ||
59 | # CFLAGS: -mthumb -mfloat-abi=soft | ||
60 | DEFAULTTUNE_virtclass-multilib-libnofp = "armnofp" | ||
61 | |||
62 | AVAILTUNES += "armnofp" | ||
63 | PACKAGE_EXTRA_ARCHS_tune-armnofp = "${TUNE_PKGARCH_tune-armnofp}" | ||
64 | BASE_LIB_tune-armnofp = "lib/thumb/nofp" | ||
65 | TUNE_FEATURES_tune-armnofp = "arm" | ||
66 | TUNE_CCARGS_tune-armnofp = "-mthumb -mfloat-abi=soft" | ||
67 | TUNE_PKGARCH_tune-armnofp = "armt" | ||
68 | |||
69 | |||
70 | # thumb/v7/nofp | ||
71 | # CFLAGS: -mthumb -march=armv7 -mfloat-abi=soft | ||
72 | DEFAULTTUNE_virtclass-multilib-libv7nofp = "armv7nofp" | ||
73 | |||
74 | AVAILTUNES += "armv7nofp" | ||
75 | PACKAGE_EXTRA_ARCHS_tune-armv7nofp = "${TUNE_PKGARCH_tune-armv7nofp}" | ||
76 | BASE_LIB_tune-armv7nofp = "lib/thumb/v7/nofp" | ||
77 | TUNE_FEATURES_tune-armv7nofp = "arm" | ||
78 | TUNE_CCARGS_tune-armv7nofp = "-mthumb -march=armv7 -mfloat-abi=soft" | ||
79 | TUNE_PKGARCH_tune-armv7nofp = "armv7t" | ||
80 | |||
81 | |||
82 | # thumb/v7+fp/softfp | ||
83 | # CFLAGS: -mthumb -march=armv7+fp -mfloat-abi=softfp | ||
84 | DEFAULTTUNE_virtclass-multilib-libv7fpsoftfp = "armv7fpsoftfp" | ||
85 | |||
86 | AVAILTUNES += "armv7fpsoftfp" | ||
87 | PACKAGE_EXTRA_ARCHS_tune-armv7fpsoftfp = "${TUNE_PKGARCH_tune-armv7fpsoftfp}" | ||
88 | BASE_LIB_tune-armv7fpsoftfp = "lib/thumb/v7+fp/softfp" | ||
89 | TUNE_FEATURES_tune-armv7fpsoftfp = "arm" | ||
90 | TUNE_CCARGS_tune-armv7fpsoftfp = "-mthumb -march=armv7+fp -mfloat-abi=softfp" | ||
91 | TUNE_PKGARCH_tune-armv7fpsoftfp = "armv7fpt" | ||
92 | |||
93 | |||
94 | # thumb/v7+fp/hard | ||
95 | # CFLAGS: -mthumb -march=armv7+fp -mfloat-abi=hard | ||
96 | DEFAULTTUNE_virtclass-multilib-libv7fphard = "armv7fphard" | ||
97 | |||
98 | AVAILTUNES += "armv7fphard" | ||
99 | PACKAGE_EXTRA_ARCHS_tune-armv7fphard = "${TUNE_PKGARCH_tune-armv7fphard}" | ||
100 | BASE_LIB_tune-armv7fphard = "lib/thumb/v7+fp/hard" | ||
101 | TUNE_FEATURES_tune-armv7fphard = "arm" | ||
102 | TUNE_CCARGS_tune-armv7fphard = "-mthumb -march=armv7+fp -mfloat-abi=hard" | ||
103 | TUNE_PKGARCH_tune-armv7fphard = "armv7fpthf" | ||
104 | |||
105 | |||
106 | # thumb/v7-a/nofp | ||
107 | # CFLAGS: -mthumb -march=armv7-a -mfloat-abi=soft | ||
108 | DEFAULTTUNE_virtclass-multilib-libv7anofp = "armv7anofp" | ||
109 | |||
110 | AVAILTUNES += "armv7anofp" | ||
111 | PACKAGE_EXTRA_ARCHS_tune-armv7anofp = "${TUNE_PKGARCH_tune-armv7anofp}" | ||
112 | BASE_LIB_tune-armv7anofp = "lib/thumb/v7-a/nofp" | ||
113 | TUNE_FEATURES_tune-armv7anofp = "arm" | ||
114 | TUNE_CCARGS_tune-armv7anofp = "-mthumb -march=armv7-a -mfloat-abi=soft" | ||
115 | TUNE_PKGARCH_tune-armv7anofp = "armv7at" | ||
116 | |||
117 | |||
118 | # thumb/v7-a+fp/softfp | ||
119 | # CFLAGS: -mthumb -march=armv7-a+fp -mfloat-abi=softfp | ||
120 | DEFAULTTUNE_virtclass-multilib-libv7afpsoftfp = "armv7afpsoftfp" | ||
121 | |||
122 | AVAILTUNES += "armv7afpsoftfp" | ||
123 | PACKAGE_EXTRA_ARCHS_tune-armv7afpsoftfp = "${TUNE_PKGARCH_tune-armv7afpsoftfp}" | ||
124 | BASE_LIB_tune-armv7afpsoftfp = "lib/thumb/v7-a+fp/softfp" | ||
125 | TUNE_FEATURES_tune-armv7afpsoftfp = "arm" | ||
126 | TUNE_CCARGS_tune-armv7afpsoftfp = "-mthumb -march=armv7-a+fp -mfloat-abi=softfp" | ||
127 | TUNE_PKGARCH_tune-armv7afpsoftfp = "armv7afpt" | ||
128 | |||
129 | |||
130 | # thumb/v7-a+fp/hard | ||
131 | # CFLAGS: -mthumb -march=armv7-a+fp -mfloat-abi=hard | ||
132 | DEFAULTTUNE_virtclass-multilib-libv7afpthf = "armv7afpthf" | ||
133 | |||
134 | AVAILTUNES += "armv7afpthf" | ||
135 | PACKAGE_EXTRA_ARCHS_tune-armv7afpthf = "${TUNE_PKGARCH_tune-armv7afpthf}" | ||
136 | BASE_LIB_tune-armv7afpthf = "lib/thumb/v7-a+fp/hard" | ||
137 | TUNE_FEATURES_tune-armv7afpthf = "arm" | ||
138 | TUNE_CCARGS_tune-armv7afpthf = "-mthumb -march=armv7-a+fp -mfloat-abi=hard" | ||
139 | TUNE_PKGARCH_tune-armv7afpthf = "armv7afpthf" | ||
140 | |||
141 | # thumb/v7-a+simd/softfp | ||
142 | # CFLAGS: -mthumb -march=armv7-a+simd -mfloat-abi=softfp | ||
143 | DEFAULTTUNE_virtclass-multilib-libv7asimdsoftfp = "armv7asimdsoftfp" | ||
144 | |||
145 | AVAILTUNES += "armv7asimdsoftfp" | ||
146 | PACKAGE_EXTRA_ARCHS_tune-armv7asimdsoftfp = "${TUNE_PKGARCH_tune-armv7asimdsoftfp}" | ||
147 | BASE_LIB_tune-armv7asimdsoftfp = "lib/thumb/v7-a+simd/softfp" | ||
148 | TUNE_FEATURES_tune-armv7asimdsoftfp = "arm" | ||
149 | TUNE_CCARGS_tune-armv7asimdsoftfp = "-mthumb -march=armv7-a+simd -mfloat-abi=softfp" | ||
150 | TUNE_PKGARCH_tune-armv7asimdsoftfp = "armv7asimdt" | ||
151 | |||
152 | |||
153 | # thumb/v7-a+simd/hard | ||
154 | # CFLAGS: -mthumb -march=armv7-a+simd -mfloat-abi=hard | ||
155 | DEFAULTTUNE_virtclass-multilib-libv7asimdhard = "armv7asimdhard" | ||
156 | |||
157 | AVAILTUNES += "armv7asimdhard" | ||
158 | PACKAGE_EXTRA_ARCHS_tune-armv7asimdhard = "${TUNE_PKGARCH_tune-armv7asimdhard}" | ||
159 | BASE_LIB_tune-armv7asimdhard = "lib/thumb/v7-a+simd/hard" | ||
160 | TUNE_FEATURES_tune-armv7asimdhard = "arm" | ||
161 | TUNE_CCARGS_tune-armv7asimdhard = "-mthumb -march=armv7-a+simd -mfloat-abi=hard" | ||
162 | TUNE_PKGARCH_tune-armv7asimdhard = "armv7asimdthf" | ||
163 | |||
164 | |||
165 | # thumb/v7ve+simd/softfp | ||
166 | # CFLAGS: -mthumb -march=armv7ve+simd -mfloat-abi=softfp | ||
167 | DEFAULTTUNE_virtclass-multilib-libv7vesimdsoftfp = "armv7vesimdsoftfp" | ||
168 | |||
169 | AVAILTUNES += "armv7vesimdsoftfp" | ||
170 | PACKAGE_EXTRA_ARCHS_tune-armv7vesimdsoftfp = "${TUNE_PKGARCH_tune-armv7vesimdsoftfp}" | ||
171 | BASE_LIB_tune-armv7vesimdsoftfp = "lib/thumb/v7ve+simd/softfp" | ||
172 | TUNE_FEATURES_tune-armv7vesimdsoftfp = "arm" | ||
173 | TUNE_CCARGS_tune-armv7vesimdsoftfp = "-mthumb -march=armv7ve+simd -mfloat-abi=softfp" | ||
174 | TUNE_PKGARCH_tune-armv7vesimdsoftfp = "armv7vesimdt" | ||
175 | |||
176 | # thumb/v7ve+simd/hard | ||
177 | # CFLAGS: -mthumb -march=armv7ve+simd -mfloat-abi=hard | ||
178 | DEFAULTTUNE_virtclass-multilib-libvtvesimdhf = "armvtvesimdhf" | ||
179 | |||
180 | AVAILTUNES += "armvtvesimdhf" | ||
181 | PACKAGE_EXTRA_ARCHS_tune-armvtvesimdhf = "${TUNE_PKGARCH_tune-armvtvesimdhf}" | ||
182 | BASE_LIB_tune-armvtvesimdhf = "lib/thumb/v7ve+simd/hard" | ||
183 | TUNE_FEATURES_tune-armvtvesimdhf = "arm" | ||
184 | TUNE_CCARGS_tune-armvtvesimdhf = "-mthumb -march=armv7ve+simd -mfloat-abi=hard" | ||
185 | TUNE_PKGARCH_tune-armvtvesimdhf = "armv7vesimdthf" | ||
186 | |||
187 | |||
188 | # thumb/v8-a/nofp | ||
189 | # CFLAGS: -mthumb -march=armv8-a -mfloat-abi=soft | ||
190 | DEFAULTTUNE_virtclass-multilib-libv8anofp = "armv8anofp" | ||
191 | |||
192 | AVAILTUNES += "armv8anofp" | ||
193 | PACKAGE_EXTRA_ARCHS_tune-armv8anofp = "${TUNE_PKGARCH_tune-armv8anofp}" | ||
194 | BASE_LIB_tune-armv8anofp = "lib/thumb/v8-a/nofp" | ||
195 | TUNE_FEATURES_tune-armv8anofp = "arm" | ||
196 | TUNE_CCARGS_tune-armv8anofp = "-mthumb -march=armv8-a -mfloat-abi=soft" | ||
197 | TUNE_PKGARCH_tune-armv8anofp = "armv8at" | ||
198 | |||
199 | # thumb/v8-a+simd/softfp | ||
200 | # CFLAGS: -mthumb -march=armv8-a+simd -mfloat-abi=softfp | ||
201 | DEFAULTTUNE_virtclass-multilib-libv8asimdsoftfp = "armv8asimdsoftfp" | ||
202 | |||
203 | AVAILTUNES += "armv8asimdsoftfp" | ||
204 | PACKAGE_EXTRA_ARCHS_tune-armv8asimdsoftfp = "${TUNE_PKGARCH_tune-armv8asimdsoftfp}" | ||
205 | BASE_LIB_tune-armv8asimdsoftfp = "lib/thumb/v8-a+simd/softfp" | ||
206 | TUNE_FEATURES_tune-armv8asimdsoftfp = "arm" | ||
207 | TUNE_CCARGS_tune-armv8asimdsoftfp = "-mthumb -march=armv8-a+simd -mfloat-abi=softfp" | ||
208 | TUNE_PKGARCH_tune-armv8asimdsoftfp = "armv8asimdt" | ||
209 | |||
210 | |||
211 | # thumb/v8-a+simd/hard | ||
212 | # CFLAGS: -mthumb -march=armv8-a+simd -mfloat-abi=hard | ||
213 | DEFAULTTUNE_virtclass-multilib-libv8asimdhard = "armv8asimdhard" | ||
214 | |||
215 | AVAILTUNES += "armv8asimdhard" | ||
216 | PACKAGE_EXTRA_ARCHS_tune-armv8asimdhard = "${TUNE_PKGARCH_tune-armv8asimdhard}" | ||
217 | BASE_LIB_tune-armv8asimdhard = "lib/thumb/v8-a+simd/hard" | ||
218 | TUNE_FEATURES_tune-armv8asimdhard = "arm" | ||
219 | TUNE_CCARGS_tune-armv8asimdhard = "-mthumb -march=armv8-a+simd -mfloat-abi=hard" | ||
220 | TUNE_PKGARCH_tune-armv8asimdhard = "armv8asimdthf" | ||
diff --git a/meta-xilinx-bsp/conf/machine/aarch64-tc.conf b/meta-xilinx-bsp/conf/machine/aarch64-tc.conf new file mode 100644 index 00000000..e9e0412b --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/aarch64-tc.conf | |||
@@ -0,0 +1,29 @@ | |||
1 | require conf/multilib.conf | ||
2 | require conf/machine/include/tune-cortexa72-cortexa53.inc | ||
3 | require conf/machine/include/baremetal-tc.conf | ||
4 | |||
5 | # Define ilp32 variant (not in tune files) | ||
6 | TUNEVALID[ilp32] = "ilp32 ABI" | ||
7 | |||
8 | TUNE_CCARGS .= '${@bb.utils.contains("TUNE_FEATURES", "ilp32", " -mabi=ilp32", "", d)}' | ||
9 | |||
10 | # ILP request an alternative machine dictionary | ||
11 | INHERIT += "xlnx-standalone" | ||
12 | PACKAGEQA_EXTRA_MACHDEFFUNCS .= '${@bb.utils.contains("TUNE_FEATURES", "ilp32", " xlnx_ilp32_dict", "", d)}' | ||
13 | |||
14 | # Define all of the multilibs supported by this configuration | ||
15 | MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" | ||
16 | MULTILIBS = "multilib:libilp32" | ||
17 | |||
18 | # Base configuration | ||
19 | # CFLAGS: | ||
20 | DEFAULTTUNE = "cortexa72-cortexa53" | ||
21 | |||
22 | # CFLAGS: -mabi=ilp32 | ||
23 | DEFAULTTUNE_virtclass-multilib-libilp32 = "cortexa72-cortexa53-ilp32" | ||
24 | |||
25 | AVAILTUNES += "cortexa72-cortexa53-ilp32" | ||
26 | ARMPKGARCH_tune-cortexa72-cortexa53-ilp32 = "${ARMPKGARCH_tune-cortexa72-cortexa53}_ilp32" | ||
27 | TUNE_FEATURES_tune-cortexa72-cortexa53-ilp32 = "${TUNE_FEATURES_tune-cortexa72-cortexa53} ilp32" | ||
28 | PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-ilp32 = "${PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53} cortexa72-cortexa53-ilp32" | ||
29 | BASE_LIB_tune-cortexa72-cortexa53-ilp32 = "lib/ilp32" | ||
diff --git a/meta-xilinx-bsp/conf/machine/arm-rm-tc.conf b/meta-xilinx-bsp/conf/machine/arm-rm-tc.conf new file mode 100644 index 00000000..c9b7480e --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/arm-rm-tc.conf | |||
@@ -0,0 +1,264 @@ | |||
1 | require conf/multilib.conf | ||
2 | require conf/machine/include/arm/arch-armv8a.inc | ||
3 | require conf/machine/include/baremetal-tc.conf | ||
4 | |||
5 | # Define all of the multilibs supproted by this configuration | ||
6 | MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" | ||
7 | |||
8 | MULTILIBS = "multilib:libarmv5tesoftfp multilib:libarmv5tehard" | ||
9 | MULTILIBS += "multilib:libnofp" | ||
10 | MULTILIBS += "multilib:libv7nofp multilib:libv7fpsoftfp multilib:libv7fphard" | ||
11 | MULTILIBS += "multilib:libv6mnofp" | ||
12 | MULTILIBS += "multilib:libv7mnofp" | ||
13 | MULTILIBS += "multilib:libv7emnofp multilib:libv7emfpsoftfp" | ||
14 | MULTILIBS += "multilib:libv7emfphard multilib:libv7emdpsoftfp" | ||
15 | MULTILIBS += "multilib:libv7emdphard" | ||
16 | MULTILIBS += "multilib:libv8mbasenofp" | ||
17 | MULTILIBS += "multilib:libv8mmainnofp multilib:libv8mmainfpsoftfp multilib:libv8mmainfphard multilib:libv8mmaindpsoftfp multilib:libv8mmaindphard" | ||
18 | |||
19 | TUNE_CCARGS = "${TUNE_CCARGS_tune-${DEFAULTTUNE}}" | ||
20 | TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" | ||
21 | |||
22 | # Base configuration | ||
23 | # CFLAGS: | ||
24 | DEFAULTTUNE = "armrm" | ||
25 | |||
26 | AVAILTUNES += "armrm" | ||
27 | PACKAGE_EXTRA_ARCHS_tune-armrm = "${TUNE_PKGARCH_tune-armrm}" | ||
28 | BASE_LIB_tune-armrm = "lib" | ||
29 | TUNE_FEATURES_tune-armrm = "arm" | ||
30 | TUNE_CCARGS_tune-armrm = "" | ||
31 | TUNE_PKGARCH_tune-armrm = "armrm" | ||
32 | |||
33 | |||
34 | # arm/v5te/softfp | ||
35 | # CFLAGS: -marm -march=armv5te+fp -mfloat-abi=softfp | ||
36 | DEFAULTTUNE_virtclass-multilib-libarmv5tesoftfp = "armv5tesoftfp" | ||
37 | |||
38 | AVAILTUNES += "armv5tesoftfp" | ||
39 | PACKAGE_EXTRA_ARCHS_tune-armv5tesoftfp = "${TUNE_PKGARCH_tune-armv5tesoftfp}" | ||
40 | BASE_LIB_tune-armv5tesoftfp = "lib/arm/v5te/softfp" | ||
41 | TUNE_FEATURES_tune-armv5tesoftfp = "arm" | ||
42 | TUNE_CCARGS_tune-armv5tesoftfp = "-marm -march=armv5te+fp -mfloat-abi=softfp" | ||
43 | TUNE_PKGARCH_tune-armv5tesoftfp = "armv5tefp" | ||
44 | |||
45 | |||
46 | # arm/v5te/hard | ||
47 | # CFLAGS: -marm -march=armv5te+fp -mfloat-abi=hard | ||
48 | DEFAULTTUNE_virtclass-multilib-libarmv5tehard = "armv5tehard" | ||
49 | |||
50 | AVAILTUNES += "armv5tehard" | ||
51 | PACKAGE_EXTRA_ARCHS_tune-armv5tehard = "${TUNE_PKGARCH_tune-armv5tehard}" | ||
52 | BASE_LIB_tune-armv5tehard = "lib/arm/v5te/hard" | ||
53 | TUNE_FEATURES_tune-armv5tehard = "arm" | ||
54 | TUNE_CCARGS_tune-armv5tehard = "-marm -march=armv5te+fp -mfloat-abi=hard" | ||
55 | TUNE_PKGARCH_tune-armv5tehard = "armv5tefphf" | ||
56 | |||
57 | |||
58 | # thumb/nofp | ||
59 | # CFLAGS: -mthumb -mfloat-abi=soft | ||
60 | DEFAULTTUNE_virtclass-multilib-libnofp = "armnofp" | ||
61 | |||
62 | AVAILTUNES += "armnofp" | ||
63 | PACKAGE_EXTRA_ARCHS_tune-armnofp = "${TUNE_PKGARCH_tune-armnofp}" | ||
64 | BASE_LIB_tune-armnofp = "lib/thumb/nofp" | ||
65 | TUNE_FEATURES_tune-armnofp = "arm" | ||
66 | TUNE_CCARGS_tune-armnofp = "-mthumb -mfloat-abi=soft" | ||
67 | TUNE_PKGARCH_tune-armnofp = "armt" | ||
68 | |||
69 | |||
70 | # thumb/v7/nofp | ||
71 | # CFLAGS: -mthumb -march=armv7 -mfloat-abi=soft | ||
72 | DEFAULTTUNE_virtclass-multilib-libv7nofp = "armv7nofp" | ||
73 | |||
74 | AVAILTUNES += "armv7nofp" | ||
75 | PACKAGE_EXTRA_ARCHS_tune-armv7nofp = "${TUNE_PKGARCH_tune-armv7nofp}" | ||
76 | BASE_LIB_tune-armv7nofp = "lib/thumb/v7/nofp" | ||
77 | TUNE_FEATURES_tune-armv7nofp = "arm" | ||
78 | TUNE_CCARGS_tune-armv7nofp = "-mthumb -march=armv7 -mfloat-abi=soft" | ||
79 | TUNE_PKGARCH_tune-armv7nofp = "armv7t" | ||
80 | |||
81 | |||
82 | # thumb/v7+fp/softfp | ||
83 | # CFLAGS: -mthumb -march=armv7+fp -mfloat-abi=softfp | ||
84 | DEFAULTTUNE_virtclass-multilib-libv7fpsoftfp = "armv7fpsoftfp" | ||
85 | |||
86 | AVAILTUNES += "armv7fpsoftfp" | ||
87 | PACKAGE_EXTRA_ARCHS_tune-armv7fpsoftfp = "${TUNE_PKGARCH_tune-armv7fpsoftfp}" | ||
88 | BASE_LIB_tune-armv7fpsoftfp = "lib/thumb/v7+fp/softfp" | ||
89 | TUNE_FEATURES_tune-armv7fpsoftfp = "arm" | ||
90 | TUNE_CCARGS_tune-armv7fpsoftfp = "-mthumb -march=armv7+fp -mfloat-abi=softfp" | ||
91 | TUNE_PKGARCH_tune-armv7fpsoftfp = "armv7fpt" | ||
92 | |||
93 | |||
94 | # thumb/v7+fp/hard | ||
95 | # CFLAGS: -mthumb -march=armv7+fp -mfloat-abi=hard | ||
96 | DEFAULTTUNE_virtclass-multilib-libv7fphard = "armv7fphard" | ||
97 | |||
98 | AVAILTUNES += "armv7fphard" | ||
99 | PACKAGE_EXTRA_ARCHS_tune-armv7fphard = "${TUNE_PKGARCH_tune-armv7fphard}" | ||
100 | BASE_LIB_tune-armv7fphard = "lib/thumb/v7+fp/hard" | ||
101 | TUNE_FEATURES_tune-armv7fphard = "arm" | ||
102 | TUNE_CCARGS_tune-armv7fphard = "-mthumb -march=armv7+fp -mfloat-abi=hard" | ||
103 | TUNE_PKGARCH_tune-armv7fphard = "armv7fpthf" | ||
104 | |||
105 | |||
106 | # thumb/v6-m/nofp | ||
107 | # CFLAGS: -mthumb -march=armv6s-m -mfloat-abi=soft | ||
108 | DEFAULTTUNE_virtclass-multilib-libv6mnofp = "armv6mnofp" | ||
109 | |||
110 | # Workaround for this multilib in newlib | ||
111 | # newlib/libc/sys/arm/trap.S:88: Error: lo register required -- `sub ip,sp,ip | ||
112 | EXTRA_OECONF_append_pn-libv6mnofp-newlib = " --disable-newlib-supplied-syscalls" | ||
113 | |||
114 | AVAILTUNES += "armv6mnofp" | ||
115 | PACKAGE_EXTRA_ARCHS_tune-armv6mnofp = "${TUNE_PKGARCH_tune-armv6mnofp}" | ||
116 | BASE_LIB_tune-armv6mnofp = "lib/thumb/v6-m/nofp" | ||
117 | TUNE_FEATURES_tune-armv6mnofp = "arm" | ||
118 | TUNE_CCARGS_tune-armv6mnofp = "-mthumb -march=armv6s-m -mfloat-abi=soft" | ||
119 | TUNE_PKGARCH_tune-armv6mnofp = "armv6smt" | ||
120 | |||
121 | |||
122 | # thumb/v7-m/nofp | ||
123 | # CFLAGS: -mthumb -march=armv7-m -mfloat-abi=soft | ||
124 | DEFAULTTUNE_virtclass-multilib-libv7mnofp = "armv7mnofp" | ||
125 | |||
126 | AVAILTUNES += "armv7mnofp" | ||
127 | PACKAGE_EXTRA_ARCHS_tune-armv7mnofp = "${TUNE_PKGARCH_tune-armv7mnofp}" | ||
128 | BASE_LIB_tune-armv7mnofp = "lib/thumb/v7-m/nofp" | ||
129 | TUNE_FEATURES_tune-armv7mnofp = "arm" | ||
130 | TUNE_CCARGS_tune-armv7mnofp = "-mthumb -march=armv7-m -mfloat-abi=soft" | ||
131 | TUNE_PKGARCH_tune-armv7mnofp = "armv7mt" | ||
132 | |||
133 | |||
134 | # thumb/v7e-m/nofp | ||
135 | # CFLAGS: -mthumb -march=armv7e-m -mfloat-abi=soft | ||
136 | DEFAULTTUNE_virtclass-multilib-libv7emnofp = "armv7emnofp" | ||
137 | |||
138 | AVAILTUNES += "armv7emnofp" | ||
139 | PACKAGE_EXTRA_ARCHS_tune-armv7emnofp = "${TUNE_PKGARCH_tune-armv7emnofp}" | ||
140 | BASE_LIB_tune-armv7emnofp = "lib/thumb/v7e-m/nofp" | ||
141 | TUNE_FEATURES_tune-armv7emnofp = "arm" | ||
142 | TUNE_CCARGS_tune-armv7emnofp = "-mthumb -march=armv7e-m -mfloat-abi=soft" | ||
143 | TUNE_PKGARCH_tune-armv7emnofp = "armv7emt" | ||
144 | |||
145 | |||
146 | # thumb/v7e-m+fp/softfp | ||
147 | # CFLAGS: -mthumb -march=armv7e-m+fp -mfloat-abi=softfp | ||
148 | DEFAULTTUNE_virtclass-multilib-libv7emfpsoftfp = "armv7emfpsoftfp" | ||
149 | |||
150 | AVAILTUNES += "armv7emfpsoftfp" | ||
151 | PACKAGE_EXTRA_ARCHS_tune-armv7emfpsoftfp = "${TUNE_PKGARCH_tune-armv7emfpsoftfp}" | ||
152 | BASE_LIB_tune-armv7emfpsoftfp = "lib/thumb/v7e-m+fp/softfp" | ||
153 | TUNE_FEATURES_tune-armv7emfpsoftfp = "arm" | ||
154 | TUNE_CCARGS_tune-armv7emfpsoftfp = "-mthumb -march=armv7e-m+fp -mfloat-abi=softfp" | ||
155 | TUNE_PKGARCH_tune-armv7emfpsoftfp = "armv7emfpt" | ||
156 | |||
157 | |||
158 | # thumb/v7e-m+fp/hard | ||
159 | # CFLAGS: -mthumb -march=armv7e-m+fp -mfloat-abi=hard | ||
160 | DEFAULTTUNE_virtclass-multilib-libv7emfphard = "armv7emfphard" | ||
161 | |||
162 | AVAILTUNES += "armv7emfphard" | ||
163 | PACKAGE_EXTRA_ARCHS_tune-armv7emfphard = "${TUNE_PKGARCH_tune-armv7emfphard}" | ||
164 | BASE_LIB_tune-armv7emfphard = "lib/thumb/v7e-m+fp/hard" | ||
165 | TUNE_FEATURES_tune-armv7emfphard = "arm" | ||
166 | TUNE_CCARGS_tune-armv7emfphard = "-mthumb -march=armv7e-m+fp -mfloat-abi=hard" | ||
167 | TUNE_PKGARCH_tune-armv7emfphard = "armv7emfpthf" | ||
168 | |||
169 | |||
170 | # thumb/v7e-m+dp/softfp | ||
171 | # CFLAGS: -mthumb -march=armv7e-m+fp.dp -mfloat-abi=softfp | ||
172 | DEFAULTTUNE_virtclass-multilib-libv7emdpsoftfp = "armv7emdpsoftfp" | ||
173 | |||
174 | AVAILTUNES += "armv7emdpsoftfp" | ||
175 | PACKAGE_EXTRA_ARCHS_tune-armv7emdpsoftfp = "${TUNE_PKGARCH_tune-armv7emdpsoftfp}" | ||
176 | BASE_LIB_tune-armv7emdpsoftfp = "lib/thumb/v7e-m+dp/softfp" | ||
177 | TUNE_FEATURES_tune-armv7emdpsoftfp = "arm" | ||
178 | TUNE_CCARGS_tune-armv7emdpsoftfp = "-mthumb -march=armv7e-m+fp.dp -mfloat-abi=softfp" | ||
179 | TUNE_PKGARCH_tune-armv7emdpsoftfp = "armv7emdp" | ||
180 | |||
181 | # thumb/v7e-m+dp/hard | ||
182 | # CFLAGS: -mthumb -march=armv7e-m+fp.dp -mfloat-abi=hard | ||
183 | DEFAULTTUNE_virtclass-multilib-libv7emdphard = "armv7emdphard" | ||
184 | |||
185 | AVAILTUNES += "armv7emdphard" | ||
186 | PACKAGE_EXTRA_ARCHS_tune-armv7emdphard = "${TUNE_PKGARCH_tune-armv7emdphard}" | ||
187 | BASE_LIB_tune-armv7emdphard = "lib/thumb/v7e-m+dp/hard" | ||
188 | TUNE_FEATURES_tune-armv7emdphard = "arm" | ||
189 | TUNE_CCARGS_tune-armv7emdphard = "-mthumb -march=armv7e-m+fp.dp -mfloat-abi=hard" | ||
190 | TUNE_PKGARCH_tune-armv7emdphard = "armv7emdpthf" | ||
191 | |||
192 | |||
193 | # thumb/v8-m.base/nofp | ||
194 | # CFLAGS: -mthumb -march=armv8-m.base -mfloat-abi=soft | ||
195 | DEFAULTTUNE_virtclass-multilib-libv8mbasenofp = "armv8mbasenofp" | ||
196 | |||
197 | # Workaround for this multilib in newlib | ||
198 | # newlib/libc/sys/arm/trap.S:88: Error: lo register required -- `sub ip,sp,ip' | ||
199 | EXTRA_OECONF_append_pn-libv8mbasenofp-newlib = " --disable-newlib-supplied-syscalls" | ||
200 | |||
201 | AVAILTUNES += "armv8mbasenofp" | ||
202 | PACKAGE_EXTRA_ARCHS_tune-armv8mbasenofp = "${TUNE_PKGARCH_tune-armv8mbasenofp}" | ||
203 | BASE_LIB_tune-armv8mbasenofp = "lib/thumb/v8-m.base/nofp" | ||
204 | TUNE_FEATURES_tune-armv8mbasenofp = "arm" | ||
205 | TUNE_CCARGS_tune-armv8mbasenofp = "-mthumb -march=armv8-m.base -mfloat-abi=soft" | ||
206 | TUNE_PKGARCH_tune-armv8mbasenofp = "armv8mbaset" | ||
207 | |||
208 | # thumb/v8-m.main/nofp | ||
209 | # CFLAGS: -mthumb -march=armv8-m.main -mfloat-abi=soft | ||
210 | DEFAULTTUNE_virtclass-multilib-libv8mmainnofp = "armv8mmainnofp" | ||
211 | |||
212 | AVAILTUNES += "armv8mmainnofp" | ||
213 | PACKAGE_EXTRA_ARCHS_tune-armv8mmainnofp = "${TUNE_PKGARCH_tune-armv8mmainnofp}" | ||
214 | BASE_LIB_tune-armv8mmainnofp = "lib/thumb/v8-m.main/nofp" | ||
215 | TUNE_FEATURES_tune-armv8mmainnofp = "arm" | ||
216 | TUNE_CCARGS_tune-armv8mmainnofp = "-mthumb -march=armv8-m.main -mfloat-abi=soft" | ||
217 | TUNE_PKGARCH_tune-armv8mmainnofp = "armv8mmaint" | ||
218 | |||
219 | |||
220 | # thumb/v8-m.main+fp/softfp | ||
221 | # CFLAGS: -mthumb -march=armv8-m.main+fp -mfloat-abi=softfp | ||
222 | DEFAULTTUNE_virtclass-multilib-libv8mmainfpsoftfp = "armv8mmainfpsoftfp" | ||
223 | |||
224 | AVAILTUNES += "armv8mmainfpsoftfp" | ||
225 | PACKAGE_EXTRA_ARCHS_tune-armv8mmainfpsoftfp = "${TUNE_PKGARCH_tune-armv8mmainfpsoftfp}" | ||
226 | BASE_LIB_tune-armv8mmainfpsoftfp = "lib/thumb/v8-m.main+fp/softfp" | ||
227 | TUNE_FEATURES_tune-armv8mmainfpsoftfp = "arm" | ||
228 | TUNE_CCARGS_tune-armv8mmainfpsoftfp = "-mthumb -march=armv8-m.main+fp -mfloat-abi=softfp" | ||
229 | TUNE_PKGARCH_tune-armv8mmainfpsoftfp = "armv8mmainfpt" | ||
230 | |||
231 | # thumb/v8-m.main+fp/hard | ||
232 | # CFLAGS: -mthumb -march=armv8-m.main+fp -mfloat-abi=hard | ||
233 | DEFAULTTUNE_virtclass-multilib-libv8mmainfphard = "armv8mmainfphard" | ||
234 | |||
235 | AVAILTUNES += "armv8mmainfphard" | ||
236 | PACKAGE_EXTRA_ARCHS_tune-armv8mmainfphard = "${TUNE_PKGARCH_tune-armv8mmainfphard}" | ||
237 | BASE_LIB_tune-armv8mmainfphard = "lib/thumb/v8-m.main+fp/hard" | ||
238 | TUNE_FEATURES_tune-armv8mmainfphard = "arm" | ||
239 | TUNE_CCARGS_tune-armv8mmainfphard = "-mthumb -march=armv8-m.main+fp -mfloat-abi=hard" | ||
240 | TUNE_PKGARCH_tune-armv8mmainfphard = "armv8mmainfpthf" | ||
241 | |||
242 | |||
243 | # thumb/v8-m.main+dp/softfp | ||
244 | # CFLAGS: -mthumb -march=armv8-m.main+fp.dp -mfloat-abi=softfp | ||
245 | DEFAULTTUNE_virtclass-multilib-libv8mmaindpsoftfp = "armv8mmaindpsoftfp" | ||
246 | |||
247 | AVAILTUNES += "armv8mmaindpsoftfp" | ||
248 | PACKAGE_EXTRA_ARCHS_tune-armv8mmaindpsoftfp = "${TUNE_PKGARCH_tune-armv8mmaindpsoftfp}" | ||
249 | BASE_LIB_tune-armv8mmaindpsoftfp = "lib/thumb/v8-m.main+dp/softfp" | ||
250 | TUNE_FEATURES_tune-armv8mmaindpsoftfp = "arm" | ||
251 | TUNE_CCARGS_tune-armv8mmaindpsoftfp = "-mthumb -march=armv8-m.main+fp.dp -mfloat-abi=softfp" | ||
252 | TUNE_PKGARCH_tune-armv8mmaindpsoftfp = "armv8mmainfpdpt" | ||
253 | |||
254 | |||
255 | # thumb/v8-m.main+dp/hard | ||
256 | # CFLAGS: -mthumb -march=armv8-m.main+fp.dp -mfloat-abi=hard | ||
257 | DEFAULTTUNE_virtclass-multilib-libv8mmaindphard = "armv8mmaindphard" | ||
258 | |||
259 | AVAILTUNES += "armv8mmaindphard" | ||
260 | PACKAGE_EXTRA_ARCHS_tune-armv8mmaindphard = "${TUNE_PKGARCH_tune-armv8mmaindphard}" | ||
261 | BASE_LIB_tune-armv8mmaindphard = "lib/thumb/v8-m.main+dp/hard" | ||
262 | TUNE_FEATURES_tune-armv8mmaindphard = "arm" | ||
263 | TUNE_CCARGS_tune-armv8mmaindphard = "-mthumb -march=armv8-m.main+fp.dp -mfloat-abi=hard" | ||
264 | TUNE_PKGARCH_tune-armv8mmaindphard = "armv8mmainfpdpthf" | ||
diff --git a/meta-xilinx-bsp/conf/machine/include/baremetal-tc.conf b/meta-xilinx-bsp/conf/machine/include/baremetal-tc.conf new file mode 100644 index 00000000..a53ceac2 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/baremetal-tc.conf | |||
@@ -0,0 +1,7 @@ | |||
1 | # This is specific to baremetal toolchains only. | ||
2 | # | ||
3 | # Some of the operations we want to do are different then regular Yocto | ||
4 | # Project SDK workflows, so wrap baremetal toolchain items in a custom | ||
5 | # override: | ||
6 | |||
7 | MACHINEOVERRIDES_append = ":baremetal-multilib-tc" | ||
diff --git a/meta-xilinx-bsp/conf/machine/microblaze-tc.conf b/meta-xilinx-bsp/conf/machine/microblaze-tc.conf new file mode 100644 index 00000000..ce1c81a8 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/microblaze-tc.conf | |||
@@ -0,0 +1,214 @@ | |||
1 | require conf/multilib.conf | ||
2 | require conf/machine/include/microblaze/arch-microblaze.inc | ||
3 | require conf/machine/include/baremetal-tc.conf | ||
4 | |||
5 | # ILP request an alternative machine dictionary | ||
6 | INHERIT += "xlnx-standalone" | ||
7 | PACKAGEQA_EXTRA_MACHDEFFUNCS .= '${@bb.utils.contains("TUNE_FEATURES", "64-bit", " xlnx_mb64_dict", "", d)}' | ||
8 | |||
9 | # GNU hash style not supported | ||
10 | TARGET_LINK_HASH_STYLE = "" | ||
11 | |||
12 | # Define all of the multilibs supproted by this configuration | ||
13 | MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" | ||
14 | |||
15 | MULTILIBS += "multilib:libbs" | ||
16 | MULTILIBS += "multilib:lible" | ||
17 | # Can't be 'libm...' or failures happen | ||
18 | MULTILIBS += "multilib:libmbm" | ||
19 | MULTILIBS += "multilib:libmbmmh" | ||
20 | |||
21 | MULTILIBS += "multilib:liblem" | ||
22 | MULTILIBS += "multilib:liblemmh" | ||
23 | MULTILIBS += "multilib:libbsle" | ||
24 | MULTILIBS += "multilib:libbsm" | ||
25 | MULTILIBS += "multilib:libbsmmh" | ||
26 | MULTILIBS += "multilib:libbslem" | ||
27 | MULTILIBS += "multilib:libbslemmh" | ||
28 | MULTILIBS += "multilib:lib64le" | ||
29 | MULTILIBS += "multilib:lib64lem" | ||
30 | MULTILIBS += "multilib:lib64lemmh" | ||
31 | MULTILIBS += "multilib:lib64bsle" | ||
32 | MULTILIBS += "multilib:lib64bslem" | ||
33 | MULTILIBS += "multilib:lib64bslemmh" | ||
34 | |||
35 | # Base configuration | ||
36 | # CFLAGS: | ||
37 | DEFAULTTUNE = "microblaze" | ||
38 | |||
39 | AVAILTUNES += "microblaze" | ||
40 | BASE_LIB_tune-microblaze = "lib" | ||
41 | TUNE_FEATURES_tune-microblaze = "microblaze bigendian" | ||
42 | PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" | ||
43 | |||
44 | |||
45 | # bs | ||
46 | # CFLAGS: -mxl-barrel-shift | ||
47 | DEFAULTTUNE_virtclass-multilib-libbs = "microblazebs" | ||
48 | |||
49 | AVAILTUNES += "microblazebs" | ||
50 | BASE_LIB_tune-microblazebs = "lib/bs" | ||
51 | TUNE_FEATURES_tune-microblazebs = "microblaze bigendian barrel-shift" | ||
52 | PACKAGE_EXTRA_ARCHS_tune-microblazebs = "${TUNE_PKGARCH}" | ||
53 | |||
54 | |||
55 | # le | ||
56 | # CFLAGS: -mlittle-endian | ||
57 | DEFAULTTUNE_virtclass-multilib-lible = "microblazele" | ||
58 | |||
59 | AVAILTUNES += "microblazele" | ||
60 | BASE_LIB_tune-microblazele = "lib/le" | ||
61 | TUNE_FEATURES_tune-microblazele = "microblaze" | ||
62 | PACKAGE_EXTRA_ARCHS_tune-microblazele = "${TUNE_PKGARCH}" | ||
63 | |||
64 | |||
65 | # m | ||
66 | # CFLAGS: -mno-xl-soft-mul | ||
67 | # Can't be 'libm...' or failures happen | ||
68 | DEFAULTTUNE_virtclass-multilib-libmbm = "microblazem" | ||
69 | |||
70 | AVAILTUNES += "microblazem" | ||
71 | BASE_LIB_tune-microblazem = "lib/m" | ||
72 | TUNE_FEATURES_tune-microblazem = "microblaze bigendian multiply-low" | ||
73 | PACKAGE_EXTRA_ARCHS_tune-microblazem = "${TUNE_PKGARCH}" | ||
74 | |||
75 | |||
76 | # m/mh | ||
77 | # CFLAGS: -mno-xl-soft-mul -mxl-multiply-high | ||
78 | # Can't be 'libm...' or failures happen | ||
79 | DEFAULTTUNE_virtclass-multilib-libmbmmh = "microblazemmh" | ||
80 | |||
81 | AVAILTUNES += "microblazemmh" | ||
82 | BASE_LIB_tune-microblazemmh = "lib/m/mh" | ||
83 | TUNE_FEATURES_tune-microblazemmh = "microblaze bigendian multiply-high" | ||
84 | PACKAGE_EXTRA_ARCHS_tune-microblazemmh = "${TUNE_PKGARCH}" | ||
85 | |||
86 | |||
87 | # le/m | ||
88 | # CFLAGS: -mlittle-endian -mno-xl-soft-mul | ||
89 | DEFAULTTUNE_virtclass-multilib-liblem = "microblazelem" | ||
90 | |||
91 | AVAILTUNES += "microblazelem" | ||
92 | BASE_LIB_tune-microblazelem = "lib/le/m" | ||
93 | TUNE_FEATURES_tune-microblazelem = "microblaze multiply-low" | ||
94 | PACKAGE_EXTRA_ARCHS_tune-microblazelem = "${TUNE_PKGARCH}" | ||
95 | |||
96 | |||
97 | # le/m/mh | ||
98 | # CFLAGS: -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high | ||
99 | DEFAULTTUNE_virtclass-multilib-liblemmh = "microblazelemmh" | ||
100 | |||
101 | AVAILTUNES += "microblazelemmh" | ||
102 | BASE_LIB_tune-microblazelemmh = "lib/le/m/mh" | ||
103 | TUNE_FEATURES_tune-microblazelemmh = "microblaze multiply-high" | ||
104 | PACKAGE_EXTRA_ARCHS_tune-microblazelemmh = "${TUNE_PKGARCH}" | ||
105 | |||
106 | |||
107 | # bs/le | ||
108 | # CFLAGS: -mxl-barrel-shift -mlittle-endian | ||
109 | DEFAULTTUNE_virtclass-multilib-libbsle = "microblazebsle" | ||
110 | |||
111 | AVAILTUNES += "microblazebsle" | ||
112 | BASE_LIB_tune-microblazebsle = "lib/bs/le" | ||
113 | TUNE_FEATURES_tune-microblazebsle = "microblaze bigendian barrel-shift" | ||
114 | PACKAGE_EXTRA_ARCHS_tune-microblazebsle = "${TUNE_PKGARCH}" | ||
115 | |||
116 | # bs/m | ||
117 | # CFLAGS: -mxl-barrel-shift -mno-xl-soft-mul | ||
118 | DEFAULTTUNE_virtclass-multilib-libbsm = "microblazebsm" | ||
119 | |||
120 | AVAILTUNES += "microblazebsm" | ||
121 | BASE_LIB_tune-microblazebsm = "lib/bs/m" | ||
122 | TUNE_FEATURES_tune-microblazebsm = "microblaze bigendian barrel-shift multiply-low" | ||
123 | PACKAGE_EXTRA_ARCHS_tune-microblazebsm = "${TUNE_PKGARCH}" | ||
124 | |||
125 | |||
126 | # bs/m/mh | ||
127 | # CFLAGS: -mxl-barrel-shift -mno-xl-soft-mul -mxl-multiply-high | ||
128 | DEFAULTTUNE_virtclass-multilib-libbsmmh = "microblazebsmmh" | ||
129 | |||
130 | AVAILTUNES += "microblazebsmmh" | ||
131 | BASE_LIB_tune-microblazebsmmh = "lib/bs/m/mh" | ||
132 | TUNE_FEATURES_tune-microblazebsmmh = "microblaze bigendian barrel-shift multiply-high" | ||
133 | PACKAGE_EXTRA_ARCHS_tune-microblazebsmmh = "${TUNE_PKGARCH}" | ||
134 | |||
135 | |||
136 | # bs/le/m | ||
137 | # CFLAGS: -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul | ||
138 | DEFAULTTUNE_virtclass-multilib-libbslem = "microblazebslem" | ||
139 | |||
140 | AVAILTUNES += "microblazebslem" | ||
141 | BASE_LIB_tune-microblazebslem = "lib/bs/le/m" | ||
142 | TUNE_FEATURES_tune-microblazebslem = "microblaze barrel-shift multiply-low" | ||
143 | PACKAGE_EXTRA_ARCHS_tune-microblazebslem = "${TUNE_PKGARCH}" | ||
144 | |||
145 | |||
146 | # bs/le/m/mh | ||
147 | # CFLAGS: -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high | ||
148 | DEFAULTTUNE_virtclass-multilib-libbslemmh = "microblazebslemmh" | ||
149 | |||
150 | AVAILTUNES += "microblazebslemmh" | ||
151 | BASE_LIB_tune-microblazebslemmh = "lib/bs/le/m/mh" | ||
152 | TUNE_FEATURES_tune-microblazebslemmh = "microblaze barrel-shift multiply-high" | ||
153 | PACKAGE_EXTRA_ARCHS_tune-microblazebslemmh = "${TUNE_PKGARCH}" | ||
154 | |||
155 | |||
156 | # m64/le | ||
157 | # CFLAGS: -m64 -mlittle-endian | ||
158 | DEFAULTTUNE_virtclass-multilib-lib64le = "microblaze64le" | ||
159 | |||
160 | AVAILTUNES += "microblaze64le" | ||
161 | BASE_LIB_tune-microblaze64le = "lib/m64/le" | ||
162 | TUNE_FEATURES_tune-microblaze64le = "microblaze 64-bit" | ||
163 | PACKAGE_EXTRA_ARCHS_tune-microblaze64le = "${TUNE_PKGARCH}" | ||
164 | |||
165 | |||
166 | # m64/le/m | ||
167 | # CFLAGS: -m64 -mlittle-endian -mno-xl-soft-mul | ||
168 | DEFAULTTUNE_virtclass-multilib-lib64lem = "microblaze64lem" | ||
169 | |||
170 | AVAILTUNES += "microblaze64lem" | ||
171 | BASE_LIB_tune-microblaze64lem = "lib/m64/le/m" | ||
172 | TUNE_FEATURES_tune-microblaze64lem = "microblaze 64-bit multiply-low" | ||
173 | PACKAGE_EXTRA_ARCHS_tune-microblaze64lem = "${TUNE_PKGARCH}" | ||
174 | |||
175 | |||
176 | # m64/le/m/mh | ||
177 | # CFLAGS: -m64 -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high | ||
178 | DEFAULTTUNE_virtclass-multilib-lib64lemmh = "microblaze64lemmh" | ||
179 | |||
180 | AVAILTUNES += "microblaze64lemmh" | ||
181 | BASE_LIB_tune-microblaze64lemmh = "lib/m64/le/m/mh" | ||
182 | TUNE_FEATURES_tune-microblaze64lemmh = "microblaze 64-bit multiply-high" | ||
183 | PACKAGE_EXTRA_ARCHS_tune-microblaze64lemmh = "${TUNE_PKGARCH}" | ||
184 | |||
185 | |||
186 | # m64/bs/le | ||
187 | # CFLAGS: -m64 -mxl-barrel-shift -mlittle-endian | ||
188 | DEFAULTTUNE_virtclass-multilib-lib64bsle = "microblaze64bsle" | ||
189 | |||
190 | AVAILTUNES += "microblaze64bsle" | ||
191 | BASE_LIB_tune-microblaze64bsle = "lib/m64/bs/le" | ||
192 | TUNE_FEATURES_tune-microblaze64bsle = "microblaze 64-bit barrel-shift" | ||
193 | PACKAGE_EXTRA_ARCHS_tune-microblaze64bsle = "${TUNE_PKGARCH}" | ||
194 | |||
195 | |||
196 | # m64/bs/le/m | ||
197 | # CFLAGS: -m64 -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul | ||
198 | DEFAULTTUNE_virtclass-multilib-lib64bslem = "microblaze64bslem" | ||
199 | |||
200 | AVAILTUNES += "microblaze64bslem" | ||
201 | BASE_LIB_tune-microblaze64bslem = "lib/m64/bs/le/m" | ||
202 | TUNE_FEATURES_tune-microblaze64bslem = "microblaze 64-bit barrel-shift multiply-low" | ||
203 | PACKAGE_EXTRA_ARCHS_tune-microblaze64bslem = "${TUNE_PKGARCH}" | ||
204 | |||
205 | |||
206 | # m64/bs/le/m/mh | ||
207 | # CFLAGS: -m64 -mxl-barrel-shift -mlittle-endian -mno-xl-soft-mul -mxl-multiply-high | ||
208 | DEFAULTTUNE_virtclass-multilib-lib64bslemmh = "microblaze64bslemmh" | ||
209 | |||
210 | AVAILTUNES += "microblaze64bslemmh" | ||
211 | BASE_LIB_tune-microblaze64bslemmh = "lib/m64/bs/le/m/mh" | ||
212 | TUNE_FEATURES_tune-microblaze64bslemmh = "microblaze 64-bit barrel-shift multiply-high" | ||
213 | PACKAGE_EXTRA_ARCHS_tune-microblaze64bslemmh = "${TUNE_PKGARCH}" | ||
214 | |||