trunks: ftdi: add TPM_STS register accessors

TPM_STS_X (where X is the locality) needs to be accessed quite
frequently during TPM operation. This patch adds two accessor
functions to read and write that register.

Some code is also added to read this register at startup to partially
verify its validity (the TPM family field is expected to be set to
binary 01, which indicates that this is a TPM2 device), and save the
max burst field's value for future use.

BUG=chromium:498861
TEST=device initialization still succeeds.

Change-Id: Iff3dad6f434c28f82c584862877ca32fc21dbb80
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/277316
Reviewed-by: Utkarsh Sanghi <usanghi@chromium.org>
2 files changed
tree: 114ef6e669adb99913f14b6492f27dbeed2ae6ed
  1. ftdi/
  2. generator/
  3. authorization_delegate.h
  4. background_command_transceiver.cc
  5. background_command_transceiver.h
  6. background_command_transceiver_test.cc
  7. command_transceiver.h
  8. CPPLINT.cfg
  9. dbus_interface.h
  10. dbus_interface.proto
  11. error_codes.cc
  12. error_codes.h
  13. hmac_authorization_delegate.cc
  14. hmac_authorization_delegate.h
  15. hmac_authorization_delegate_unittest.cc
  16. hmac_session.h
  17. hmac_session_impl.cc
  18. hmac_session_impl.h
  19. hmac_session_test.cc
  20. Makefile
  21. mock_authorization_delegate.cc
  22. mock_authorization_delegate.h
  23. mock_command_transceiver.cc
  24. mock_command_transceiver.h
  25. mock_hmac_session.cc
  26. mock_hmac_session.h
  27. mock_policy_session.cc
  28. mock_policy_session.h
  29. mock_session_manager.cc
  30. mock_session_manager.h
  31. mock_tpm.cc
  32. mock_tpm.h
  33. mock_tpm_state.cc
  34. mock_tpm_state.h
  35. mock_tpm_utility.cc
  36. mock_tpm_utility.h
  37. org.chromium.Trunks.conf
  38. OWNERS
  39. password_authorization_delegate.cc
  40. password_authorization_delegate.h
  41. password_authorization_delegate_unittest.cc
  42. policy_session.h
  43. policy_session_impl.cc
  44. policy_session_impl.h
  45. policy_session_test.cc
  46. README
  47. resource_manager.cc
  48. resource_manager.h
  49. resource_manager_test.cc
  50. scoped_key_handle.cc
  51. scoped_key_handle.h
  52. scoped_key_handle_test.cc
  53. session_manager.h
  54. session_manager_impl.cc
  55. session_manager_impl.h
  56. session_manager_test.cc
  57. tpm_constants.h
  58. tpm_generated.cc
  59. tpm_generated.h
  60. tpm_generated_test.cc
  61. tpm_handle.cc
  62. tpm_handle.h
  63. tpm_state.h
  64. tpm_state_impl.cc
  65. tpm_state_impl.h
  66. tpm_state_test.cc
  67. tpm_utility.h
  68. tpm_utility_impl.cc
  69. tpm_utility_impl.h
  70. tpm_utility_test.cc
  71. trunks.gyp
  72. trunks_client.cc
  73. trunks_client_test.cc
  74. trunks_client_test.h
  75. trunks_export.h
  76. trunks_factory.h
  77. trunks_factory_for_test.cc
  78. trunks_factory_for_test.h
  79. trunks_factory_impl.cc
  80. trunks_factory_impl.h
  81. trunks_ftdi_spi.cc
  82. trunks_ftdi_spi.h
  83. trunks_proxy.cc
  84. trunks_proxy.h
  85. trunks_service.cc
  86. trunks_service.h
  87. trunks_testrunner.cc
  88. trunksd-seccomp-amd64.policy
  89. trunksd-seccomp-arm.policy
  90. trunksd-seccomp-x86.policy
  91. trunksd.cc
  92. trunksd.conf