On Tue, Jun 14, 2022 at 11:48:30AM -0600, Rob Herring wrote: > (),On Tue, Jun 14, 2022 at 10:13 AM Stefan Berger <stefanb@xxxxxxxxxxxxx> wrote: > > > > The memory area of the TPM measurement log is currently not properly > > duplicated for carrying it across kexec when an Open Firmware > > Devicetree is used. Therefore, the contents of the log get corrupted. > > Fix this for the kexec_file_load() syscall by allocating a buffer and > > copying the contents of the existing log into it. The new buffer is > > preserved across the kexec and a pointer to it is available when the new > > kernel is started. To achieve this, store the allocated buffer's address > > in the flattened device tree (fdt) under the name linux,tpm-kexec-buffer > > and search for this entry early in the kernel startup before the TPM > > subsystem starts up. Adjust the pointer in the of-tree stored under > > linux,sml-base to point to this buffer holding the preserved log. The > > TPM driver can then read the base address from this entry when making > > the log available. > > > +{ > > + const u32 *sizep; > > + const u64 *basep; > > + > > + sizep = of_get_property(np, "linux,sml-size", NULL); > > + basep = of_get_property(np, "linux,sml-base", NULL); > > Any new properties need a schema. For chosen, that's located here[1]. > The more common pattern for similar properties is <base size>. I noticed these are already documented and are TPM node properties. I was thinking these are chosen node properties. Though it would be good to get these common TPM properties converted to schema. That can live in the kernel tree. Rob