On 11/11/21 2:35 AM, Xiaojuan Yang wrote:
@@ -179,12 +181,22 @@ static void loongarch_cpu_reset(DeviceState *dev)
      LoongArchCPU *cpu = LOONGARCH_CPU(cs);
      LoongArchCPUClass *lacc = LOONGARCH_CPU_GET_CLASS(cpu);
      CPULoongArchState *env = &cpu->env;
+    uint64_t data;
lacc->parent_reset(dev); env->fcsr0_mask = 0x1f1f031f;
      env->fcsr0 = 0x0;
+ /* Set direct mapping mode after reset */
+    data = FIELD_DP64(0, CSR_CRMD, PLV, 0);
+    data = FIELD_DP64(data, CSR_CRMD, IE, 0);
+    data = FIELD_DP64(data, CSR_CRMD, DA, 1);
+    data = FIELD_DP64(data, CSR_CRMD, PG, 0);
+    data = FIELD_DP64(data, CSR_CRMD, DATF, 1);
+    data = FIELD_DP64(data, CSR_CRMD, DATM, 1);
+    env->CSR_CRMD = data;

This is not all that is listed in 6.3 Reset.


r~

Reply via email to