Skip to content

Commit 7304de6

Browse files
authored
src/mte_tag: remove asynchronous mode from specification (#80)
Given hardware complexities with asynchronous mode and software inablity to use it effectively, dropping asynchronous mode as per voting in TG. Signed-off-by: Deepak Gupta <[email protected]>
1 parent a208744 commit 7304de6

File tree

1 file changed

+5
-26
lines changed

1 file changed

+5
-26
lines changed

src/mte_tag.adoc

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -332,19 +332,6 @@ virtual address specified in `rs1`.
332332
], config:{lanes: 1, hspace:1024}}
333333
....
334334

335-
[[ASYNC_SW_CHECK]]
336-
=== Asynchronous reporting for tag mismatches
337-
338-
To improve performance, software check exceptions due to tag mismatches on
339-
regular stores can be reported asynchronously. This means that reported `epc`
340-
might not be the reason for tag mismatch and software must do additional
341-
analysis to infer which store resulted in software check exception. This
342-
behavior can be optionally turned on through `__x__envcfg` CSR for next
343-
less privilege mode (see <<MEMTAG_CSR_CTRL>>).
344-
345-
Note that tag check violations on regular loads must always be reported
346-
synchronously.
347-
348335
[[TAGGED_PAGE]]
349336
=== Tag checks on page basis
350337

@@ -423,9 +410,7 @@ In M-mode, enable for memory tagging is controlled via `mseccfg` CSR.
423410
Enablement for privilege modes less than M-mode is controlled through
424411
`__x__envcfg` CSR. Zimt adds two bits termed as `MT_MODE` to `__x__envcfg`
425412
CSR which controls enabling of memory tagging and `pointer_tag_width` for the
426-
next privilege mode. A `MT_ASYNC` bit (bit 36) is added to `__x__envcfg` CSR
427-
and if set, software check exceptions due to tag mismatches on store operations
428-
can be reported asynchronously (see <<ASYNC_SW_CHECK>>).
413+
next privilege mode.
429414

430415
[[MEM_TAG_EN]]
431416
==== Memory tagging enable and pointer_tag_width
@@ -471,8 +456,6 @@ configuration
471456
`__x__envcfg` CSR and read it back. If read back value is `0b11` then
472457
implementation supports both `pointer_tag` widths.
473458

474-
If xMT_MODE == 0b00 then xenvcfg.MT_ASYNC becomes WPRI
475-
476459
==== Machine Security Configuration Register(`mseccfg`)
477460

478461
.Machine security configuration register(`mseccfg`)
@@ -489,8 +472,7 @@ configuration
489472
{bits: 21, name: 'WPRI'},
490473
{bits: 2, name: 'PMM'},
491474
{bits: 2, name: 'MT_MODE'},
492-
{bits: 1, name: 'MT_ASYNC'},
493-
{bits: 27, name: 'WPRI'},
475+
{bits: 28, name: 'WPRI'},
494476
], config:{lanes: 4, hspace:1024}}
495477
....
496478

@@ -517,8 +499,7 @@ When `MT_MODE` is `0b00`, the following rules apply to M-mode:
517499
{bits: 24, name: 'WPRI'},
518500
{bits: 2, name: 'PMM'},
519501
{bits: 2, name: 'MT_MODE'},
520-
{bits: 1, name: 'MT_ASYNC'},
521-
{bits: 23, name: 'WPRI'},
502+
{bits: 24, name: 'WPRI'},
522503
{bits: 1, name: 'CDE'},
523504
{bits: 1, name: 'ADUE'},
524505
{bits: 1, name: 'PBMTE'},
@@ -549,8 +530,7 @@ When `MT_MODE` is `0b00`, the following rules apply to HS/S-mode:
549530
{bits: 24, name: 'WPRI'},
550531
{bits: 2, name: 'PMM'},
551532
{bits: 2, name: 'MT_MODE'},
552-
{bits: 1, name: 'MT_ASYNC'},
553-
{bits: 27, name: 'WPRI'},
533+
{bits: 28, name: 'WPRI'},
554534
], config:{lanes: 4, hspace:1024}}
555535
....
556536

@@ -577,8 +557,7 @@ When `MT_MODE` is `0b00`, the following rules apply to VU/U-mode:
577557
{bits: 24, name: 'WPRI'},
578558
{bits: 2, name: 'PMM'},
579559
{bits: 2, name: 'MT_MODE'},
580-
{bits: 1, name: 'MT_ASYNC'},
581-
{bits: 23, name: 'WPRI'},
560+
{bits: 24, name: 'WPRI'},
582561
{bits: 1, name: 'CDE'},
583562
{bits: 1, name: 'ADUE'},
584563
{bits: 1, name: 'PBMTE'},

0 commit comments

Comments
 (0)