@@ -183,6 +183,38 @@ else()
183183 " ${INTERFACE_OPTS} " )
184184endif ("${WOLFTPM_INTERFACE} " STREQUAL "SWTPM" )
185185
186+ # TPM Module Selection
187+ set (WOLFTPM_MODULE "auto" CACHE STRING
188+ "Select TPM hardware module (default: auto)" )
189+ set_property (CACHE WOLFTPM_MODULE
190+ PROPERTY STRINGS "auto;microchip;attpm20;mchp;st33;nuvoton;npct75x;slb9670;slb9672;slb9673" )
191+
192+ message ("TPM MODULE ${WOLFTPM_MODULE} " )
193+
194+ if ("${WOLFTPM_MODULE} " STREQUAL "auto" )
195+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_AUTODETECT" )
196+ elseif ("${WOLFTPM_MODULE} " STREQUAL "microchip" OR
197+ "${WOLFTPM_MODULE} " STREQUAL "attpm20" OR
198+ "${WOLFTPM_MODULE} " STREQUAL "mchp" )
199+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_MICROCHIP" )
200+ elseif ("${WOLFTPM_MODULE} " STREQUAL "st33" )
201+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_ST33" )
202+ elseif ("${WOLFTPM_MODULE} " STREQUAL "nuvoton" OR
203+ "${WOLFTPM_MODULE} " STREQUAL "npct75x" )
204+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_NUVOTON" )
205+ elseif ("${WOLFTPM_MODULE} " STREQUAL "slb9670" )
206+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_SLB9670" )
207+ elseif ("${WOLFTPM_MODULE} " STREQUAL "slb9672" )
208+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_SLB9672" )
209+ elseif ("${WOLFTPM_MODULE} " STREQUAL "slb9673" )
210+ list (APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_SLB9673" )
211+ else ()
212+ get_property (MODULE_OPTS CACHE WOLFTPM_MODULE
213+ PROPERTY STRINGS )
214+ message (FATAL_ERROR "\" ${WOLFTPM_MODULE} \" is not a known WOLFTPM_MODULE:"
215+ " ${MODULE_OPTS} " )
216+ endif ()
217+
186218# Examples
187219set (WOLFTPM_EXAMPLES "yes" CACHE BOOL
188220 "Build examples" )
0 commit comments