U-Boot Concept now has preliminary support for the ACPI Firmware Performance Data Table (FPDT). It is included in the ‘bootstage and script enhancement’ series. The OS can look at this table to figure out how long the firmware took to boot.
Only the ‘basic boot’ record is supported. It contains the following fields:
- reset_end – Timestamp for the end of reset. This is set to the timestamp when U-Boot starts, or strictly speaking, when it sets up bootstage.
 - loader_start – Timestamp for when U-Boot starts loading the OS (not supported)
 - loader_exec – Timestamp for when U-Boot starts OS execution. This presupposes the EFI loader, i.e. starting the OS does not actually mean that U-Boot is finished. For now this is not supported.
 - ebs_entry – Timestamp for when the OS (or EFI app) calls exit-boot-services (not supported)
 - ebs_exit – Timestamp for when U-Boot completes the exit-boot-services call (not supported)
 
All timestamps are 64-bit values in microseconds with 0 assumes to be the end of the reset signal.
As you can see from the above, most of the fields are not currently filled in. Further work will be needed to plumb this into U-Boot’s EFI loader. As with the BGRT (blog link) the FPDT is added to the ACPI tables provided by QEMU, when running under emulation.


