* [PATCH v2 0/2] Fix mmu translation with H extension
@ 2023-11-21 7:17 Ivan Klokov
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Ivan Klokov @ 2023-11-21 7:17 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-riscv, palmer, alistair.francis, bin.meng, liwei1518,
dbarboza, zhiwei_liu, Ivan Klokov
A series of patches that correct the conversion of virtual addresses
to physical ones. Correct exception for mbare mode and fix MXR bit
behavior with MPV\MPRV bits.
---
v2:
- Fix typo, specify the fixed commits
---
Ivan Klokov (2):
target/riscv/cpu_helper.c: Invalid exception on MMU translation stage
target/riscv/cpu_helper.c: Fix mxr bit behavior
target/riscv/cpu_helper.c | 54 +++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 27 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage
2023-11-21 7:17 [PATCH v2 0/2] Fix mmu translation with H extension Ivan Klokov
@ 2023-11-21 7:17 ` Ivan Klokov
2023-11-21 12:54 ` Daniel Henrique Barboza
2023-11-22 2:04 ` Alistair Francis
2023-11-21 7:17 ` [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior Ivan Klokov
2023-11-22 2:30 ` [PATCH v2 0/2] Fix mmu translation with H extension Alistair Francis
2 siblings, 2 replies; 8+ messages in thread
From: Ivan Klokov @ 2023-11-21 7:17 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-riscv, palmer, alistair.francis, bin.meng, liwei1518,
dbarboza, zhiwei_liu, Ivan Klokov
According to RISCV privileged spec sect. 5.3.2 Virtual Address Translation Process
access-fault exceptions may raise only after PMA/PMP check. Current implementation
generates an access-fault for mbare mode even if there were no PMA/PMP errors.
This patch removes the erroneous MMU mode check and generates an access-fault
exception based on the pmp_violation flag only.
Fixes: 1448689c7b ("target/riscv: Allow specifying MMU stage")
Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
---
target/riscv/cpu_helper.c | 30 +++++++-----------------------
1 file changed, 7 insertions(+), 23 deletions(-)
diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
index b7af69de53..9ff0952e46 100644
--- a/target/riscv/cpu_helper.c
+++ b/target/riscv/cpu_helper.c
@@ -1143,47 +1143,31 @@ static void raise_mmu_exception(CPURISCVState *env, target_ulong address,
bool two_stage_indirect)
{
CPUState *cs = env_cpu(env);
- int page_fault_exceptions, vm;
- uint64_t stap_mode;
-
- if (riscv_cpu_mxl(env) == MXL_RV32) {
- stap_mode = SATP32_MODE;
- } else {
- stap_mode = SATP64_MODE;
- }
-
- if (first_stage) {
- vm = get_field(env->satp, stap_mode);
- } else {
- vm = get_field(env->hgatp, stap_mode);
- }
-
- page_fault_exceptions = vm != VM_1_10_MBARE && !pmp_violation;
switch (access_type) {
case MMU_INST_FETCH:
if (env->virt_enabled && !first_stage) {
cs->exception_index = RISCV_EXCP_INST_GUEST_PAGE_FAULT;
} else {
- cs->exception_index = page_fault_exceptions ?
- RISCV_EXCP_INST_PAGE_FAULT : RISCV_EXCP_INST_ACCESS_FAULT;
+ cs->exception_index = pmp_violation ?
+ RISCV_EXCP_INST_ACCESS_FAULT : RISCV_EXCP_INST_PAGE_FAULT;
}
break;
case MMU_DATA_LOAD:
if (two_stage && !first_stage) {
cs->exception_index = RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT;
} else {
- cs->exception_index = page_fault_exceptions ?
- RISCV_EXCP_LOAD_PAGE_FAULT : RISCV_EXCP_LOAD_ACCESS_FAULT;
+ cs->exception_index = pmp_violation ?
+ RISCV_EXCP_LOAD_ACCESS_FAULT : RISCV_EXCP_LOAD_PAGE_FAULT;
}
break;
case MMU_DATA_STORE:
if (two_stage && !first_stage) {
cs->exception_index = RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT;
} else {
- cs->exception_index = page_fault_exceptions ?
- RISCV_EXCP_STORE_PAGE_FAULT :
- RISCV_EXCP_STORE_AMO_ACCESS_FAULT;
+ cs->exception_index = pmp_violation ?
+ RISCV_EXCP_STORE_AMO_ACCESS_FAULT :
+ RISCV_EXCP_STORE_PAGE_FAULT;
}
break;
default:
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior
2023-11-21 7:17 [PATCH v2 0/2] Fix mmu translation with H extension Ivan Klokov
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
@ 2023-11-21 7:17 ` Ivan Klokov
2023-11-21 12:55 ` Daniel Henrique Barboza
2023-11-22 2:10 ` Alistair Francis
2023-11-22 2:30 ` [PATCH v2 0/2] Fix mmu translation with H extension Alistair Francis
2 siblings, 2 replies; 8+ messages in thread
From: Ivan Klokov @ 2023-11-21 7:17 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-riscv, palmer, alistair.francis, bin.meng, liwei1518,
dbarboza, zhiwei_liu, Ivan Klokov
According to RISCV Specification sect 9.5 on two stage translation when
V=1 the vsstatus(mstatus in QEMU's terms) field MXR, which makes
execute-only pages readable, only overrides VS-stage page protection.
Setting MXR at HS-level(mstatus_hs), however, overrides both VS-stage
and G-stage execute-only permissions.
The hypervisor extension changes the behavior of MXR\MPV\MPRV bits.
Due to RISCV Specification sect. 9.4.1 when MPRV=1, explicit memory
accesses are translated and protected, and endianness is applied, as
though the current virtualization mode were set to MPV and the current
nominal privilege mode were set to MPP. vsstatus.MXR makes readable
those pages marked executable at the VS translation stage.
Fixes: 36a18664ba ("target/riscv: Implement second stage MMU")
Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
---
target/riscv/cpu_helper.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
index 9ff0952e46..e7e23b34f4 100644
--- a/target/riscv/cpu_helper.c
+++ b/target/riscv/cpu_helper.c
@@ -1032,13 +1032,29 @@ restart:
prot |= PAGE_WRITE;
}
if (pte & PTE_X) {
- bool mxr;
+ bool mxr = false;
- if (first_stage == true) {
+ /*
+ * Use mstatus for first stage or for the second stage without
+ * virt_enabled (MPRV+MPV)
+ */
+ if (first_stage || !env->virt_enabled) {
mxr = get_field(env->mstatus, MSTATUS_MXR);
- } else {
- mxr = get_field(env->vsstatus, MSTATUS_MXR);
}
+
+ /* MPRV+MPV case, check VSSTATUS */
+ if (first_stage && two_stage && !env->virt_enabled) {
+ mxr |= get_field(env->vsstatus, MSTATUS_MXR);
+ }
+
+ /*
+ * Setting MXR at HS-level overrides both VS-stage and G-stage
+ * execute-only permissions
+ */
+ if (env->virt_enabled) {
+ mxr |= get_field(env->mstatus_hs, MSTATUS_MXR);
+ }
+
if (mxr) {
prot |= PAGE_READ;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
@ 2023-11-21 12:54 ` Daniel Henrique Barboza
2023-11-22 2:04 ` Alistair Francis
1 sibling, 0 replies; 8+ messages in thread
From: Daniel Henrique Barboza @ 2023-11-21 12:54 UTC (permalink / raw)
To: Ivan Klokov, qemu-devel
Cc: qemu-riscv, palmer, alistair.francis, bin.meng, liwei1518,
zhiwei_liu
On 11/21/23 04:17, Ivan Klokov wrote:
> According to RISCV privileged spec sect. 5.3.2 Virtual Address Translation Process
> access-fault exceptions may raise only after PMA/PMP check. Current implementation
> generates an access-fault for mbare mode even if there were no PMA/PMP errors.
> This patch removes the erroneous MMU mode check and generates an access-fault
> exception based on the pmp_violation flag only.
>
> Fixes: 1448689c7b ("target/riscv: Allow specifying MMU stage")
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
> ---
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> target/riscv/cpu_helper.c | 30 +++++++-----------------------
> 1 file changed, 7 insertions(+), 23 deletions(-)
>
> diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
> index b7af69de53..9ff0952e46 100644
> --- a/target/riscv/cpu_helper.c
> +++ b/target/riscv/cpu_helper.c
> @@ -1143,47 +1143,31 @@ static void raise_mmu_exception(CPURISCVState *env, target_ulong address,
> bool two_stage_indirect)
> {
> CPUState *cs = env_cpu(env);
> - int page_fault_exceptions, vm;
> - uint64_t stap_mode;
> -
> - if (riscv_cpu_mxl(env) == MXL_RV32) {
> - stap_mode = SATP32_MODE;
> - } else {
> - stap_mode = SATP64_MODE;
> - }
> -
> - if (first_stage) {
> - vm = get_field(env->satp, stap_mode);
> - } else {
> - vm = get_field(env->hgatp, stap_mode);
> - }
> -
> - page_fault_exceptions = vm != VM_1_10_MBARE && !pmp_violation;
>
> switch (access_type) {
> case MMU_INST_FETCH:
> if (env->virt_enabled && !first_stage) {
> cs->exception_index = RISCV_EXCP_INST_GUEST_PAGE_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_INST_PAGE_FAULT : RISCV_EXCP_INST_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_INST_ACCESS_FAULT : RISCV_EXCP_INST_PAGE_FAULT;
> }
> break;
> case MMU_DATA_LOAD:
> if (two_stage && !first_stage) {
> cs->exception_index = RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_LOAD_PAGE_FAULT : RISCV_EXCP_LOAD_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_LOAD_ACCESS_FAULT : RISCV_EXCP_LOAD_PAGE_FAULT;
> }
> break;
> case MMU_DATA_STORE:
> if (two_stage && !first_stage) {
> cs->exception_index = RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_STORE_PAGE_FAULT :
> - RISCV_EXCP_STORE_AMO_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_STORE_AMO_ACCESS_FAULT :
> + RISCV_EXCP_STORE_PAGE_FAULT;
> }
> break;
> default:
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior
2023-11-21 7:17 ` [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior Ivan Klokov
@ 2023-11-21 12:55 ` Daniel Henrique Barboza
2023-11-22 2:10 ` Alistair Francis
1 sibling, 0 replies; 8+ messages in thread
From: Daniel Henrique Barboza @ 2023-11-21 12:55 UTC (permalink / raw)
To: Ivan Klokov, qemu-devel
Cc: qemu-riscv, palmer, alistair.francis, bin.meng, liwei1518,
zhiwei_liu
On 11/21/23 04:17, Ivan Klokov wrote:
> According to RISCV Specification sect 9.5 on two stage translation when
> V=1 the vsstatus(mstatus in QEMU's terms) field MXR, which makes
> execute-only pages readable, only overrides VS-stage page protection.
> Setting MXR at HS-level(mstatus_hs), however, overrides both VS-stage
> and G-stage execute-only permissions.
>
> The hypervisor extension changes the behavior of MXR\MPV\MPRV bits.
> Due to RISCV Specification sect. 9.4.1 when MPRV=1, explicit memory
> accesses are translated and protected, and endianness is applied, as
> though the current virtualization mode were set to MPV and the current
> nominal privilege mode were set to MPP. vsstatus.MXR makes readable
> those pages marked executable at the VS translation stage.
>
> Fixes: 36a18664ba ("target/riscv: Implement second stage MMU")
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
> ---
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> target/riscv/cpu_helper.c | 24 ++++++++++++++++++++----
> 1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
> index 9ff0952e46..e7e23b34f4 100644
> --- a/target/riscv/cpu_helper.c
> +++ b/target/riscv/cpu_helper.c
> @@ -1032,13 +1032,29 @@ restart:
> prot |= PAGE_WRITE;
> }
> if (pte & PTE_X) {
> - bool mxr;
> + bool mxr = false;
>
> - if (first_stage == true) {
> + /*
> + * Use mstatus for first stage or for the second stage without
> + * virt_enabled (MPRV+MPV)
> + */
> + if (first_stage || !env->virt_enabled) {
> mxr = get_field(env->mstatus, MSTATUS_MXR);
> - } else {
> - mxr = get_field(env->vsstatus, MSTATUS_MXR);
> }
> +
> + /* MPRV+MPV case, check VSSTATUS */
> + if (first_stage && two_stage && !env->virt_enabled) {
> + mxr |= get_field(env->vsstatus, MSTATUS_MXR);
> + }
> +
> + /*
> + * Setting MXR at HS-level overrides both VS-stage and G-stage
> + * execute-only permissions
> + */
> + if (env->virt_enabled) {
> + mxr |= get_field(env->mstatus_hs, MSTATUS_MXR);
> + }
> +
> if (mxr) {
> prot |= PAGE_READ;
> }
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
2023-11-21 12:54 ` Daniel Henrique Barboza
@ 2023-11-22 2:04 ` Alistair Francis
1 sibling, 0 replies; 8+ messages in thread
From: Alistair Francis @ 2023-11-22 2:04 UTC (permalink / raw)
To: Ivan Klokov
Cc: qemu-devel, qemu-riscv, palmer, alistair.francis, bin.meng,
liwei1518, dbarboza, zhiwei_liu
On Tue, Nov 21, 2023 at 6:51 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> According to RISCV privileged spec sect. 5.3.2 Virtual Address Translation Process
> access-fault exceptions may raise only after PMA/PMP check. Current implementation
> generates an access-fault for mbare mode even if there were no PMA/PMP errors.
> This patch removes the erroneous MMU mode check and generates an access-fault
> exception based on the pmp_violation flag only.
>
> Fixes: 1448689c7b ("target/riscv: Allow specifying MMU stage")
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
Please keep existing tags when sending a new version if there aren't any changes
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> target/riscv/cpu_helper.c | 30 +++++++-----------------------
> 1 file changed, 7 insertions(+), 23 deletions(-)
>
> diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
> index b7af69de53..9ff0952e46 100644
> --- a/target/riscv/cpu_helper.c
> +++ b/target/riscv/cpu_helper.c
> @@ -1143,47 +1143,31 @@ static void raise_mmu_exception(CPURISCVState *env, target_ulong address,
> bool two_stage_indirect)
> {
> CPUState *cs = env_cpu(env);
> - int page_fault_exceptions, vm;
> - uint64_t stap_mode;
> -
> - if (riscv_cpu_mxl(env) == MXL_RV32) {
> - stap_mode = SATP32_MODE;
> - } else {
> - stap_mode = SATP64_MODE;
> - }
> -
> - if (first_stage) {
> - vm = get_field(env->satp, stap_mode);
> - } else {
> - vm = get_field(env->hgatp, stap_mode);
> - }
> -
> - page_fault_exceptions = vm != VM_1_10_MBARE && !pmp_violation;
>
> switch (access_type) {
> case MMU_INST_FETCH:
> if (env->virt_enabled && !first_stage) {
> cs->exception_index = RISCV_EXCP_INST_GUEST_PAGE_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_INST_PAGE_FAULT : RISCV_EXCP_INST_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_INST_ACCESS_FAULT : RISCV_EXCP_INST_PAGE_FAULT;
> }
> break;
> case MMU_DATA_LOAD:
> if (two_stage && !first_stage) {
> cs->exception_index = RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_LOAD_PAGE_FAULT : RISCV_EXCP_LOAD_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_LOAD_ACCESS_FAULT : RISCV_EXCP_LOAD_PAGE_FAULT;
> }
> break;
> case MMU_DATA_STORE:
> if (two_stage && !first_stage) {
> cs->exception_index = RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT;
> } else {
> - cs->exception_index = page_fault_exceptions ?
> - RISCV_EXCP_STORE_PAGE_FAULT :
> - RISCV_EXCP_STORE_AMO_ACCESS_FAULT;
> + cs->exception_index = pmp_violation ?
> + RISCV_EXCP_STORE_AMO_ACCESS_FAULT :
> + RISCV_EXCP_STORE_PAGE_FAULT;
> }
> break;
> default:
> --
> 2.34.1
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior
2023-11-21 7:17 ` [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior Ivan Klokov
2023-11-21 12:55 ` Daniel Henrique Barboza
@ 2023-11-22 2:10 ` Alistair Francis
1 sibling, 0 replies; 8+ messages in thread
From: Alistair Francis @ 2023-11-22 2:10 UTC (permalink / raw)
To: Ivan Klokov
Cc: qemu-devel, qemu-riscv, palmer, alistair.francis, bin.meng,
liwei1518, dbarboza, zhiwei_liu
On Tue, Nov 21, 2023 at 6:53 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> According to RISCV Specification sect 9.5 on two stage translation when
> V=1 the vsstatus(mstatus in QEMU's terms) field MXR, which makes
> execute-only pages readable, only overrides VS-stage page protection.
> Setting MXR at HS-level(mstatus_hs), however, overrides both VS-stage
> and G-stage execute-only permissions.
>
> The hypervisor extension changes the behavior of MXR\MPV\MPRV bits.
> Due to RISCV Specification sect. 9.4.1 when MPRV=1, explicit memory
> accesses are translated and protected, and endianness is applied, as
> though the current virtualization mode were set to MPV and the current
> nominal privilege mode were set to MPP. vsstatus.MXR makes readable
> those pages marked executable at the VS translation stage.
>
> Fixes: 36a18664ba ("target/riscv: Implement second stage MMU")
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> target/riscv/cpu_helper.c | 24 ++++++++++++++++++++----
> 1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
> index 9ff0952e46..e7e23b34f4 100644
> --- a/target/riscv/cpu_helper.c
> +++ b/target/riscv/cpu_helper.c
> @@ -1032,13 +1032,29 @@ restart:
> prot |= PAGE_WRITE;
> }
> if (pte & PTE_X) {
> - bool mxr;
> + bool mxr = false;
>
> - if (first_stage == true) {
> + /*
> + * Use mstatus for first stage or for the second stage without
> + * virt_enabled (MPRV+MPV)
> + */
> + if (first_stage || !env->virt_enabled) {
> mxr = get_field(env->mstatus, MSTATUS_MXR);
> - } else {
> - mxr = get_field(env->vsstatus, MSTATUS_MXR);
> }
> +
> + /* MPRV+MPV case, check VSSTATUS */
> + if (first_stage && two_stage && !env->virt_enabled) {
> + mxr |= get_field(env->vsstatus, MSTATUS_MXR);
> + }
> +
> + /*
> + * Setting MXR at HS-level overrides both VS-stage and G-stage
> + * execute-only permissions
> + */
> + if (env->virt_enabled) {
> + mxr |= get_field(env->mstatus_hs, MSTATUS_MXR);
> + }
> +
> if (mxr) {
> prot |= PAGE_READ;
> }
> --
> 2.34.1
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/2] Fix mmu translation with H extension
2023-11-21 7:17 [PATCH v2 0/2] Fix mmu translation with H extension Ivan Klokov
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
2023-11-21 7:17 ` [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior Ivan Klokov
@ 2023-11-22 2:30 ` Alistair Francis
2 siblings, 0 replies; 8+ messages in thread
From: Alistair Francis @ 2023-11-22 2:30 UTC (permalink / raw)
To: Ivan Klokov
Cc: qemu-devel, qemu-riscv, palmer, alistair.francis, bin.meng,
liwei1518, dbarboza, zhiwei_liu
On Tue, Nov 21, 2023 at 5:19 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> A series of patches that correct the conversion of virtual addresses
> to physical ones. Correct exception for mbare mode and fix MXR bit
> behavior with MPV\MPRV bits.
> ---
> v2:
> - Fix typo, specify the fixed commits
> ---
>
> Ivan Klokov (2):
> target/riscv/cpu_helper.c: Invalid exception on MMU translation stage
> target/riscv/cpu_helper.c: Fix mxr bit behavior
Thanks!
Applied to riscv-to-apply.next
Alistair
>
> target/riscv/cpu_helper.c | 54 +++++++++++++++++++--------------------
> 1 file changed, 27 insertions(+), 27 deletions(-)
>
> --
> 2.34.1
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-11-22 2:31 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-21 7:17 [PATCH v2 0/2] Fix mmu translation with H extension Ivan Klokov
2023-11-21 7:17 ` [PATCH v2 1/2] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage Ivan Klokov
2023-11-21 12:54 ` Daniel Henrique Barboza
2023-11-22 2:04 ` Alistair Francis
2023-11-21 7:17 ` [PATCH v2 2/2] target/riscv/cpu_helper.c: Fix mxr bit behavior Ivan Klokov
2023-11-21 12:55 ` Daniel Henrique Barboza
2023-11-22 2:10 ` Alistair Francis
2023-11-22 2:30 ` [PATCH v2 0/2] Fix mmu translation with H extension Alistair Francis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).