svn commit: r346261 - head/sys/dev/tpm
Marcin Wojtas
mw at FreeBSD.org
Tue Apr 16 02:46:23 UTC 2019
Author: mw
Date: Tue Apr 16 02:46:21 2019
New Revision: 346261
URL: https://svnweb.freebsd.org/changeset/base/346261
Log:
Improve tpm20 style
No functional changes to the code are applied.
Submitted by: Kornel Duleba <mindal at semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Modified:
head/sys/dev/tpm/tpm20.c
head/sys/dev/tpm/tpm20.h
head/sys/dev/tpm/tpm_crb.c
head/sys/dev/tpm/tpm_tis.c
Modified: head/sys/dev/tpm/tpm20.c
==============================================================================
--- head/sys/dev/tpm/tpm20.c Tue Apr 16 02:38:39 2019 (r346260)
+++ head/sys/dev/tpm/tpm20.c Tue Apr 16 02:46:21 2019 (r346261)
@@ -142,7 +142,8 @@ tpm20_write(struct cdev *dev, struct uio *uio, int fla
return (result);
}
-static void tpm20_discard_buffer(void *arg)
+static void
+tpm20_discard_buffer(void *arg)
{
struct tpm_sc *sc;
@@ -304,9 +305,10 @@ tpm20_save_state(device_t dev, bool suspend)
{
struct tpm_sc *sc;
uint8_t save_cmd[] = {
- 0x80, 0x01, /* TPM_ST_NO_SESSIONS tag*/
+ 0x80, 0x01, /* TPM_ST_NO_SESSIONS tag*/
0x00, 0x00, 0x00, 0x0C, /* cmd length */
- 0x00, 0x00, 0x01, 0x45, 0x00, 0x00 /* cmd TPM_CC_Shutdown */
+ 0x00, 0x00, 0x01, 0x45, /* cmd TPM_CC_Shutdown */
+ 0x00, 0x00 /* TPM_SU_STATE */
};
sc = device_get_softc(dev);
@@ -315,7 +317,7 @@ tpm20_save_state(device_t dev, bool suspend)
* Inform the TPM whether we are going to suspend or reboot/shutdown.
*/
if (suspend)
- save_cmd[11] = 1; /* TPM_SU_STATE */
+ save_cmd[11] = 1; /* TPM_SU_STATE */
if (sc == NULL || sc->buf == NULL)
return (0);
Modified: head/sys/dev/tpm/tpm20.h
==============================================================================
--- head/sys/dev/tpm/tpm20.h Tue Apr 16 02:38:39 2019 (r346260)
+++ head/sys/dev/tpm/tpm20.h Tue Apr 16 02:46:21 2019 (r346261)
@@ -26,7 +26,7 @@
*/
#ifndef _TPM20_H_
-#define _TPM20_H_
+#define _TPM20_H_
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -60,46 +60,46 @@ __FBSDID("$FreeBSD$");
#define BIT(x) (1 << (x))
/* Timeouts in us */
-#define TPM_TIMEOUT_A 750000
-#define TPM_TIMEOUT_B 2000000
-#define TPM_TIMEOUT_C 200000
-#define TPM_TIMEOUT_D 30000
+#define TPM_TIMEOUT_A 750000
+#define TPM_TIMEOUT_B 2000000
+#define TPM_TIMEOUT_C 200000
+#define TPM_TIMEOUT_D 30000
/*
* Generating RSA key pair takes ~(10-20s), which is significantly longer than
* any timeout defined in spec. Because of that we need a new one.
*/
-#define TPM_TIMEOUT_LONG 40000000
+#define TPM_TIMEOUT_LONG 40000000
/* List of commands that require TPM_TIMEOUT_LONG time to complete */
-#define TPM_CC_CreatePrimary 0x00000131
+#define TPM_CC_CreatePrimary 0x00000131
#define TPM_CC_Create 0x00000153
#define TPM_CC_CreateLoaded 0x00000191
/* List of commands that require only TPM_TIMEOUT_C time to complete */
-#define TPM_CC_SequenceComplete 0x0000013e
-#define TPM_CC_Startup 0x00000144
-#define TPM_CC_SequenceUpdate 0x0000015c
-#define TPM_CC_GetCapability 0x0000017a
-#define TPM_CC_PCR_Extend 0x00000182
-#define TPM_CC_EventSequenceComplete 0x00000185
-#define TPM_CC_HashSequenceStart 0x00000186
+#define TPM_CC_SequenceComplete 0x0000013e
+#define TPM_CC_Startup 0x00000144
+#define TPM_CC_SequenceUpdate 0x0000015c
+#define TPM_CC_GetCapability 0x0000017a
+#define TPM_CC_PCR_Extend 0x00000182
+#define TPM_CC_EventSequenceComplete 0x00000185
+#define TPM_CC_HashSequenceStart 0x00000186
/* Timeout before data in read buffer is discarded */
-#define TPM_READ_TIMEOUT 500000
+#define TPM_READ_TIMEOUT 500000
-#define TPM_BUFSIZE 0x1000
+#define TPM_BUFSIZE 0x1000
-#define TPM_HEADER_SIZE 10
+#define TPM_HEADER_SIZE 10
-#define TPM_CDEV_NAME "tpm0"
-#define TPM_CDEV_PERM_FLAG 0600
+#define TPM_CDEV_NAME "tpm0"
+#define TPM_CDEV_PERM_FLAG 0600
-#define TPM2_START_METHOD_ACPI 2
-#define TPM2_START_METHOD_TIS 6
-#define TPM2_START_METHOD_CRB 7
-#define TPM2_START_METHOD_CRB_ACPI 8
+#define TPM2_START_METHOD_ACPI 2
+#define TPM2_START_METHOD_TIS 6
+#define TPM2_START_METHOD_CRB 7
+#define TPM2_START_METHOD_CRB_ACPI 8
struct tpm_sc {
device_t dev;
Modified: head/sys/dev/tpm/tpm_crb.c
==============================================================================
--- head/sys/dev/tpm/tpm_crb.c Tue Apr 16 02:38:39 2019 (r346260)
+++ head/sys/dev/tpm/tpm_crb.c Tue Apr 16 02:46:21 2019 (r346261)
@@ -34,47 +34,47 @@ __FBSDID("$FreeBSD$");
* CRB register space as defined in
* TCG_PC_Client_Platform_TPM_Profile_PTP_2.0_r1.03_v22
*/
-#define TPM_LOC_STATE 0x0
-#define TPM_LOC_CTRL 0x8
-#define TPM_LOC_STS 0xC
-#define TPM_CRB_INTF_ID 0x30
-#define TPM_CRB_CTRL_EXT 0x38
-#define TPM_CRB_CTRL_REQ 0x40
-#define TPM_CRB_CTRL_STS 0x44
-#define TPM_CRB_CTRL_CANCEL 0x48
-#define TPM_CRB_CTRL_START 0x4C
-#define TPM_CRB_INT_ENABLE 0x50
-#define TPM_CRB_INT_STS 0x54
-#define TPM_CRB_CTRL_CMD_SIZE 0x58
-#define TPM_CRB_CTRL_CMD_LADDR 0x5C
-#define TPM_CRB_CTRL_CMD_HADDR 0x60
-#define TPM_CRB_CTRL_RSP_SIZE 0x64
-#define TPM_CRB_CTRL_RSP_ADDR 0x68
-#define TPM_CRB_CTRL_RSP_HADDR 0x6c
-#define TPM_CRB_DATA_BUFFER 0x80
+#define TPM_LOC_STATE 0x0
+#define TPM_LOC_CTRL 0x8
+#define TPM_LOC_STS 0xC
+#define TPM_CRB_INTF_ID 0x30
+#define TPM_CRB_CTRL_EXT 0x38
+#define TPM_CRB_CTRL_REQ 0x40
+#define TPM_CRB_CTRL_STS 0x44
+#define TPM_CRB_CTRL_CANCEL 0x48
+#define TPM_CRB_CTRL_START 0x4C
+#define TPM_CRB_INT_ENABLE 0x50
+#define TPM_CRB_INT_STS 0x54
+#define TPM_CRB_CTRL_CMD_SIZE 0x58
+#define TPM_CRB_CTRL_CMD_LADDR 0x5C
+#define TPM_CRB_CTRL_CMD_HADDR 0x60
+#define TPM_CRB_CTRL_RSP_SIZE 0x64
+#define TPM_CRB_CTRL_RSP_ADDR 0x68
+#define TPM_CRB_CTRL_RSP_HADDR 0x6c
+#define TPM_CRB_DATA_BUFFER 0x80
-#define TPM_LOC_STATE_ESTB BIT(0)
-#define TPM_LOC_STATE_ASSIGNED BIT(1)
-#define TPM_LOC_STATE_ACTIVE_MASK 0x9C
-#define TPM_LOC_STATE_VALID BIT(7)
+#define TPM_LOC_STATE_ESTB BIT(0)
+#define TPM_LOC_STATE_ASSIGNED BIT(1)
+#define TPM_LOC_STATE_ACTIVE_MASK 0x9C
+#define TPM_LOC_STATE_VALID BIT(7)
-#define TPM_CRB_INTF_ID_TYPE_CRB 0x1
-#define TPM_CRB_INTF_ID_TYPE 0x7
+#define TPM_CRB_INTF_ID_TYPE_CRB 0x1
+#define TPM_CRB_INTF_ID_TYPE 0x7
-#define TPM_LOC_CTRL_REQUEST BIT(0)
-#define TPM_LOC_CTRL_RELINQUISH BIT(1)
+#define TPM_LOC_CTRL_REQUEST BIT(0)
+#define TPM_LOC_CTRL_RELINQUISH BIT(1)
-#define TPM_CRB_CTRL_REQ_GO_READY BIT(0)
-#define TPM_CRB_CTRL_REQ_GO_IDLE BIT(1)
+#define TPM_CRB_CTRL_REQ_GO_READY BIT(0)
+#define TPM_CRB_CTRL_REQ_GO_IDLE BIT(1)
-#define TPM_CRB_CTRL_STS_ERR_BIT BIT(0)
-#define TPM_CRB_CTRL_STS_IDLE_BIT BIT(1)
+#define TPM_CRB_CTRL_STS_ERR_BIT BIT(0)
+#define TPM_CRB_CTRL_STS_IDLE_BIT BIT(1)
-#define TPM_CRB_CTRL_CANCEL_CMD BIT(0)
+#define TPM_CRB_CTRL_CANCEL_CMD BIT(0)
-#define TPM_CRB_CTRL_START_CMD BIT(0)
+#define TPM_CRB_CTRL_START_CMD BIT(0)
-#define TPM_CRB_INT_ENABLE_BIT BIT(31)
+#define TPM_CRB_INT_ENABLE_BIT BIT(31)
struct tpmcrb_sc {
struct tpm_sc base;
Modified: head/sys/dev/tpm/tpm_tis.c
==============================================================================
--- head/sys/dev/tpm/tpm_tis.c Tue Apr 16 02:38:39 2019 (r346260)
+++ head/sys/dev/tpm/tpm_tis.c Tue Apr 16 02:46:21 2019 (r346261)
@@ -34,45 +34,45 @@ __FBSDID("$FreeBSD$");
* TIS register space as defined in
* TCG_PC_Client_Platform_TPM_Profile_PTP_2.0_r1.03_v22
*/
-#define TPM_ACCESS 0x0
-#define TPM_INT_ENABLE 0x8
-#define TPM_INT_VECTOR 0xc
-#define TPM_INT_STS 0x10
-#define TPM_INTF_CAPS 0x14
-#define TPM_STS 0x18
-#define TPM_DATA_FIFO 0x24
-#define TPM_INTF_ID 0x30
-#define TPM_XDATA_FIFO 0x80
-#define TPM_DID_VID 0xF00
-#define TPM_RID 0xF04
+#define TPM_ACCESS 0x0
+#define TPM_INT_ENABLE 0x8
+#define TPM_INT_VECTOR 0xc
+#define TPM_INT_STS 0x10
+#define TPM_INTF_CAPS 0x14
+#define TPM_STS 0x18
+#define TPM_DATA_FIFO 0x24
+#define TPM_INTF_ID 0x30
+#define TPM_XDATA_FIFO 0x80
+#define TPM_DID_VID 0xF00
+#define TPM_RID 0xF04
-#define TPM_ACCESS_LOC_REQ BIT(1)
-#define TPM_ACCESS_LOC_Seize BIT(3)
-#define TPM_ACCESS_LOC_ACTIVE BIT(5)
-#define TPM_ACCESS_LOC_RELINQUISH BIT(5)
-#define TPM_ACCESS_VALID BIT(7)
+#define TPM_ACCESS_LOC_REQ BIT(1)
+#define TPM_ACCESS_LOC_Seize BIT(3)
+#define TPM_ACCESS_LOC_ACTIVE BIT(5)
+#define TPM_ACCESS_LOC_RELINQUISH BIT(5)
+#define TPM_ACCESS_VALID BIT(7)
-#define TPM_INT_ENABLE_GLOBAL_ENABLE BIT(31)
-#define TPM_INT_ENABLE_CMD_RDY BIT(7)
-#define TPM_INT_ENABLE_LOC_CHANGE BIT(2)
-#define TPM_INT_ENABLE_STS_VALID BIT(1)
-#define TPM_INT_ENABLE_DATA_AVAIL BIT(0)
+#define TPM_INT_ENABLE_GLOBAL_ENABLE BIT(31)
+#define TPM_INT_ENABLE_CMD_RDY BIT(7)
+#define TPM_INT_ENABLE_LOC_CHANGE BIT(2)
+#define TPM_INT_ENABLE_STS_VALID BIT(1)
+#define TPM_INT_ENABLE_DATA_AVAIL BIT(0)
-#define TPM_INT_STS_CMD_RDY BIT(7)
-#define TPM_INT_STS_LOC_CHANGE BIT(2)
-#define TPM_INT_STS_VALID BIT(1)
-#define TPM_INT_STS_DATA_AVAIL BIT(0)
+#define TPM_INT_STS_CMD_RDY BIT(7)
+#define TPM_INT_STS_LOC_CHANGE BIT(2)
+#define TPM_INT_STS_VALID BIT(1)
+#define TPM_INT_STS_DATA_AVAIL BIT(0)
-#define TPM_INTF_CAPS_VERSION 0x70000000
-#define TPM_INTF_CAPS_TPM20 0x30000000
+#define TPM_INTF_CAPS_VERSION 0x70000000
+#define TPM_INTF_CAPS_TPM20 0x30000000
-#define TPM_STS_VALID BIT(7)
-#define TPM_STS_CMD_RDY BIT(6)
-#define TPM_STS_CMD_START BIT(5)
-#define TPM_STS_DATA_AVAIL BIT(4)
-#define TPM_STS_DATA_EXPECTED BIT(3)
-#define TPM_STS_BURST_MASK 0xFFFF00
-#define TPM_STS_BURST_OFFSET 0x8
+#define TPM_STS_VALID BIT(7)
+#define TPM_STS_CMD_RDY BIT(6)
+#define TPM_STS_CMD_START BIT(5)
+#define TPM_STS_DATA_AVAIL BIT(4)
+#define TPM_STS_DATA_EXPECTED BIT(3)
+#define TPM_STS_BURST_MASK 0xFFFF00
+#define TPM_STS_BURST_OFFSET 0x8
static int tpmtis_transmit(struct tpm_sc *sc, size_t length);
@@ -93,6 +93,7 @@ static bool tpmtis_go_ready(struct tpm_sc *sc);
static bool tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off,
uint32_t mask, uint32_t val, int32_t timeout);
+
static uint16_t tpmtis_wait_for_burst(struct tpm_sc *sc);
char *tpmtis_ids[] = {"MSFT0101", NULL};
More information about the svn-src-all
mailing list