2.2.27 Response array attribute

The response array provides an alternative path for slaves to return response status; with a separate response status for each beat of a burst transaction.

The method get_response_array_ptr() returns a pointer to the response array or null if the master has not set an array response pointer. The method set_response_array_ptr() sets a pointer to a response array.

The method set_response_array_complete() is used by the slave to set the response array completion flag that when true indicates that the elements of the response array have been set with response data. The method is_response_array_complete() returns the status of the response array completion flag.

If a response array is going to be made available it is the responsibility of the master to set the response array pointer. The size of the response array must be at least as large as the burst length attribute.

A slave can choose to use the response attribute to report response status with a single response for the entire transaction even if a response array has been made available. But a slave can also optionally check for a response array and if an array pointer is available set the response status in the response array instead of using the response attribute. The slave must not set elements of the response array beyond the value of the burst length attribute.

If a slave uses the response array it must set the response array completion flag to true.

The master reads response status from the response attribute unless it has both set an array response pointer and the slave has set the response array completion status to true.

Response array element attributes

These attributes have the same semantics and accessors as the equivalent response attributes.

Table 2-5 AMBA-PV response array element attributes

Attribute Default value Set methods Get methods
Response AMBA_PV_OK set_resp(), set_okay(), set_exokay(), set_slverr(), set_decerr() get_resp(), is_okay(), is_exokay(), is_slverr(), is_decerr()
PassDirty false set_pass_dirty() is_pass_dirty()
IsShared false set_is_shared() is_shared()
DataTransfer false set_snoop_data_transfer() is_snoop_data_transfer()
Error false set_snoop_error() is_snoop_error()
WasUnique false set_snoop_was_unique() is_snoop_was_unique()
Non-ConfidentialPDF file icon PDF version100962_0200_03_en
Copyright © 2014–2018 Arm Limited (or its affiliates). All rights reserved.