Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# MicroBlaze architecture tune feature configuration
|
||||
|
||||
# Architecture feature and override
|
||||
TUNEVALID[microblaze] = "MicroBlaze"
|
||||
MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "", d)}"
|
||||
|
||||
# 64-bit
|
||||
TUNEVALID[64-bit] = "64-bit MicroBlaze"
|
||||
TUNECONFLICTS[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"
|
||||
MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "microblaze64:", "", d)}"
|
||||
|
||||
# Endian
|
||||
TUNEVALID[bigendian] = "Use Microblaze Big Endian"
|
||||
TUNECONFLICTS[bigendian] = "v10.0"
|
||||
|
||||
MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}"
|
||||
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}"
|
||||
|
||||
# General features
|
||||
TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter"
|
||||
TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions"
|
||||
TUNEVALID[reorder] = "Enable Reorder Instructions"
|
||||
TUNECONFLICTS[reorder] = "v8.00 v8.10 v8.20"
|
||||
|
||||
# Core configuration tune optimizations
|
||||
TUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)"
|
||||
TUNECONFLICTS[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"
|
||||
|
||||
# Feature compiler args
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", " -mxl-barrel-shift", " -mno-xl-barrel-shift", d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", " -mxl-pattern-compare", " -mno-xl-pattern-compare", d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", " -mxl-frequency", "", d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "64-bit", " -m64", "", d)}"
|
||||
|
||||
# Disable reorder for v8.30 if pattern-compare is not enabled
|
||||
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", \
|
||||
bb.utils.contains("TUNE_FEATURES", "v8.30", \
|
||||
bb.utils.contains("TUNE_FEATURES", "pattern-compare", \
|
||||
" -mxl-reorder", " -mno-xl-reorder", d), \
|
||||
" -mxl-reorder", d), " -mno-xl-reorder", d)}"
|
||||
|
||||
# Feature package architecture formatting
|
||||
MBPKGARCH_TUNE = ""
|
||||
MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "", d)}"
|
||||
MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "", d)}"
|
||||
MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "", d)}"
|
||||
MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-fo", "", d)}"
|
||||
|
||||
# Additional features
|
||||
require conf/machine/include/microblaze/feature-microblaze-versions.inc
|
||||
require conf/machine/include/microblaze/feature-microblaze-math.inc
|
||||
|
||||
# Architecture name, either 'microblaze' or 'microblazeel' depending on endianess
|
||||
TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "", "el", d)}"
|
||||
|
||||
# Add 64-bit to the PKGARCH if enabled.
|
||||
MBPKGARCH_SIZE = "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "64", "", d)}"
|
||||
|
||||
# Package Architecture formatting
|
||||
TUNE_PKGARCH = "microblaze${MBPKGARCH_SIZE}${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# This include describes the math features (integer and floating point) that
|
||||
# are available for the MicroBlaze ISA
|
||||
|
||||
TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result"
|
||||
TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result"
|
||||
TUNEVALID[divide-hard] = "Hardware divider"
|
||||
TUNEVALID[fpu-soft] = "Software FPU"
|
||||
TUNEVALID[fpu-hard] = "Hardware FPU in basic mode"
|
||||
TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)"
|
||||
|
||||
TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended"
|
||||
TUNECONFLICTS[fpu-hard] = "fpu-soft"
|
||||
TUNECONFLICTS[fpu-hard-extended] = "fpu-soft"
|
||||
|
||||
# Compiler args
|
||||
TUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], ' -mno-xl-soft-mul', ' -mxl-soft-mul', d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', ' -mxl-multiply-high', '', d)}"
|
||||
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', ' -mno-xl-soft-div', ' -mxl-soft-div', d)}"
|
||||
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], ' -mhard-float', '', d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', ' -mxl-float-convert -mxl-float-sqrt', '', d)}"
|
||||
|
||||
# Set target fpu (bitbake known target) to soft or hard (basic or extended)
|
||||
TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}"
|
||||
|
||||
# Package Architecture formatting
|
||||
MBPKGARCH_MATH = ""
|
||||
MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}"
|
||||
MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '', d)}"
|
||||
MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}"
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
# MicroBlaze versions are defined as features, the features are setup to
|
||||
# conflict with other versions as well as unavailable features for particular
|
||||
# versions.
|
||||
#
|
||||
# Versions before v9.0 of MicroBlaze use a versioning scheme of "vX.YY.Z"
|
||||
# (where Z = [abc]). For v8.* versions of MicroBlaze the revision (Z) changes
|
||||
# did not affect ABI and are ignored by this tune configuration. Though this
|
||||
# format is expected by GCC including the revision, but this is defaulted to
|
||||
# ".a".
|
||||
#
|
||||
# Since v9.0 of MicroBlaze the revision (Z) part of versions was entirely
|
||||
# dropped and the version scheme was changed to "vX.Y".
|
||||
|
||||
def microblaze_current_version(d, gcc = False):
|
||||
import re
|
||||
# find the current version, and convert it to major/minor integers
|
||||
version = None
|
||||
for t in (d.getVar("TUNE_FEATURES") or "").split():
|
||||
m = re.search(r"^v(\d+)\.(\d+)", t)
|
||||
if m:
|
||||
version = int(m.group(1)), int(m.group(2))
|
||||
break
|
||||
|
||||
# format the version string in generic or GCC specific formats
|
||||
if version:
|
||||
if version[0] <= 8:
|
||||
return ("v%d.%02d" % version[0:2]) + (".a" if gcc else "")
|
||||
else:
|
||||
return "v%d.%d" % version[0:2]
|
||||
return ""
|
||||
|
||||
# MicroBlaze versions
|
||||
TUNEVALID[v8.00] = "MicroBlaze version 8.00"
|
||||
TUNEVALID[v8.10] = "MicroBlaze version 8.10"
|
||||
TUNEVALID[v8.20] = "MicroBlaze version 8.20"
|
||||
TUNEVALID[v8.30] = "MicroBlaze version 8.30"
|
||||
TUNEVALID[v8.40] = "MicroBlaze version 8.40"
|
||||
TUNEVALID[v8.50] = "MicroBlaze version 8.50"
|
||||
TUNEVALID[v9.0] = "MicroBlaze version 9.0"
|
||||
TUNEVALID[v9.1] = "MicroBlaze version 9.1"
|
||||
TUNEVALID[v9.2] = "MicroBlaze version 9.2"
|
||||
TUNEVALID[v9.3] = "MicroBlaze version 9.3"
|
||||
TUNEVALID[v9.4] = "MicroBlaze version 9.4"
|
||||
TUNEVALID[v9.5] = "MicroBlaze version 9.5"
|
||||
TUNEVALID[v9.6] = "MicroBlaze version 9.6"
|
||||
TUNEVALID[v10.0] = "MicroBlaze version 10.0"
|
||||
TUNEVALID[v11.0] = "MicroBlaze version 11.0"
|
||||
|
||||
# Version conflict matrix
|
||||
TUNECONFLICTS[v8.00] = ""
|
||||
TUNECONFLICTS[v8.10] = "v8.00"
|
||||
TUNECONFLICTS[v8.20] = "v8.00 v8.10"
|
||||
TUNECONFLICTS[v8.30] = "v8.00 v8.10 v8.20"
|
||||
TUNECONFLICTS[v8.40] = "v8.00 v8.10 v8.20 v8.30"
|
||||
TUNECONFLICTS[v8.50] = "v8.00 v8.10 v8.20 v8.30 v8.40"
|
||||
TUNECONFLICTS[v9.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50"
|
||||
TUNECONFLICTS[v9.1] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0"
|
||||
TUNECONFLICTS[v9.2] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1"
|
||||
TUNECONFLICTS[v9.3] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2"
|
||||
TUNECONFLICTS[v9.4] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3"
|
||||
TUNECONFLICTS[v9.5] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4"
|
||||
TUNECONFLICTS[v9.6] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5"
|
||||
TUNECONFLICTS[v10.0] = "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"
|
||||
TUNECONFLICTS[v11.0] = "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"
|
||||
|
||||
# Version flags
|
||||
TUNE_CCARGS += "${@'-mcpu=%s' % (microblaze_current_version(d, True)) if microblaze_current_version(d, True) != '' else ''}"
|
||||
MBPKGARCH_VERSION = "${@'-%s' % (microblaze_current_version(d, True)) if microblaze_current_version(d, True) != '' else ''}"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
DEFAULTTUNE ?= "microblaze"
|
||||
|
||||
require conf/machine/include/microblaze/arch-microblaze.inc
|
||||
|
||||
AVAILTUNES += "microblaze"
|
||||
TUNE_FEATURES:tune-microblaze = "microblaze"
|
||||
PACKAGE_EXTRA_ARCHS:tune-microblaze = "${TUNE_PKGARCH}"
|
||||
|
||||
Reference in New Issue
Block a user