<div dir="ltr">but I think there is a error about this part of the patch:<div><br></div><div>diff --git a/target/riscv/csr.c b/target/riscv/csr.c<br>index 5c9a7ee287..d26b830f1a 100644<br>--- a/target/riscv/csr.c<br>+++ b/target/riscv/csr.c<br>@@ -1109,10 +1109,12 @@ static RISCVException read_mstatus(CPURISCVState *env, <br>int csrno,<br> <br> static int validate_vm(CPURISCVState *env, target_ulong vm)<br> {<br>+ vm &= 0xf;<br>+<br> if (riscv_cpu_mxl(env) == MXL_RV32) {<br>- return valid_vm_1_10_32[vm & 0xf];<br><font color="#0000ff">+ return valid_vm_1_10_32[vm] && (vm <=RISCV_CPU(env_cpu(env))->cfg.satp_mode);<br></font> } else {<br>- return valid_vm_1_10_64[vm & 0xf];<br><font color="#0000ff">+ return valid_vm_1_10_64[vm] && (vm <=RISCV_CPU(env_cpu(env))->cfg.satp_mode);<br></font> }<br> }<br></div><div><br></div><div>maybe it should be: </div><div><br></div><div> static int validate_vm(CPURISCVState *env, target_ulong vm)<br> {<br>+ vm &= 0xf;<br>+<br> if (riscv_cpu_mxl(env) == MXL_RV32) {<br>- return valid_vm_1_10_32[vm & 0xf];<br><font color="#0000ff">+ if (vm <= RISCV_CPU(env_cpu(env))->cfg.satp_mode)<br>+ {<br>+ return valid_vm_1_10_32[vm];<br>+ } else {</font></div><div><font color="#0000ff"><a class="gmail_plusreply" id="plusReplyChip-0">+</a> return 0;</font></div><div><font color="#0000ff"><a class="gmail_plusreply" id="plusReplyChip-1">+</a> }</font><br> } else {<br>- return valid_vm_1_10_64[vm & 0xf];<br><font color="#0000ff">+ if (vm <= RISCV_CPU(env_cpu(env))->cfg.satp_mode)<br>+ {<br>+ return valid_vm_1_10_64[vm];</font></div><div><font color="#0000ff">+ } else {<br>+ return 0;<br>+ }</font><br> }<br> }<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ludovic Henry <<a href="mailto:ludovic@rivosinc.com">ludovic@rivosinc.com</a>> 于2022年11月26日周六 09:49写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">The more proper fix in QEMU is being upstreamed with <a href="https://lists.gnu.org/archive/html/qemu-riscv/2022-11/msg00105.html" target="_blank">https://lists.gnu.org/archive/html/qemu-riscv/2022-11/msg00105.html</a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Nov 26, 2022 at 1:06 AM Ze Zhang <<a href="mailto:zhangze.linux@gmail.com" target="_blank">zhangze.linux@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">yes, <div><br></div><div>all I have tried in the previous mail is about user-mode, because ONLY run linux kernel 5.19 on qemu 7.10 system mode, we can get a SV57 VM, so I run qemu system mode first, then in qemu system mode environment, run qemu-riscv64 user-mode cmdline, which means run qemu user mode in a qemu system mode linux system, otherwise test is not for SV57.</div><div>openjdk team should do the detail test about this, I only care about qemu system mode.</div><div><br></div><div>sincerely</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Vladimir Kempik <<a href="mailto:vladimir.kempik@gmail.com" target="_blank">vladimir.kempik@gmail.com</a>> 于2022年11月25日周五 17:56写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hello<br><div><br><blockquote type="cite"><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline"> run qemu-riscv64 -L xxxx /usr/bin/java -version, result is Segmentation fault,</span><br></div></blockquote></div><br><div>That’s actually user-mode, isn’t it ?</div><div><br></div><div>Regards, Vladimir</div></div></blockquote></div>
</blockquote></div>
</blockquote></div>