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 <soc/apusys_devapc.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_peri_ao_apc (uintptr_t base)
 
static void set_peri2_ao_apc (uintptr_t base)
 
static void set_peri_par_ao_apc (uintptr_t base)
 
static void dump_infra_ao_apc (uintptr_t base)
 
static void dump_peri_ao_apc (uintptr_t base)
 
static void dump_peri2_ao_apc (uintptr_t base)
 
static void dump_peri_par_ao_apc (uintptr_t base)
 
static void dump_fmem_ao (uintptr_t base)
 
static void dump_infra2_ao_apc (uintptr_t base)
 
static void dump_scp_master (uintptr_t base)
 
static void infra_init (uintptr_t base)
 
static void peri_init (uintptr_t base)
 
static void peri2_init (uintptr_t base)
 
static void peri_par_init (uintptr_t base)
 
static void fmem_master_init (uintptr_t base)
 
static void infra2_init (uintptr_t base)
 
static void scp_master_init (uintptr_t base)
 
void dapc_init (void)
 

Variables

static const struct apc_infra_peri_dom_16 infra_ao_sys0_devices []
 
static const struct apc_infra_peri_dom_4 infra_ao_sys1_devices []
 
static const struct apc_infra_peri_dom_4 infra_ao_sys2_devices []
 
static const struct apc_infra_peri_dom_16 peri_ao_sys0_devices []
 
static const struct apc_infra_peri_dom_8 peri_ao_sys1_devices []
 
static const struct apc_infra_peri_dom_16 peri2_ao_sys0_devices []
 
static const struct apc_infra_peri_dom_16 peri_par_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 1979 of file devapc.c.

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

Here is the call graph for this function:

◆ dump_fmem_ao()

static void dump_fmem_ao ( uintptr_t  base)
static

Definition at line 1811 of file devapc.c.

References base, BIOS_DEBUG, DOM_REMAP_0_0, getreg(), printk, and read32().

Here is the call graph for this function:

◆ dump_infra2_ao_apc()

static void dump_infra2_ao_apc ( uintptr_t  base)
static

Definition at line 1817 of file devapc.c.

References base, BIOS_DEBUG, DOM_REMAP_0_0, getreg(), printk, and read32().

Here is the call graph for this function:

◆ dump_infra_ao_apc()

◆ dump_peri2_ao_apc()

static void dump_peri2_ao_apc ( uintptr_t  base)
static

Definition at line 1784 of file devapc.c.

References ARRAY_SIZE, base, BIOS_DEBUG, DIV_ROUND_UP, DOM_NUM_PERI2_AO_SYS0, getreg_domain(), MOD_NO_IN_1_DEVAPC, peri2_ao_sys0_devices, printk, read32(), and SYS0_D0_APC_0.

Here is the call graph for this function:

◆ dump_peri_ao_apc()

static void dump_peri_ao_apc ( uintptr_t  base)
static

◆ dump_peri_par_ao_apc()

static void dump_peri_par_ao_apc ( uintptr_t  base)
static

◆ dump_scp_master()

static void dump_scp_master ( uintptr_t  base)
static

Definition at line 1823 of file devapc.c.

References ADSP_DOM, base, BIOS_DEBUG, getreg(), ONETIME_LOCK, printk, read32(), and SCP_DOM.

Here is the call graph for this function:

◆ fmem_master_init()

static void fmem_master_init ( uintptr_t  base)
static

Definition at line 1924 of file devapc.c.

References base, DOM_REMAP_0_0, DOMAIN_15, DOMAIN_3, DOMAIN_4, getreg(), and SET32_BITFIELDS.

Here is the call graph for this function:

◆ getreg()

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

Definition at line 1652 of file devapc.c.

References base, getreg_domain(), and offset.

Referenced by dapc_init(), dump_fmem_ao(), dump_infra2_ao_apc(), dump_infra_ao_apc(), dump_peri_ao_apc(), dump_peri_par_ao_apc(), dump_scp_master(), fmem_master_init(), infra2_init(), infra_init(), peri_init(), peri_par_init(), and scp_master_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 1646 of file devapc.c.

References base, and offset.

Referenced by dump_infra_ao_apc(), dump_peri2_ao_apc(), dump_peri_ao_apc(), dump_peri_par_ao_apc(), getreg(), and set_module_apc().

Here is the caller graph for this function:

◆ infra2_init()

static void infra2_init ( uintptr_t  base)
static

Definition at line 1943 of file devapc.c.

References base, DOM_REMAP_0_0, DOMAIN_15, DOMAIN_3, DOMAIN_4, getreg(), and SET32_BITFIELDS.

Here is the call graph for this function:

◆ infra_init()

static void infra_init ( uintptr_t  base)
static

Definition at line 1831 of file devapc.c.

References base, DOM_REMAP_0_0, DOM_REMAP_2_0, DOMAIN_0, DOMAIN_1, DOMAIN_15, DOMAIN_2, DOMAIN_3, DOMAIN_4, getreg(), MAS_DOM_0, MAS_SEC_0, SECURE_TRANS, SET32_BITFIELDS, and set_infra_ao_apc().

Here is the call graph for this function:

◆ peri2_init()

static void peri2_init ( uintptr_t  base)
static

Definition at line 1898 of file devapc.c.

References base, and set_peri2_ao_apc().

Here is the call graph for this function:

◆ peri_init()

static void peri_init ( uintptr_t  base)
static

Definition at line 1875 of file devapc.c.

References base, DOM_REMAP_0_0, DOMAIN_0, DOMAIN_1, DOMAIN_2, DOMAIN_3, DOMAIN_4, DOMAIN_5, getreg(), MAS_DOM_0, SET32_BITFIELDS, and set_peri_ao_apc().

Here is the call graph for this function:

◆ peri_par_init()

static void peri_par_init ( uintptr_t  base)
static

Definition at line 1904 of file devapc.c.

References base, DOMAIN_1, getreg(), MAS_DOM_4, MAS_SEC_0, SECURE_TRANS, SET32_BITFIELDS, and set_peri_par_ao_apc().

Here is the call graph for this function:

◆ scp_master_init()

static void scp_master_init ( uintptr_t  base)
static

Definition at line 1956 of file devapc.c.

References ADSP_DOM, base, DOMAIN_3, DOMAIN_4, getreg(), ONETIME_LOCK, SCP_DOM, and write32().

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 1671 of file devapc.c.

References ARRAY_SIZE, base, apc_infra_peri_dom_16::d_permission, domain_map, infra_ao_sys0_devices, infra_ao_sys1_devices, infra_ao_sys2_devices, set_module_apc(), SYS0_D0_APC_0, SYS1_D0_APC_0, and SYS2_D0_APC_0.

Referenced by infra_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 1657 of file devapc.c.

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

Referenced by set_infra_ao_apc(), set_peri2_ao_apc(), set_peri_ao_apc(), and set_peri_par_ao_apc().

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

◆ set_peri2_ao_apc()

static void set_peri2_ao_apc ( uintptr_t  base)
static

Definition at line 1713 of file devapc.c.

References ARRAY_SIZE, base, apc_infra_peri_dom_16::d_permission, domain_map, peri2_ao_sys0_devices, set_module_apc(), and SYS0_D0_APC_0.

Referenced by peri2_init().

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

◆ set_peri_ao_apc()

static void set_peri_ao_apc ( uintptr_t  base)
static

Definition at line 1691 of file devapc.c.

References ARRAY_SIZE, base, CONFIG, apc_infra_peri_dom_16::d_permission, DEVAPC_DEBUGSYS_INDEX, DOMAIN_0, domain_map, peri_ao_sys0_devices, peri_ao_sys1_devices, SEC_RW_NS_R, set_module_apc(), SYS0_D0_APC_0, and SYS1_D0_APC_0.

Referenced by peri_init().

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

◆ set_peri_par_ao_apc()

static void set_peri_par_ao_apc ( uintptr_t  base)
static

Definition at line 1723 of file devapc.c.

References ARRAY_SIZE, base, apc_infra_peri_dom_16::d_permission, domain_map, peri_par_ao_sys0_devices, set_module_apc(), and SYS0_D0_APC_0.

Referenced by peri_par_init().

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

Variable Documentation

◆ devapc_init

Initial value:
= {
}
static void dump_peri2_ao_apc(uintptr_t base)
Definition: devapc.c:1784
static void dump_peri_ao_apc(uintptr_t base)
Definition: devapc.c:1763
static void dump_scp_master(uintptr_t base)
Definition: devapc.c:1823
static void infra2_init(uintptr_t base)
Definition: devapc.c:1943
static void peri_init(uintptr_t base)
Definition: devapc.c:1875
static void infra_init(uintptr_t base)
Definition: devapc.c:1831
static void scp_master_init(uintptr_t base)
Definition: devapc.c:1956
static void peri_par_init(uintptr_t base)
Definition: devapc.c:1904
static void dump_infra_ao_apc(uintptr_t base)
Definition: devapc.c:1733
static void peri2_init(uintptr_t base)
Definition: devapc.c:1898
static void dump_fmem_ao(uintptr_t base)
Definition: devapc.c:1811
static void fmem_master_init(uintptr_t base)
Definition: devapc.c:1924
static void dump_infra2_ao_apc(uintptr_t base)
Definition: devapc.c:1817
static void dump_peri_par_ao_apc(uintptr_t base)
Definition: devapc.c:1796
@ DEVAPC_FMEM_AO_BASE
Definition: addressmap.h:38
@ DEVAPC_INFRA_AO_BASE
Definition: addressmap.h:34
@ SCP_CFG_BASE
Definition: addressmap.h:48
@ DEVAPC_PERI_AO_BASE
Definition: addressmap.h:35
@ DEVAPC_PERI2_AO_BASE
Definition: addressmap.h:36
@ DEVAPC_PERI_PAR_AO_BASE
Definition: addressmap.h:37
@ DEVAPC_INFRA2_AO_BASE
Definition: addressmap.h:46

◆ 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(), set_peri2_ao_apc(), set_peri_ao_apc(), and set_peri_par_ao_apc().

◆ infra_ao_sys0_devices

const struct apc_infra_peri_dom_16 infra_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_infra_ao_apc(), and set_infra_ao_apc().

◆ infra_ao_sys1_devices

const struct apc_infra_peri_dom_4 infra_ao_sys1_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_infra_ao_apc(), and set_infra_ao_apc().

◆ infra_ao_sys2_devices

const struct apc_infra_peri_dom_4 infra_ao_sys2_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_infra_ao_apc(), and set_infra_ao_apc().

◆ peri2_ao_sys0_devices

const struct apc_infra_peri_dom_16 peri2_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_peri2_ao_apc(), and set_peri2_ao_apc().

◆ peri_ao_sys0_devices

const struct apc_infra_peri_dom_16 peri_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_peri_ao_apc(), and set_peri_ao_apc().

◆ peri_ao_sys1_devices

const struct apc_infra_peri_dom_8 peri_ao_sys1_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_peri_ao_apc(), and set_peri_ao_apc().

◆ peri_par_ao_sys0_devices

const struct apc_infra_peri_dom_16 peri_par_ao_sys0_devices[]
static

Definition at line 1 of file devapc.c.

Referenced by dump_peri_par_ao_apc(), and set_peri_par_ao_apc().