-
Notifications
You must be signed in to change notification settings - Fork 792
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] D2 Signoff #20974
Comments
Changes since ES tape-out
NEW_FEATURESA 2-stage pipeline was added as an optional path for flash reads with dummy cycles, so as to effect higher clock rates for compatible commands (especially Quad Output Read).
In addition, generic mode and support for SPI timings other than mode 0 were dropped (these are related features).
The rest of the changes do not precisely amount to new features. Instead, they are sometimes significant refinements of the implementation to fix bugs. BLOCK_DIAGRAMUpdated in #21656 DOC_INTERFACENo changes since tape-out, so all still documented. DOC_INTEGRATION_GUIDEAdded clocking requirements in the documentation here: opentitan/hw/ip/spi_device/README.md Line 88 in 599ab38
MISSING_FUNCThe missing compatibility with the TPM spec is documented in these two places:
opentitan/hw/ip/spi_device/doc/theory_of_operation.md Lines 387 to 389 in 599ab38
FEATURE_FROZENTBD after review meeting, but expected to be. FEATURE_COMPLETE
PORT_FROZENOnly interrupt ports changed: - // INTR: Generic mode
- output logic intr_generic_rx_full_o, // RX FIFO Full
- output logic intr_generic_rx_watermark_o, // RX FIFO above level
- output logic intr_generic_tx_watermark_o, // TX FIFO below level
- output logic intr_generic_rx_error_o, // RX Frame error
- output logic intr_generic_rx_overflow_o, // RX Async FIFO Overflow
- output logic intr_generic_tx_underflow_o, // TX Async FIFO Underflow
+ output logic intr_tpm_rdfifo_cmd_end_o,
+ output logic intr_tpm_rdfifo_drop_o, ARCHITECTURE_FROZENRAMs
CSRsCONTROL:
- CONTROL.ABORT
+ CONTROL.FLASH_STATUS_FIFO_CLR
+ CONTROL.FLASH_READ_BUFFER_CLR
- CONTROL.MODE:fwmode
+ CONTROL.MODE:disabled
- CONTROL.RST_TXFIFO
- CONTROL.RST_RXFIFO
- CONTROL.SRAM_CLK_EN
CFG:
- CFG.CPOL
- CFG.CPHA
- CFG.TIMER_V
- CFG.ADDR_4B_EN
+ ADDR_MODE:
+ ADDR_MODE.ADDR_4B_EN
+ ADDR_MODE.PENDING
- FIFO_LEVEL
- ASYNC_FIFO_LEVEL
STATUS:
- STATUS.rxf_full
- STATUS.rxf_empty
- STATUS.txf_full
- STATUS.txf_empty
- STATUS.abort_done
- RXF_PTR
- TXF_PTR
- RXF_ADDR
- TXF_ADDR
- FLASH_STATUS.status (bits = 23:1, rw)
+ FLASH_STATUS.wel (bits = 1, rw1c)
+ FLASH_STATUS.status (bits = 23:2, rw)
+ UPLOAD_CMDFIFO.busy
+ UPLOAD_CMDFIFO.wel
+ UPLOAD_CMDFIFO.addr4b_mode
+ CMD_INFO*.read_pipeline_mode
- TPM_STATUS.wrfifo_depth
+ TPM_STATUS.wrfifo_pending
+ TPM_STATUS.rdfifo_aborted
- TPM_WRITE_FIFO REVIEW_TODO
STYLE_XThere are no uses of X in spi_device. CDC_SYNCMACROThe synchronization macros are used in most places. However, there is some SPI-specific behavioral logic in some cases where a prim_flop_2sync is used to synchronize a control signal that marks some data as being stable / ready to sample, with the data changing domains in behavioral logic. This is a "fire-and-forget" analogue to prim_sync_reqack_data. LINT_PASSPasses lint. CDC_SETUPNo CDC flow available. RDC_SETUPNo RDC flow available. AREA_CHECKFPGA-based area difference from ES:
The dual-port RAM size is the same. TIMING_CHECKTiming continues to pass on the FPGA, with no apparent significant impact to the overall budgets (though there is a lot of slack in both cases). Some of the worst paths are gone now, which is due to the clock network simplification and removal of generic mode. SEC_CM_DOCUMENTEDN/A. There are no security countermeasures for this block. |
Thanks for putting this together @a-will! Open action items for closing out D2S:
|
The action items were covered by #21795 |
Description
Ensure D2 signoff criteria are fulfilled after focus area changes have landed.
The text was updated successfully, but these errors were encountered: