2.4 Mapping for AMBA buses

This section describes the control signal mappings, the response mappings, and the response bit mappings for AMBA® buses.

The control signal mappings for AXI, ACE, and AHB buses. The APB bus does not use these control signals.

Table 2-11 Signal mappings for amba_pv_control

amba_pv_control ACE, ACE-Lite AXI4 AXI3 AHB AMBA5 AHB CHI
bool is_privileged() const; void set_privileged(bool = true); AxPROT[0] AxPROT[0] AxPROT[0] HPROT[1] HPROT[1] -
bool is_instruction() const; void set_instruction(bool = true); AxPROT[2] AxPROT[2] AxPROT[2] HPROT[0] HPROT[0] -
bool is_non_secure() const; void set_non_secure(bool = true); AxPROT[1] AxPROT[1] AxPROT[1] - - NS
bool is_locked() const; void set_locked(bool = true); - - AxLOCK = 2 HLOCK HLOCK -
bool is_exclusive() const; void set_exclusive(bool = true); AxLOCK AxLOCK AxLOCK = 1 - - Excl
void set_bufferable(bool = true); bool is_bufferable() const; AxCACHE[0] AxCACHE[0] AxCACHE[0] HPROT[2] HPROT[2] MemAttr[3:0], SnpAttr[1:0], Order[1:0]
void set_cacheable(bool = true); bool is_cacheable() const; - - AxCACHE[1] HPROT[3] HPROT[3] MemAttr[2]
void set_modifiable(bool = true); bool is_modifiable() const; AxCACHE[1] AxCACHE[1] - - - MemAttr[3:0], SnpAttr[1:0], Order[1:0]
void set_read_allocate(bool = true); bool is_read_allocate() const; AxCACHE[2] AxCACHE[2] AxCACHE[2] - HPROT[5] MemAttr[3]
void set_write_allocate(bool = true); bool is_write_allocate() const; AxCACHE[3] AxCACHE[3] AxCACHE[3] - HPROT[5] MemAttr[3]
void set_read_other_allocate(bool = true); bool is_read_other_allocate() const; AxCACHE[3] AxCACHE[3] - - HPROT[4] -
void set_write_other_allocate(bool = true); bool is_write_other_allocate() const; AxCACHE[2] AxCACHE[2] - - HPROT[4] -
void set_qos(unsigned int); unsigned int get_qos() const; AxQOS[3:0] AxQOS[3:0] - - - QOS[3:0]
void set_region(unsigned int); unsigned int get_region() const; AxREGION[3:0] AxREGION[3:0] - - - -
void set_domain(amba_pv_domain_t); amba_pv_domain_t get_domain() const;a AxDOMAIN[1:0] - - - HPROT[6] SnpAttr[1:0]
void set_snoop(amba_pv_snoop_t); amba_pv_snoop_t get_snoop() const; AxSNOOP[3:0] - - - - REQ channel Opcode[4:0]
void set_bar(amba_pv_bar_t); amba_pv_bar_t get_bar() const; AxBAR[1:0] - - - - -
void set_user(unsigned int); unsigned int get_user() const; AxUSER AxUSER AxUSER HxUSER HxUSER -

The response mappings for AXI, ACE, AHB, and APB buses.

Table 2-12 Response mappings for amba_pv_resp_t

amba_pv_resp_t AXI xRESP AHB HRESP AMBA5 AHB APB PSLVERR
AMBA_PV_OKAY OKAY OKAY OKAY LOW
AMBA_PV_EXOKAY EXOKAY - EXOKAY -
AMBA_PV_SLVERR SLVERR ERROR ERROR HIGH
AMBA_PV_DECERR DECERR ERROR ERROR HIGH

Note:

PSLVERR signal support is not a requirement for APB peripherals. If a peripheral does not support this signal then the corresponding appropriate response is AMBA_PV_OKAY.

The additional response bit mappings for the ACE bus.

Table 2-13 Mappings for additional ACE bus response bits

amba_pv_extension and amba_pv_response ACE ACE-Lite
bool is_pass_dirty() const; void set_pass_dirty(bool = true); RRESP[2], CRRESP[2] RRESP[2]
bool is_shared() const; void set_shared(bool = true); RRESP[3], CRRESP[2] RRESP[3]
bool is_snoop_data_transfer() const; void set_snoop_data_transfer(bool = true); CRRESP[0] -
bool is_snoop_error() const; void set_snoop_error(bool = true); CRRESP[1] -
bool is_snoop_was_unique() const; void set_snoop_was_unique(bool = true); CRRESP[4] -
a For masters use set_domain(HPROT[6] ? AMBA_PV_INNER_SHAREABLE : AMBA_PV_NON_SHAREABLE), and for slaves use HPROT[6] = get_domain() != AMBA_PV_NON_SHAREABLE.
Non-ConfidentialPDF file icon PDF version100962_0200_03_en
Copyright © 2014–2018 Arm Limited (or its affiliates). All rights reserved.