coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
devapc.c File Reference
#include <console/console.h>
#include <soc/devapc.h>
#include <soc/devapc_common.h>
Include dependency graph for devapc.c:

Go to the source code of this file.

Data Structures

struct  devapc_init_ops
 

Functions

static voidgetreg_domain (uintptr_t base, unsigned int offset, enum domain_id domain_id, unsigned int index)
 
static voidgetreg (uintptr_t base, unsigned int offset)
 
static void set_module_apc (uintptr_t base, uint32_t module, enum domain_id domain_id, enum devapc_perm_type perm)
 
static void set_infra_ao_apc (uintptr_t base)
 
static void set_mm_ao_apc (uintptr_t base)
 
static void dump_infra_ao_apc (uintptr_t base)
 
static void dump_mm_ao_apc (uintptr_t base)
 
static void infra_init (uintptr_t base)
 
static void mm_init (uintptr_t base)
 
void dapc_init (void)
 

Variables

static const struct apc_infra_peri_dom_8 infra_ao_sys0_devices []
 
static const struct apc_infra_peri_dom_4 mm_ao_sys0_devices []
 
static enum domain_id domain_map []
 
struct devapc_init_ops devapc_init []
 

Function Documentation

◆ dapc_init()

void dapc_init ( void  )

Definition at line 1306 of file devapc.c.

References AO_APC_CON, ARRAY_SIZE, devapc_init::base, dump, getreg(), init(), devapc_init::init, and write32().

Referenced by soc_init().

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

◆ dump_infra_ao_apc()

static void dump_infra_ao_apc ( uintptr_t  base)
static

Definition at line 1252 of file devapc.c.

References ARRAY_SIZE, base, BIOS_DEBUG, DIV_ROUND_UP, DOM_NUM_INFRA_AO_SYS0, getreg(), getreg_domain(), infra_ao_sys0_devices, MAS_SEC_0, MOD_NO_IN_1_DEVAPC, printk, read32(), and SYS0_D0_APC_0.

Here is the call graph for this function:

◆ dump_mm_ao_apc()

static void dump_mm_ao_apc ( uintptr_t  base)
static

Definition at line 1267 of file devapc.c.

References ARRAY_SIZE, base, BIOS_DEBUG, DIV_ROUND_UP, DOM_NUM_MM_AO_SYS0, getreg(), getreg_domain(), MAS_SEC_0, mm_ao_sys0_devices, MOD_NO_IN_1_DEVAPC, printk, read32(), and SYS0_D0_APC_0.

Here is the call graph for this function:

◆ getreg()

static void* getreg ( uintptr_t  base,
unsigned int  offset 
)
inlinestatic

Definition at line 1205 of file devapc.c.

References base, getreg_domain(), and offset.

Referenced by dapc_init(), dump_infra_ao_apc(), dump_mm_ao_apc(), and infra_init().

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

◆ getreg_domain()

static void* getreg_domain ( uintptr_t  base,
unsigned int  offset,
enum domain_id domain_id  ,
unsigned int  index 
)
inlinestatic

Definition at line 1199 of file devapc.c.

References base, and offset.

Referenced by dump_infra_ao_apc(), dump_mm_ao_apc(), getreg(), and set_module_apc().

Here is the caller graph for this function:

◆ infra_init()

static void infra_init ( uintptr_t  base)
static

Definition at line 1282 of file devapc.c.

References base, getreg(), MAS_SEC_0, SECURE_TRANS, SET32_BITFIELDS, and set_infra_ao_apc().

Here is the call graph for this function:

◆ mm_init()

static void mm_init ( uintptr_t  base)
static

Definition at line 1291 of file devapc.c.

References base, and set_mm_ao_apc().

Here is the call graph for this function:

◆ set_infra_ao_apc()

static void set_infra_ao_apc ( uintptr_t  base)
static

Definition at line 1224 of file devapc.c.

References ARRAY_SIZE, base, CONFIG, apc_infra_peri_dom_4::d_permission, DEVAPC_DEBUGSYS_INDEX, DOMAIN_0, domain_map, infra_ao_sys0_devices, SEC_RW_NS_R, set_module_apc(), and SYS0_D0_APC_0.

Referenced by infra_init().

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

◆ set_mm_ao_apc()

static void set_mm_ao_apc ( uintptr_t  base)
static

Definition at line 1242 of file devapc.c.

References ARRAY_SIZE, base, apc_infra_peri_dom_4::d_permission, domain_map, mm_ao_sys0_devices, set_module_apc(), and SYS0_D0_APC_0.

Referenced by mm_init().

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

◆ set_module_apc()

static void set_module_apc ( uintptr_t  base,
uint32_t  module,
enum domain_id domain_id  ,
enum devapc_perm_type  perm 
)
static

Definition at line 1210 of file devapc.c.

References base, clrsetbits32, getreg_domain(), and MOD_NO_IN_1_DEVAPC.

Referenced by set_infra_ao_apc(), and set_mm_ao_apc().

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

Variable Documentation

◆ devapc_init

Initial value:
= {
}
static void infra_init(uintptr_t base)
Definition: devapc.c:1282
static void dump_infra_ao_apc(uintptr_t base)
Definition: devapc.c:1252
static void dump_mm_ao_apc(uintptr_t base)
Definition: devapc.c:1267
static void mm_init(uintptr_t base)
Definition: devapc.c:1291
@ DEVAPC_AO_MM_BASE
Definition: addressmap.h:33
@ DEVAPC_AO_INFRA_PERI_BASE
Definition: addressmap.h:32

◆ domain_map

enum domain_id domain_map[]
static
Initial value:
= {
}
@ DOMAIN_0
Definition: devapc.h:40
@ DOMAIN_3
Definition: devapc.h:43
@ DOMAIN_1
Definition: devapc.h:41
@ DOMAIN_5
Definition: devapc.h:45
@ DOMAIN_7
Definition: devapc.h:47
@ DOMAIN_15
Definition: devapc.h:55
@ DOMAIN_2
Definition: devapc.h:42
@ DOMAIN_6
Definition: devapc.h:46
@ DOMAIN_14
Definition: devapc.h:54
@ DOMAIN_11
Definition: devapc.h:51
@ DOMAIN_12
Definition: devapc.h:52
@ DOMAIN_9
Definition: devapc.h:49
@ DOMAIN_8
Definition: devapc.h:48
@ DOMAIN_10
Definition: devapc.h:50
@ DOMAIN_13
Definition: devapc.h:53
@ DOMAIN_4
Definition: devapc.h:44

Definition at line 1 of file devapc.c.

Referenced by set_infra_ao_apc(), and set_mm_ao_apc().

◆ infra_ao_sys0_devices

const struct apc_infra_peri_dom_8 infra_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_infra_ao_apc(), and set_infra_ao_apc().

◆ mm_ao_sys0_devices

const struct apc_infra_peri_dom_4 mm_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_mm_ao_apc(), and set_mm_ao_apc().