void fsp_silicon_init(bool s3wake) { if (IS_ENABLED(CONFIG_RELOCATE_FSP_INTO_DRAM)) intel_silicon_init(); else fsp_run_silicon_init(find_fsp(CONFIG_FSP_ESRAM_LOC), s3wake); }
void intel_silicon_init(void) { struct prog fsp = PROG_INIT(ASSET_REFCODE, "fsp.bin"); int is_s3_wakeup = acpi_is_wakeup_s3(); if (is_s3_wakeup) { printk(BIOS_DEBUG, "FSP: Loading binary from cache\n"); stage_cache_load_stage(STAGE_REFCODE, &fsp); } else { fsp_find_and_relocate(&fsp); printk(BIOS_DEBUG, "FSP: Saving binary in cache\n"); fsp_cache_save(&fsp); } /* FSP_INFO_HEADER is set as the program entry. */ fsp_update_fih(prog_entry(&fsp)); fsp_run_silicon_init(is_s3_wakeup); }