Patrick Georgi has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/40520 )
Change subject: drivers/smmstore: Implement SMMSTORE version 2 ......................................................................
Patch Set 23:
(1 comment)
https://review.coreboot.org/c/coreboot/+/40520/21/src/commonlib/include/comm... File src/commonlib/include/commonlib/coreboot_tables.h:
https://review.coreboot.org/c/coreboot/+/40520/21/src/commonlib/include/comm... PS21, Line 492: struct lb_smmstorev2 { : uint32_t tag; : uint32_t size; : uint32_t num_blocks; /* Number of writeable blocks in SMM */ : uint32_t block_size; /* Size of a block in byte. Default: 64 KiB */ : uint32_t mmap_addr; /* MMIO address of the store for read only access */ : uint32_t com_buffer; /* Physical address of the communication buffer */ : uint32_t com_buffer_size; /* Size of the communication buffer in bytes */ : uint8_t apm_cmd; /* The command byte to write to the APM I/O port */ : uint8_t unused[3]; /* Set to zero */ : };
Just curious, are there any other known consumers of SMMSTORE besides TianoCore?
smmstore has been developed specifically to provide a solution for Tiano payloads that need to access flash long after the OS took over - hence the SMI backdoor. Tianocore + smmstore is coreboot (in the form of its SMM handler) and the payload doing sneaky things behind the OS' back.
For everything else I'd propose trying to keep things sane and have one and only one arbiter over hardware at any point in time: first coreboot, then the payload, then the OS.