Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[spi_device] Add support for 1r1w RAMs and parity init #20942

Merged
merged 7 commits into from
Jan 24, 2024

Commits on Jan 23, 2024

  1. [reggen,hw] Create index parameter for registers windows

    Signed-off-by: Robert Schilling <rschilling@rivosinc.com>
    Razer6 authored and a-will committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    f8da068 View commit details
    Browse the repository at this point in the history
  2. [prim] Make copies of dual port memory files

    Signed-off-by: Michael Schaffner <msf@opentitan.org>
    msfschaffner authored and a-will committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    306834a View commit details
    Browse the repository at this point in the history
  3. [prim] Add two-port memory implementation

    Signed-off-by: Michael Schaffner <msf@opentitan.org>
    msfschaffner authored and a-will committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    b36ae73 View commit details
    Browse the repository at this point in the history
  4. [prim] Add two-port memory ECC wrappers

    Signed-off-by: Michael Schaffner <msf@opentitan.org>
    msfschaffner authored and a-will committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    7b6163d View commit details
    Browse the repository at this point in the history
  5. [prim] Fix up 1r1w cores

    Some core files were missing, and there were also some syntax errors.
    
    Signed-off-by: Alexander Williams <awill@opentitan.org>
    a-will committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    d186d1b View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2024

  1. [spi_device] Add support for 1r1w RAMs and parity init

    Add 1r1w RAM configuration as an option for spi_device for tech nodes
    where the 2p RAM configuration is not available. Make the 2p RAM have
    the same access controls as the 1r1w RAM, so the two behave the same
    way.
    
    Also add word initialization circuitry on the SPI side, to init parity.
    The SPI -> core buffer for the payload uses parity and SW has no way of
    initializing it since the the write port is in the SPI domain. Since the SPI
    side writes the payload byte by byte, we need to guard against partially
    initialized 32bit wordd, because these could cause TL-UL bus errors upon
    readout. Unfortunately, an initialization circuit that initializes the entire
    SRAM on the SPI clock domain is infeasible since that clock is only
    intermittently available. Hence, we keep track of uninitialized words using a
    valid bit array, and upon the first write to a word, uninitialized bytes are
    set to zero if the write operation is a sub-word write op.
    
    Note that in this commit, DV tests have focused much more on the 2p
    variant.
    
    Signed-off-by: Alexander Williams <awill@opentitan.org>
    Co-authored-by: Michael Schaffner <msf@opentitan.org>
    a-will and msfschaffner committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    bb22f4c View commit details
    Browse the repository at this point in the history
  2. [spi_device] Add params for DPRAM offsets

    Add params for the DPRAM offsets so they are available in C headers for
    software.
    
    Signed-off-by: Alexander Williams <awill@opentitan.org>
    a-will committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    13fc2e2 View commit details
    Browse the repository at this point in the history