coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <commonlib/bsd/cbmem_id.h>
#include <stddef.h>
#include <stdint.h>
#include <boot/coreboot_tables.h>
Go to the source code of this file.
Macros | |
#define | CBMEM_FSP_HOB_PTR 0x614 |
#define | DYN_CBMEM_ALIGN_SIZE (4096) |
#define | CBMEM_ROOT_SIZE DYN_CBMEM_ALIGN_SIZE |
#define | CBMEM_ROOT_MIN_SIZE DYN_CBMEM_ALIGN_SIZE |
#define | CBMEM_LG_ALIGN CBMEM_ROOT_MIN_SIZE |
#define | CBMEM_SM_ROOT_SIZE 1024 |
#define | CBMEM_SM_ALIGN 32 |
#define | ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) |
#define | RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) |
#define | POSTCAR_CBMEM_INIT_HOOK(init_fn_) |
#define | ROMSTAGE_CBMEM_INIT_HOOK_EARLY(init_fn_) |
Typedefs | |
typedef void(*const | cbmem_init_hook_t) (int is_recovery) |
Functions | |
static size_t | cbmem_overhead_size (void) |
int | cbmem_initialize (void) |
int | cbmem_initialize_id_size (u32 id, u64 size) |
void | cbmem_initialize_empty (void) |
void | cbmem_initialize_empty_id_size (u32 id, u64 size) |
void * | cbmem_top (void) |
void * | cbmem_top_chipset (void) |
const struct cbmem_entry * | cbmem_entry_add (u32 id, u64 size) |
const struct cbmem_entry * | cbmem_entry_find (u32 id) |
int | cbmem_entry_remove (const struct cbmem_entry *entry) |
void * | cbmem_entry_start (const struct cbmem_entry *entry) |
u64 | cbmem_entry_size (const struct cbmem_entry *entry) |
int | cbmem_recovery (int s3resume) |
void * | cbmem_add (u32 id, u64 size) |
void * | cbmem_find (u32 id) |
void | cbmem_run_init_hooks (int is_recovery) |
void | cbmem_add_bootmem (void) |
void | cbmem_get_region (void **baseptr, size_t *size) |
void | cbmem_list (void) |
void | cbmem_add_records_to_cbtable (struct lb_header *header) |
static int | cbmem_possibly_online (void) |
static int | cbmem_online (void) |
Variables | |
uintptr_t | _cbmem_top_ptr |
#define CBMEM_LG_ALIGN CBMEM_ROOT_MIN_SIZE |
#define CBMEM_ROOT_MIN_SIZE DYN_CBMEM_ALIGN_SIZE |
#define CBMEM_ROOT_SIZE DYN_CBMEM_ALIGN_SIZE |
#define POSTCAR_CBMEM_INIT_HOOK | ( | init_fn_ | ) |
#define RAMSTAGE_CBMEM_INIT_HOOK | ( | init_fn_ | ) |
#define ROMSTAGE_CBMEM_INIT_HOOK | ( | init_fn_ | ) |
#define ROMSTAGE_CBMEM_INIT_HOOK_EARLY | ( | init_fn_ | ) |
Definition at line 144 of file imd_cbmem.c.
References imd_entry_at(), imd_entry_find_or_add(), NULL, and imd_entry::size.
Referenced by _cbfs_cbmem_allocator(), acpi_create_gnvs(), acpi_create_rmrr(), add_chipset_state_cbmem(), add_mem_chip_info(), agesa_heap_base(), backup_default_smm_area(), bert_reserved_region(), cbmem_add_cros_vpd(), cbmem_initialize_empty_id_size(), cbmem_initialize_id_size(), cbmemc_reinit(), cl_get_cpu_sram_data(), cl_get_pmc_sram_data(), conn_get_cbmem_buffer(), elog_smbios_write_type15(), fmap_add_cbmem_cache(), fopen(), fsp_set_runtime(), fsps_allocator(), get_tcpa_log(), get_tpm2_log(), hest_create(), init_store(), mainboard_save_dimm_info(), mcache_to_cbmem(), memmap_stash_early_dram_usage(), migrate_ehci_debug(), migrate_power_state(), mrc_cache_stash_data(), postcar_frame_init(), prepare_dmi_17(), rmodule_cbfs_allocator(), romstage_handoff_find_or_add(), save_dimm_info(), save_hob_list(), save_lpddr4_dimm_info_part_num(), save_mma_results_data(), set_early_mmc_wake_status(), setup_sdram_meminfo(), soc_save_dimm_info(), stage_cache_add(), stage_cache_add_raw(), tcpa_cbmem_init(), tegra210_run_mtc(), timestamp_alloc_cbmem_table(), tpm_ppi_acpi_fill_ssdt(), vboot_setup_cbmem(), wilco_ec_fill_ssdt_generator(), write_acpi_table(), write_mptable(), write_pirq_table(), write_smbios_table(), and write_tables().
Definition at line 195 of file imd_cbmem.c.
References BM_MEM_TABLE, bootmem_add_range(), cbmem_get_region(), NULL, and imd_entry::size.
Referenced by bootmem_init().
Definition at line 224 of file imd_cbmem.c.
References lb_cbmem_entry::address, CBMEM_ID_IMD_ROOT, CBMEM_ID_IMD_SMALL, lb_cbmem_entry::entry_size, header, lb_cbmem_entry::id, imd_cursor_init(), imd_cursor_next(), imd_entry_at(), imd_entry_id(), imd_entry_size(), lb_new_record(), LB_TAG_CBMEM_ENTRY, NULL, lb_cbmem_entry::size, and lb_cbmem_entry::tag.
Referenced by write_coreboot_table().
Definition at line 135 of file imd_cbmem.c.
References imd_entry_find_or_add(), and imd_to_cbmem().
Referenced by bmp_load_logo().
const struct cbmem_entry* cbmem_entry_find | ( | u32 | id | ) |
Definition at line 157 of file imd_cbmem.c.
References imd_entry_find(), and imd_to_cbmem().
Referenced by acpi_ssdt_write_cbtable(), cbfs_boot_device_find_mcache(), fmap_add_cbmem_cache(), fmap_register_cbmem_cache(), get_tcpa_log(), get_tpm2_log(), lb_smmstorev2(), smm_load_module(), stage_cache_get_raw(), stage_cache_load_stage(), and update_mrc_cache_from_cbmem().
int cbmem_entry_remove | ( | const struct cbmem_entry * | entry | ) |
Definition at line 180 of file imd_cbmem.c.
References cbmem_to_imd(), and imd_entry_remove().
Referenced by bmp_release_logo(), and fmap_add_cbmem_cache().
u64 cbmem_entry_size | ( | const struct cbmem_entry * | entry | ) |
Definition at line 185 of file imd_cbmem.c.
References cbmem_to_imd(), and imd_entry_size().
Referenced by acpi_ssdt_write_cbtable(), cbfs_boot_device_find_mcache(), fmap_register_cbmem_cache(), get_tcpa_log(), get_tpm2_log(), lb_smmstorev2(), smm_load_module(), stage_cache_get_raw(), stage_cache_load_stage(), and update_mrc_cache_from_cbmem().
void* cbmem_entry_start | ( | const struct cbmem_entry * | entry | ) |
Definition at line 190 of file imd_cbmem.c.
References cbmem_to_imd(), and imd_entry_at().
Referenced by acpi_ssdt_write_cbtable(), bmp_load_logo(), cbfs_boot_device_find_mcache(), fmap_register_cbmem_cache(), get_tcpa_log(), get_tpm2_log(), lb_smmstorev2(), smm_load_module(), stage_cache_get_raw(), stage_cache_load_stage(), and update_mrc_cache_from_cbmem().
Definition at line 166 of file imd_cbmem.c.
References imd_entry_at(), imd_entry_find(), and NULL.
Referenced by acpi_create_gnvs(), acpi_create_rmrr(), acpi_get_gnvs(), acpi_get_pm_state(), add_cb_fdt_data(), add_cbmem_pointers(), cl_fill_cpu_records(), cl_fill_pmc_records(), conn_get_cbmem_buffer(), do_fsp_post_memory_init(), fsp_get_fih(), fsp_get_hob_list(), fsp_update_fih(), GetHeapBase(), init_vpd_rdevs_from_cbmem(), lb_mmc_info(), lb_tpm_ppi(), memmap_get_early_dram_usage(), migrate_ehci_debug(), nc_read_resources(), OemS3LateRestore(), raminit(), romstage_handoff_find_or_add(), romstage_handoff_is_resume(), sa_soc_systemagent_init(), sdram_size(), selfload_mapped(), setup_sdram_meminfo(), smbios_write_type16(), smbios_write_type17(), smbios_write_type19(), smbios_write_type20(), soc_add_mtc(), soc_get_bl31_plat_params(), soc_init_atf(), stage_cache_load_stage(), storage_test(), tcpa_cbmem_init(), timestamp_reinit(), update_board_layout(), and vboot_get_workbuf().
Definition at line 204 of file imd_cbmem.c.
References imd_region_used(), and imd_entry::size.
Referenced by add_cb_fdt_data(), cbmem_add_bootmem(), clear_memory(), and fill_postcar_frame().
int cbmem_initialize | ( | void | ) |
Definition at line 88 of file imd_cbmem.c.
References cbmem_initialize_id_size().
Referenced by cbmem_recovery(), chipset_teardown_car_main(), and main().
Definition at line 45 of file imd_cbmem.c.
References cbmem_initialize_empty_id_size().
Referenced by cbmem_recovery(), main(), mainboard_romstage_entry(), platform_romstage_main(), and romstage().
Definition at line 62 of file imd_cbmem.c.
References BIOS_DEBUG, cbmem_add(), cbmem_initialized, CBMEM_LG_ALIGN, CBMEM_ROOT_MIN_SIZE, cbmem_run_init_hooks(), CBMEM_SM_ALIGN, CBMEM_SM_ROOT_SIZE, cbmem_top(), cbmem_top_init_once(), imd_create_tiered_empty(), imd_handle_init(), printk, and imd_entry::size.
Referenced by cbmem_initialize_empty(), do_fsp_post_memory_init(), and raminit().
Definition at line 93 of file imd_cbmem.c.
References cbmem_add(), cbmem_initialized, cbmem_run_init_hooks(), cbmem_top(), cbmem_top_init_once(), ENV_ROMSTAGE, imd_handle_init(), imd_lockdown(), imd_recover(), and imd_entry::size.
Referenced by cbmem_initialize(), do_fsp_post_memory_init(), and raminit().
|
inlinestatic |
Definition at line 170 of file cbmem.h.
References cbmem_initialized, and cbmem_possibly_online().
Referenced by main().
Definition at line 38 of file cbmem.h.
References CBMEM_ROOT_MIN_SIZE.
Referenced by do_fsp_memory_init(), fsp_verify_memory_init_hobs(), platform_fsp_memory_init_params_cb(), and raminit().
|
inlinestatic |
Definition at line 158 of file cbmem.h.
References CONFIG, ENV_BOOTBLOCK, and ENV_SEPARATE_VERSTAGE.
Referenced by cbfs_boot_device_find_mcache(), cbmem_online(), init_vpd_rdevs_from_cbmem(), pmc_get_power_state(), tcpa_cbmem_init(), tcpa_log_init(), and vboot_get_workbuf().
int cbmem_recovery | ( | int | s3resume | ) |
Definition at line 125 of file imd_cbmem.c.
References cbmem_initialize(), and cbmem_initialize_empty().
Referenced by car_stage_entry(), i945_prepare_resume(), init_dram_ddr3(), mainboard_romstage_entry(), perform_raminit(), raminit(), romstage_main(), and sdram_initialize().
void cbmem_run_init_hooks | ( | int | is_recovery | ) |
Definition at line 6 of file cbmem_common.c.
References REGION_SIZE.
Referenced by cbmem_initialize_empty_id_size(), and cbmem_initialize_id_size().
Definition at line 18 of file imd_cbmem.c.
References _cbmem_top_ptr, cbmem_top_chipset(), dead_code, ENV_POSTCAR, ENV_RAMSTAGE, and ENV_ROMSTAGE.
Referenced by bert_reserved_region(), car_stage_entry(), cbmem_initialize_empty_id_size(), cbmem_initialize_id_size(), cbmem_top_init_once(), configure_dpr(), domain_read_resources(), fill_postcar_frame(), fixup_cbmem_to_UC(), fsp_verify_memory_init_hobs(), mainboard_enable(), mc_add_dram_resources(), mch_domain_read_resources(), qclib_load_and_run(), raminit(), read_resources(), recover_postcar_frame(), run_postcar_phase(), run_ramstage(), run_ramstage_from_resume(), sa_add_dram_resources(), smm_region_start(), and soc_fill_gnvs().
Definition at line 108 of file romstage.c.
References _dram, _memlayout_cbmem_top, addr, ALIGN_DOWN, BERT_REGION_MAX_SIZE, BIOS_WARNING, cbmem_backing_store_ready, CONFIG, dpr_region_start(), DRB7, ESMRAMC, FB_SIZE_MB, fsp_find_bootloader_tolum(), FU540_MAXDRAM, fw_cfg_tolud(), get_fb_base_kb(), GiB, KiB, msr_struct::lo, MAX_DRAM_ADDRESS, memory_in_range_below_4gb(), MiB, MIN, NB, northbridge_get_tseg_base(), NULL, PCI_DEV, pci_read_config16(), pci_read_config8(), printk, probe_ramsize(), qemu_get_memory_size(), range_entry_end(), rdmsr(), restore_top_of_low_cacheable(), sdram_max_addressable_mb(), sdram_size(), sdram_size_mb(), smm_region(), smm_region_start(), SMRAM, TOLM, TOP_MEM, and top_of_low_usable_memory().
Referenced by cbmem_top(), and ramstage_entry().
|
extern |
Definition at line 14 of file imd_cbmem.c.
Referenced by cbmem_top(), ramstage_entry(), and stage_entry().