noc_inline_dw_write_with_state
-
template<bool update_addr_lo = false, bool update_counter = true, bool posted = false, bool update_addr_hi = false, bool update_val = false, InlineWriteDst dst_type = InlineWriteDst::DEFAULT>
void noc_inline_dw_write_with_state(uint32_t val, uint32_t addr = 0, uint8_t cmd_buf = write_at_cmd_buf, uint8_t noc = noc_index)
-
Initiates an inline write of a 32-bit value to a NOC destination. This function must be preceded by a call to noc_inline_dw_write_set_state. This function is used to issue the actual write request after the state has been set up. The 32-bit value and part of the destination address can also be set in this API (Only either hi or lo address should be getting updated). noc_inline_dw_write can be used instead if the state preservation is not needed. Also, see noc_async_write_barrier.
The destination node can be either a Tensix core+L1 memory address or a PCIe controller; This API does not support DRAM addresses.
Note: On Blackhole, this API can only write to stream registers, writing to L1 will cause hangs!
Return value: None
Argument
Description
Data type
Valid range
required
val
The value to be written
uint32_t
Any uint32_t
True
addr
The local address to write to (if not set in state)
uint32_t
0..1MB
False
cmd_buf
Command buffer to use for the transaction
uint8_t
0-3
False
noc
NOC to use for the transaction
uint8_t
0 or 1
False
update_addr_lo (template parameter)
Whether to update the lower 32 bits of the address
bool
true or false
False
update_counter (template parameter)
Whether to update the write counters
bool
true or false
False
posted (template parameter)
Whether the call is posted (i.e. ack requirement)
bool
true or false
False
update_addr_hi (template parameter)
Whether to update the upper 32 bits of the address
bool
true or false
False
update_val (template parameter)
Whether to set the value to be written
bool
true or false
False
dst_type (template parameter)
Whether the write is targeting L1 or a Stream Register
InlineWriteDst
DEFAULT, L1, REG
False