aos/devices/omap/omap44xx_dmm.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

1091 lines
57 KiB
Plaintext

/*
* Copyright (c) 2013 ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich,
* Attn: Systems Group.
*/
/*
* omap44xx_dmm.dev
*
* DESCRIPTION:
*
* NOTE: This file has been automatically generated based on the
* XML files extracted from the TI RDT v1.0.0.4p Tool.
* Download from here: http://www.ti.com/product/omap4460
* This means that the file might not be optimal in terms of naming
* conventions for constants and registers (duplicated
* namespaces in register and device name etc.).
* Also, because of the underlying structure from the original XML
* it's possible that some constants appear multiple times (if they
* have slightly different descriptions for example).
*
* You want to clean that up before using the files for the first time!
*/
device omap44xx_dmm msbfirst ( addr base ) "" {
register dmm_revision ro addr(base, 0x0) "DMM Revision Number" type(uint32);
register dmm_hwinfo addr(base, 0x4) "DMM hardware configuration" {
_ 12 mbz;
robin_cnt 4 ro "Number of ROBIN in the DMM";
_ 4 mbz;
ella_cnt 4 ro "Number of ELLA in the DMM";
_ 4 mbz;
tiler_cnt 4 ro "Number of TILER in the DMM";
};
register dmm_lisa_hwinfo addr(base, 0x8) "DMM hardware configuration for LISA" {
_ 20 mbz;
sdrc_cnt 4 ro "Number of attached SDRAM controllers";
_ 3 mbz;
section_cnt 5 ro "Number of DMM sections";
};
constants idle_mode_status width(2) "" {
IDLE_MODE_0 = 0 "Force-idle mode: local target's idle state follows (acknowledges) the system's idle requests unconditionally, that is, regardless of the IP module's internal requirements. Backup mode, for debug only.";
IDLE_MODE_1 = 1 "No-idle mode: local target never enters idle state. Backup mode, for debug only";
IDLE_MODE_3 = 3 "Reserved";
IDLE_MODE_2 = 2 "Smart-idle mode: local target's idle state eventually follows (acknowledges) the system's idle requests, depending on the IP module's internal requirements. IP module shall not generate (IRQ- or DMA-request-related) wake-up events.";
};
register dmm_sysconfig addr(base, 0x10) "DMM clock management configuration" {
_ 28 mbz;
idle_mode 2 rw type(idle_mode_status) "Configuration of the local target state management mode.";
_ 2 mbz;
};
constants lock_status width(1) "" {
LOCK_0_w = 0 "No effect (clear on reset only)";
LOCK_0_r = 0 "unlocked";
LOCK_1_r = 1 "locked";
LOCK_1_w = 1 "Locking registers";
};
register dmm_lisa_lock addr(base, 0x1C) "DMM memory mapping lock" {
_ 31 mbz;
lock 1 rw type(lock_status) "DMM lock map";
};
constants sys_size_status width(3) "" {
SYS_SIZE_0 = 0 "16-MB section";
SYS_SIZE_1 = 1 "32-MB section";
SYS_SIZE_2 = 2 "64-MB section";
SYS_SIZE_3 = 3 "128-MB section";
SYS_SIZE_4 = 4 "256-MB section";
SYS_SIZE_5 = 5 "512-MB section";
SYS_SIZE_6 = 6 "1-GB section";
SYS_SIZE_7 = 7 "2-GB section";
};
register dmm_lisa_map_i_0 addr(base, 0x40) "DMM memory mapping register" {
sys_addr 8 rw "DMM system section address MSB for view mapping i";
_ 1 mbz;
sys_size 3 rw type(sys_size_status) "DMM system section size for view mapping i";
sdrc_intl 2 rw "SDRAM controller interleaving mode 0x0: No interleaving 0x1: 128-byte interleaving 0x2: 256-byte interleaving 0x3: 512-byte interleaving The 128-/256-/512-byte interleaving applies only to nontiled regions. If accesses are made to tiled regions, interleaving is forced to 1kiB. SDRC_INTL is don't care if SDRC_MAP is not 0x3 (no interleaving).";
sdrc_addrspc 2 rw "SDRAM controller address space for view mapping i";
_ 6 mbz;
sdrc_map 2 rw "SDRAM controller mapping for view mapping i 0x0: Unmapped 0x1: Mapped on EMIF1 only (not interleaved) 0x2: Mapped on EMIF2 only (not interleaved) 0x3: Mapped on EMIF1 and EMIF2 (interleaved) To enable interleaving, SDRC_MAP must be 0x3 and SDRC_INTL must be a nonzero value.";
sdrc_addr 8 rw "SDRAM controller address MSB for view mapping i";
};
register dmm_lisa_map_i_1 addr(base, 0x44) "DMM memory mapping register" {
sys_addr 8 rw "DMM system section address MSB for view mapping i";
_ 1 mbz;
sys_size 3 rw type(sys_size_status) "DMM system section size for view mapping i";
sdrc_intl 2 rw "SDRAM controller interleaving mode 0x0: No interleaving 0x1: 128-byte interleaving 0x2: 256-byte interleaving 0x3: 512-byte interleaving The 128-/256-/512-byte interleaving applies only to nontiled regions. If accesses are made to tiled regions, interleaving is forced to 1kiB. SDRC_INTL is don't care if SDRC_MAP is not 0x3 (no interleaving).";
sdrc_addrspc 2 rw "SDRAM controller address space for view mapping i";
_ 6 mbz;
sdrc_map 2 rw "SDRAM controller mapping for view mapping i 0x0: Unmapped 0x1: Mapped on EMIF1 only (not interleaved) 0x2: Mapped on EMIF2 only (not interleaved) 0x3: Mapped on EMIF1 and EMIF2 (interleaved) To enable interleaving, SDRC_MAP must be 0x3 and SDRC_INTL must be a nonzero value.";
sdrc_addr 8 rw "SDRAM controller address MSB for view mapping i";
};
register dmm_lisa_map_i_2 addr(base, 0x48) "DMM memory mapping register" {
sys_addr 8 rw "DMM system section address MSB for view mapping i";
_ 1 mbz;
sys_size 3 rw type(sys_size_status) "DMM system section size for view mapping i";
sdrc_intl 2 rw "SDRAM controller interleaving mode 0x0: No interleaving 0x1: 128-byte interleaving 0x2: 256-byte interleaving 0x3: 512-byte interleaving The 128-/256-/512-byte interleaving applies only to nontiled regions. If accesses are made to tiled regions, interleaving is forced to 1kiB. SDRC_INTL is don't care if SDRC_MAP is not 0x3 (no interleaving).";
sdrc_addrspc 2 rw "SDRAM controller address space for view mapping i";
_ 6 mbz;
sdrc_map 2 rw "SDRAM controller mapping for view mapping i 0x0: Unmapped 0x1: Mapped on EMIF1 only (not interleaved) 0x2: Mapped on EMIF2 only (not interleaved) 0x3: Mapped on EMIF1 and EMIF2 (interleaved) To enable interleaving, SDRC_MAP must be 0x3 and SDRC_INTL must be a nonzero value.";
sdrc_addr 8 rw "SDRAM controller address MSB for view mapping i";
};
register dmm_lisa_map_i_3 addr(base, 0x4C) "DMM memory mapping register" {
sys_addr 8 rw "DMM system section address MSB for view mapping i";
_ 1 mbz;
sys_size 3 rw type(sys_size_status) "DMM system section size for view mapping i";
sdrc_intl 2 rw "SDRAM controller interleaving mode 0x0: No interleaving 0x1: 128-byte interleaving 0x2: 256-byte interleaving 0x3: 512-byte interleaving The 128-/256-/512-byte interleaving applies only to nontiled regions. If accesses are made to tiled regions, interleaving is forced to 1kiB. SDRC_INTL is don't care if SDRC_MAP is not 0x3 (no interleaving).";
sdrc_addrspc 2 rw "SDRAM controller address space for view mapping i";
_ 6 mbz;
sdrc_map 2 rw "SDRAM controller mapping for view mapping i 0x0: Unmapped 0x1: Mapped on EMIF1 only (not interleaved) 0x2: Mapped on EMIF2 only (not interleaved) 0x3: Mapped on EMIF1 and EMIF2 (interleaved) To enable interleaving, SDRC_MAP must be 0x3 and SDRC_INTL must be a nonzero value.";
sdrc_addr 8 rw "SDRAM controller address MSB for view mapping i";
};
constants or_cnt_status width(5) "" {
OR_CNT_1_r = 1 "One orientation entry";
OR_CNT_2_r = 2 "Two orientation entries";
OR_CNT_4_r = 4 "Four orientation entries";
OR_CNT_8_r = 8 "Eight orientation entries";
OR_CNT_16_r = 16 "Sixteen orientation entries";
};
register dmm_tiler_hwinfo addr(base, 0x208) "DMM hardware configuration for TILER" {
_ 27 mbz;
or_cnt 5 ro type(or_cnt_status) "Number of TILER orientation entries";
};
constants w7_status width(1) "" {
W7_0_w = 0 "OR7 field is unchanged";
W7_1_w = 1 "OR7 field is updated";
};
constants w6_status width(1) "" {
W6_0_w = 0 "OR6 field is unchanged";
W6_1_w = 1 "OR6 field is updated";
};
constants w5_status width(1) "" {
W5_0_w = 0 "OR5 field is unchanged";
W5_1_w = 1 "OR5 field is updated";
};
constants w4_status width(1) "" {
W4_0_w = 0 "OR4 field is unchanged";
W4_1_w = 1 "OR4 field is updated";
};
constants w3_status width(1) "" {
W3_0_w = 0 "OR3 field is unchanged";
W3_1_w = 1 "OR3 field is updated";
};
constants w2_status width(1) "" {
W2_0_w = 0 "OR2 field is unchanged";
W2_1_w = 1 "OR2 field is updated";
};
constants w1_status width(1) "" {
W1_0_w = 0 "OR1 field is unchanged";
W1_1_w = 1 "OR1 field is updated";
};
constants w0_status width(1) "" {
W0_0_w = 0 "OR0 field is unchanged";
W0_1_w = 1 "OR0 field is updated";
};
register dmm_tiler_or0 addr(base, 0x220) "DMM TILER orientation (initiators 0 to 7)" {
w7 1 rw type(w7_status) "Write-enable for OR7 bit field";
or7 3 rw "Orientation for initiator 7";
w6 1 rw type(w6_status) "Write-enable for OR6 bit field";
or6 3 rw "Orientation for initiator 6";
w5 1 rw type(w5_status) "Write-enable for OR5 bit field";
or5 3 rw "Orientation for initiator 5";
w4 1 rw type(w4_status) "Write-enable for OR4 bit field";
or4 3 rw "Orientation for initiator 4";
w3 1 rw type(w3_status) "Write-enable for OR3 bit field";
or3 3 rw "Orientation for initiator 3";
w2 1 rw type(w2_status) "Write-enable for OR2 bit field";
or2 3 rw "Orientation for initiator 2";
w1 1 rw type(w1_status) "Write-enable for OR1 bit field";
or1 3 rw "Orientation for initiator 1";
w0 1 rw type(w0_status) "Write-enable for OR0 bit field";
or0 3 rw "Orientation for initiator 0";
};
constants w15_status width(1) "" {
W15_0_w = 0 "OR15 field is unchanged";
W15_1_w = 1 "OR15 field is updated";
};
constants w14_status width(1) "" {
W14_0_w = 0 "OR14 field is unchanged";
W14_1_w = 1 "OR14 field is updated";
};
constants w13_status width(1) "" {
W13_0_w = 0 "OR13 field is unchanged";
W13_1_w = 1 "OR13 field is updated";
};
constants w12_status width(1) "" {
W12_0_w = 0 "OR12 field is unchanged";
W12_1_w = 1 "OR12 field is updated";
};
constants w11_status width(1) "" {
W11_0_w = 0 "OR11 field is unchanged";
W11_1_w = 1 "OR11 field is updated";
};
constants w10_status width(1) "" {
W10_0_w = 0 "OR10 field is unchanged";
W10_1_w = 1 "OR10 field is updated";
};
constants w9_status width(1) "" {
W9_0_w = 0 "OR9 field is unchanged";
W9_1_w = 1 "OR9 field is updated";
};
constants w8_status width(1) "" {
W8_0_w = 0 "OR8 field is unchanged";
W8_1_w = 1 "OR8 field is updated";
};
register dmm_tiler_or1 addr(base, 0x224) "DMM TILER orientation (initiators 8 to 15)" {
w15 1 rw type(w15_status) "Write-enable for OR15 bit field";
or15 3 rw "Orientation for initiator 15";
w14 1 rw type(w14_status) "Write-enable for OR14 bit field";
or14 3 rw "Orientation for initiator 14";
w13 1 rw type(w13_status) "Write-enable for OR13 bit field";
or13 3 rw "Orientation for initiator 13";
w12 1 rw type(w12_status) "Write-enable for OR12 bit field";
or12 3 rw "Orientation for initiator 12";
w11 1 rw type(w11_status) "Write-enable for OR11 bit field";
or11 3 rw "Orientation for initiator 11";
w10 1 rw type(w10_status) "Write-enable for OR10 bit field";
or10 3 rw "Orientation for initiator 10";
w9 1 rw type(w9_status) "Write-enable for OR9 bit field";
or9 3 rw "Orientation for initiator 9";
w8 1 rw type(w8_status) "Write-enable for OR8 bit field";
or8 3 rw "Orientation for initiator 8";
};
constants view_map_cnt_status width(4) "" {
VIEW_MAP_CNT_1_r = 1 "One view map";
VIEW_MAP_CNT_2_r = 2 "Two view maps";
VIEW_MAP_CNT_4_r = 4 "Four view maps";
VIEW_MAP_CNT_8_r = 8 "Eight view maps";
};
constants view_cnt_status width(7) "" {
VIEW_CNT_1_r = 1 "One view entry";
VIEW_CNT_2_r = 2 "Two view entries";
VIEW_CNT_4_r = 4 "Four view entries";
VIEW_CNT_8_r = 8 "Eight view entries";
VIEW_CNT_16_r = 16 "Sixteen view entries";
VIEW_CNT_32_r = 32 "Thirty-two view entries";
VIEW_CNT_64_r = 64 "Sixty-four view entries";
};
register dmm_pat_hwinfo addr(base, 0x408) "DMM hardware configuration for PAT" {
_ 3 mbz;
engine_cnt 5 ro "Number of PAT refill engines";
_ 3 mbz;
lut_cnt 5 ro "Number of PAT LUT for page-grained physical address translation";
_ 4 mbz;
view_map_cnt 4 ro type(view_map_cnt_status) "Number of internal PAT view mappings.";
_ 1 mbz;
view_cnt 7 ro type(view_cnt_status) "Number of PAT view entries";
};
constants cont_hght_status width(3) "" {
CONT_HGHT_1_r = 1 "Container height of 32 pages";
CONT_HGHT_2_r = 2 "Container height of 64 pages";
CONT_HGHT_4_r = 4 "Container height of 128 pages";
};
constants cont_wdth_status width(4) "" {
CONT_WDTH_2_r = 2 "Container width of 64 pages";
CONT_WDTH_4_r = 4 "Container width of 128 pages";
CONT_WDTH_8_r = 8 "Container width of 256 pages";
};
constants addr_range_status width(6) "" {
ADDR_RANGE_1_r = 1 "128-MB range";
ADDR_RANGE_2_r = 2 "256-MB range";
ADDR_RANGE_4_r = 4 "512-MB range";
ADDR_RANGE_8_r = 8 "1-GB range";
ADDR_RANGE_16_r = 16 "2-GB range";
ADDR_RANGE_32_r = 32 "4-GB range";
};
constants page_sz_status width(5) "" {
PAGE_SZ_1_r = 1 "4-KB page";
PAGE_SZ_4_r = 4 "16-KB page";
PAGE_SZ_16_r = 16 "64-KB page";
};
register dmm_pat_geometry addr(base, 0x40C) "PAT geometry-related settings" {
_ 5 mbz;
cont_hght 3 ro type(cont_hght_status) "Container height in pages";
_ 4 mbz;
cont_wdth 4 ro type(cont_wdth_status) "Container width in pages";
_ 2 mbz;
addr_range 6 ro type(addr_range_status) "PAT output physical address range";
_ 3 mbz;
page_sz 5 ro type(page_sz_status) "Page size in 4-KB granularity";
};
constants mode3_status width(1) "" {
MODE3_0 = 0 "Normal mode";
MODE3_1 = 1 "Direct LUT access";
};
register dmm_pat_config addr(base, 0x410) "This is the PAT configuration register aimed at defining the major PAT configuration of each refill engine." {
_ 28 mbz;
mode3 1 rw type(mode3_status) "Mode of refill engine 3";
mode2 1 rw type(mode3_status) "Mode of refill engine 2";
mode1 1 rw type(mode3_status) "Mode of refill engine 1";
mode0 1 rw type(mode3_status) "Mode of refill engine 0";
};
constants w7_status1 width(1) "" {
W7_0_w_1 = 0 "V7 field is unchanged";
W7_1_w_1 = 1 "V7 field is updated";
};
constants w6_status1 width(1) "" {
W6_0_w_1 = 0 "V6 field is unchanged";
W6_1_w_1 = 1 "V6 field is updated";
};
constants w5_status1 width(1) "" {
W5_0_w_1 = 0 "V5 field is unchanged";
W5_1_w_1 = 1 "V5 field is updated";
};
constants w4_status1 width(1) "" {
W4_0_w_1 = 0 "V4 field is unchanged";
W4_1_w_1 = 1 "V4 field is updated";
};
constants w3_status1 width(1) "" {
W3_0_w_1 = 0 "V3 field is unchanged";
W3_1_w_1 = 1 "V3 field is updated";
};
constants w2_status1 width(1) "" {
W2_0_w_1 = 0 "V2 field is unchanged";
W2_1_w_1 = 1 "V2 field is updated";
};
constants w1_status1 width(1) "" {
W1_0_w_1 = 0 "V1 field is unchanged";
W1_1_w_1 = 1 "V1 field is updated";
};
constants w0_status1 width(1) "" {
W0_0_w_1 = 0 "V0 field is unchanged";
W0_1_w_1 = 1 "V0 field is updated";
};
register dmm_pat_view0 addr(base, 0x420) "DMM PAT View register (initiators 0 to 7)" {
w7 1 rw type(w7_status1) "Write-enable for V7 bit field";
_ 1 mbz;
v7 2 rw "PAT view for initiator 7";
w6 1 rw type(w6_status1) "Write-enable for V6 bit field";
_ 1 mbz;
v6 2 rw "PAT view for initiator 6";
w5 1 rw type(w5_status1) "Write-enable for V5 bit field";
_ 1 mbz;
v5 2 rw "PAT view for initiator 5";
w4 1 rw type(w4_status1) "Write-enable for V4 bit field";
_ 1 mbz;
v4 2 rw "PAT view for initiator 4";
w3 1 rw type(w3_status1) "Write-enable for V3 bit field";
_ 1 mbz;
v3 2 rw "PAT view for initiator 3";
w2 1 rw type(w2_status1) "Write-enable for V2 bit field";
_ 1 mbz;
v2 2 rw "PAT view for initiator 2";
w1 1 rw type(w1_status1) "Write-enable for V1 bit field";
_ 1 mbz;
v1 2 rw "PAT view for initiator 1";
w0 1 rw type(w0_status1) "Write-enable for V0 bit field";
_ 1 mbz;
v0 2 rw "PAT view for initiator 0";
};
constants w15_status1 width(1) "" {
W15_0_w_1 = 0 "V15 field is unchanged";
W15_1_w_1 = 1 "V15 field is updated";
};
constants w14_status1 width(1) "" {
W14_0_w_1 = 0 "V14 field is unchanged";
W14_1_w_1 = 1 "V14 field is updated";
};
constants w13_status1 width(1) "" {
W13_0_w_1 = 0 "V13 field is unchanged";
W13_1_w_1 = 1 "V13 field is updated";
};
constants w12_status1 width(1) "" {
W12_0_w_1 = 0 "V12 field is unchanged";
W12_1_w_1 = 1 "V12 field is updated";
};
constants w11_status1 width(1) "" {
W11_0_w_1 = 0 "V11 field is unchanged";
W11_1_w_1 = 1 "V11 field is updated";
};
constants w10_status1 width(1) "" {
W10_0_w_1 = 0 "V10 field is unchanged";
W10_1_w_1 = 1 "V10 field is updated";
};
constants w9_status1 width(1) "" {
W9_0_w_1 = 0 "V9 field is unchanged";
W9_1_w_1 = 1 "V9 field is updated";
};
constants w8_status1 width(1) "" {
W8_0_w_1 = 0 "V8 field is unchanged";
W8_1_w_1 = 1 "V8 field is updated";
};
register dmm_pat_view1 addr(base, 0x424) "DMM PAT view register (initiators 8 to 15)" {
w15 1 rw type(w15_status1) "Write-enable for V15 bit field";
_ 1 mbz;
v15 2 rw "PAT view for initiator 15";
w14 1 rw type(w14_status1) "Write-enable for V14 bit field";
_ 1 mbz;
v14 2 rw "PAT view for initiator 14";
w13 1 rw type(w13_status1) "Write-enable for V13 bit field";
_ 1 mbz;
v13 2 rw "PAT view for initiator 13";
w12 1 rw type(w12_status1) "Write-enable for V12 bit field";
_ 1 mbz;
v12 2 rw "PAT view for initiator 12";
w11 1 rw type(w11_status1) "Write-enable for V11 bit field";
_ 1 mbz;
v11 2 rw "PAT view for initiator 11";
w10 1 rw type(w10_status1) "Write-enable for V10 bit field";
_ 1 mbz;
v10 2 rw "PAT view for initiator 10";
w9 1 rw type(w9_status1) "Write-enable for V9 bit field";
_ 1 mbz;
v9 2 rw "PAT view for initiator 9";
w8 1 rw type(w8_status1) "Write-enable for V8 bit field";
_ 1 mbz;
v8 2 rw "PAT view for initiator 8";
};
constants access_page_status width(1) "" {
ACCESS_PAGE_0 = 0 "Direct access, container base address given in CONT_PAGE";
ACCESS_PAGE_1 = 1 "Indirect access through the LUT indexed by CONT_PAGE";
};
constants access_32_status width(1) "" {
ACCESS_32_0 = 0 "Direct access, container base address given in CONT_32";
ACCESS_32_1 = 1 "Indirect access through the LUT indexed by CONT_32";
};
constants access_16_status width(1) "" {
ACCESS_16_0 = 0 "Direct access, container base address given in CONT_16";
ACCESS_16_1 = 1 "Indirect access through the LUT indexed by CONT_16";
};
constants access_8_status width(1) "" {
ACCESS_8_0 = 0 "Direct access, container base address given in CONT_8";
ACCESS_8_1 = 1 "Indirect access through the LUT indexed by CONT_8";
};
register dmm_pat_view_map_i_0 addr(base, 0x440) "PAT view mapping register" {
access_page 1 rw type(access_page_status) "Kind of access for this page mode container in view mapping i";
_ 3 mbz;
cont_page 4 rw "Container for page mode in view mapping i";
access_32 1 rw type(access_32_status) "Kind of access for this 32-bit mode container in view mapping i";
_ 3 mbz;
cont_32 4 rw "Container for 32-bit mode in view mapping i";
access_16 1 rw type(access_16_status) "Kind of access for this 16-bit mode container in view mapping i";
_ 3 mbz;
cont_16 4 rw "Container for 16-bit mode in view mapping i";
access_8 1 rw type(access_8_status) "Kind of access for this 8-bit mode container in view mapping i";
_ 3 mbz;
cont_8 4 rw "Container for 8-bit mode in view mapping i";
};
register dmm_pat_view_map_i_1 addr(base, 0x444) "PAT view mapping register" {
access_page 1 rw type(access_page_status) "Kind of access for this page mode container in view mapping i";
_ 3 mbz;
cont_page 4 rw "Container for page mode in view mapping i";
access_32 1 rw type(access_32_status) "Kind of access for this 32-bit mode container in view mapping i";
_ 3 mbz;
cont_32 4 rw "Container for 32-bit mode in view mapping i";
access_16 1 rw type(access_16_status) "Kind of access for this 16-bit mode container in view mapping i";
_ 3 mbz;
cont_16 4 rw "Container for 16-bit mode in view mapping i";
access_8 1 rw type(access_8_status) "Kind of access for this 8-bit mode container in view mapping i";
_ 3 mbz;
cont_8 4 rw "Container for 8-bit mode in view mapping i";
};
register dmm_pat_view_map_i_2 addr(base, 0x448) "PAT view mapping register" {
access_page 1 rw type(access_page_status) "Kind of access for this page mode container in view mapping i";
_ 3 mbz;
cont_page 4 rw "Container for page mode in view mapping i";
access_32 1 rw type(access_32_status) "Kind of access for this 32-bit mode container in view mapping i";
_ 3 mbz;
cont_32 4 rw "Container for 32-bit mode in view mapping i";
access_16 1 rw type(access_16_status) "Kind of access for this 16-bit mode container in view mapping i";
_ 3 mbz;
cont_16 4 rw "Container for 16-bit mode in view mapping i";
access_8 1 rw type(access_8_status) "Kind of access for this 8-bit mode container in view mapping i";
_ 3 mbz;
cont_8 4 rw "Container for 8-bit mode in view mapping i";
};
register dmm_pat_view_map_i_3 addr(base, 0x44C) "PAT view mapping register" {
access_page 1 rw type(access_page_status) "Kind of access for this page mode container in view mapping i";
_ 3 mbz;
cont_page 4 rw "Container for page mode in view mapping i";
access_32 1 rw type(access_32_status) "Kind of access for this 32-bit mode container in view mapping i";
_ 3 mbz;
cont_32 4 rw "Container for 32-bit mode in view mapping i";
access_16 1 rw type(access_16_status) "Kind of access for this 16-bit mode container in view mapping i";
_ 3 mbz;
cont_16 4 rw "Container for 16-bit mode in view mapping i";
access_8 1 rw type(access_8_status) "Kind of access for this 8-bit mode container in view mapping i";
_ 3 mbz;
cont_8 4 rw "Container for 8-bit mode in view mapping i";
};
register dmm_pat_view_map_base addr(base, 0x460) "Base address of all view mappings" {
base_addr 1 rw "MSB of the PAT view mapping base address";
_ 31 mbz;
};
constants err_lut_miss1_status width(1) "" {
ERR_LUT_MISS1_0_w = 0 "Keep current error event";
ERR_LUT_MISS1_0_r = 0 "No such error event";
ERR_LUT_MISS1_1_r = 1 "Error event happened";
ERR_LUT_MISS1_1_w = 1 "Set error event";
};
constants fill_lst1_status width(1) "" {
FILL_LST1_0_w = 0 "Keep area 1 refill done event";
FILL_LST1_0_r = 0 "Area 1 is yet-to-be refilled";
FILL_LST1_1_r = 1 "Area 1 is refilled";
FILL_LST1_1_w = 1 "Set area 1 refill done event";
};
constants fill_lst0_status width(1) "" {
FILL_LST0_0_w = 0 "Keep area 0 refill done event";
FILL_LST0_0_r = 0 "Area 0 is yet-to-be refilled";
FILL_LST0_1_r = 1 "Area 0 is refilled";
FILL_LST0_1_w = 1 "Set area 0 refill done event";
};
register dmm_pat_irqstatus_raw addr(base, 0x480) "Per-event raw interrupt status vector. Raw status is set even if the related event is not enabled. Write 1 to set the (raw) status, mostly for debug. n = 0 for the first interrupt status raw register, n = 1 for the second interrupt status raw register." {
_ 16 mbz;
err_lut_miss1 1 rw type(err_lut_miss1_status) "Access to a yet-to-be-refilled area event in area 4.n+1";
err_upd_data1 1 rw type(err_lut_miss1_status) "Data register update while refilling error event in area 4.n+1";
err_upd_ctrl1 1 rw type(err_lut_miss1_status) "Control register update while refilling error event in area 4.n+1";
err_upd_area1 1 rw type(err_lut_miss1_status) "Area register update while refilling error event in area 4.n+1";
err_inv_data1 1 rw type(err_lut_miss1_status) "Invalid entry-table pointer error event in area 4.n+1";
err_inv_dsc1 1 rw type(err_lut_miss1_status) "Invalid descriptor pointer error event in area 4.n+1";
fill_lst1 1 rw type(fill_lst1_status) "End of refill event for the last descriptor in area 4.n+1";
fill_dsc1 1 rw type(fill_lst1_status) "End of refill event for any descriptor in area 4.n+1";
err_lut_miss0 1 rw type(err_lut_miss1_status) "Access to a yet-to-be-refilled area event in area 4.n";
err_upd_data0 1 rw type(err_lut_miss1_status) "Data register update while refilling error event in area 4.n";
err_upd_ctrl0 1 rw type(err_lut_miss1_status) "Control register update while refilling error event in area 4.n";
err_upd_area0 1 rw type(err_lut_miss1_status) "Area register update while refilling error event in area 4.n";
err_inv_data0 1 rw type(err_lut_miss1_status) "Invalid entry-table pointer error event in area 4.n";
err_inv_dsc0 1 rw type(err_lut_miss1_status) "Invalid descriptor pointer error event in area 4.n";
fill_lst0 1 rw type(fill_lst0_status) "End of refill event for the last descriptor in area 4.n";
fill_dsc0 1 rw type(fill_lst0_status) "End of refill event for any descriptor in area 4.n";
};
constants err_lut_miss1_status1 width(1) "" {
ERR_LUT_MISS1_0_w_1 = 0 "Keep current maskable error event";
ERR_LUT_MISS1_0_r_1 = 0 "No such error event or this event is masked";
ERR_LUT_MISS1_1_r_1 = 1 "Error event happened";
ERR_LUT_MISS1_1_w_1 = 1 "Clear this maskable error event";
};
constants fill_lst1_status1 width(1) "" {
FILL_LST1_0_w_1 = 0 "Keep current area refill done maskable event";
FILL_LST1_0_r_1 = 0 "Current area is yet-to-be refilled or this event is masked";
FILL_LST1_1_r_1 = 1 "Current area is refilled";
FILL_LST1_1_w_1 = 1 "Clear current area refill done maskable event";
};
register dmm_pat_irqstatus addr(base, 0x490) "Per-event 'enabled' interrupt status vector. Enabled status is not set unless the event is enabled. Write 1 to clear the status after interrupt has been serviced (raw status gets cleared, that is, even if not enabled). n = 0 for the first interrupt status register, n = 1 for the second interrupt status register." {
_ 16 mbz;
err_lut_miss1 1 rw1c type(err_lut_miss1_status1) "Access to a yet-to-be-refilled area event in area 4.n+1";
err_upd_data1 1 rw1c type(err_lut_miss1_status1) "Data register update while refilling error event in area 4.n+1";
err_upd_ctrl1 1 rw1c type(err_lut_miss1_status1) "Control register update while refilling error event in area 4.n+1";
err_upd_area1 1 rw1c type(err_lut_miss1_status1) "Area register update while refilling error event in area 4.n+1";
err_inv_data1 1 rw1c type(err_lut_miss1_status1) "Invalid entry-table pointer error event in area 4.n+1";
err_inv_dsc1 1 rw1c type(err_lut_miss1_status1) "Invalid descriptor pointer error event in area 4.n+1";
fill_lst1 1 rw1c type(fill_lst1_status1) "End of refill event for the last descriptor in area 4.n+1";
fill_dsc1 1 rw1c type(fill_lst1_status1) "End of refill event for any descriptor in area 4.n+1";
err_lut_miss0 1 rw1c type(err_lut_miss1_status1) "Access to a yet-to-be-refilled area event in area 4.n";
err_upd_data0 1 rw1c type(err_lut_miss1_status1) "Data register update while refilling error event in area 4.n";
err_upd_ctrl0 1 rw1c type(err_lut_miss1_status1) "Control register update while refilling error event in area 4.n";
err_upd_area0 1 rw1c type(err_lut_miss1_status1) "Area register update while refilling error event in area 4.n";
err_inv_data0 1 rw1c type(err_lut_miss1_status1) "Invalid entry-table pointer error event in area 4.n";
err_inv_dsc0 1 rw1c type(err_lut_miss1_status1) "Invalid descriptor pointer error event in area 4.n";
fill_lst0 1 rw1c type(fill_lst1_status1) "End of refill event for the last descriptor in area 4.n";
fill_dsc0 1 rw1c type(fill_lst1_status1) "End of refill event for any descriptor in area 4.n";
};
constants err_lut_miss1_status2 width(1) "" {
ERR_LUT_MISS1_0_w_2 = 0 "Keep current mask of this interrupt source";
ERR_LUT_MISS1_0_r_2 = 0 "This interrupt source is disabled (masked)";
ERR_LUT_MISS1_1_r_2 = 1 "This interrupt source is enabled (unmasked)";
ERR_LUT_MISS1_1_w_2 = 1 "Enable (unmask) this interrupt source";
};
register dmm_pat_irqenable_set addr(base, 0x4A0) "Per-event interrupt enable bit vector. Write 1 to set (enable interrupt). Readout equal to corresponding _CLR register. n = 0 for the first interrupt enable set register, n = 1 for the second interrupt enable set register." {
_ 16 mbz;
err_lut_miss1 1 rw type(err_lut_miss1_status2) "Unexpected access to a yet-to-be-refilled area interrupt source mask for area 4.n+1";
err_upd_data1 1 rw type(err_lut_miss1_status2) "Unexpected data register update while refilling interrupt source mask for area 4.n+1";
err_upd_ctrl1 1 rw type(err_lut_miss1_status2) "Unexpected control register update while refilling interrupt source mask for area 4.n+1";
err_upd_area1 1 rw type(err_lut_miss1_status2) "Unexpected area register update while refilling interrupt source mask for area 4.n+1";
err_inv_data1 1 rw type(err_lut_miss1_status2) "Invalid entry-table pointer interrupt source mask for area 4.n+1";
err_inv_dsc1 1 rw type(err_lut_miss1_status2) "Invalid descriptor pointer interrupt source mask for area 4.n+1";
fill_lst1 1 rw type(err_lut_miss1_status2) "End of refill interrupt source mask for the last descriptor in area 4.n+1";
fill_dsc1 1 rw type(err_lut_miss1_status2) "End of refill interrupt source mask for any descriptor in area 4.n+1";
err_lut_miss0 1 rw type(err_lut_miss1_status2) "Unexpected access to a yet-to-be-refilled area interrupt source mask for area 4.n";
err_upd_data0 1 rw type(err_lut_miss1_status2) "Unexpected data register update while refilling interrupt source mask for area 4.n";
err_upd_ctrl0 1 rw type(err_lut_miss1_status2) "Unexpected control register update while refilling interrupt source mask for area 4.n";
err_upd_area0 1 rw type(err_lut_miss1_status2) "Unexpected area register update while refilling interrupt source mask for area 4.n";
err_inv_data0 1 rw type(err_lut_miss1_status2) "Invalid entry-table pointer interrupt source mask for area 4.n";
err_inv_dsc0 1 rw type(err_lut_miss1_status2) "Invalid descriptor pointer interrupt source mask for area 4.n";
fill_lst0 1 rw type(err_lut_miss1_status2) "End of refill interrupt source mask for the last descriptor in area 4.n";
fill_dsc0 1 rw type(err_lut_miss1_status2) "End of refill interrupt source mask for any descriptor in area 4.n";
};
constants err_lut_miss1_status3 width(1) "" {
ERR_LUT_MISS1_0_w_3 = 0 "Keep current mask of this interrupt source";
ERR_LUT_MISS1_0_r_3 = 0 "This interrupt source is disabled (masked)";
ERR_LUT_MISS1_1_r_3 = 1 "This interrupt source is enabled (unmasked)";
ERR_LUT_MISS1_1_w_3 = 1 "Disable (mask) this interrupt source";
};
register dmm_pat_irqenable_clr addr(base, 0x4B0) "Per-event interrupt enable bit vector. Write 1 to clear (disable interrupt). Readout equal to corresponding _SET register. n = 0 for the first interrupt enable clear register, n = 1 for the second interrupt enable clear register." {
_ 16 mbz;
err_lut_miss1 1 rw1c type(err_lut_miss1_status3) "Unexpected access to a yet-to-be-refilled area interrupt source mask for area 4.n+1";
err_upd_data1 1 rw1c type(err_lut_miss1_status3) "Unexpected data register update while refilling interrupt source mask for area 4.n+1";
err_upd_ctrl1 1 rw1c type(err_lut_miss1_status3) "Unexpected control register update while refilling interrupt source mask for area 4.n+1";
err_upd_area1 1 rw1c type(err_lut_miss1_status3) "Unexpected area register update while refilling interrupt source mask for area 4.n+1";
err_inv_data1 1 rw1c type(err_lut_miss1_status3) "Invalid entry-table pointer interrupt source mask for area 4.n+1";
err_inv_dsc1 1 rw1c type(err_lut_miss1_status3) "Invalid descriptor pointer interrupt source mask for area 4.n+1";
fill_lst1 1 rw1c type(err_lut_miss1_status3) "End of refill interrupt source mask for the last descriptor in area 4.n+1";
fill_dsc1 1 rw1c type(err_lut_miss1_status3) "End of refill interrupt source mask for any descriptor in area 4.n+1";
err_lut_miss0 1 rw1c type(err_lut_miss1_status3) "Unexpected access to a yet-to-be-refilled area interrupt source mask for area 4.n";
err_upd_data0 1 rw1c type(err_lut_miss1_status3) "Unexpected data register update while refilling interrupt source mask for area 4.n";
err_upd_ctrl0 1 rw1c type(err_lut_miss1_status3) "Unexpected control register update while refilling interrupt source mask for area 4.n";
err_upd_area0 1 rw1c type(err_lut_miss1_status3) "Unexpected area register update while refilling interrupt source mask for area 4.n";
err_inv_data0 1 rw1c type(err_lut_miss1_status3) "Invalid entry-table pointer interrupt source mask for area 4.n";
err_inv_dsc0 1 rw1c type(err_lut_miss1_status3) "Invalid descriptor pointer interrupt source mask for area 4.n";
fill_lst0 1 rw1c type(err_lut_miss1_status3) "End of refill interrupt source mask for the last descriptor in area 4.n";
fill_dsc0 1 rw1c type(err_lut_miss1_status3) "End of refill interrupt source mask for any descriptor in area 4.n";
};
constants error_status width(6) "" {
ERROR_0_r = 0 "No error";
ERROR_1_r = 1 "Invalid descriptor provided";
ERROR_2_r = 2 "Invalid data pointer provided";
ERROR_4_r = 4 "Unexpected area register update while refilling";
ERROR_8_r = 8 "Unexpected control register update while refilling";
ERROR_16_r = 16 "Unexpected data register update while refilling";
ERROR_32_r = 32 "Unexpected access to a yet-to-be-refilled location";
};
register dmm_pat_status_i_0 addr(base, 0x4C0) "Status register for each refill engine n = 0 for the first engine status register, n = 1 for the second engine status register." {
_ 7 mbz;
cnt 9 ro "Counter of remaining lines to reload for engine n";
error 6 ro type(error_status) "Error happened in engine n";
_ 2 mbz;
bypassed 1 ro "Engine n is bypassed. Direct access to the LUT is provided.";
_ 2 mbz;
linked 1 ro "Area reconfiguration link asserted for engine n";
done 1 ro "Area reloading finished for engine n";
run 1 ro "Area currently reloading for engine n";
valid 1 ro "Valid area description for engine n";
ready 1 ro "Area registers ready for engine n";
};
register dmm_pat_status_i_1 addr(base, 0x4C4) "Status register for each refill engine n = 0 for the first engine status register, n = 1 for the second engine status register." {
_ 7 mbz;
cnt 9 ro "Counter of remaining lines to reload for engine n";
error 6 ro type(error_status) "Error happened in engine n";
_ 2 mbz;
bypassed 1 ro "Engine n is bypassed. Direct access to the LUT is provided.";
_ 2 mbz;
linked 1 ro "Area reconfiguration link asserted for engine n";
done 1 ro "Area reloading finished for engine n";
run 1 ro "Area currently reloading for engine n";
valid 1 ro "Valid area description for engine n";
ready 1 ro "Area registers ready for engine n";
};
register dmm_pat_status_i_2 addr(base, 0x4C8) "Status register for each refill engine n = 0 for the first engine status register, n = 1 for the second engine status register." {
_ 7 mbz;
cnt 9 ro "Counter of remaining lines to reload for engine n";
error 6 ro type(error_status) "Error happened in engine n";
_ 2 mbz;
bypassed 1 ro "Engine n is bypassed. Direct access to the LUT is provided.";
_ 2 mbz;
linked 1 ro "Area reconfiguration link asserted for engine n";
done 1 ro "Area reloading finished for engine n";
run 1 ro "Area currently reloading for engine n";
valid 1 ro "Valid area description for engine n";
ready 1 ro "Area registers ready for engine n";
};
register dmm_pat_status_i_3 addr(base, 0x4CC) "Status register for each refill engine n = 0 for the first engine status register, n = 1 for the second engine status register." {
_ 7 mbz;
cnt 9 ro "Counter of remaining lines to reload for engine n";
error 6 ro type(error_status) "Error happened in engine n";
_ 2 mbz;
bypassed 1 ro "Engine n is bypassed. Direct access to the LUT is provided.";
_ 2 mbz;
linked 1 ro "Area reconfiguration link asserted for engine n";
done 1 ro "Area reloading finished for engine n";
run 1 ro "Area currently reloading for engine n";
valid 1 ro "Valid area description for engine n";
ready 1 ro "Area registers ready for engine n";
};
register dmm_pat_descr_i_0 addr(base, 0x500) "Physical address of the next table refill descriptor n = 0 for the descriptor register of the first engine, n = 1 for the descriptor register of the second engine. Writing to this register aborts the current ongoing area reload and resets the corresponding DMM_PAT_AREA__x, DMM_PAT_CTRL__x and DMM_PAT_DATA__x registers." {
addr 28 rw "Physical address of the next table refill descriptor of engine n";
_ 4 mbz;
};
register dmm_pat_descr_i_1 addr(base, 0x510) "Physical address of the next table refill descriptor n = 0 for the descriptor register of the first engine, n = 1 for the descriptor register of the second engine. Writing to this register aborts the current ongoing area reload and resets the corresponding DMM_PAT_AREA__x, DMM_PAT_CTRL__x and DMM_PAT_DATA__x registers." {
addr 28 rw "Physical address of the next table refill descriptor of engine n";
_ 4 mbz;
};
register dmm_pat_descr_i_2 addr(base, 0x520) "Physical address of the next table refill descriptor n = 0 for the descriptor register of the first engine, n = 1 for the descriptor register of the second engine. Writing to this register aborts the current ongoing area reload and resets the corresponding DMM_PAT_AREA__x, DMM_PAT_CTRL__x and DMM_PAT_DATA__x registers." {
addr 28 rw "Physical address of the next table refill descriptor of engine n";
_ 4 mbz;
};
register dmm_pat_descr_i_3 addr(base, 0x530) "Physical address of the next table refill descriptor n = 0 for the descriptor register of the first engine, n = 1 for the descriptor register of the second engine. Writing to this register aborts the current ongoing area reload and resets the corresponding DMM_PAT_AREA__x, DMM_PAT_CTRL__x and DMM_PAT_DATA__x registers." {
addr 28 rw "Physical address of the next table refill descriptor of engine n";
_ 4 mbz;
};
register dmm_pat_area_i_0 addr(base, 0x504) "Area definition for DMM physical address translator n = 0 for the area register of the first engine, n = 1 for the area register of the second engine." {
_ 1 mbz;
y1 7 rw "Y-coordinate of the bottom-right corner of the PAT area for engine n";
x1 8 rw "X-coordinate of the bottom-right corner of the PAT area for engine n";
_ 1 mbz;
y0 7 rw "Y-coordinate of the top-left corner of the PAT area for engine n";
x0 8 rw "X-coordinate of the top-left corner of the PAT area for engine n";
};
register dmm_pat_area_i_1 addr(base, 0x514) "Area definition for DMM physical address translator n = 0 for the area register of the first engine, n = 1 for the area register of the second engine." {
_ 1 mbz;
y1 7 rw "Y-coordinate of the bottom-right corner of the PAT area for engine n";
x1 8 rw "X-coordinate of the bottom-right corner of the PAT area for engine n";
_ 1 mbz;
y0 7 rw "Y-coordinate of the top-left corner of the PAT area for engine n";
x0 8 rw "X-coordinate of the top-left corner of the PAT area for engine n";
};
register dmm_pat_area_i_2 addr(base, 0x524) "Area definition for DMM physical address translator n = 0 for the area register of the first engine, n = 1 for the area register of the second engine." {
_ 1 mbz;
y1 7 rw "Y-coordinate of the bottom-right corner of the PAT area for engine n";
x1 8 rw "X-coordinate of the bottom-right corner of the PAT area for engine n";
_ 1 mbz;
y0 7 rw "Y-coordinate of the top-left corner of the PAT area for engine n";
x0 8 rw "X-coordinate of the top-left corner of the PAT area for engine n";
};
register dmm_pat_area_i_3 addr(base, 0x534) "Area definition for DMM physical address translator n = 0 for the area register of the first engine, n = 1 for the area register of the second engine." {
_ 1 mbz;
y1 7 rw "Y-coordinate of the bottom-right corner of the PAT area for engine n";
x1 8 rw "X-coordinate of the bottom-right corner of the PAT area for engine n";
_ 1 mbz;
y0 7 rw "Y-coordinate of the top-left corner of the PAT area for engine n";
x0 8 rw "X-coordinate of the top-left corner of the PAT area for engine n";
};
constants sync_status width(1) "" {
SYNC_0 = 0 "Not synchronized";
SYNC_1 = 1 "Synchronized";
};
register dmm_pat_ctrl_i_0 addr(base, 0x508) "DMM physical address translator control register n = 0 for the control register of the first engine, n = 1 for the control register of the second engine." {
initiator 4 rw "DMM PAT initiator for synchronization in engine n";
_ 11 mbz;
sync 1 rw type(sync_status) "DMM PAT table reload synchronization for engine n";
_ 9 mbz;
direction 3 rw "Direction of this PAT table refill for engine n";
_ 3 mbz;
start 1 rw "Starting a PAT table refill with engine n";
};
register dmm_pat_ctrl_i_1 addr(base, 0x518) "DMM physical address translator control register n = 0 for the control register of the first engine, n = 1 for the control register of the second engine." {
initiator 4 rw "DMM PAT initiator for synchronization in engine n";
_ 11 mbz;
sync 1 rw type(sync_status) "DMM PAT table reload synchronization for engine n";
_ 9 mbz;
direction 3 rw "Direction of this PAT table refill for engine n";
_ 3 mbz;
start 1 rw "Starting a PAT table refill with engine n";
};
register dmm_pat_ctrl_i_2 addr(base, 0x528) "DMM physical address translator control register n = 0 for the control register of the first engine, n = 1 for the control register of the second engine." {
initiator 4 rw "DMM PAT initiator for synchronization in engine n";
_ 11 mbz;
sync 1 rw type(sync_status) "DMM PAT table reload synchronization for engine n";
_ 9 mbz;
direction 3 rw "Direction of this PAT table refill for engine n";
_ 3 mbz;
start 1 rw "Starting a PAT table refill with engine n";
};
register dmm_pat_ctrl_i_3 addr(base, 0x538) "DMM physical address translator control register n = 0 for the control register of the first engine, n = 1 for the control register of the second engine." {
initiator 4 rw "DMM PAT initiator for synchronization in engine n";
_ 11 mbz;
sync 1 rw type(sync_status) "DMM PAT table reload synchronization for engine n";
_ 9 mbz;
direction 3 rw "Direction of this PAT table refill for engine n";
_ 3 mbz;
start 1 rw "Starting a PAT table refill with engine n";
};
register dmm_pat_data_i_0 addr(base, 0x50C) "Physical address of the current table refill entry data n = 0 for the data register of the first engine, n = 1 for the data register of the second engine." {
addr 28 rw "Physical address of the current table refill entry data or single actual entry data when in manual mode for engine n";
_ 4 mbz;
};
register dmm_pat_data_i_1 addr(base, 0x51C) "Physical address of the current table refill entry data n = 0 for the data register of the first engine, n = 1 for the data register of the second engine." {
addr 28 rw "Physical address of the current table refill entry data or single actual entry data when in manual mode for engine n";
_ 4 mbz;
};
register dmm_pat_data_i_2 addr(base, 0x52C) "Physical address of the current table refill entry data n = 0 for the data register of the first engine, n = 1 for the data register of the second engine." {
addr 28 rw "Physical address of the current table refill entry data or single actual entry data when in manual mode for engine n";
_ 4 mbz;
};
register dmm_pat_data_i_3 addr(base, 0x53C) "Physical address of the current table refill entry data n = 0 for the data register of the first engine, n = 1 for the data register of the second engine." {
addr 28 rw "Physical address of the current table refill entry data or single actual entry data when in manual mode for engine n";
_ 4 mbz;
};
constants prio_cnt_status width(7) "" {
PRIO_CNT_1_r = 1 "One priority entry";
PRIO_CNT_2_r = 2 "Two priority entries";
PRIO_CNT_4_r = 4 "Four priority entries";
PRIO_CNT_8_r = 8 "Eight priority entries";
PRIO_CNT_16_r = 16 "Sixteen priority entries";
PRIO_CNT_32_r = 32 "Thirty-two priority entries";
PRIO_CNT_64_r = 64 "Sixty-four priority entries";
};
register dmm_peg_hwinfo addr(base, 0x608) "DMM hardware configuration for PEG" {
_ 25 mbz;
prio_cnt 7 ro type(prio_cnt_status) "Number of PEG priority entries";
};
constants w7_status2 width(1) "" {
W7_0_w_2 = 0 "P7 field is unchanged";
W7_1_w_2 = 1 "P7 field is updated";
};
constants w6_status2 width(1) "" {
W6_0_w_2 = 0 "P6 field is unchanged";
W6_1_w_2 = 1 "P6 field is updated";
};
constants w5_status2 width(1) "" {
W5_0_w_2 = 0 "P5 field is unchanged";
W5_1_w_2 = 1 "P5 field is updated";
};
constants w4_status2 width(1) "" {
W4_0_w_2 = 0 "P4 field is unchanged";
W4_1_w_2 = 1 "P4 field is updated";
};
constants w3_status2 width(1) "" {
W3_0_w_2 = 0 "P3 field is unchanged";
W3_1_w_2 = 1 "P3 field is updated";
};
constants w2_status2 width(1) "" {
W2_0_w_2 = 0 "P2 field is unchanged";
W2_1_w_2 = 1 "P2 field is updated";
};
constants w1_status2 width(1) "" {
W1_0_w_2 = 0 "P1 field is unchanged";
W1_1_w_2 = 1 "P1 field is updated";
};
constants w0_status2 width(1) "" {
W0_0_w_2 = 0 "P0 field is unchanged";
W0_1_w_2 = 1 "P0 field is updated";
};
register dmm_peg_prio_k_0 addr(base, 0x620) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_1 addr(base, 0x624) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_2 addr(base, 0x628) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_3 addr(base, 0x62C) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_4 addr(base, 0x630) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_5 addr(base, 0x634) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_6 addr(base, 0x638) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
register dmm_peg_prio_k_7 addr(base, 0x63C) "DMM PEG Priority register" {
w7 1 rw type(w7_status2) "Write-enable for P7 bit field";
p7 3 rw "Priority for initiator 8.k+7";
w6 1 rw type(w6_status2) "Write-enable for P6 bit field";
p6 3 rw "Priority for initiator 8.k+6";
w5 1 rw type(w5_status2) "Write-enable for P5 bit field";
p5 3 rw "Priority for initiator 8.k+5";
w4 1 rw type(w4_status2) "Write-enable for P4 bit field";
p4 3 rw "Priority for initiator 8.k+4";
w3 1 rw type(w3_status2) "Write-enable for P3 bit field";
p3 3 rw "Priority for initiator 8.k+3";
w2 1 rw type(w2_status2) "Write-enable for P2 bit field";
p2 3 rw "Priority for initiator 8.k+2";
w1 1 rw type(w1_status2) "Write-enable for P1 bit field";
p1 3 rw "Priority for initiator 8.k+1";
w0 1 rw type(w0_status2) "Write-enable for P0 bit field";
p0 3 rw "Priority for initiator 8.k";
};
constants w_pat_status width(1) "" {
W_PAT_0_w = 0 "P_PAT field is updated";
W_PAT_1_w = 1 "P_PAT field is unchanged";
};
register dmm_peg_prio_pat addr(base, 0x640) "DMM PEG priority register for the internal PAT engine." {
_ 28 mbz;
w_pat 1 rw type(w_pat_status) "Write-enable for P_PAT bit field";
p_pat 3 rw "Priority for PAT engine";
};
};