759e7a2b62
On platforms using the Qualcomm UEFI Secure Application (uefisecapp), EFI variables cannot be accessed via the standard interface in EFI runtime mode. The respective functions return EFI_UNSUPPORTED. On these platforms, we instead need to talk to uefisecapp. This commit provides support for this and registers the respective efivars operations to access EFI variables from the kernel. Communication with uefisecapp follows the Qualcomm QSEECOM / Secure OS conventions via the respective SCM call interface. This is also the reason why variable access works normally while boot services are active. During this time, said SCM interface is managed by the boot services. When calling ExitBootServices(), the ownership is transferred to the kernel. Therefore, UEFI must not use that interface itself (as multiple parties accessing this interface at the same time may lead to complications) and cannot access variables for us. Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Johan Hovold <johan+linaro@kernel.org> Link: https://lore.kernel.org/r/20230827211408.689076-4-luzmaximilian@gmail.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
43 lines
1.4 KiB
Makefile
43 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
obj-$(CONFIG_ARM_SCPI_PROTOCOL) += arm_scpi.o
|
|
obj-$(CONFIG_ARM_SCPI_POWER_DOMAIN) += scpi_pm_domain.o
|
|
obj-$(CONFIG_ARM_SDE_INTERFACE) += arm_sdei.o
|
|
obj-$(CONFIG_DMI) += dmi_scan.o
|
|
obj-$(CONFIG_DMI_SYSFS) += dmi-sysfs.o
|
|
obj-$(CONFIG_EDD) += edd.o
|
|
obj-$(CONFIG_EFI_PCDP) += pcdp.o
|
|
obj-$(CONFIG_DMIID) += dmi-id.o
|
|
obj-$(CONFIG_INTEL_STRATIX10_SERVICE) += stratix10-svc.o
|
|
obj-$(CONFIG_INTEL_STRATIX10_RSU) += stratix10-rsu.o
|
|
obj-$(CONFIG_ISCSI_IBFT_FIND) += iscsi_ibft_find.o
|
|
obj-$(CONFIG_ISCSI_IBFT) += iscsi_ibft.o
|
|
obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o
|
|
obj-$(CONFIG_MTK_ADSP_IPC) += mtk-adsp-ipc.o
|
|
obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o
|
|
obj-$(CONFIG_FW_CFG_SYSFS) += qemu_fw_cfg.o
|
|
obj-$(CONFIG_QCOM_SCM) += qcom-scm.o
|
|
qcom-scm-objs += qcom_scm.o qcom_scm-smc.o qcom_scm-legacy.o
|
|
obj-$(CONFIG_QCOM_QSEECOM) += qcom_qseecom.o
|
|
obj-$(CONFIG_QCOM_QSEECOM_UEFISECAPP) += qcom_qseecom_uefisecapp.o
|
|
obj-$(CONFIG_SYSFB) += sysfb.o
|
|
obj-$(CONFIG_SYSFB_SIMPLEFB) += sysfb_simplefb.o
|
|
obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o
|
|
obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
|
|
obj-$(CONFIG_TURRIS_MOX_RWTM) += turris-mox-rwtm.o
|
|
|
|
obj-y += arm_ffa/
|
|
obj-y += arm_scmi/
|
|
obj-y += broadcom/
|
|
obj-y += cirrus/
|
|
obj-y += meson/
|
|
obj-$(CONFIG_GOOGLE_FIRMWARE) += google/
|
|
obj-y += efi/
|
|
obj-y += imx/
|
|
obj-y += psci/
|
|
obj-y += smccc/
|
|
obj-y += tegra/
|
|
obj-y += xilinx/
|