Hi Eddie, On Mon, 7 Aug 2023 at 09:17, Eddie James <eaja...@linux.ibm.com> wrote: > > Add TPM2 functions to support boot measurement. This includes > starting up the TPM, initializing/appending the event log, and > measuring the U-Boot version. Much of the code was used in the > EFI subsystem, so remove it there and use the common functions. > > Signed-off-by: Eddie James <eaja...@linux.ibm.com> > --- > Changes since v8: > - Fix log parsing again - any data corruption seen while replaying the > event log was failing the entire measurement. > - Added an option to ignore the existing log. This should only be used > for systems that know that U-Boot is the first stage bootloader. This > is necessary because the reserved memory region may persist through > resets and so U-Boot attempts to append to the previous boot's log. > > Changes since v7: > - Change name of tcg2_init_log and add more documentation > - Add a check, when parsing the event log header, to ensure that the > previous stage bootloader used all the active PCRs. > - Change name of tcg2_log_find_end > - Fix the greater than or equal to check to exit the log parsing > - Make sure log_position is 0 if there is any error discovering the log > - Return errors parsing the log if the data is corrupt so that we don't > end up with half a log > > Changes since v6: > - Added Linaro copyright for all the EFI moved code > - Changed tcg2_init_log (and by extension, tcg2_measurement_init) to > copy any discovered event log to the user's log if passed in. > > Changes since v5: > - Remove unused platform_get_eventlog in efi_tcg2.c > - First look for tpm_event_log_* properties instead of linux,sml-* > - Fix efi_tcg2.c compilation > - Select SHA* configs > > Changes since v4: > - Remove tcg2_measure_event function and check for NULL data in > tcg2_measure_data > - Use tpm_auto_startup > - Fix efi_tcg2.c compilation for removing tcg2_pcr_read function > > Changes since v3: > - Reordered headers > - Refactored more of EFI code into common code > Removed digest_info structure and instead used the common alg_to_mask > and alg_to_len > Improved event log parsing in common code to get it equivalent to EFI > Common code now extends PCR if previous bootloader stage couldn't > No need to allocate memory in the common code, so EFI copies the > discovered buffer like it did before > Rename efi measure_event function > > Changes since v1: > - Refactor TPM layer functions to allow EFI system to use them, and > remove duplicate EFI functions > > include/efi_tcg2.h | 44 -- > include/tpm-v2.h | 259 +++++++++ > lib/Kconfig | 4 + > lib/efi_loader/efi_tcg2.c | 1054 +++---------------------------------- > lib/tpm-v2.c | 814 ++++++++++++++++++++++++++++ > 5 files changed, 1154 insertions(+), 1021 deletions(-)
This is adding a lot more code to the TPM implementation and I see you have added more tests. But do we have enough unit testing in test/dm/tpm.c for these new functions? Regards, Simon