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
30
struct
qclib_cb_if_table_entry
{
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
45
struct
qclib_cb_if_table
{
46
char
magic
[8];
/* 0x00 */
47
uint32_t
version
;
/* 0x08 */
48
uint32_t
num_entries
;
/* 0x0C */
49
uint32_t
max_entries
;
/* 0x10 */
50
uint32_t
global_attributes
;
/* 0x14 */
51
uint64_t
reserved
;
/* 0x18 */
52
struct
qclib_cb_if_table_entry
53
te
[
QCLIB_MAX_NUMBER_OF_ENTRIES
];
/* 0x20 */
54
};
55
56
extern
struct
qclib_cb_if_table
qclib_cb_if_table
;
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_
attrs
static struct @1 attrs[]
name
const char * name
Definition:
mmu.c:92
qclib_load_and_run
void qclib_load_and_run(void)
Definition:
qclib.c:152
QCLIB_TE_NAME_LENGTH
#define QCLIB_TE_NAME_LENGTH
Definition:
qclib_common.h:11
qclib_add_if_table_entry
void qclib_add_if_table_entry(const char *name, void *base, uint32_t size, uint32_t attrs)
Definition:
qclib.c:65
QCLIB_MAX_NUMBER_OF_ENTRIES
#define QCLIB_MAX_NUMBER_OF_ENTRIES
Definition:
qclib_common.h:41
qclib_soc_blob_load
int qclib_soc_blob_load(void)
Definition:
qclib.c:150
base
uintptr_t base
Definition:
uart.c:17
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
uint64_t
unsigned long long uint64_t
Definition:
stdint.h:17
qclib_cb_if_table_entry
Definition:
qclib_common.h:30
qclib_cb_if_table_entry::size
uint32_t size
Definition:
qclib_common.h:33
qclib_cb_if_table_entry::name
char name[QCLIB_TE_NAME_LENGTH]
Definition:
qclib_common.h:31
qclib_cb_if_table_entry::blob_attributes
uint32_t blob_attributes
Definition:
qclib_common.h:34
qclib_cb_if_table_entry::blob_address
uint64_t blob_address
Definition:
qclib_common.h:32
qclib_cb_if_table
Definition:
qclib_common.h:45
qclib_cb_if_table::magic
char magic[8]
Definition:
qclib_common.h:46
qclib_cb_if_table::reserved
uint64_t reserved
Definition:
qclib_common.h:51
qclib_cb_if_table::max_entries
uint32_t max_entries
Definition:
qclib_common.h:49
qclib_cb_if_table::version
uint32_t version
Definition:
qclib_common.h:47
qclib_cb_if_table::te
struct qclib_cb_if_table_entry te[QCLIB_MAX_NUMBER_OF_ENTRIES]
Definition:
qclib_common.h:52
qclib_cb_if_table::global_attributes
uint32_t global_attributes
Definition:
qclib_common.h:50
qclib_cb_if_table::num_entries
uint32_t num_entries
Definition:
qclib_common.h:48
src
soc
qualcomm
common
include
soc
qclib_common.h
Generated by
1.9.1