Skip to content

Commit

Permalink
[otp_ctrl/doc] Update documentation
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Schaffner <[email protected]>
  • Loading branch information
msfschaffner committed Jan 20, 2024
1 parent 98399c1 commit 8c66c1a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
3 changes: 1 addition & 2 deletions hw/ip/otp_ctrl/doc/programmers_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ The only initialization steps that SW should perform are:
If needed, one-off integrity and consistency checks can be triggered via [`CHECK_TRIGGER`](registers.md#check_trigger).
If this functionality is not needed, it is recommended to lock down the trigger register via [`CHECK_TRIGGER_REGWEN`](registers.md#check_trigger_regwen).

Later on during the boot process, SW may also choose to block read access to the CREATOR_SW_CFG or OWNER_SW_CFG partitions at runtime via [`CREATOR_SW_CFG_READ_LOCK`](registers.md#creator_sw_cfg_read_lock) and [`OWNER_SW_CFG_READ_LOCK`](registers.md#owner_sw_cfg_read_lock).

Later on during the boot process, SW may also choose to block read access to the SW managed partitions via the associated partition lock registers, e.g. [`CREATOR_SW_CFG_READ_LOCK`](registers.md#creator_sw_cfg_read_lock) or [`OWNER_SW_CFG_READ_LOCK`](registers.md#owner_sw_cfg_read_lock).

### Reset Considerations

Expand Down
9 changes: 6 additions & 3 deletions hw/ip/otp_ctrl/doc/theory_of_operation.md
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ Parameter | Default | Top Earlgrey | Description
---------------|---------|---------------|---------------
`Width` | 16 | 16 | Native OTP word width.
`Depth` | 1024 | 1024 | Depth of OTP macro.
`CmdWidth` | 2 | 2 | Width of the OTP command.
`CmdWidth` | 3 | 3 | Width of the OTP command.
`ErrWidth` | 3 | 3 | Width of error code output signal.
`PwrSeqWidth` | 2 | 2 | Width of power sequencing signals to/from AST.
`SizeWidth` | 2 | 2 | Width of the size field.
Expand Down Expand Up @@ -459,14 +459,17 @@ Signal | Direction | Type | Descr
`ready_o` | `output` | `logic` | Ready signal for the command handshake.
`valid_i` | `input` | `logic` | Valid signal for the command handshake.
`size_i` | `input` | `logic [SizeWidth-1:0]` | Number of native OTP words to transfer, minus one: `2'b00 = 1 native word` ... `2'b11 = 4 native words`.
`cmd_i` | `input` | `logic [CmdWidth-1:0]` | OTP command: `2'b00 = read`, `2'b01 = write`, `2'b11 = initialize`
`cmd_i` | `input` | `logic [CmdWidth-1:0]` | OTP command: `3'b000 = read`, `3'b001 = write`, `3'b010 = read raw`, `3'b011 = write raw`, `3'b111 = initialize`
`addr_i` | `input` | `logic [$clog2(Depth)-1:0]` | OTP word address.
`wdata_i` | `input` | `logic [IfWidth-1:0]` | Write data for write commands.
`valid_o` | `output` | `logic` | Valid signal for command response.
`rdata_o` | `output` | `logic [IfWidth-1:0]` | Read data from read commands.
`err_o` | `output` | `logic [ErrWidth-1:0]` | Error code.

The `prim_otp` wrappers implements the `Macro*` error codes (0x0 - 0x4) defined in the [OTP error handling](#error-handling).
The `write raw` and `read raw` command instructs the `prim_otp` wrapper to store / read the data in raw format without generating nor checking integrity information.
That means that the wrapper must return the raw, uncorrected data and no integrity errors.

The `prim_otp` wrapper implements the `Macro*` error codes (0x0 - 0x4) defined in [OTP error handling](#error-handling).

The timing diagram below illustrates the timing of a command.
Note that both read and write commands return a response, and each command is independent of the previously issued commands.
Expand Down

0 comments on commit 8c66c1a

Please sign in to comment.