blob: 2bb66548f598902758724cb78cd82e0919aa7066 [file] [log] [blame]
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +01001#
Slava Andrianov192ee172025-06-11 15:40:43 -05002# Copyright (c) 2020-2025, Arm Limited. All rights reserved.
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +01003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6# Expect script for Linux/Buildroot using Measured Boot & fTPM
7#
8
9source [file join [file dirname [info script]] utils.inc]
10source [file join [file dirname [info script]] handle-arguments.inc]
11
Slava Andrianov192ee172025-06-11 15:40:43 -050012set TFA_EVENT_LOG [get_param tfa_log "tfa_event_log"]
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010013
14# regexp for non-zero PCR0
15set non_zero_pcr "(?!(\\s00){16})((\\s(\[0-9a-f\]){2}){16}\\s)"
Manish V Badarkhefc146c42021-11-24 15:34:00 +000016set zero_pcr "(\\s00){16}\\s+(00\\s){16}"
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010017
Slava Andrianov192ee172025-06-11 15:40:43 -050018capture_log $TFA_EVENT_LOG "Booting BL31|Finished using crypto library"
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010019
20expect {
21 "login" {
22 send "root\n"
23 }
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010024}
25
26expect {
27 "#" {
28 # Load the fTPM driver and retrieves PCR0
29 send "ftpm\n"
30 }
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010031}
32
33expect {
34 # Pass condition: PCR0 must not be all zeros.
35
36 -re $non_zero_pcr {
37 exp_continue
38 }
39
Manish V Badarkhefc146c42021-11-24 15:34:00 +000040 "#" {
41 # get PCR1 value
42 send "pcrread -ha 1\n"
43 }
Manish V Badarkhefc146c42021-11-24 15:34:00 +000044}
45
46expect {
47 # Pass condition: PCR1 must not be all zeros.
48
49 -re $non_zero_pcr {
50 exp_continue
51 }
52
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010053 "#" { }
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010054}
55
56# Iterate over the rest of PCRs and check that they all are zeros.
Manish V Badarkhefc146c42021-11-24 15:34:00 +000057for {set i 2} {$i < 11} {incr i} {
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010058 send "pcrread -ha $i\n"
59
60 expect {
Manish V Badarkhefc146c42021-11-24 15:34:00 +000061 -re $zero_pcr { }
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010062
63 -re $non_zero_pcr {
64 exit_uart -1
65 }
Javier Almansa Sobrino98de5032020-09-17 12:47:05 +010066 }
67}
68
Chris Kay07756bc2022-11-24 17:21:48 +000069expect_string "#" "finished reading PCRs"
70
Slava Andrianov192ee172025-06-11 15:40:43 -050071if {[info exists ::env(verify_hashes)]} {
72 source [file join [file dirname [info script]] compare_hashes.inc]
73}