diff mbox

[U-Boot,v3,3/4] dm: tpm: Remove every compilation switch for TPM driver model

Message ID 1442779236-28341-4-git-send-email-christophe-h.ricard@st.com
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Christophe Ricard Sept. 20, 2015, 8 p.m. UTC
As every TPM drivers support UCLASS_TPM, we can only rely on DM_TPM
functions.

This simplify a bit the code.

Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---

Changes in v3: None

 common/cmd_tpm.c               | 13 +--------
 drivers/tpm/tpm_tis_infineon.c |  1 -
 include/tis.h                  | 60 ------------------------------------------
 include/tpm.h                  |  6 -----
 lib/tpm.c                      | 20 +++-----------
 5 files changed, 4 insertions(+), 96 deletions(-)
 delete mode 100644 include/tis.h

Comments

Simon Glass Oct. 3, 2015, 2:27 p.m. UTC | #1
On 20 September 2015 at 21:00, Christophe Ricard
<christophe.ricard@gmail.com> wrote:
> As every TPM drivers support UCLASS_TPM, we can only rely on DM_TPM
> functions.
>
> This simplify a bit the code.
>
> Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> ---
>
> Changes in v3: None
>
>  common/cmd_tpm.c               | 13 +--------
>  drivers/tpm/tpm_tis_infineon.c |  1 -
>  include/tis.h                  | 60 ------------------------------------------
>  include/tpm.h                  |  6 -----
>  lib/tpm.c                      | 20 +++-----------
>  5 files changed, 4 insertions(+), 96 deletions(-)
>  delete mode 100644 include/tis.h

Acked-by: Simon Glass <sjg@chromium.org>
Simon Glass Oct. 4, 2015, 4:25 p.m. UTC | #2
Hi Christophe,

On 3 October 2015 at 15:27, Simon Glass <sjg@chromium.org> wrote:
> On 20 September 2015 at 21:00, Christophe Ricard
> <christophe.ricard@gmail.com> wrote:
>> As every TPM drivers support UCLASS_TPM, we can only rely on DM_TPM
>> functions.
>>
>> This simplify a bit the code.
>>
>> Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
>> Reviewed-by: Tom Rini <trini@konsulko.com>
>> ---
>>
>> Changes in v3: None
>>
>>  common/cmd_tpm.c               | 13 +--------
>>  drivers/tpm/tpm_tis_infineon.c |  1 -
>>  include/tis.h                  | 60 ------------------------------------------
>>  include/tpm.h                  |  6 -----
>>  lib/tpm.c                      | 20 +++-----------
>>  5 files changed, 4 insertions(+), 96 deletions(-)
>>  delete mode 100644 include/tis.h
>
> Acked-by: Simon Glass <sjg@chromium.org>

I get errors with this patch:

04: dm: tpm: Remove every compilation switch for TPM driver model
       x86:  +   coreboot-x86 chromebook_link chromebox_panther
-build/../common/cmd_tpm.c:504: undefined reference to `tis_sendrecv'
-build/../lib/tpm.c:253: undefined reference to `tis_sendrecv'
-build/../lib/tpm.c:276: undefined reference to `tis_init'
-build/../lib/tpm.c:280: undefined reference to `tis_open'
+common/built-in.o: In function `get_tpm':
+build/../common/cmd_tpm.c:450: undefined reference to `uclass_first_device'
+common/built-in.o: In function `do_tpm_info':
+build/../common/cmd_tpm.c:469: undefined reference to `tpm_get_desc'
+build/../common/cmd_tpm.c:498: undefined reference to `tpm_xfer'
+build/../lib/tpm.c:245: undefined reference to `uclass_first_device'
+build/../lib/tpm.c:248: undefined reference to `tpm_xfer'
+build/../lib/tpm.c:264: undefined reference to `uclass_first_device'
+build/../lib/tpm.c:267: undefined reference to `tpm_open'
+../drivers/tpm/tpm_tis_lpc.c:19:17: fatal error: tis.h: No such file
or directory
+ #include <tis.h>
+compilation terminated.
+make[3]: *** [drivers/tpm/tpm_tis_lpc.o] Error 1
+make[2]: *** [drivers/tpm] Error 2
+make[1]: *** [drivers] Error 2

Regards,
Simon
diff mbox

Patch

diff --git a/common/cmd_tpm.c b/common/cmd_tpm.c
index 97501cc..add6bfb 100644
--- a/common/cmd_tpm.c
+++ b/common/cmd_tpm.c
@@ -443,7 +443,6 @@  TPM_COMMAND_NO_ARG(tpm_force_clear)
 TPM_COMMAND_NO_ARG(tpm_physical_enable)
 TPM_COMMAND_NO_ARG(tpm_physical_disable)
 
-#ifdef CONFIG_DM_TPM
 static int get_tpm(struct udevice **devp)
 {
 	int rc;
@@ -476,11 +475,11 @@  static int do_tpm_info(cmd_tbl_t *cmdtp, int flag, int argc,
 
 	return 0;
 }
-#endif
 
 static int do_tpm_raw_transfer(cmd_tbl_t *cmdtp, int flag,
 		int argc, char * const argv[])
 {
+	struct udevice *dev;
 	void *command;
 	uint8_t response[1024];
 	size_t count, response_length = sizeof(response);
@@ -492,17 +491,11 @@  static int do_tpm_raw_transfer(cmd_tbl_t *cmdtp, int flag,
 		return CMD_RET_FAILURE;
 	}
 
-#ifdef CONFIG_DM_TPM
-	struct udevice *dev;
-
 	rc = get_tpm(&dev);
 	if (rc)
 		return rc;
 
 	rc = tpm_xfer(dev, command, count, response, &response_length);
-#else
-	rc = tis_sendrecv(command, count, response, &response_length);
-#endif
 	free(command);
 	if (!rc) {
 		puts("tpm response:\n");
@@ -657,9 +650,7 @@  TPM_COMMAND_NO_ARG(tpm_end_oiap)
 	U_BOOT_CMD_MKENT(cmd, 0, 1, do_tpm_ ## cmd, "", "")
 
 static cmd_tbl_t tpm_commands[] = {
-#ifdef CONFIG_DM_TPM
 	U_BOOT_CMD_MKENT(info, 0, 1, do_tpm_info, "", ""),
-#endif
 	U_BOOT_CMD_MKENT(init, 0, 1,
 			do_tpm_init, "", ""),
 	U_BOOT_CMD_MKENT(startup, 0, 1,
@@ -730,9 +721,7 @@  U_BOOT_CMD(tpm, CONFIG_SYS_MAXARGS, 1, do_tpm,
 "cmd args...\n"
 "    - Issue TPM command <cmd> with arguments <args...>.\n"
 "Admin Startup and State Commands:\n"
-#ifdef CONFIG_DM_TPM
 "  info - Show information about the TPM\n"
-#endif
 "  init\n"
 "    - Put TPM into a state where it waits for 'startup' command.\n"
 "  startup mode\n"
diff --git a/drivers/tpm/tpm_tis_infineon.c b/drivers/tpm/tpm_tis_infineon.c
index 88eb786..f57c328 100644
--- a/drivers/tpm/tpm_tis_infineon.c
+++ b/drivers/tpm/tpm_tis_infineon.c
@@ -24,7 +24,6 @@ 
 #include <dm.h>
 #include <fdtdec.h>
 #include <i2c.h>
-#include <tis.h>
 #include <tpm.h>
 #include <asm-generic/errno.h>
 #include <linux/compiler.h>
diff --git a/include/tis.h b/include/tis.h
deleted file mode 100644
index 1985d9e..0000000
--- a/include/tis.h
+++ /dev/null
@@ -1,60 +0,0 @@ 
-/*
- * Copyright (c) 2011 The Chromium OS Authors.
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#ifndef __TIS_H
-#define __TIS_H
-
-#ifndef CONFIG_DM_TPM
-
-#include <common.h>
-
-/* Low-level interface to access TPM */
-
-/*
- * tis_init()
- *
- * Initialize the TPM device. Returns 0 on success or -1 on
- * failure (in case device probing did not succeed).
- */
-int tis_init(void);
-
-/*
- * tis_open()
- *
- * Requests access to locality 0 for the caller. After all commands have been
- * completed the caller is supposed to call tis_close().
- *
- * Returns 0 on success, -1 on failure.
- */
-int tis_open(void);
-
-/*
- * tis_close()
- *
- * terminate the currect session with the TPM by releasing the locked
- * locality. Returns 0 on success of -1 on failure (in case lock
- * removal did not succeed).
- */
-int tis_close(void);
-
-/*
- * tis_sendrecv()
- *
- * Send the requested data to the TPM and then try to get its response
- *
- * @sendbuf - buffer of the data to send
- * @send_size size of the data to send
- * @recvbuf - memory to save the response to
- * @recv_len - pointer to the size of the response buffer
- *
- * Returns 0 on success (and places the number of response bytes at recv_len)
- * or -1 on failure.
- */
-int tis_sendrecv(const uint8_t *sendbuf, size_t send_size, uint8_t *recvbuf,
-			size_t *recv_len);
-#endif
-
-#endif /* __TIS_H */
diff --git a/include/tpm.h b/include/tpm.h
index 086b672..9a6585d 100644
--- a/include/tpm.h
+++ b/include/tpm.h
@@ -8,8 +8,6 @@ 
 #ifndef __TPM_H
 #define __TPM_H
 
-#include <tis.h>
-
 /*
  * Here is a partial implementation of TPM commands.  Please consult TCG Main
  * Specification for definitions of TPM commands.
@@ -196,8 +194,6 @@  struct tpm_permanent_flags {
 	u8	disable_full_da_logic_info;
 } __packed;
 
-#ifdef CONFIG_DM_TPM
-
 /* Max buffer size supported by our tpm */
 #define TPM_DEV_BUFSIZE		1260
 
@@ -375,8 +371,6 @@  int tpm_get_desc(struct udevice *dev, char *buf, int size);
 int tpm_xfer(struct udevice *dev, const uint8_t *sendbuf, size_t send_size,
 	     uint8_t *recvbuf, size_t *recv_size);
 
-#endif /* CONFIG_DM_TPM */
-
 /**
  * Initialize TPM device.  It must be called before any TPM commands.
  *
diff --git a/lib/tpm.c b/lib/tpm.c
index 5d5f707..8a62216 100644
--- a/lib/tpm.c
+++ b/lib/tpm.c
@@ -7,7 +7,6 @@ 
 
 #include <common.h>
 #include <dm.h>
-#include <tis.h>
 #include <tpm.h>
 #include <asm/unaligned.h>
 #include <u-boot/sha1.h>
@@ -230,6 +229,8 @@  static uint32_t tpm_return_code(const void *response)
 static uint32_t tpm_sendrecv_command(const void *command,
 		void *response, size_t *size_ptr)
 {
+	struct udevice *dev;
+	int ret;
 	uint8_t response_buffer[COMMAND_BUFFER_SIZE];
 	size_t response_length;
 	uint32_t err;
@@ -240,19 +241,13 @@  static uint32_t tpm_sendrecv_command(const void *command,
 		response = response_buffer;
 		response_length = sizeof(response_buffer);
 	}
-#ifdef CONFIG_DM_TPM
-	struct udevice *dev;
-	int ret;
 
 	ret = uclass_first_device(UCLASS_TPM, &dev);
 	if (ret)
 		return ret;
 	err = tpm_xfer(dev, command, tpm_command_size(command),
 		       response, &response_length);
-#else
-	err = tis_sendrecv(command, tpm_command_size(command),
-			response, &response_length);
-#endif
+
 	if (err < 0)
 		return TPM_LIB_ERROR;
 	if (size_ptr)
@@ -264,21 +259,12 @@  static uint32_t tpm_sendrecv_command(const void *command,
 int tpm_init(void)
 {
 	int err;
-
-#ifdef CONFIG_DM_TPM
 	struct udevice *dev;
 
 	err = uclass_first_device(UCLASS_TPM, &dev);
 	if (err)
 		return err;
 	return tpm_open(dev);
-#else
-	err = tis_init();
-	if (err)
-		return err;
-
-	return tis_open();
-#endif
 }
 
 uint32_t tpm_startup(enum tpm_startup_type mode)