cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

uefi.h (1832B)


      1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
      2/*
      3 * Copyright(c) 2021 Intel Corporation
      4 */
      5#ifndef __iwl_fw_uefi__
      6#define __iwl_fw_uefi__
      7
      8#define IWL_UEFI_OEM_PNVM_NAME		L"UefiCnvWlanOemSignedPnvm"
      9#define IWL_UEFI_REDUCED_POWER_NAME	L"UefiCnvWlanReducedPower"
     10#define IWL_UEFI_SGOM_NAME		L"UefiCnvWlanSarGeoOffsetMapping"
     11
     12/*
     13 * TODO: we have these hardcoded values that the caller must pass,
     14 * because reading from the UEFI is not working.  To implement this
     15 * properly, we have to change iwl_pnvm_get_from_uefi() to call
     16 * efivar_entry_size() and return the value to the caller instead.
     17 */
     18#define IWL_HARDCODED_PNVM_SIZE		4096
     19#define IWL_HARDCODED_REDUCE_POWER_SIZE	32768
     20#define IWL_HARDCODED_SGOM_SIZE		339
     21
     22struct pnvm_sku_package {
     23	u8 rev;
     24	u32 total_size;
     25	u8 n_skus;
     26	u32 reserved[2];
     27	u8 data[];
     28} __packed;
     29
     30struct uefi_cnv_wlan_sgom_data {
     31	u8 revision;
     32	u8 offset_map[IWL_HARDCODED_SGOM_SIZE - 1];
     33} __packed;
     34
     35/*
     36 * This is known to be broken on v4.19 and to work on v5.4.  Until we
     37 * figure out why this is the case and how to make it work, simply
     38 * disable the feature in old kernels.
     39 */
     40#ifdef CONFIG_EFI
     41void *iwl_uefi_get_pnvm(struct iwl_trans *trans, size_t *len);
     42void *iwl_uefi_get_reduced_power(struct iwl_trans *trans, size_t *len);
     43#else /* CONFIG_EFI */
     44static inline
     45void *iwl_uefi_get_pnvm(struct iwl_trans *trans, size_t *len)
     46{
     47	return ERR_PTR(-EOPNOTSUPP);
     48}
     49
     50static inline
     51void *iwl_uefi_get_reduced_power(struct iwl_trans *trans, size_t *len)
     52{
     53	return ERR_PTR(-EOPNOTSUPP);
     54}
     55#endif /* CONFIG_EFI */
     56
     57#if defined(CONFIG_EFI) && defined(CONFIG_ACPI)
     58void iwl_uefi_get_sgom_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt);
     59#else
     60static inline
     61void iwl_uefi_get_sgom_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt)
     62{
     63}
     64#endif
     65#endif /* __iwl_fw_uefi__ */