1DEFAULTTUNE ?= "armv7vethf"
2
3TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve"
4TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a"
5TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '', d)}"
7
8require conf/machine/include/arm/arch-armv7a.inc
9
10# Little Endian base configs
11AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-vfpv4d16 armv7vet-vfpv4d16 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4"
12ARMPKGARCH:tune-armv7ve             ?= "armv7ve"
13ARMPKGARCH:tune-armv7vet            ?= "armv7ve"
14ARMPKGARCH:tune-armv7ve-vfpv3d16    ?= "armv7ve"
15ARMPKGARCH:tune-armv7vet-vfpv3d16   ?= "armv7ve"
16ARMPKGARCH:tune-armv7ve-vfpv3       ?= "armv7ve"
17ARMPKGARCH:tune-armv7vet-vfpv3      ?= "armv7ve"
18ARMPKGARCH:tune-armv7ve-vfpv4d16    ?= "armv7ve"
19ARMPKGARCH:tune-armv7vet-vfpv4d16   ?= "armv7ve"
20ARMPKGARCH:tune-armv7ve-neon        ?= "armv7ve"
21ARMPKGARCH:tune-armv7vet-neon       ?= "armv7ve"
22ARMPKGARCH:tune-armv7ve-neon-vfpv4  ?= "armv7ve"
23ARMPKGARCH:tune-armv7vet-neon-vfpv4 ?= "armv7ve"
24TUNE_FEATURES:tune-armv7ve             = "arm armv7ve vfp"
25TUNE_FEATURES:tune-armv7vet            = "${TUNE_FEATURES:tune-armv7ve} thumb"
26TUNE_FEATURES:tune-armv7ve-vfpv3d16    = "${TUNE_FEATURES:tune-armv7ve} vfpv3d16"
27TUNE_FEATURES:tune-armv7vet-vfpv3d16   = "${TUNE_FEATURES:tune-armv7vet} vfpv3d16"
28TUNE_FEATURES:tune-armv7ve-vfpv3       = "${TUNE_FEATURES:tune-armv7ve-vfpv3d16} vfpv3"
29TUNE_FEATURES:tune-armv7vet-vfpv3      = "${TUNE_FEATURES:tune-armv7vet-vfpv3d16} vfpv3"
30TUNE_FEATURES:tune-armv7ve-vfpv4d16    = "${TUNE_FEATURES:tune-armv7ve} vfpv4d16"
31TUNE_FEATURES:tune-armv7vet-vfpv4d16   = "${TUNE_FEATURES:tune-armv7vet} vfpv4d16"
32TUNE_FEATURES:tune-armv7ve-neon        = "${TUNE_FEATURES:tune-armv7ve} neon"
33TUNE_FEATURES:tune-armv7vet-neon       = "${TUNE_FEATURES:tune-armv7vet} neon"
34TUNE_FEATURES:tune-armv7ve-neon-vfpv4  = "${TUNE_FEATURES:tune-armv7ve-neon} vfpv4"
35TUNE_FEATURES:tune-armv7vet-neon-vfpv4 = "${TUNE_FEATURES:tune-armv7vet-neon} vfpv4"
36PACKAGE_EXTRA_ARCHS:tune-armv7ve             = "${PACKAGE_EXTRA_ARCHS:tune-armv7a} armv7ve armv7ve-vfp"
37PACKAGE_EXTRA_ARCHS:tune-armv7vet            = "${PACKAGE_EXTRA_ARCHS:tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp"
38PACKAGE_EXTRA_ARCHS:tune-armv7ve-vfpv3d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7ve} armv7ve-vfpv3d16"
39PACKAGE_EXTRA_ARCHS:tune-armv7vet-vfpv3d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
40PACKAGE_EXTRA_ARCHS:tune-armv7ve-vfpv3       = "${PACKAGE_EXTRA_ARCHS:tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
41PACKAGE_EXTRA_ARCHS:tune-armv7vet-vfpv3      = "${PACKAGE_EXTRA_ARCHS:tune-armv7vet-vfpv3d16} armv7ve-vfpv3 armv7vet2-vfpv3"
42PACKAGE_EXTRA_ARCHS:tune-armv7ve-vfpv4d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7ve}  armv7ve-vfpv4d16"
43PACKAGE_EXTRA_ARCHS:tune-armv7vet-vfpv4d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vet} armv7ve-vfpv4d16 armv7vet2-vfpv4d16"
44PACKAGE_EXTRA_ARCHS:tune-armv7ve-neon        = "${PACKAGE_EXTRA_ARCHS:tune-armv7ve} armv7ve-neon"
45PACKAGE_EXTRA_ARCHS:tune-armv7vet-neon       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vet} armv7ve-neon armv7vet2-neon"
46PACKAGE_EXTRA_ARCHS:tune-armv7ve-neon-vfpv4  = "${PACKAGE_EXTRA_ARCHS:tune-armv7ve-neon} armv7ve-neon-vfpv4"
47PACKAGE_EXTRA_ARCHS:tune-armv7vet-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7vet-neon} armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4"
48
49# HF Tunes
50AVAILTUNES += "armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-vfpv4d16 armv7vethf-vfpv4d16 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4"
51ARMPKGARCH:tune-armv7vehf             ?= "armv7ve"
52ARMPKGARCH:tune-armv7vethf            ?= "armv7ve"
53ARMPKGARCH:tune-armv7vehf-vfpv3d16    ?= "armv7ve"
54ARMPKGARCH:tune-armv7vethf-vfpv3d16   ?= "armv7ve"
55ARMPKGARCH:tune-armv7vehf-vfpv3       ?= "armv7ve"
56ARMPKGARCH:tune-armv7vethf-vfpv3      ?= "armv7ve"
57ARMPKGARCH:tune-armv7vehf-vfpv4d16    ?= "armv7ve"
58ARMPKGARCH:tune-armv7vethf-vfpv4d16   ?= "armv7ve"
59ARMPKGARCH:tune-armv7vehf-neon        ?= "armv7ve"
60ARMPKGARCH:tune-armv7vethf-neon       ?= "armv7ve"
61ARMPKGARCH:tune-armv7vehf-neon-vfpv4  ?= "armv7ve"
62ARMPKGARCH:tune-armv7vethf-neon-vfpv4 ?= "armv7ve"
63TUNE_FEATURES:tune-armv7vehf             = "${TUNE_FEATURES:tune-armv7ve} callconvention-hard"
64TUNE_FEATURES:tune-armv7vethf            = "${TUNE_FEATURES:tune-armv7vet} callconvention-hard"
65TUNE_FEATURES:tune-armv7vehf-vfpv3d16    = "${TUNE_FEATURES:tune-armv7ve-vfpv3d16} callconvention-hard"
66TUNE_FEATURES:tune-armv7vethf-vfpv3d16   = "${TUNE_FEATURES:tune-armv7vet-vfpv3d16} callconvention-hard"
67TUNE_FEATURES:tune-armv7vehf-vfpv3       = "${TUNE_FEATURES:tune-armv7ve-vfpv3} callconvention-hard"
68TUNE_FEATURES:tune-armv7vethf-vfpv3      = "${TUNE_FEATURES:tune-armv7vet-vfpv3} callconvention-hard"
69TUNE_FEATURES:tune-armv7vehf-vfpv4d16    = "${TUNE_FEATURES:tune-armv7ve-vfpv4d16} callconvention-hard"
70TUNE_FEATURES:tune-armv7vethf-vfpv4d16   = "${TUNE_FEATURES:tune-armv7vet-vfpv4d16} callconvention-hard"
71TUNE_FEATURES:tune-armv7vehf-neon        = "${TUNE_FEATURES:tune-armv7ve-neon} callconvention-hard"
72TUNE_FEATURES:tune-armv7vethf-neon       = "${TUNE_FEATURES:tune-armv7vet-neon} callconvention-hard"
73TUNE_FEATURES:tune-armv7vehf-neon-vfpv4  = "${TUNE_FEATURES:tune-armv7ve-neon-vfpv4} callconvention-hard"
74TUNE_FEATURES:tune-armv7vethf-neon-vfpv4 = "${TUNE_FEATURES:tune-armv7vet-neon-vfpv4} callconvention-hard"
75PACKAGE_EXTRA_ARCHS:tune-armv7vehf             = "${PACKAGE_EXTRA_ARCHS:tune-armv7ahf} armv7vehf-vfp"
76PACKAGE_EXTRA_ARCHS:tune-armv7vethf            = "${PACKAGE_EXTRA_ARCHS:tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp"
77PACKAGE_EXTRA_ARCHS:tune-armv7vehf-vfpv3d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehf} armv7vehf-vfpv3d16"
78PACKAGE_EXTRA_ARCHS:tune-armv7vethf-vfpv3d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
79PACKAGE_EXTRA_ARCHS:tune-armv7vehf-vfpv3       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
80PACKAGE_EXTRA_ARCHS:tune-armv7vethf-vfpv3      = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethf-vfpv3d16} armv7vehf-vfpv3 armv7vet2hf-vfpv3"
81PACKAGE_EXTRA_ARCHS:tune-armv7vehf-vfpv4d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehf} armv7vehf-vfpv4d16"
82PACKAGE_EXTRA_ARCHS:tune-armv7vethf-vfpv4d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethf} armv7vehf-vfpv4d16 armv7vet2hf-vfpv4d16"
83PACKAGE_EXTRA_ARCHS:tune-armv7vehf-neon        = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehf} armv7vehf-neon"
84PACKAGE_EXTRA_ARCHS:tune-armv7vethf-neon       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethf} armv7vehf-neon armv7vet2hf-neon"
85PACKAGE_EXTRA_ARCHS:tune-armv7vehf-neon-vfpv4  = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehf-neon} armv7vehf-neon-vfpv4"
86PACKAGE_EXTRA_ARCHS:tune-armv7vethf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethf-neon} armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4"
87
88# Big Endian
89AVAILTUNES += "armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-vfpv4d16 armv7vetb-vfpv4d16 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4"
90ARMPKGARCH:tune-armv7veb             ?= "armv7ve"
91ARMPKGARCH:tune-armv7vetb            ?= "armv7ve"
92ARMPKGARCH:tune-armv7veb-vfpv3d16    ?= "armv7ve"
93ARMPKGARCH:tune-armv7vetb-vfpv3d16   ?= "armv7ve"
94ARMPKGARCH:tune-armv7veb-vfpv3       ?= "armv7ve"
95ARMPKGARCH:tune-armv7vetb-vfpv3      ?= "armv7ve"
96ARMPKGARCH:tune-armv7veb-vfpv4d16    ?= "armv7ve"
97ARMPKGARCH:tune-armv7vetb-vfpv4d16   ?= "armv7ve"
98ARMPKGARCH:tune-armv7veb-neon        ?= "armv7ve"
99ARMPKGARCH:tune-armv7vetb-neon       ?= "armv7ve"
100ARMPKGARCH:tune-armv7veb-neon-vfpv4  ?= "armv7ve"
101ARMPKGARCH:tune-armv7vetb-neon-vfpv4 ?= "armv7ve"
102TUNE_FEATURES:tune-armv7veb             = "${TUNE_FEATURES:tune-armv7ve} bigendian"
103TUNE_FEATURES:tune-armv7vetb            = "${TUNE_FEATURES:tune-armv7vet} bigendian"
104TUNE_FEATURES:tune-armv7veb-vfpv3d16    = "${TUNE_FEATURES:tune-armv7ve-vfpv3d16} bigendian"
105TUNE_FEATURES:tune-armv7vetb-vfpv3d16   = "${TUNE_FEATURES:tune-armv7vet-vfpv3d16} bigendian"
106TUNE_FEATURES:tune-armv7veb-vfpv3       = "${TUNE_FEATURES:tune-armv7ve-vfpv3} bigendian"
107TUNE_FEATURES:tune-armv7vetb-vfpv3      = "${TUNE_FEATURES:tune-armv7vet-vfpv3} bigendian"
108TUNE_FEATURES:tune-armv7veb-vfpv4d16    = "${TUNE_FEATURES:tune-armv7ve-vfpv4d16} bigendian"
109TUNE_FEATURES:tune-armv7vetb-vfpv4d16   = "${TUNE_FEATURES:tune-armv7vet-vfpv4d16} bigendian"
110TUNE_FEATURES:tune-armv7veb-neon        = "${TUNE_FEATURES:tune-armv7ve-neon} bigendian"
111TUNE_FEATURES:tune-armv7vetb-neon       = "${TUNE_FEATURES:tune-armv7vet-neon} bigendian"
112TUNE_FEATURES:tune-armv7veb-neon-vfpv4  = "${TUNE_FEATURES:tune-armv7ve-neon-vfpv4} bigendian"
113TUNE_FEATURES:tune-armv7vetb-neon-vfpv4 = "${TUNE_FEATURES:tune-armv7vet-neon-vfpv4} bigendian"
114PACKAGE_EXTRA_ARCHS:tune-armv7veb             = "${PACKAGE_EXTRA_ARCHS:tune-armv7ab} armv7veb-vfp"
115PACKAGE_EXTRA_ARCHS:tune-armv7vetb            = "${PACKAGE_EXTRA_ARCHS:tune-armv7atb} armv7veb-vfp armv7vet2b-vfp"
116PACKAGE_EXTRA_ARCHS:tune-armv7veb-vfpv3d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7veb} armv7veb-vfpv3d16"
117PACKAGE_EXTRA_ARCHS:tune-armv7vetb-vfpv3d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
118PACKAGE_EXTRA_ARCHS:tune-armv7veb-vfpv3       = "${PACKAGE_EXTRA_ARCHS:tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
119PACKAGE_EXTRA_ARCHS:tune-armv7vetb-vfpv3      = "${PACKAGE_EXTRA_ARCHS:tune-armv7vetb-vfpv3d16} armv7veb-vfpv3 armv7vet2b-vfpv3"
120PACKAGE_EXTRA_ARCHS:tune-armv7veb-vfpv4d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7veb} armv7veb-vfpv4d16"
121PACKAGE_EXTRA_ARCHS:tune-armv7vetb-vfpv4d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vetb} armv7veb-vfpv4d16 armv7vet2b-vfpv4d16"
122PACKAGE_EXTRA_ARCHS:tune-armv7veb-neon        = "${PACKAGE_EXTRA_ARCHS:tune-armv7veb} armv7veb-neon"
123PACKAGE_EXTRA_ARCHS:tune-armv7vetb-neon       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vetb} armv7veb-neon armv7vet2b-neon"
124PACKAGE_EXTRA_ARCHS:tune-armv7veb-neon-vfpv4  = "${PACKAGE_EXTRA_ARCHS:tune-armv7veb-neon} armv7veb-neon-vfpv4"
125PACKAGE_EXTRA_ARCHS:tune-armv7vetb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7vetb-neon} armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4"
126
127# Big Endian + HF
128AVAILTUNES += "armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-vfpv4d16 armv7vethfb-vfpv4d16 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4"
129ARMPKGARCH:tune-armv7vehfb             ?= "armv7ve"
130ARMPKGARCH:tune-armv7vethfb            ?= "armv7ve"
131ARMPKGARCH:tune-armv7vehfb-vfpv3d16    ?= "armv7ve"
132ARMPKGARCH:tune-armv7vethfb-vfpv3d16   ?= "armv7ve"
133ARMPKGARCH:tune-armv7vehfb-vfpv3       ?= "armv7ve"
134ARMPKGARCH:tune-armv7vethfb-vfpv3      ?= "armv7ve"
135ARMPKGARCH:tune-armv7vehfb-vfpv4d16    ?= "armv7ve"
136ARMPKGARCH:tune-armv7vethfb-vfpv4d16   ?= "armv7ve"
137ARMPKGARCH:tune-armv7vehfb-neon        ?= "armv7ve"
138ARMPKGARCH:tune-armv7vethfb-neon       ?= "armv7ve"
139ARMPKGARCH:tune-armv7vehfb-neon-vfpv4  ?= "armv7ve"
140ARMPKGARCH:tune-armv7vethfb-neon-vfpv4 ?= "armv7ve"
141TUNE_FEATURES:tune-armv7vehfb             = "${TUNE_FEATURES:tune-armv7vehf} bigendian"
142TUNE_FEATURES:tune-armv7vethfb            = "${TUNE_FEATURES:tune-armv7vethf} bigendian"
143TUNE_FEATURES:tune-armv7vehfb-vfpv3d16    = "${TUNE_FEATURES:tune-armv7vehf-vfpv3d16} bigendian"
144TUNE_FEATURES:tune-armv7vethfb-vfpv3d16   = "${TUNE_FEATURES:tune-armv7vethf-vfpv3d16} bigendian"
145TUNE_FEATURES:tune-armv7vehfb-vfpv3       = "${TUNE_FEATURES:tune-armv7vehf-vfpv3} bigendian"
146TUNE_FEATURES:tune-armv7vethfb-vfpv3      = "${TUNE_FEATURES:tune-armv7vethf-vfpv3} bigendian"
147TUNE_FEATURES:tune-armv7vehfb-vfpv4d16    = "${TUNE_FEATURES:tune-armv7vehf-vfpv4d16} bigendian"
148TUNE_FEATURES:tune-armv7vethfb-vfpv4d16   = "${TUNE_FEATURES:tune-armv7vethf-vfpv4d16} bigendian"
149TUNE_FEATURES:tune-armv7vehfb-neon        = "${TUNE_FEATURES:tune-armv7vehf-neon} bigendian"
150TUNE_FEATURES:tune-armv7vethfb-neon       = "${TUNE_FEATURES:tune-armv7vethf-neon} bigendian"
151TUNE_FEATURES:tune-armv7vehfb-neon-vfpv4  = "${TUNE_FEATURES:tune-armv7vehf-neon-vfpv4} bigendian"
152TUNE_FEATURES:tune-armv7vethfb-neon-vfpv4 = "${TUNE_FEATURES:tune-armv7vethf-neon-vfpv4} bigendian"
153PACKAGE_EXTRA_ARCHS:tune-armv7vehfb             = "${PACKAGE_EXTRA_ARCHS:tune-armv7ahfb} armv7vehfb-vfp"
154PACKAGE_EXTRA_ARCHS:tune-armv7vethfb            = "${PACKAGE_EXTRA_ARCHS:tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp"
155PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-vfpv3d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehfb} armv7vehfb-vfpv3d16"
156PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-vfpv3d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
157PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-vfpv3       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
158PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-vfpv3      = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-vfpv3d16} armv7vehfb-vfpv3 armv7vet2hfb-vfpv3"
159PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-vfpv4d16    = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehfb} armv7vehfb-vfpv4d16"
160PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-vfpv4d16   = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethfb} armv7vehfb-vfpv4d16 armv7vet2hfb-vfpv4d16"
161PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-neon        = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehfb} armv7vehfb-neon"
162PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-neon       = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethfb} armv7vehfb-neon armv7vet2hfb-neon"
163PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-neon-vfpv4  = "${PACKAGE_EXTRA_ARCHS:tune-armv7vehfb-neon} armv7vehfb-neon-vfpv4"
164PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7vethfb-neon} armv7vehfb-neon-vfpv4 armv7vet2hfb-neon-vfpv4"
165