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

Suggest behavior of ERR_MFR.svi is WARL and bit width of MDCFGLCK.f is 6 #26

Merged
merged 2 commits into from
Nov 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions chapter5.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,9 @@ h|Field |Bits |R/W |Default |Description
5+h|0x0048
h|Field |Bits |R/W |Default |Description
|{set:cellbgcolor:#FFFFFF}l |0:0 |W1SS |0 | Lock bit to *MDCFGLCK* register.
|f |7:1 |WARL |IMP | Indicate the number of locked MDCFG entries - *MDCFG(_m_)* is locked for _m_ < *f*.
|f |6:1 |WARL |IMP | Indicate the number of locked MDCFG entries - *MDCFG(_m_)* is locked for _m_ < *f*.
The field should be monotonically increased only until the next reset cycle.
|{set:cellbgcolor:#FFFFFF}rsv |31:8 |ZERO |0 | Must be zero on write, reserved for future
|{set:cellbgcolor:#FFFFFF}rsv |31:7 |ZERO |0 | Must be zero on write, reserved for future
|===

*ENTRYLCK* is the lock register to entry array.
Expand Down Expand Up @@ -333,7 +333,7 @@ h|Field |Bits |R/W |Default |Description
5+h|0x0074
h|Field |Bits |R/W |Default |Description
|{set:cellbgcolor:#FFFFFF}svw |15:0 |R |DC | Subsequent violations in the window indexed by *svi*. *svw[_j_]*=1 for the at lease one subsequent violation issued from RRID= *svi**16 + _j_.
|{set:cellbgcolor:#FFFFFF}svi |27:16 |RW |0 | Window's index to search subsequent violations. When read, *svi* moves forward until one subsequent violation is found or *svi* has been rounded back to the same value. After read, the window's content, *svw*, should be clean.
|{set:cellbgcolor:#FFFFFF}svi |27:16 |WARL |0 | Window's index to search subsequent violations. When read, *svi* moves forward until one subsequent violation is found or *svi* has been rounded back to the same value. After read, the window's content, *svw*, should be clean.
Copy link
Contributor

@gagachang gagachang Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When read, svi moves forward until one subsequent violation is found or svi has been rounded back to the same value.

What if the written value is invalid.
For example, IOPMP supports 32 RRIDs.
Obviously, only first bit of ERR_MFR.svi may be necessary and implemented.
If a programmer writes ERR_MFR.svi=0xF and read it back without any subsequent violations, what should the value of ERR_MFR.svi be when reading ?

Copy link
Contributor Author

@tyshyu tyshyu Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is implementation-dependent.
For example, there are two design choices: (1) implement only two windows (32 RRIDs), and (2) implement all windows and the windows except window 0 and window 1 are read only 0.
ERR_MFR.svi can be 0x0 or 0x1 if the IOPMP is choice (1).
ERR_MFR.svi can be 0xf if the IOPMP is choice (2).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK it makes sense.

|{set:cellbgcolor:#FFFFFF}rsv |30:28 |ZERO |0 |Must be zero on write, reserved for future
|{set:cellbgcolor:#FFFFFF}svs |31:31 |R |DC a| The status of this window's content:

Expand Down