Re: [RFC] efi/tpm: add efi.tpm_log as a reserved region in 820_table_firmware

From: Breno Leitao
Date: Fri Sep 13 2024 - 07:58:30 EST


Hello James,

On Thu, Sep 12, 2024 at 12:22:01PM -0400, James Bottomley wrote:
> On Thu, 2024-09-12 at 06:03 -0700, Breno Leitao wrote:
> > Hello Ard,
> >
> > On Thu, Sep 12, 2024 at 12:51:57PM +0200, Ard Biesheuvel wrote:
> > > I don't see how this could be an EFI bug, given that it does not
> > > deal with E820 tables at all.
> >
> > I want to back up a little bit and make sure I am following the
> > discussion.
> >
> > From what I understand from previous discussion, we have an EFI bug
> > as the root cause of this issue.
> >
> > This happens because the EFI does NOT mark the EFI TPM event log
> > memory region as reserved (EFI_RESERVED_TYPE). Not having an entry
> > for the event table memory in EFI memory mapped, then libstub will
> > ignore it completely (the TPM event log memory range) and not
> > populate e820 table with it.
>
> Wait, that's not correct. The TPM log is in memory that doesn't
> survive ExitBootServices (by design in case the OS doesn't care about
> it). So the EFI stub actually copies it over to a new configuration
> table that is in reserved memory before it calls ExitBootServices.
> This new copy should be in kernel reserved memory regardless of its
> e820 map status.

First of all, thanks for clarifying some points here.

How should the TPM log table be passed to the next kernel when
kexecing() since it didn't surive ExitBootServices?