trunks: add support for cr50 over SPI

The CR50 board has been assigned a unique vendor ID/device ID
combination, which should be accepted as valid by the trunks FTDI SPI
interface.

The 'establishment' status bit could be either present or not in the
STS register, so the code has been modified to ignore it.

Another tweak is adding a 10 ms delay between SPI transactions to
accommodate the currently slow cr50 SPS TPM driver.

BUG=chrome-os-partner:43025
TEST=with the appropriate cr50 driver modifications trunks recognizes
     cr50 as a valid device and tries to send commands to it.

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