summaryrefslogtreecommitdiffstats
path: root/bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc')
-rw-r--r--bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc51
1 files changed, 51 insertions, 0 deletions
diff --git a/bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc b/bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc
new file mode 100644
index 00000000..a3605292
--- /dev/null
+++ b/bsp/meta-synopsys/conf/machine/include/arcv2-tune.inc
@@ -0,0 +1,51 @@
+require arch-arc.inc
+
+DEFAULTTUNE ?= "archs"
+TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
+
+TUNEVALID[hs] = "Enable ARC HS core with 32-bit atomic ops"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'hs', ' -mcpu=hs', '', d)}"
+
+TUNEVALID[llsc64] = "Enable 64-bit LL/SC operations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'llsc64', ' -mll64', '', d)}"
+
+TUNEVALID[div_rem] = "Enable simple divider"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'div_rem', ' -mdiv-rem', '', d)}"
+
+TUNEVALID[mpy] = "Enable simple hardware multiplier"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mpy', ' -mmpy-option=mpy', '', d)}"
+
+TUNEVALID[plus_qmacw] = "Enable most powerful hardware multiplier"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'plus_qmacw', ' -mmpy-option=plus_qmacw', '', d)}"
+
+TUNEVALID[fpud_all] = "Enable double-precision FPU"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpud_all', ' -mfpu=fpud_all', '', d)}"
+
+AVAILTUNES += "archs hs38 hs38linux"
+
+TUNE_FEATURES_tune-archs = "hs llsc64 mpy"
+TUNE_PKGARCH_tune-archs = "archs"
+PACKAGE_EXTRA_ARCHS_tune-archs = "archs hs38 hs38linux"
+
+TUNE_FEATURES_tune-hs38 = "hs llsc64 plus_qmacw"
+TUNE_PKGARCH_tune-hs38 = "hs38"
+PACKAGE_EXTRA_ARCHS_tune-hs38 = "hs38 hs38linux"
+
+TUNE_FEATURES_tune-hs38linux = "hs llsc64 plus_qmacw fpud_all"
+TUNE_PKGARCH_tune-hs38linux = "hs38linux"
+PACKAGE_EXTRA_ARCHS_tune-hs38linux = "hs38linux"
+
+def arc_machine_dict(machdata, d):
+ machdata = {
+ "elf" : {
+ "arc" : (195, 0, 0, True, 32),
+ "arceb" : (195, 0, 0, False, 32),
+ },
+ "linux" : {
+ "arc" : (195, 0, 0, True, 32),
+ "arceb" : (195, 0, 0, False, 32),
+ },
+ }
+ return machdata
+
+PACKAGEQA_EXTRA_MACHDEFFUNCS = "arc_machine_dict"