/linux/Documentation/arch/arm64/ |
H A D | sme.rst | 6 order to support use of the ARM Scalable Matrix Extension (SME). 11 included in SME. 13 This document does not aim to describe the SME architecture or programmer's 15 model features for SME is included in Appendix A. 24 * The presence of SME is reported to userspace via HWCAP2_SME in the aux vector 25 AT_HWCAP2 entry. Presence of this flag implies the presence of the SME 27 described in this document. SME is reported in /proc/cpuinfo as "sme". 34 * Support for the execution of SME instructions in userspace can also be 36 instruction, and checking that the value of the SME field is nonzero. [3] 42 * There are a number of optional SME features, presence of these is reported [all …]
|
/linux/drivers/net/wireless/marvell/libertas/ |
H A D | cfg.c | 1070 struct cfg80211_connect_params *sme) in lbs_set_authtype() argument 1086 if (sme->bssid) in lbs_set_authtype() 1087 memcpy(cmd.bssid, sme->bssid, ETH_ALEN); in lbs_set_authtype() 1089 ret = lbs_auth_to_authtype(sme->auth_type); in lbs_set_authtype() 1114 struct cfg80211_connect_params *sme) in lbs_associate() argument 1179 pos += lbs_add_auth_type_tlv(pos, sme->auth_type); in lbs_associate() 1182 if (sme->ie && sme->ie_len) in lbs_associate() 1183 pos += lbs_add_wpa_tlv(pos, sme->ie, sme->ie_len); in lbs_associate() 1257 sme->ie, sme->ie_len, in lbs_associate() 1276 _new_connect_scan_req(struct wiphy *wiphy, struct cfg80211_connect_params *sme) in _new_connect_scan_req() argument [all …]
|
/linux/tools/testing/selftests/arm64/abi/ |
H A D | hwcap.c | 850 .name = "SME", 853 .cpuinfo = "sme", 866 .name = "SME 2.1", 873 .name = "SME 2.2", 880 .name = "SME AES", 887 .name = "SME I16I32", 894 .name = "SME BI32I32", 901 .name = "SME B16B16", 908 .name = "SME F16F16", 915 .name = "SME F8F16", [all …]
|
H A D | syscall-abi-asm.S | 12 // x1: SME VL 83 // Set SVCR if we're doing SME 89 // Load ZA and ZT0 if enabled - uses x12 as scratch due to SME LDR 152 // Load the SVE registers if we're doing SVE/SME 257 // Save SVCR if we're doing SME 263 // Save ZA if it's enabled - uses x12 as scratch due to SME STR 338 // Only save FFR if we wrote a value for SME 355 // Clear SVCR if we were doing SME so future tests don't have ZA
|
/linux/arch/x86/coco/ |
H A D | core.c | 44 * the other levels of SME/SEV functionality, including C-bit 59 * SME and SEV are very similar but they are not the same, so there are 60 * times that the kernel will need to distinguish between SME and SEV. The 65 * paging is activated, SME will access all memory as decrypted, but SEV 67 * up under SME the trampoline area cannot be encrypted, whereas under SEV
|
/linux/tools/testing/selftests/arm64/signal/testcases/ |
H A D | sme_vl.c | 5 * Check that the SME vector length reported in signal contexts is the 62 .name = "SME VL", 63 .descr = "Check that we get the right SME VL reported",
|
/linux/tools/testing/selftests/arm64/fp/ |
H A D | Makefile | 16 rdvl-sme rdvl-sve \ 34 $(OUTPUT)/rdvl-sme: rdvl-sme.c $(OUTPUT)/rdvl.o
|
H A D | fp-ptrace.c | 247 ksft_print_msg("Failed to set SME VL %d: %d\n", in run_child() 330 read_one_child_regs(child, "SME VL", &iov_parent, &iov_child); in read_child_regs() 597 ksft_print_msg("Mismatch in initial SME VL: %d != %d\n", in check_ptrace_values_za() 995 ksft_print_msg("Mismatch in SME VL: %ld != %d\n", in check_memory_values() 1055 /* Changing the SME VL disables ZA */ in sve_write_supported() 1283 /* Changing the SME VL flushes ZT, SVE state */ in za_write_expected() 1379 snprintf(name, sizeof(name), "%s, SVE %d->%d, SME %d/%x->%d/%x", in run_test() 1388 snprintf(name, sizeof(name), "%s, SME %d/%x->%d/%x", in run_test() 1585 * Every SME VL/SVCR combination in run_sme_tests() 1639 probe_vls("SME", sme_vls, &sme_vl_count, PR_SME_SET_VL); in main() [all …]
|
H A D | .gitignore | 6 rdvl-sme
|
H A D | rdvl.S | 4 #include "sme-inst.h"
|
/linux/drivers/net/wireless/ath/ath6kl/ |
H A D | cfg80211.c | 455 struct cfg80211_connect_params *sme) in ath6kl_cfg80211_connect() argument 476 ((sme->channel && sme->channel->center_freq == 0) || in ath6kl_cfg80211_connect() 477 (sme->bssid && is_zero_ether_addr(sme->bssid)))) { in ath6kl_cfg80211_connect() 507 status = ath6kl_set_assoc_req_ies(vif, sme->ie, sme->ie_len); in ath6kl_cfg80211_connect() 513 if (sme->ie == NULL || sme->ie_len == 0) in ath6kl_cfg80211_connect() 517 vif->ssid_len == sme->ssid_len && in ath6kl_cfg80211_connect() 518 !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) { in ath6kl_cfg80211_connect() 530 } else if (vif->ssid_len == sme->ssid_len && in ath6kl_cfg80211_connect() 531 !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) { in ath6kl_cfg80211_connect() 536 vif->ssid_len = sme->ssid_len; in ath6kl_cfg80211_connect() [all …]
|
/linux/arch/x86/boot/startup/ |
H A D | sme.c | 295 * This is early code, use an open coded check for SME instead of in sme_encrypt_kernel() 498 /* Check for the SME/SEV support leaf */ in sme_enable() 509 * Check for the SME/SEV feature: in sme_enable() 519 /* Check whether SEV or SME is supported */ in sme_enable() 526 /* Check the SEV MSR whether SEV or SME is enabled */ in sme_enable() 543 * No SME if Hypervisor bit is set. This check is here to in sme_enable() 544 * prevent a guest from trying to enable SME. For running as a in sme_enable() 557 /* For SME, check the SYSCFG MSR */ in sme_enable()
|
H A D | map_kernel.c | 40 /* Encrypt the kernel and related (if SME is active) */ in sme_postprocess_startup() 72 * Return the SME encryption mask (if SME is active) to be used as a in sme_postprocess_startup() 121 /* Include the SME encryption mask in the fixup value */ in __startup_64()
|
/linux/arch/arm64/kvm/ |
H A D | fpsimd.c | 32 * Ensure that any host FPSIMD/SVE/SME state is saved and unbound such in kvm_arch_vcpu_load_fp() 36 * When the host may use SME, fpsimd_save_and_flush_cpu_state() ensures in kvm_arch_vcpu_load_fp() 73 * Currently we do not support SME guests so SVCR is in kvm_arch_vcpu_ctxsync_fp()
|
/linux/arch/arm64/kernel/ |
H A D | fpsimd.c | 137 .name = "SME", 273 * TIF_SME controls whether a task can use SME without trapping while 393 /* Restore SME, override SVE register configuration if needed */ in task_fpsimd_load() 761 * The task's FPSIMD/SVE/SME state must not be subject to concurrent 775 * The task's FPSIMD/SVE/SME state must not be subject to concurrent 899 * SVE and SME use the same bits for _ONEXEC and _INHERIT. 1228 /* Allow SME in kernel */ in cpu_enable_sme() 1242 /* This must be enabled after SME */ in cpu_enable_sme2() 1252 /* This must be enabled after SME */ in cpu_enable_fa64() 1271 * SME doesn't require any particular vector length be in sme_setup() [all …]
|
/linux/drivers/net/wireless/virtual/ |
H A D | virt_wifi.c | 229 struct cfg80211_connect_params *sme) in virt_wifi_connect() argument 237 if (!sme->ssid) in virt_wifi_connect() 240 priv->connect_requested_ssid_len = sme->ssid_len; in virt_wifi_connect() 241 memcpy(priv->connect_requested_ssid, sme->ssid, sme->ssid_len); in virt_wifi_connect() 247 if (sme->bssid) { in virt_wifi_connect() 248 ether_addr_copy(priv->connect_requested_bss, sme->bssid); in virt_wifi_connect()
|
/linux/tools/testing/selftests/arm64/signal/ |
H A D | sve_helpers.c | 5 * Common helper functions for SVE and SME functionality. 33 * Unlike SVE, SME does not require the minimum vector length in sve_fill_vls()
|
/linux/arch/x86/include/asm/ |
H A D | processor-flags.h | 28 * On systems with SME, one bit (in a variable position!) is stolen to indicate 39 /* Mask off the address space ID and SME encryption bits. */
|
/linux/arch/x86/kernel/cpu/ |
H A D | amd.c | 550 * support SME. This provides support for performing a successful in early_detect_mem_encrypt() 551 * kexec when going from SME inactive to SME active (or vice-versa). in early_detect_mem_encrypt() 566 * BIOS support is required for SME and SEV. in early_detect_mem_encrypt() 567 * For SME: If BIOS has enabled SME then adjust x86_phys_bits by in early_detect_mem_encrypt() 568 * the SME physical address space reduction value. in early_detect_mem_encrypt() 569 * If BIOS has not enabled SME then don't advertise the in early_detect_mem_encrypt() 570 * SME feature (set in scattered.c). in early_detect_mem_encrypt() 571 * If the kernel has not enabled SME via any means then in early_detect_mem_encrypt() 572 * don't advertise the SME feature. in early_detect_mem_encrypt() 576 * In all cases, since support for SME and SEV requires long mode, in early_detect_mem_encrypt()
|
/linux/include/linux/ |
H A D | cc_platform.h | 31 * Examples include SME, SEV and SEV-ES. 41 * Examples include SME.
|
/linux/arch/x86/kernel/ |
H A D | head_64.S | 88 * Activate SEV/SME memory encryption if supported/enabled. This needs to 108 * Perform pagetable fixups. Additionally, if SME is active, encrypt 109 * the kernel and retrieve the modifier (SME encryption mask if SME 186 * Retrieve the modifier (SME encryption mask if SME is active) to be
|
H A D | head64.c | 200 * If SME is active, this will create decrypted mappings of the in copy_bootdata() 215 * freeing up that memory for use by the system. If SME is active, in copy_bootdata() 258 * SME support may update early_pmd_flags to include the memory in x86_64_start_kernel()
|
/linux/arch/arm64/include/asm/ |
H A D | thread_info.h | 83 #define TIF_SME 27 /* SME in use */ 84 #define TIF_SME_VL_INHERIT 28 /* Inherit SME vl_onexec across exec */
|
H A D | el2_setup.h | 544 .Linit_sme_\@: /* SME register access and priority mapping */ 548 mrs x0, cpacr_el1 // Disable SME traps 554 mrs x0, cptr_el2 // Disable SME traps 582 orr x0, x0, #SMCR_ELx_LEN_MASK // Enable full SME vector
|
/linux/arch/arm64/kernel/pi/ |
H A D | idreg-override.c | 138 * Similarly to SVE, disabling SME also means disabling all in pfr1_sme_filter() 157 FIELD("sme", ID_AA64PFR1_EL1_SME_SHIFT, pfr1_sme_filter), 238 { "arm64.nosme", "id_aa64pfr1.sme=0" },
|