coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
qclib_common.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _SOC_QUALCOMM_QCLIB_COMMON_H__
4 #define _SOC_QUALCOMM_QCLIB_COMMON_H__
5 
6 /* coreboot & QCLib I/F definitions */
7 
8 /* string field lengths */
9 #define QCLIB_MAGIC_NUMBER_LENGTH 8
10 #define QCLIB_FMAP_NAME_LENGTH 24
11 #define QCLIB_TE_NAME_LENGTH 24
12 
13 /* FMAP_REGION names */
14 #define QCLIB_FR_LIMITS_CFG_DATA "RO_LIMITS_CFG"
15 
16 /* TE_NAME (table entry name) */
17 #define QCLIB_TE_DDR_INFORMATION "ddr_information"
18 #define QCLIB_TE_QCLIB_LOG_BUFFER "qclib_log_buffer"
19 #define QCLIB_TE_DCB_SETTINGS "dcb_settings"
20 #define QCLIB_TE_CDT_SETTINGS "cdt_settings"
21 #define QCLIB_TE_PMIC_SETTINGS "pmic_settings"
22 #define QCLIB_TE_DDR_TRAINING_DATA "ddr_training_data"
23 #define QCLIB_TE_LIMITS_CFG_DATA "limits_cfg_data"
24 #define QCLIB_TE_QCSDI "qcsdi"
25 #define QCLIB_TE_MEM_CHIP_INFO "mem_chip_info"
26 
27 /* BA_BMASK_VALUES (blob_attributes bit mask values) */
28 #define QCLIB_BA_SAVE_TO_STORAGE 0x00000001
29 
31  char name[QCLIB_TE_NAME_LENGTH]; /* 0x00 TE_NAME */
32  uint64_t blob_address; /* 0x18 blob addr in SRAM */
33  uint32_t size; /* 0x20 blob size in SRAM */
34  uint32_t blob_attributes; /* 0x24 BA_BMASK_VALUES */
35 };
36 
37 /* GA_BMASK_VALUES (global_attributes bit mask values) */
38 #define QCLIB_GA_ENABLE_UART_LOGGING 0x00000001
39 
40 #define QCLIB_INTERFACE_VERSION 0x00000001
41 #define QCLIB_MAX_NUMBER_OF_ENTRIES 16
42 
43 #define QCLIB_MAGIC_NUMBER "QCLIB_CB"
44 
46  char magic[8]; /* 0x00 */
47  uint32_t version; /* 0x08 */
48  uint32_t num_entries; /* 0x0C */
49  uint32_t max_entries; /* 0x10 */
51  uint64_t reserved; /* 0x18 */
53  te[QCLIB_MAX_NUMBER_OF_ENTRIES]; /* 0x20 */
54 };
55 
57 
58 void qclib_add_if_table_entry(const char *name, void *base,
59  uint32_t size, uint32_t attrs);
60 void qclib_load_and_run(void);
61 int qclib_soc_blob_load(void);
62 
63 #endif // _SOC_QUALCOMM_QCLIB_COMMON_H_
static struct @1 attrs[]
const char * name
Definition: mmu.c:92
void qclib_load_and_run(void)
Definition: qclib.c:152
#define QCLIB_TE_NAME_LENGTH
Definition: qclib_common.h:11
void qclib_add_if_table_entry(const char *name, void *base, uint32_t size, uint32_t attrs)
Definition: qclib.c:65
#define QCLIB_MAX_NUMBER_OF_ENTRIES
Definition: qclib_common.h:41
int qclib_soc_blob_load(void)
Definition: qclib.c:150
uintptr_t base
Definition: uart.c:17
unsigned int uint32_t
Definition: stdint.h:14
unsigned long long uint64_t
Definition: stdint.h:17
Definition: qclib_common.h:30
uint32_t size
Definition: qclib_common.h:33
char name[QCLIB_TE_NAME_LENGTH]
Definition: qclib_common.h:31
uint32_t blob_attributes
Definition: qclib_common.h:34
uint64_t blob_address
Definition: qclib_common.h:32
uint32_t max_entries
Definition: qclib_common.h:49
struct qclib_cb_if_table_entry te[QCLIB_MAX_NUMBER_OF_ENTRIES]
Definition: qclib_common.h:52
uint32_t global_attributes
Definition: qclib_common.h:50
uint32_t num_entries
Definition: qclib_common.h:48