[SeaBIOS] Saving a few bytes across a reboot

Stefan Berger stefanb at linux.vnet.ibm.com
Thu Jan 11 19:14:48 CET 2018

On 01/11/2018 12:38 PM, Laszlo Ersek wrote:
> On 01/11/18 18:16, Stefan Berger wrote:
>> I can only point to the standard for the address. If QEMU has an API
>> where we can first try to allocate fed4 0000 and if that fails ask for
>> another address, then we can use that. But does driver initialization
>> work that way that we can first let all other devices register their
>> MMIO requirements and then the TPM device ask whether fed4 0000 is
>> available and then falls back to using a random address?
> As far as I understand, QEMU would keep the base address generally
> fixed, but it could be moved if (a) another platform device comes along
> that needs a large contiguous area and it cannot be accommodated without
> moving other devices around, or (b) the user wanted to move the address
> on the command line for whatever reason.

(a) can be handled by changing a #define
(b) would be a bit more work.

I am not sure whether there's a registry for base addresses for devices 
in the industry. Maybe it's just common knowledge that fed4 0000 per TCG 
spec is a standard base address for the TPM hardware interface.

A comment on the PPI device would be great. I would like to coordinate 
that with folks here before I make changes. The idea of the QEMU ACPI 
table that holds  the base address of this device looks appealing to me 
unless there's that registry of base addresses and 0xffff 0000 .. 0xffff 
00ff defines a well known PPI memory device.

> So, I don't think the QEMU API that you describe exists, or that there's
> a use case for it. AFAICT board code is expected to place platform
> devices up-front so that the latter peacefully co-exist.

I want to add that TPM TIS works fine with Win10 and attached TPM 1.2 
but not TPM 2, which seems to want a CRB.

> Thanks,
> Laszlo

More information about the SeaBIOS mailing list