Subrata Banik has uploaded a new patch set (#2). ( https://review.coreboot.org/c/coreboot/+/74873 )
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 11ms 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: 954:calling FspSiliconInit 788,614 (5,414) 955:returning from FspSiliconInit 823,803 (35,188)
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: 954:calling FspSiliconInit 786,475 (5,390) 955:returning from FspSiliconInit 811,083 (24,608)
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, 99 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/73/74873/2