mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-08 05:43:53 +00:00
![]() At the moment we have some elaborate, but very schematic functions to allow checking for CPU feature enablement. Adding some more becomes tedious and is also error-prone. Provide two wrapper macros that reduce most of the features to a single line: - CREATE_FEATURE_FUNCS(name, idreg, idfield, guard) creates two functions read_<name>_id_field() and is_<name>_supported(), that check the 4-bit CPU ID field starting at bit <idfield> in <idreg> for being not 0, and compares it against the build time <guard> symbol. For the usual feature (like PAN) this looks like: CREATE_FEATURE_FUNCS(feat_pan, id_aa64mmfr1_el1, ID_AA64MMFR1_EL1_PAN_SHIFT, ENABLE_FEAT_PAN) - CREATE_FEATURE_FUNCS_VER(name, read_func, idvalue, guard) creates one function to check for a certain CPU ID field *value*, so when "!= 0" is not sufficient. It's meant to be used in addition to the above macro, since that generates the CPU ID field accessor function: CREATE_FEATURE_FUNCS(feat_amu, id_aa64pfr0_el1, ID_AA64PFR0_AMU_SHIFT, ENABLE_FEAT_AMU) CREATE_FEATURE_FUNCS_VER(feat_amuv1p1, read_feat_amu_id_field, ID_AA64PFR0_AMU_V1P1, ENABLE_FEAT_AMUv1p1) Describe the existing feature accessor functions using those new macros, to reduce the size of the file, improve readability and decrease the possibility of (copy&paste) bugs. Change-Id: Ib136a875b4857058ff561c4635ace344006f29bf Signed-off-by: Andre Przywara <andre.przywara@arm.com> |
||
---|---|---|
.. | ||
aarch32 | ||
aarch64 | ||
backtrace | ||
bl_common.c | ||
desc_image_load.c | ||
fdt_fixup.c | ||
fdt_wrappers.c | ||
fdt_wrappers.mk | ||
feat_detect.c | ||
image_decompress.c | ||
runtime_svc.c | ||
tf_crc32.c | ||
tf_log.c | ||
uuid.c |