mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-28 16:53:49 +00:00
ACPI: sysfs: Enable ACPI sysfs support for CCEL records
The Confidential Computing Event Log (CCEL) table provides the address and length of the CCEL records area in UEFI reserved memory. To allow user space access to these records, expose a sysfs interface similar to the BERT table. More details about the CCEL table can be found in the ACPI specification r6.5 [1], sec 5.2.34. Link: https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#cc-event-log-acpi-table # [1] Co-developed-by: Haibo Xu <haibo1.xu@intel.com> Signed-off-by: Haibo Xu <haibo1.xu@intel.com> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
197b6b60ae
commit
4f855dcead
@ -458,11 +458,28 @@ static int acpi_bert_data_init(void *th, struct acpi_data_attr *data_attr)
|
||||
return sysfs_create_bin_file(tables_data_kobj, &data_attr->attr);
|
||||
}
|
||||
|
||||
static int acpi_ccel_data_init(void *th, struct acpi_data_attr *data_attr)
|
||||
{
|
||||
struct acpi_table_ccel *ccel = th;
|
||||
|
||||
if (ccel->header.length < sizeof(struct acpi_table_ccel) ||
|
||||
!ccel->log_area_start_address || !ccel->log_area_minimum_length) {
|
||||
kfree(data_attr);
|
||||
return -EINVAL;
|
||||
}
|
||||
data_attr->addr = ccel->log_area_start_address;
|
||||
data_attr->attr.size = ccel->log_area_minimum_length;
|
||||
data_attr->attr.attr.name = "CCEL";
|
||||
|
||||
return sysfs_create_bin_file(tables_data_kobj, &data_attr->attr);
|
||||
}
|
||||
|
||||
static struct acpi_data_obj {
|
||||
char *name;
|
||||
int (*fn)(void *, struct acpi_data_attr *);
|
||||
} acpi_data_objs[] = {
|
||||
{ ACPI_SIG_BERT, acpi_bert_data_init },
|
||||
{ ACPI_SIG_CCEL, acpi_ccel_data_init },
|
||||
};
|
||||
|
||||
#define NUM_ACPI_DATA_OBJS ARRAY_SIZE(acpi_data_objs)
|
||||
|
Loading…
Reference in New Issue
Block a user