| /* SPDX-License-Identifier: GPL-2.0+ */ | |
| /* | |
| * Copyright (c) 2015 Google, Inc | |
| */ | |
| #ifndef __tpm_internal_h | |
| #define __tpm_internal_h | |
| enum { | |
| TPM_MAX_ORDINAL = 243, | |
| TPM_MAX_PROTECTED_ORDINAL = 12, | |
| TPM_PROTECTED_ORDINAL_MASK = 0xff, | |
| TPM_CMD_COUNT_BYTE = 2, | |
| TPM_CMD_ORDINAL_BYTE = 6, | |
| }; | |
| /* | |
| * Array with one entry per ordinal defining the maximum amount | |
| * of time the chip could take to return the result. The ordinal | |
| * designation of short, medium or long is defined in a table in | |
| * TCG Specification TPM Main Part 2 TPM Structures Section 17. The | |
| * values of the SHORT, MEDIUM, and LONG durations are retrieved | |
| * from the chip during initialization with a call to tpm_get_timeouts. | |
| */ | |
| static const u8 tpm_protected_ordinal_duration[TPM_MAX_PROTECTED_ORDINAL] = { | |
| TPM_UNDEFINED, /* 0 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 5 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 10 */ | |
| TPM_SHORT, | |
| }; | |
| static const u8 tpm_ordinal_duration[TPM_MAX_ORDINAL] = { | |
| TPM_UNDEFINED, /* 0 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 5 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 10 */ | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_LONG, | |
| TPM_LONG, | |
| TPM_MEDIUM, /* 15 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_LONG, | |
| TPM_SHORT, /* 20 */ | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_SHORT, /* 25 */ | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_MEDIUM, /* 30 */ | |
| TPM_LONG, | |
| TPM_MEDIUM, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 35 */ | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, /* 40 */ | |
| TPM_LONG, | |
| TPM_MEDIUM, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 45 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_LONG, | |
| TPM_MEDIUM, /* 50 */ | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 55 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, /* 60 */ | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_MEDIUM, /* 65 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 70 */ | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 75 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_LONG, /* 80 */ | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, | |
| TPM_LONG, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, /* 85 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 90 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, /* 95 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, /* 100 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 105 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 110 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 115 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_LONG, /* 120 */ | |
| TPM_LONG, | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 125 */ | |
| TPM_SHORT, | |
| TPM_LONG, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 130 */ | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, /* 135 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 140 */ | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 145 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 150 */ | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, /* 155 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 160 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 165 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_LONG, /* 170 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 175 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, /* 180 */ | |
| TPM_SHORT, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, /* 185 */ | |
| TPM_SHORT, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 190 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 195 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 200 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 205 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_MEDIUM, /* 210 */ | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, /* 215 */ | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, | |
| TPM_SHORT, /* 220 */ | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_SHORT, | |
| TPM_UNDEFINED, /* 225 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 230 */ | |
| TPM_LONG, | |
| TPM_MEDIUM, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, /* 235 */ | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_UNDEFINED, | |
| TPM_SHORT, /* 240 */ | |
| TPM_UNDEFINED, | |
| TPM_MEDIUM, | |
| }; | |
| #endif |