tpm: rename event log provider files
authorThiebaud Weksteen <tweek@google.com>
Wed, 20 Sep 2017 08:13:37 +0000 (10:13 +0200)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 8 Jan 2018 10:58:34 +0000 (12:58 +0200)
Rename the current TPM Event Log provider files (ACPI and OF)
for clarity.

Signed-off-by: Thiebaud Weksteen <tweek@google.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Tested-by: Javier Martinez Canillas <javierm@redhat.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/Makefile
drivers/char/tpm/tpm_acpi.c [deleted file]
drivers/char/tpm/tpm_eventlog_acpi.c [new file with mode: 0644]
drivers/char/tpm/tpm_eventlog_of.c [new file with mode: 0644]
drivers/char/tpm/tpm_of.c [deleted file]

index 34b4bcf46f43bc33d77bbf7e8c702d13f9a1616d..bce9e1402e8755269c7993740ae1ffb527212259 100644 (file)
@@ -6,8 +6,8 @@ obj-$(CONFIG_TCG_TPM) += tpm.o
 tpm-y := tpm-interface.o tpm-dev.o tpm-sysfs.o tpm-chip.o tpm2-cmd.o \
         tpm-dev-common.o tpmrm-dev.o tpm1_eventlog.o tpm2_eventlog.o \
          tpm2-space.o
-tpm-$(CONFIG_ACPI) += tpm_ppi.o tpm_acpi.o
-tpm-$(CONFIG_OF) += tpm_of.o
+tpm-$(CONFIG_ACPI) += tpm_ppi.o tpm_eventlog_acpi.o
+tpm-$(CONFIG_OF) += tpm_eventlog_of.o
 obj-$(CONFIG_TCG_TIS_CORE) += tpm_tis_core.o
 obj-$(CONFIG_TCG_TIS) += tpm_tis.o
 obj-$(CONFIG_TCG_TIS_SPI) += tpm_tis_spi.o
diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
deleted file mode 100644 (file)
index acc990b..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2005 IBM Corporation
- *
- * Authors:
- *     Seiji Munetoh <munetoh@jp.ibm.com>
- *     Stefan Berger <stefanb@us.ibm.com>
- *     Reiner Sailer <sailer@watson.ibm.com>
- *     Kylene Hall <kjhall@us.ibm.com>
- *     Nayna Jain <nayna@linux.vnet.ibm.com>
- *
- * Maintained by: <tpmdd-devel@lists.sourceforge.net>
- *
- * Access to the event log extended by the TCG BIOS of PC platform
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- */
-
-#include <linux/seq_file.h>
-#include <linux/fs.h>
-#include <linux/security.h>
-#include <linux/module.h>
-#include <linux/slab.h>
-#include <linux/acpi.h>
-#include <linux/tpm_eventlog.h>
-
-#include "tpm.h"
-
-struct acpi_tcpa {
-       struct acpi_table_header hdr;
-       u16 platform_class;
-       union {
-               struct client_hdr {
-                       u32 log_max_len __packed;
-                       u64 log_start_addr __packed;
-               } client;
-               struct server_hdr {
-                       u16 reserved;
-                       u64 log_max_len __packed;
-                       u64 log_start_addr __packed;
-               } server;
-       };
-};
-
-/* read binary bios log */
-int tpm_read_log_acpi(struct tpm_chip *chip)
-{
-       struct acpi_tcpa *buff;
-       acpi_status status;
-       void __iomem *virt;
-       u64 len, start;
-       struct tpm_bios_log *log;
-
-       if (chip->flags & TPM_CHIP_FLAG_TPM2)
-               return -ENODEV;
-
-       log = &chip->log;
-
-       /* Unfortuntely ACPI does not associate the event log with a specific
-        * TPM, like PPI. Thus all ACPI TPMs will read the same log.
-        */
-       if (!chip->acpi_dev_handle)
-               return -ENODEV;
-
-       /* Find TCPA entry in RSDT (ACPI_LOGICAL_ADDRESSING) */
-       status = acpi_get_table(ACPI_SIG_TCPA, 1,
-                               (struct acpi_table_header **)&buff);
-
-       if (ACPI_FAILURE(status))
-               return -ENODEV;
-
-       switch(buff->platform_class) {
-       case BIOS_SERVER:
-               len = buff->server.log_max_len;
-               start = buff->server.log_start_addr;
-               break;
-       case BIOS_CLIENT:
-       default:
-               len = buff->client.log_max_len;
-               start = buff->client.log_start_addr;
-               break;
-       }
-       if (!len) {
-               dev_warn(&chip->dev, "%s: TCPA log area empty\n", __func__);
-               return -EIO;
-       }
-
-       /* malloc EventLog space */
-       log->bios_event_log = kmalloc(len, GFP_KERNEL);
-       if (!log->bios_event_log)
-               return -ENOMEM;
-
-       log->bios_event_log_end = log->bios_event_log + len;
-
-       virt = acpi_os_map_iomem(start, len);
-       if (!virt)
-               goto err;
-
-       memcpy_fromio(log->bios_event_log, virt, len);
-
-       acpi_os_unmap_iomem(virt, len);
-       return 0;
-
-err:
-       kfree(log->bios_event_log);
-       log->bios_event_log = NULL;
-       return -EIO;
-
-}
diff --git a/drivers/char/tpm/tpm_eventlog_acpi.c b/drivers/char/tpm/tpm_eventlog_acpi.c
new file mode 100644 (file)
index 0000000..acc990b
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2005 IBM Corporation
+ *
+ * Authors:
+ *     Seiji Munetoh <munetoh@jp.ibm.com>
+ *     Stefan Berger <stefanb@us.ibm.com>
+ *     Reiner Sailer <sailer@watson.ibm.com>
+ *     Kylene Hall <kjhall@us.ibm.com>
+ *     Nayna Jain <nayna@linux.vnet.ibm.com>
+ *
+ * Maintained by: <tpmdd-devel@lists.sourceforge.net>
+ *
+ * Access to the event log extended by the TCG BIOS of PC platform
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ */
+
+#include <linux/seq_file.h>
+#include <linux/fs.h>
+#include <linux/security.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/acpi.h>
+#include <linux/tpm_eventlog.h>
+
+#include "tpm.h"
+
+struct acpi_tcpa {
+       struct acpi_table_header hdr;
+       u16 platform_class;
+       union {
+               struct client_hdr {
+                       u32 log_max_len __packed;
+                       u64 log_start_addr __packed;
+               } client;
+               struct server_hdr {
+                       u16 reserved;
+                       u64 log_max_len __packed;
+                       u64 log_start_addr __packed;
+               } server;
+       };
+};
+
+/* read binary bios log */
+int tpm_read_log_acpi(struct tpm_chip *chip)
+{
+       struct acpi_tcpa *buff;
+       acpi_status status;
+       void __iomem *virt;
+       u64 len, start;
+       struct tpm_bios_log *log;
+
+       if (chip->flags & TPM_CHIP_FLAG_TPM2)
+               return -ENODEV;
+
+       log = &chip->log;
+
+       /* Unfortuntely ACPI does not associate the event log with a specific
+        * TPM, like PPI. Thus all ACPI TPMs will read the same log.
+        */
+       if (!chip->acpi_dev_handle)
+               return -ENODEV;
+
+       /* Find TCPA entry in RSDT (ACPI_LOGICAL_ADDRESSING) */
+       status = acpi_get_table(ACPI_SIG_TCPA, 1,
+                               (struct acpi_table_header **)&buff);
+
+       if (ACPI_FAILURE(status))
+               return -ENODEV;
+
+       switch(buff->platform_class) {
+       case BIOS_SERVER:
+               len = buff->server.log_max_len;
+               start = buff->server.log_start_addr;
+               break;
+       case BIOS_CLIENT:
+       default:
+               len = buff->client.log_max_len;
+               start = buff->client.log_start_addr;
+               break;
+       }
+       if (!len) {
+               dev_warn(&chip->dev, "%s: TCPA log area empty\n", __func__);
+               return -EIO;
+       }
+
+       /* malloc EventLog space */
+       log->bios_event_log = kmalloc(len, GFP_KERNEL);
+       if (!log->bios_event_log)
+               return -ENOMEM;
+
+       log->bios_event_log_end = log->bios_event_log + len;
+
+       virt = acpi_os_map_iomem(start, len);
+       if (!virt)
+               goto err;
+
+       memcpy_fromio(log->bios_event_log, virt, len);
+
+       acpi_os_unmap_iomem(virt, len);
+       return 0;
+
+err:
+       kfree(log->bios_event_log);
+       log->bios_event_log = NULL;
+       return -EIO;
+
+}
diff --git a/drivers/char/tpm/tpm_eventlog_of.c b/drivers/char/tpm/tpm_eventlog_of.c
new file mode 100644 (file)
index 0000000..4a2f8c7
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2012 IBM Corporation
+ *
+ * Author: Ashley Lai <ashleydlai@gmail.com>
+ *         Nayna Jain <nayna@linux.vnet.ibm.com>
+ *
+ * Maintained by: <tpmdd-devel@lists.sourceforge.net>
+ *
+ * Read the event log created by the firmware on PPC64
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ */
+
+#include <linux/slab.h>
+#include <linux/of.h>
+#include <linux/tpm_eventlog.h>
+
+#include "tpm.h"
+
+int tpm_read_log_of(struct tpm_chip *chip)
+{
+       struct device_node *np;
+       const u32 *sizep;
+       const u64 *basep;
+       struct tpm_bios_log *log;
+       u32 size;
+       u64 base;
+
+       log = &chip->log;
+       if (chip->dev.parent && chip->dev.parent->of_node)
+               np = chip->dev.parent->of_node;
+       else
+               return -ENODEV;
+
+       if (of_property_read_bool(np, "powered-while-suspended"))
+               chip->flags |= TPM_CHIP_FLAG_ALWAYS_POWERED;
+
+       sizep = of_get_property(np, "linux,sml-size", NULL);
+       basep = of_get_property(np, "linux,sml-base", NULL);
+       if (sizep == NULL && basep == NULL)
+               return -ENODEV;
+       if (sizep == NULL || basep == NULL)
+               return -EIO;
+
+       /*
+        * For both vtpm/tpm, firmware has log addr and log size in big
+        * endian format. But in case of vtpm, there is a method called
+        * sml-handover which is run during kernel init even before
+        * device tree is setup. This sml-handover function takes care
+        * of endianness and writes to sml-base and sml-size in little
+        * endian format. For this reason, vtpm doesn't need conversion
+        * but physical tpm needs the conversion.
+        */
+       if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) {
+               size = be32_to_cpup(sizep);
+               base = be64_to_cpup(basep);
+       } else {
+               size = *sizep;
+               base = *basep;
+       }
+
+       if (size == 0) {
+               dev_warn(&chip->dev, "%s: Event log area empty\n", __func__);
+               return -EIO;
+       }
+
+       log->bios_event_log = kmalloc(size, GFP_KERNEL);
+       if (!log->bios_event_log)
+               return -ENOMEM;
+
+       log->bios_event_log_end = log->bios_event_log + size;
+
+       memcpy(log->bios_event_log, __va(base), size);
+
+       return 0;
+}
diff --git a/drivers/char/tpm/tpm_of.c b/drivers/char/tpm/tpm_of.c
deleted file mode 100644 (file)
index 4a2f8c7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2012 IBM Corporation
- *
- * Author: Ashley Lai <ashleydlai@gmail.com>
- *         Nayna Jain <nayna@linux.vnet.ibm.com>
- *
- * Maintained by: <tpmdd-devel@lists.sourceforge.net>
- *
- * Read the event log created by the firmware on PPC64
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- */
-
-#include <linux/slab.h>
-#include <linux/of.h>
-#include <linux/tpm_eventlog.h>
-
-#include "tpm.h"
-
-int tpm_read_log_of(struct tpm_chip *chip)
-{
-       struct device_node *np;
-       const u32 *sizep;
-       const u64 *basep;
-       struct tpm_bios_log *log;
-       u32 size;
-       u64 base;
-
-       log = &chip->log;
-       if (chip->dev.parent && chip->dev.parent->of_node)
-               np = chip->dev.parent->of_node;
-       else
-               return -ENODEV;
-
-       if (of_property_read_bool(np, "powered-while-suspended"))
-               chip->flags |= TPM_CHIP_FLAG_ALWAYS_POWERED;
-
-       sizep = of_get_property(np, "linux,sml-size", NULL);
-       basep = of_get_property(np, "linux,sml-base", NULL);
-       if (sizep == NULL && basep == NULL)
-               return -ENODEV;
-       if (sizep == NULL || basep == NULL)
-               return -EIO;
-
-       /*
-        * For both vtpm/tpm, firmware has log addr and log size in big
-        * endian format. But in case of vtpm, there is a method called
-        * sml-handover which is run during kernel init even before
-        * device tree is setup. This sml-handover function takes care
-        * of endianness and writes to sml-base and sml-size in little
-        * endian format. For this reason, vtpm doesn't need conversion
-        * but physical tpm needs the conversion.
-        */
-       if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) {
-               size = be32_to_cpup(sizep);
-               base = be64_to_cpup(basep);
-       } else {
-               size = *sizep;
-               base = *basep;
-       }
-
-       if (size == 0) {
-               dev_warn(&chip->dev, "%s: Event log area empty\n", __func__);
-               return -EIO;
-       }
-
-       log->bios_event_log = kmalloc(size, GFP_KERNEL);
-       if (!log->bios_event_log)
-               return -ENOMEM;
-
-       log->bios_event_log_end = log->bios_event_log + size;
-
-       memcpy(log->bios_event_log, __va(base), size);
-
-       return 0;
-}