2.2.3 Default values and modifiability of attributes

The master must set the value of every AMBA-PV extension attribute prior to passing the transaction object through an interface method call.

Table 2-1 Default values and modifiability of the AMBA-PV extension attributes

Attribute Default value Modifiable by interconnect Modifiable by slave
Burst length 1 No No
Burst size 8 No No
Burst type AMBA_PV_INCR No No
ID 0 Yes No
Privileged false No No
Non-secure false No No
Instruction false No No
Exclusive false Yes a No
Locked false No No
Bufferable false No No
Modifiable/cacheableb false No No
Read allocate false No No
Write allocate false No No
Read other allocate false No No
Write other allocate false No No
QoS 0 Yes No
Region 0 No No
Domain AMBA_PV_NON_SHAREABLE No No
Snoop AMBA_PV_READ_NO_SNOOPc No No
Bar AMBA_PV_RESPECT_BARRIER No No
Response AMBA_PV_OKAY Yes Yes
PassDirty false Yes Yes
IsShared false Yes Yes
DataTransfer false Yes Yes
Errord false Yes Yes
WasUniqued false Yes Yes
ResponseArray null No No
ResponseArray complete false Yes Yes

If an AMBA-PV extension object is re-used, the modifiability rules cease to apply at the end of the lifetime of the corresponding transaction instance. The rules re-apply if the AMBA-PV extension object is re-used for a new transaction.

After adding the AMBA-PV extension to a transaction object and passing that transaction object as an argument to an interface method call (b_transport(), get_direct_mem_ptr(), or transport_dbg()), the master must not modify any of the AMBA-PV extension attributes during the lifetime of the transaction.

An interconnect can modify the ID attribute, but only before passing the corresponding transaction as an argument to an interface method call (b_transport(), get_direct_mem_ptr(), or transport_dbg()) on the forward path. When the interconnect has passed a pointer to the AMBA-PV extension to a downstream model, it is not permitted to modify the ID of that extension object again during the entire lifetime of the corresponding transaction.

As a consequence of the above rule, the ID attribute is valid immediately on entering any of the method calls b_transport(), get_direct_mem_ptr(), or transport_dbg(). Following the return from any of those calls, the ID attribute has the value set by the interconnect furthest downstream.

The interconnect and slave can modify the response attribute at any time between having first received the corresponding transaction object and the time at which they pass a response upstream by returning control from the b_transport(), get_direct_mem_ptr(), or transport_dbg() methods.

The master can assume it is seeing the value of the AMBA-PV extension response attribute only after it has received a response for the corresponding transaction.

If the AMBA-PV extension is used for the direct memory or debug transport interfaces, the modifiability rules given here must apply to the appropriate attributes of the AMBA-PV extension, namely the ID, privileged, non-secure, and instruction attributes.

a As in the case of an exclusive monitor that flattens the exclusive access before passing it downstream.
b The modifiable attribute is identical to the cacheable attribute but has been renamed in AXI4 to better describe the required functionality.
c AMBA_PV_WRITE_NO_SNOOP and AMBA_PV_READ_NO_SNOOP have the same encoding representation.
d These attributes are only valid responses to upstream snoops, typically from interconnect to master.
Non-ConfidentialPDF file icon PDF version100962_0200_03_en
Copyright © 2014–2018 Arm Limited (or its affiliates). All rights reserved.