Lines Matching +full:boot +full:- +full:enabled
1 /* SPDX-License-Identifier: GPL-2.0-only */
28 * between the values, the features are classified into 3 types - LOWER_SAFE,
67 * @arm64_ftr_reg - Feature register
115 * c) SCOPE_BOOT_CPU: Check only on the primary boot CPU to detect the
125 * actions if any. Usually, this is done, after all the boot-time
126 * enabled CPUs are brought up by the kernel, so that it can make
129 * boot by the primary boot CPU. (e.g, running the kernel at EL2 with
135 * CPUs are treated "late CPUs" for capabilities determined by the boot
139 * a) Boot CPU scope capabilities - Finalised by primary boot CPU via
141 * b) Everything except (a) - Run via setup_system_capabilities().
148 * secondary_start_kernel()-> check_local_cpu_capabilities()
156 * except for the primary boot CPU.
159 * user after the kernel boot are verified against the capability.
181 * check_local_cpu_capabilities() -> verify_local_cpu_capabilities()
186 * x-----------------------------x
188 * |-----------------------------|
190 * |-----------------------------|
192 * x-----------------------------x
196 * ARM64_CPUCAP_OPTIONAL_FOR_LATE_CPU - Case(a) is allowed
197 * ARM64_CPUCAP_PERMITTED_FOR_LATE_CPU - Case(b) is allowed
200 * all CPUs to have in order for the capability to be enabled. This is
203 * Case (b) is not permitted for a capability that must be enabled
204 * during boot if any CPU in the system requires it in order to run
206 * enabled after the corresponding capability is finalised.
208 * In some non-typical cases either both (a) and (b), or neither,
220 * On any local CPU vs System wide vs the primary boot CPU
225 * The capabilitiy is detected on the Boot CPU and is used by kernel
226 * during early boot. i.e, the capability should be "detected" and
227 * "enabled" as early as possibly on all booting CPUs.
242 * hasn't already enabled it ?
251 * CPU errata workarounds that need to be enabled at boot time if one or
253 * has been enabled, it is safe to allow any CPU to boot that doesn't
255 * requires a workaround and the system hasn't enabled it already.
260 * CPU feature detected at boot time based on system-wide value of a
262 * the system hasn't enabled it, although the feature will not be used
263 * by Linux in this case. If the system has enabled this feature already,
269 * CPU feature detected at boot time based on feature of one or more CPUs.
280 * CPU feature detected at boot time, on one or more CPUs. A late CPU
289 * CPU feature used early in the boot based on the boot CPU. All secondary
290 * CPUs must match the state of the capability as detected by the boot CPU. In
297 * CPU feature used early in the boot based on the boot CPU. It is safe for a
298 * late CPU to have this feature even though the boot CPU hasn't enabled it,
299 * although the feature will not be used by Linux in this case. If the boot CPU
300 * has enabled this feature already, then every late CPU must have it.
359 return cap->type & ARM64_CPUCAP_SCOPE_MASK; in cpucap_default_scope()
373 for (caps = entry->match_list; caps->matches; caps++) in cpucap_multi_entry_cap_matches()
374 if (caps->matches(caps, scope)) in cpucap_multi_entry_cap_matches()
440 * @num must be a compile-time constant.
455 * @num must be a compile-time constant.
466 * Test for a capability, possibly with a runtime check for non-hyp code.
470 * For non-hyp code:
474 * @num must be a compile-time constant.
499 return (s64)(features << (64 - width - field)) >> (64 - width); in cpuid_feature_extract_signed_field_width()
511 return (u64)(features << (64 - width - field)) >> (64 - width); in cpuid_feature_extract_unsigned_field_width()
522 * not follow the standard ID scheme. See ARM DDI 0487E.a page D13-2825,
545 return (u64)GENMASK(ftrp->shift + ftrp->width - 1, ftrp->shift); in arm64_ftr_mask()
550 return (reg->user_val | (reg->sys_val & reg->user_mask)); in arm64_ftr_reg_user_value()
569 return (s64)cpuid_feature_extract_field_width(val, ftrp->shift, ftrp->width, ftrp->sign); in arm64_ftr_value()