xref: /OK3568_Linux_fs/yocto/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# MicroBlaze architecture tune feature configuration
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# Architecture feature and override
4*4882a593SmuzhiyunTUNEVALID[microblaze] = "MicroBlaze"
5*4882a593SmuzhiyunMACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "", d)}"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun# 64-bit
8*4882a593SmuzhiyunTUNEVALID[64-bit] = "64-bit MicroBlaze"
9*4882a593SmuzhiyunTUNECONFLICTS[64-bit] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6 v10.0"
10*4882a593SmuzhiyunMACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "microblaze64:", "", d)}"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun# Endian
13*4882a593SmuzhiyunTUNEVALID[bigendian] = "Use Microblaze Big Endian"
14*4882a593SmuzhiyunTUNECONFLICTS[bigendian] = "v10.0"
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunMBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}"
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}"
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# General features
21*4882a593SmuzhiyunTUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter"
22*4882a593SmuzhiyunTUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions"
23*4882a593SmuzhiyunTUNEVALID[reorder] = "Enable Reorder Instructions"
24*4882a593SmuzhiyunTUNECONFLICTS[reorder] = "v8.00 v8.10 v8.20"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun# Core configuration tune optimizations
27*4882a593SmuzhiyunTUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)"
28*4882a593SmuzhiyunTUNECONFLICTS[frequency-optimized] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun# Feature compiler args
31*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", " -mxl-barrel-shift", " -mno-xl-barrel-shift", d)}"
32*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", " -mxl-pattern-compare", " -mno-xl-pattern-compare", d)}"
33*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", " -mxl-frequency", "", d)}"
34*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "64-bit", " -m64", "", d)}"
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun# Disable reorder for v8.30 if pattern-compare is not enabled
37*4882a593SmuzhiyunTUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", \
38*4882a593Smuzhiyun        bb.utils.contains("TUNE_FEATURES", "v8.30", \
39*4882a593Smuzhiyun            bb.utils.contains("TUNE_FEATURES", "pattern-compare", \
40*4882a593Smuzhiyun                " -mxl-reorder", " -mno-xl-reorder", d), \
41*4882a593Smuzhiyun            " -mxl-reorder", d), " -mno-xl-reorder", d)}"
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun# Feature package architecture formatting
44*4882a593SmuzhiyunMBPKGARCH_TUNE = ""
45*4882a593SmuzhiyunMBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "", d)}"
46*4882a593SmuzhiyunMBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "", d)}"
47*4882a593SmuzhiyunMBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "", d)}"
48*4882a593SmuzhiyunMBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-fo", "", d)}"
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun# Additional features
51*4882a593Smuzhiyunrequire conf/machine/include/microblaze/feature-microblaze-versions.inc
52*4882a593Smuzhiyunrequire conf/machine/include/microblaze/feature-microblaze-math.inc
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun# Architecture name, either 'microblaze' or 'microblazeel' depending on endianess
55*4882a593SmuzhiyunTUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "", "el", d)}"
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun# Add 64-bit to the PKGARCH if enabled.
58*4882a593SmuzhiyunMBPKGARCH_SIZE = "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "64", "", d)}"
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun# Package Architecture formatting
61*4882a593SmuzhiyunTUNE_PKGARCH = "microblaze${MBPKGARCH_SIZE}${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
62*4882a593Smuzhiyun
63