[Libre-soc-bugs] [Bug 236] Atomics Standard writeup needed
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Fri Jul 8 15:19:36 BST 2022
https://bugs.libre-soc.org/show_bug.cgi?id=236
--- Comment #17 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
https://opencapi.org/wp-content/uploads/2016/09/OC-DL-Specification.10.14.16.pdf
nope
http://opencapi.org/wp-content/uploads/2017/02/OpenCAPI-TL.WGsec_.V3p1.2017Jan27.pdf
yes.
table 2.5 and 2.6 p49.
page 48 covers length:
The command address specified is naturally aligned based on the
operand length. The operand length is operations with the
exception of fetch and swap operations where the cmd_flag
is specified as {x‘8’...x‘A’} and pLength shall be specified as
{‘110, ‘111’}. Refer to the specification of pLength on page 28.
paaaage 28......
pLength 3 Partial length. Specifies the number of data
bytes specified for a partial write command. The address
specified shall be naturally aligned based on the pLength
specified. The data may be sent in a data flit, or an 8or
32-byte datum field specified for some control flits.
000 1 byte. Reserved when the command is an amo*.
001 2 bytes. Reserved when the command is an amo*.
010 4 bytes
011 8 bytes
100 16 bytes. Reserved when the command is an amo*.
101 32 bytes. Reserved when the command is an amo*.
110 Specifies 4-byte operands when the command is amo_rw and
the operation is specified as a Fetch and swap. That is,
the command flag is {x‘8’..x‘A’}. Otherwise, this field is reserved.
111 Specifies 8-byte operands when the command is amo_rw and
the operation is specified as a Fetch and swap. That is, the
command flag is {x‘8’..x‘A’}. Otherwise, this field is reserved.
conclusion: oops. it's ok for amo* but not ok for amo_rw, that would
require a drastic (multi-million-dollar impact) redesign of OpenCAPI.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list