2.2.24. Response attribute

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

The method is_okay() must return true if
and only if the current 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 current 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 current 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 current 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.

Table 2.3 lists
the four response values defined by the AMBA-PV extension.

Table 2.3. AMBA-PV response interpretation

Response

Interpretation

AMBA_PV_OKAY

Indicates that a normal access has been successful.
It also indicates an exclusive access failure.

AMBA_PV_EXOKAY

Indicates that either the read or write portion
of an exclusive access has been successful.

AMBA_PV_SLVERR

Indicates that the access has reached the slave
successfully, but the slave returned an error condition to the originating master.

AMBA_PV_DECERR

Indicates that there is no slave at the transaction
address. This is typically generated by an interconnect component.

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.

It is recommended 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. Those translations must be performed
according to Table 2.4.