Commit 9f1ff2d2 authored by Brent Stapleton's avatar Brent Stapleton Committed by michael-west

Device3: Set default block control response SIDs

In the block controllers, set the default response SIDs for input and
output ports. If we don't do this, the blocks may send their responses
to other blocks' responses ports.

For example, without this change, the DDC may send an error packet to
port 0x0000, which is assigned to the DmaFIFO. With this change, the
DDC would send that packet to 0xFFFF, which isn't assigned to any other
block.
parent 4200b702
......@@ -105,6 +105,10 @@ block_ctrl_base::block_ctrl_base(
size_t buf_size_bytes = BYTES_PER_LINE * (1 << buf_size_log2); // Bytes == 8 * 2^x
if (buf_size_bytes > 0) n_valid_input_buffers++;
_tree->create<size_t>(_root_path / "input_buffer_size" / ctrl_port).set(buf_size_bytes);
// Set default destination SIDs
// Otherwise, the default is someone else's SID, which we don't want
sr_write(SR_RESP_IN_DST_SID, 0xFFFF, ctrl_port);
sr_write(SR_RESP_OUT_DST_SID, 0xFFFF, ctrl_port);
}
/*** Register names *****************************************************/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment