coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
qclib.c File Reference
#include <console/cbmem_console.h>
#include <cbmem.h>
#include <string.h>
#include <fmap.h>
#include <assert.h>
#include <arch/mmu.h>
#include <cbfs.h>
#include <console/console.h>
#include <mrc_cache.h>
#include <soc/mmu.h>
#include <soc/mmu_common.h>
#include <soc/qclib_common.h>
#include <soc/symbols_common.h>
#include <security/vboot/misc.h>
#include <vb2_api.h>
#include <commonlib/bsd/mem_chip_info.h>
Include dependency graph for qclib.c:

Go to the source code of this file.

Macros

#define QCLIB_VERSION   0
 

Functions

static void write_mem_chip_information (struct qclib_cb_if_table_entry *te)
 
static void add_mem_chip_info (int unused)
 
 ROMSTAGE_CBMEM_INIT_HOOK (add_mem_chip_info)
 
void qclib_add_if_table_entry (const char *name, void *base, uint32_t size, uint32_t attrs)
 
static void write_ddr_information (struct qclib_cb_if_table_entry *te)
 
static void write_qclib_log_to_cbmemc (struct qclib_cb_if_table_entry *te)
 
static void write_table_entry (struct qclib_cb_if_table_entry *te)
 
static void dump_te_table (void)
 
__weak int qclib_soc_blob_load (void)
 
void qclib_load_and_run (void)
 

Variables

static voidmem_chip_addr
 
struct qclib_cb_if_table qclib_cb_if_table
 

Macro Definition Documentation

◆ QCLIB_VERSION

#define QCLIB_VERSION   0

Definition at line 20 of file qclib.c.

Function Documentation

◆ add_mem_chip_info()

static void add_mem_chip_info ( int  unused)
static

Definition at line 34 of file qclib.c.

References ASSERT, BIOS_ERR, cbmem_add(), CBMEM_ID_MEM_CHIP_INFO, mem_chip_addr, mem_chip_info_size(), memcpy(), NULL, and printk.

Here is the call graph for this function:

◆ dump_te_table()

◆ qclib_add_if_table_entry()

void qclib_add_if_table_entry ( const char *  name,
void base,
uint32_t  size,
uint32_t  attrs 
)

◆ qclib_load_and_run()

◆ qclib_soc_blob_load()

__weak int qclib_soc_blob_load ( void  )

Definition at line 150 of file qclib.c.

Referenced by qclib_load_and_run().

Here is the caller graph for this function:

◆ ROMSTAGE_CBMEM_INIT_HOOK()

ROMSTAGE_CBMEM_INIT_HOOK ( add_mem_chip_info  )

◆ write_ddr_information()

static void write_ddr_information ( struct qclib_cb_if_table_entry te)
static

Definition at line 77 of file qclib.c.

References qclib_cb_if_table_entry::blob_address, ddr_region, MiB, region::offset, qc_mmu_dram_config_post_dram_init(), region::size, and qclib_cb_if_table_entry::size.

Referenced by write_table_entry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_mem_chip_information()

static void write_mem_chip_information ( struct qclib_cb_if_table_entry te)
static

Definition at line 25 of file qclib.c.

References qclib_cb_if_table_entry::blob_address, mem_chip_addr, mem_chip_info_size(), and qclib_cb_if_table_entry::size.

Referenced by write_table_entry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_qclib_log_to_cbmemc()

static void write_qclib_log_to_cbmemc ( struct qclib_cb_if_table_entry te)
static

Definition at line 91 of file qclib.c.

References __cbmemc_tx_byte(), qclib_cb_if_table_entry::blob_address, and qclib_cb_if_table_entry::size.

Referenced by write_table_entry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_table_entry()

Variable Documentation

◆ mem_chip_addr

void* mem_chip_addr
static

Definition at line 23 of file qclib.c.

Referenced by add_mem_chip_info(), and write_mem_chip_information().

◆ qclib_cb_if_table

Initial value:
= {
.num_entries = 0,
.global_attributes = 0,
.reserved = 0,
}
#define QCLIB_MAGIC_NUMBER
Definition: qclib_common.h:43
#define QCLIB_INTERFACE_VERSION
Definition: qclib_common.h:40
#define QCLIB_MAX_NUMBER_OF_ENTRIES
Definition: qclib_common.h:41

Definition at line 54 of file qclib.c.