-
Notifications
You must be signed in to change notification settings - Fork 92
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
Q about Table 9 (action encoding) #995
Comments
IF the current action field is 1 and hardware is doing a write that would write (1) dmode=0 and (2) action=1 THEN hardware should write action=0 (rather than allowing item 2). |
What if the current action field is 0 (or any legal non-1 value), and hardware does a write that would write (1) dmode=0 and (2) action=1, should hardware write action=0 or 1? The spec currently suggests it should write action=1 as normal. But this would also result in Is the intention that the hardware should never get in a state where |
From your answers to previous issues (#746 and #749), it seems the intention is that it's impossible to get in the state where I propose this sentence:
Should be changed to this:
Since it doesn't actually matter what the current value of |
Yes, it's illegal to have dmode=0 and action=1 and the WARL logic must prevent that situation. The spec provides a recommendation for one specific situation (see #501 for some history). A debugger can attempt to write dmode=0 and action=1 in multiple scenarios:
I think that the spec didn't want to pick one of the options on scenarios 2 and 3. I don't really know why. |
I don't think it's clear enough that setting I also think it's quite confusing for the spec to provide a suggestion for 1 scenario and not for the other 2. It would be better to either:
|
I'd personally choose 3 and say something like "Since the tdata registers are WARL, hardware must prevent them from containing dmode=0 and action=1." @rtwfroody: You came up with the original language. Thoughts? |
I agree that the right thing is to document the invalid value, and leave it up to the hardware what valid value it ends up with.
If we say must, then that's not backwards-compatible. "Should" is backwards-compatible. Do we need ARC review to make the change using "should?" |
There was always a requirement that hardware must prevent dmode=0 and action=1. "This action is only legal when the trigger's dmode is 1" means that dmode=0 and action=1 is illegal. WARL says that "If a value is unsupported, the implementation converts the value to one that is supported." Previously, there was a recommendation about the specific supported value that hardware would convert to in one particular case. My suggestion is to remove that and just specify the requirement. We could remove that WARL sentence altogether and just say "This action is only legal when the trigger's dmode is 1" but apparently people didn't understand that the WARL hardware needs to prevent the illegal situation. |
Instead of describing a recommended implementation (which didn't cover all cases), explicitly state the value that is illegal and let hardware choose how to do that. Addresses #995.
Instead of describing a recommended implementation (which didn't cover all cases), explicitly state the value that is illegal and let hardware choose how to do that. Addresses #995.
I have a question about Table 9 (action encoding) in Section 5.2 on Page 59 in 1.0.0-rc2. In the row for the action with encoding 1 we have the sentence
It is unclear because the sentences asks to "clear" the action field but also asks to set it to 1. This clearing to 1 should only happen if the action field is 1.
(There is also a typo: "he action field" should the "the action field".)
The text was updated successfully, but these errors were encountered: