2.2.24 Response attribute

This section describes the response attribute.

The method set_resp() must set the response attribute to the value passed as argument. The method get_resp() must return the value of the response attribute.

The method is_okay() must return true if and only if the value of the response attribute is AMBA_PV_OKAY. The method set_okay() must set the value of the response attribute to AMBA_PV_OKAY.

The method is_exokay() must return true if and only if the value of the response attribute is AMBA_PV_EXOKAY. The method set_exokay() must set the value of the response attribute to AMBA_PV_EXOKAY.

The method is_slverr() must return true if and only if the value of the response attribute is AMBA_PV_SLVERR. The method set_slverr() must set the value of the response attribute to AMBA_PV_SLVERR.

The method is_decerr() must return true if and only if the value of the response attribute is AMBA_PV_DECERR. The method set_decerr() must set the value of the response attribute to AMBA_PV_DECERR.

The method is_incomplete() must return true if and only if the value of the response attribute is AMBA_PV_INCOMPLETE. The method set_incomplete() must set the value of the response attribute to AMBA_PV_INCOMPLETE.

Table 2-3 AMBA-PV responses

Value Interpretation
AMBA_PV_OKAY A normal access success, or an exclusive access failure.
AMBA_PV_EXOKAY Either the read or write portion of an exclusive access has been successful.
AMBA_PV_SLVERR The access has reached the slave successfully, but the slave returned an error condition to the originating master.
AMBA_PV_DECERR There is no slave at the transaction address. This is typically generated by an interconnect component.
AMBA_PV_INCOMPLETE The slave did not attempt to perform the access.

The response attribute must be set to AMBA_PV_OKAY by the master, and might be overwritten by the slave or the interconnect.

If the slave is able to execute the transaction, it must set the response attribute to AMBA_PV_OKAY. If not, the slave must set the response attribute to AMBA_PV_SLVERR.

If the interconnect is able to pass the transaction downstream to the addressed slave, it must not overwrite the response attribute. If not, the interconnect must set the response attribute to AMBA_PV_DECERR.

The default value of the response attribute must be AMBA_PV_OKAY.

The slave or interconnect is responsible for setting the response attribute before returning control from the b_transport() method of the TLM 2.0 blocking transport interface.

Arm recommends that the master always checks the value of the response attribute after the completion of the transaction.

The global function amba_pv_resp_string() must return the response value passed as argument as a text string.

The global function amba_pv_resp_from_tlm() must translate the TLM 2.0 response status value passed as argument into an AMBA-PV response value. The global function amba_pv_resp_to_tlm() must translate the AMBA-PV response value passed as argument into a TLM 2.0 response status value.

Table 2-4 Translation between AMBA-PV response and TLM 2.0 response status

AMBA-PV response TLM 2.0 response status
AMBA_PV_OKAY TLM_OK_RESPONSE
AMBA_PV_EXOKAY TLM_OK_RESPONSE a
AMBA_PV_SLVERR TLM_GENERIC_ERROR_RESPONSE, TLM_COMMAND_ERROR_RESPONSE, TLM_BURST_ERROR_RESPONSE, TLM_BYTE_ENABLE_ERROR_RESPONSE
AMBA_PV_DECERR TLM_ADDRESS_ERROR_RESPONSE
AMBA_PV_INCOMPLETE TLM_INCOMPLETE_RESPONSE
a The exclusive attribute of the associated transaction must have a value of true.
Non-ConfidentialPDF file icon PDF version100962_0200_03_en
Copyright © 2014–2018 Arm Limited (or its affiliates). All rights reserved.