[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