From ca838c12b0bf61824e62eba60050a4dbc2604698 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 24 Sep 2018 16:24:48 -0700 Subject: SFENCE behavior is independent of privilege mode --- src/machine.tex | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/machine.tex b/src/machine.tex index ba1e1aa..438f75a 100644 --- a/src/machine.tex +++ b/src/machine.tex @@ -2981,9 +2981,7 @@ that affects either the physical memory that holds the page tables or the physical memory to which the page tables point, M-mode software must synchronize the PMP settings with the virtual memory system. This is accomplished by executing an SFENCE.VMA instruction with {\em rs1}={\tt x0} -and {\em rs2}={\tt x0}, after the PMP CSRs are written. Note, SFENCE.VMA is -only guaranteed to synchronize the PMP settings with the virtual memory system -when it is executed in M-mode. +and {\em rs2}={\tt x0}, after the PMP CSRs are written. If page-based virtual memory is not implemented, or when it is disabled, memory accesses check the PMP settings synchronously, so no fence is needed. -- cgit v1.1 From 4abbead1038fa9366b177d289ebcf0b8da503617 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 26 Sep 2018 01:08:22 -0700 Subject: Custom interrupt priorities are custom --- src/machine.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/machine.tex b/src/machine.tex index 438f75a..e44c0af 100644 --- a/src/machine.tex +++ b/src/machine.tex @@ -1388,13 +1388,13 @@ Synchronous exceptions are of lower priority than all interrupts. The machine-level interrupt fixed-priority ordering rules were developed with the following rationale. - The platform-specific machine-level interrupt sources in bits 16 and - above have the highest service priority to support very fast local - vectored interrupts. - Interrupts for higher privilege modes must be serviced before interrupts for lower privilege modes to support pre-emption. + The platform-specific machine-level interrupt sources in bits 16 and above + have platform-specific priority, but are typically chosen to have the + highest service priority to support very fast local vectored interrupts. + External interrupts are handled before internal (timer/software) interrupts as external interrupts are usually generated by devices that might require low interrupt service times. -- cgit v1.1