Attention is currently required from: Tarun Tuli, Subrata Banik, Reka Norman, Kapil Porwal, Arthur Heymans, Lean Sheng Tan.
Hello build bot (Jenkins), Tarun Tuli, Reka Norman, Kapil Porwal, Arthur Heymans, Lean Sheng Tan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/74873
to look at the new patch set (#4).
Change subject: cpu/intel/microcode: Implement microcode info caching inside cbmem ......................................................................
cpu/intel/microcode: Implement microcode info caching inside cbmem
This patch implements microcode info caching inside cbmem (during ramstage) to avoid boot time penalty.
Currently, locating ucode from cbfs is a continuous process in every boot hence, there are boot time penalties knowing typically `cpu_microcode_blob.bin` is consists of multiple microcodes as per different CPU steppings.
Adding more microcode into `cpu_microcode_blob.bin` would increase the boot time cost. Hence, this patch enables caching of microcode related information inside cbmem that can be used to avoid microcode searching time during the warm resets.
Additionally, use a tab to align `CBMEM_ID_CSE_PARTITION_VERSION` with other CBMEM ID macros.
TEST=Build and boot google/rex with this patch which saves 20ms of boot time.
Without this patch during warm reset:
cbmem -c | grep microcode CBFS: Found 'cpu_microcode_blob.bin' @0x1e180 size 0x35400 in mcache @0x76add080 microcode: sig=0x906a4 pf=0x80 revision=0x423 microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date
boot time: 10:start of ramstage 982,231 (43) 971:loading FSP-S 1,003,633 (21,402)
With this patch during warm reset:
cbmem -c | grep microcode microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date microcode: Update skipped, already up-to-date
boot time: 10:start of ramstage 981,061 (45) 971:loading FSP-S 982,134 (1,072)
Change-Id: I208a2e0e1dce96b2d4d63f882e8aaf4c25f77e3f Signed-off-by: Subrata Banik subratabanik@google.com --- M src/commonlib/bsd/include/commonlib/bsd/cbmem_id.h M src/cpu/intel/microcode/microcode.c M src/include/cpu/intel/microcode.h 3 files changed, 110 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/73/74873/4