diff options
| author | Tom Rini <[email protected]> | 2018-12-05 20:32:25 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2018-12-05 20:32:25 -0500 |
| commit | 2a055ea53260ac8addeeb94eb671172844bc9106 (patch) | |
| tree | 5998b40de7145d98b553d7eb78b7a16be79aac75 /lib | |
| parent | 9450ab2ba8d720bd9f73bccc0af2e2b5a2c2aaf1 (diff) | |
| parent | b288cd9600724ad3a0e55c8786e70741dd13deae (diff) | |
Merge tag 'dm-pull-5dec18' of git://git.denx.de/u-boot-dm
Minor sandbox enhancements / fixes
tpm improvements to clear up v1/v2 support
buildman toolchain fixes
New serial options to set/get config
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/physmem.c | 4 | ||||
| -rw-r--r-- | lib/tpm-common.c | 9 | ||||
| -rw-r--r-- | lib/tpm-v1.c | 22 |
3 files changed, 22 insertions, 13 deletions
diff --git a/lib/physmem.c b/lib/physmem.c index f21ac243edc..84b191dae3e 100644 --- a/lib/physmem.c +++ b/lib/physmem.c @@ -9,14 +9,16 @@ */ #include <common.h> +#include <mapmem.h> #include <physmem.h> #include <linux/compiler.h> phys_addr_t __weak arch_phys_memset(phys_addr_t s, int c, phys_size_t n) { - void *s_ptr = (void *)(uintptr_t)s; + void *s_ptr = map_sysmem(s, n); assert(((phys_addr_t)(uintptr_t)s) == s); assert(((phys_addr_t)(uintptr_t)(s + n)) == s + n); + return (phys_addr_t)(uintptr_t)memset(s_ptr, c, n); } diff --git a/lib/tpm-common.c b/lib/tpm-common.c index 6afe59b1fec..86b4f413c2e 100644 --- a/lib/tpm-common.c +++ b/lib/tpm-common.c @@ -12,6 +12,13 @@ #include <tpm-common.h> #include "tpm-utils.h" +enum tpm_version tpm_get_version(struct udevice *dev) +{ + struct tpm_chip_priv *priv = dev_get_uclass_priv(dev); + + return priv->version; +} + int pack_byte_string(u8 *str, size_t size, const char *format, ...) { va_list args; @@ -112,7 +119,7 @@ int unpack_byte_string(const u8 *str, size_t size, const char *format, ...) if (offset + length > size) { va_end(args); - log_err("Failed to read: size=%d, offset=%x, len=%x\n", + log_err("Failed to read: size=%zd, offset=%zx, len=%zx\n", size, offset, length); return -1; } diff --git a/lib/tpm-v1.c b/lib/tpm-v1.c index f29e62ff7b2..3e89f845441 100644 --- a/lib/tpm-v1.c +++ b/lib/tpm-v1.c @@ -79,19 +79,19 @@ u32 tpm_clear_and_reenable(struct udevice *dev) return ret; } -#if IS_ENABLED(CONFIG_TPM_V1) - ret = tpm_physical_enable(dev); - if (ret != TPM_SUCCESS) { - log_err("TPM: Can't set enabled state\n"); - return ret; - } + if (tpm_get_version(dev) == TPM_V1) { + ret = tpm_physical_enable(dev); + if (ret != TPM_SUCCESS) { + log_err("TPM: Can't set enabled state\n"); + return ret; + } - ret = tpm_physical_set_deactivated(dev, 0); - if (ret != TPM_SUCCESS) { - log_err("TPM: Can't set deactivated state\n"); - return ret; + ret = tpm_physical_set_deactivated(dev, 0); + if (ret != TPM_SUCCESS) { + log_err("TPM: Can't set deactivated state\n"); + return ret; + } } -#endif return TPM_SUCCESS; } |
