Re: [RFC PATCH v2 3/3] tpm: of: If available use linux,sml-log to get the log and its size
From: Jarkko Sakkinen
Date: Tue Mar 12 2024 - 11:43:13 EST
On Mon Mar 11, 2024 at 10:33 PM EET, Stefan Berger wrote:
>
>
> On 3/11/24 16:25, Jarkko Sakkinen wrote:
> > On Mon Mar 11, 2024 at 3:20 PM EET, Stefan Berger wrote:
> >> If linux,sml-log is available use it to get the TPM log rather than the
> >> pointer found in linux,sml-base. This resolves an issue on PowerVM and KVM
> >> on Power where after a kexec the memory pointed to by linux,sml-base may
> >> have become inaccessible or corrupted. Also, linux,sml-log has replaced
> >> linux,sml-base and linux,sml-size on these two platforms.
> >>
> >> Keep the handling of linux,sml-base/sml-size for powernv platforms that
> >> provide the two properties via skiboot.
> >>
> >> Fixes: c5df39262dd5 ("drivers/char/tpm: Add securityfs support for event log")
> >> Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx>
> >
> > I'm worried about not being up to date and instead using "cached" values
> > when verifying anything from a security chip. Does this guarantee that
> > TPM log is corrupted and will not get updated somehow?
>
>
> What do you mean 'guarantee that TPM log is corrupted'?
I presume that this is for power architecture but I have no idea what
leads log being corrupted, and is the scope all of that that arch or
some subset of CPUs.
The commit message is not very detailed on kexec scenario. It more like
assumes that reader knows all the detail beforehand. So probably this
will start to make sense once the backing story is improved, that's
all.
> The TPM was handed over from the firmware to Linux and the firmware then
> freed all memory associated with the log and will then not create a new
> log or touch the TPM or do anything that would require an update to the
> handed-over log. Linux also does not append to the firmware log. So
> whatever we now find in linux,sml-log would be the latest firmware log
> and the state of the 'firmware PCRs' computed from it should correspond
> to the current state of the 'firmware PCRs'.
So on what CPU this happens and is there any bigger picture for that
design choice in the firmware?
If it is a firmware bug, this should emit FW_BUG log message. If not,
then this commit message should provide the necessary context.
BR, Jarkko