csr_write
#define write_csr_entryhi(val) csr_write(val, LOONGARCH_CSR_TLBEHI)
#define write_csr_entrylo0(val) csr_write(val, LOONGARCH_CSR_TLBELO0)
#define write_csr_entrylo1(val) csr_write(val, LOONGARCH_CSR_TLBELO1)
#define write_csr_prcfg1(val) csr_write(val, LOONGARCH_CSR_PRCFG1)
#define write_csr_prcfg2(val) csr_write(val, LOONGARCH_CSR_PRCFG2)
#define write_csr_prcfg3(val) csr_write(val, LOONGARCH_CSR_PRCFG3)
#define write_csr_impctl1(val) csr_write(val, LOONGARCH_CSR_IMPCTL1)
#define write_csr_impctl2(val) csr_write(val, LOONGARCH_CSR_IMPCTL2)
csr_write(off, PERCPU_BASE_KS);
csr_write(timer_config, LOONGARCH_CSR_TCFG);
csr_write(init_offset, LOONGARCH_CSR_CNTC);
csr_write(timer_config, LOONGARCH_CSR_TCFG);
csr_write(timer_config, LOONGARCH_CSR_TCFG);
csr_write(timer_config, LOONGARCH_CSR_TCFG);
csr_write(eentry, LOONGARCH_CSR_EENTRY);
csr_write(__pa(eentry), LOONGARCH_CSR_MERRENTRY);
csr_write(__pa(tlbrentry), LOONGARCH_CSR_TLBRENTRY);
csr_write(pwctl0, LOONGARCH_CSR_PWCTL0);
csr_write(pwctl1, LOONGARCH_CSR_PWCTL1);
csr_write((long)swapper_pg_dir, LOONGARCH_CSR_PGDH);
csr_write((long)invalid_pg_dir, LOONGARCH_CSR_PGDL);
csr_write((long)smp_processor_id(), LOONGARCH_CSR_TMID);
csr_write(saved_pcpu_base, PERCPU_BASE_KS);
csr_write(eentry, LOONGARCH_CSR_EENTRY);
csr_write(eentry, LOONGARCH_CSR_MERRENTRY);
csr_write(tlbrentry, LOONGARCH_CSR_TLBRENTRY);
csr_write(saved_regs.pgd, LOONGARCH_CSR_PGDL);
csr_write(saved_regs.kpgd, LOONGARCH_CSR_PGDH);
csr_write(saved_regs.pcpu_base, PERCPU_BASE_KS);
csr_write(__csr, __val); \
csr_write(CSR_ENVCFG, envcfg);
csr_write(CSR_STATUS, status);
csr_write(CSR_VXRM, (src->vcsr >> CSR_VXRM_SHIFT) & CSR_VXRM_MASK);
csr_write(CSR_VXSAT, src->vcsr & CSR_VXSAT_MASK);
csr_write(CSR_STATUS, status);
csr_write(CSR_VCSR, src->vcsr);
csr_write(CSR_STATUS, (tmp & ~SR_UXL) | SR_UXL_32);
csr_write(CSR_STATUS, tmp);
csr_write(CSR_SCRATCH, 0);
csr_write(CSR_ENVCFG, context->envcfg);
csr_write(CSR_TVEC, context->tvec);
csr_write(CSR_IE, context->ie);
csr_write(CSR_STIMECMP, ULONG_MAX);
csr_write(CSR_STIMECMPH, context->stimecmph);
csr_write(CSR_STIMECMP, context->stimecmp);
csr_write(CSR_SATP, context->satp);
csr_write(CSR_ENVCFG, task->thread.envcfg);
csr_write(CSR_ENVCFG, task->thread.envcfg);
csr_write(CSR_VSISELECT, csr->vsiselect);
csr_write(CSR_HVIPRIO1, csr->hviprio1);
csr_write(CSR_HVIPRIO2, csr->hviprio2);
csr_write(CSR_VSIEH, csr->vsieh);
csr_write(CSR_HVIPH, csr->hviph);
csr_write(CSR_HVIPRIO1H, csr->hviprio1h);
csr_write(CSR_HVIPRIO2H, csr->hviprio2h);
csr_write(CSR_HVICTL, aia_hvictl_value(false));
csr_write(CSR_HVIPRIO1, 0x0);
csr_write(CSR_HVIPRIO2, 0x0);
csr_write(CSR_HVIPH, 0x0);
csr_write(CSR_HIDELEGH, 0x0);
csr_write(CSR_HVIPRIO1H, 0x0);
csr_write(CSR_HVIPRIO2H, 0x0);
csr_write(CSR_HVICTL, aia_hvictl_value(false));
csr_write(CSR_HGEIE, -1UL);
csr_write(CSR_HGEIE, 0);
csr_write(CSR_VSISELECT, __c); \
csr_write(CSR_VSISELECT, __c); \
csr_write(CSR_VSIREG, __v); \
csr_write(CSR_VSISELECT, __c); \
csr_write(CSR_HSTATUS, new_hstatus);
csr_write(CSR_HSTATUS, old_hstatus);
csr_write(CSR_VSISELECT, old_vsiselect);
csr_write(CSR_HSTATUS, new_hstatus);
csr_write(CSR_HSTATUS, old_hstatus);
csr_write(CSR_VSISELECT, old_vsiselect);
csr_write(CSR_HSTATUS, new_hstatus);
csr_write(CSR_HSTATUS, old_hstatus);
csr_write(CSR_VSISELECT, old_vsiselect);
csr_write(CSR_HSTATUS, new_hstatus);
csr_write(CSR_HSTATUS, old_hstatus);
csr_write(CSR_VSISELECT, old_vsiselect);
csr_write(CSR_VSISELECT, __c); \
csr_write(CSR_HGATP, HGATP_MODE_SV57X4 << HGATP_MODE_SHIFT);
csr_write(CSR_HGATP, HGATP_MODE_SV48X4 << HGATP_MODE_SHIFT);
csr_write(CSR_HGATP, HGATP_MODE_SV39X4 << HGATP_MODE_SHIFT);
csr_write(CSR_HGATP, HGATP_MODE_SV32X4 << HGATP_MODE_SHIFT);
csr_write(CSR_HGATP, 0);
csr_write(CSR_HEDELEG, KVM_HEDELEG_DEFAULT);
csr_write(CSR_HIDELEG, KVM_HIDELEG_DEFAULT);
csr_write(CSR_HCOUNTEREN, 0x02);
csr_write(CSR_HVIP, 0);
csr_write(CSR_VSIE, 0);
csr_write(CSR_HVIP, 0);
csr_write(CSR_HEDELEG, 0);
csr_write(CSR_HIDELEG, 0);
csr_write(CSR_HGATP, hgatp);
csr_write(CSR_HGATP, hgatp);
csr_write(CSR_HGATP, hgatp);
csr_write(CSR_HGATP, hgatp);
csr_write(CSR_VSSTATUS, csr->vsstatus);
csr_write(CSR_VSIE, csr->vsie);
csr_write(CSR_VSTVEC, csr->vstvec);
csr_write(CSR_VSSCRATCH, csr->vsscratch);
csr_write(CSR_VSEPC, csr->vsepc);
csr_write(CSR_VSCAUSE, csr->vscause);
csr_write(CSR_VSTVAL, csr->vstval);
csr_write(CSR_HEDELEG, cfg->hedeleg);
csr_write(CSR_HVIP, csr->hvip);
csr_write(CSR_VSATP, csr->vsatp);
csr_write(CSR_HENVCFG, cfg->henvcfg);
csr_write(CSR_HENVCFGH, cfg->henvcfg >> 32);
csr_write(CSR_HSTATEEN0, cfg->hstateen0);
csr_write(CSR_HSTATEEN0H, cfg->hstateen0 >> 32);
csr_write(CSR_STVEC, old_stvec);
csr_write(CSR_HSTATUS, old_hstatus);
csr_write(CSR_HENVCFG, vcpu->arch.cfg.henvcfg);
csr_write(CSR_VSTIMECMP, -1UL);
csr_write(CSR_VSTIMECMPH, -1UL);
csr_write(CSR_HGATP, (kvm_riscv_gstage_mode << HGATP_MODE_SHIFT) | HGATP_VMID);
csr_write(CSR_HGATP, 0);
csr_write(CSR_SATP, virt_to_pfn(mm->pgd) |
csr_write(CSR_SATP, virt_to_pfn(mm->pgd) | satp_mode);
csr_write(CSR_SATP, asid_bits);
csr_write(CSR_SATP, old);
csr_write(CSR_SATP, PFN_DOWN(__pa_symbol(swapper_pg_dir)) | satp_mode);
csr_write(CSR_SATP, identity_satp);
csr_write(CSR_SATP, PFN_DOWN(__pa(tmp_pg_dir)) | satp_mode);
csr_write(CSR_SATP, PFN_DOWN(__pa(swapper_pg_dir)) | satp_mode);
csr_write(AX45MP_CCTL_REG_UCCTLBEGINADDR_NUM, start);
csr_write(AX45MP_CCTL_REG_UCCTLCOMMAND_NUM, l1_op);
csr_write(CSR_STIMECMP, ULONG_MAX);
csr_write(CSR_STIMECMPH, ULONG_MAX);
csr_write(CSR_STIMECMP, ULONG_MAX);
csr_write(CSR_STIMECMPH, next_tval >> 32);
csr_write(CSR_STIMECMP, next_tval & 0xFFFFFFFF);
csr_write(CSR_STIMECMP, next_tval);
csr_write(CSR_DMW0_INIT, LOONGARCH_CSR_DMWIN0);
csr_write(CSR_DMW1_INIT, LOONGARCH_CSR_DMWIN1);
csr_write(CSR_DMW2_INIT, LOONGARCH_CSR_DMWIN2);
csr_write(CSR_DMW3_INIT, LOONGARCH_CSR_DMWIN3);
csr_write(CSR_SATP, 0);
csr_write(CSR_ISELECT, reg);
csr_write(CSR_IREG, val);
csr_write(CSR_ISELECT, reg);
csr_write(CSR_ISELECT, reg);
csr_write(CSR_ISELECT, reg);
csr_write(CSR_ISELECT, reg);
csr_write(CSR_SCOUNTEREN, 0x7);
csr_write(CSR_SCOUNTEREN, 0x2);
csr_write(CSR_SCOUNTEREN, 0x0);
csr_write(CSR_SCOUNTEREN, 0x7);
csr_write(CSR_SCOUNTEREN, 0x2);
csr_write(CSR_SCOUNTEREN,
csr_write(CSR_SCOUNTEREN,
csr_write(0, LOONGARCH_CSR_TCFG);
csr_write(val, LOONGARCH_CSR_ECFG);
csr_write(val, LOONGARCH_CSR_ECFG);
csr_write(val, LOONGARCH_CSR_TCFG);
csr_write(CSR_STIMECMP, cval);
csr_write(CSR_TINTCLR_TI, LOONGARCH_CSR_TINTCLR);
csr_write(CSR_TINTCLR_TI, LOONGARCH_CSR_TINTCLR);
csr_write(CSR_TINTCLR_TI, LOONGARCH_CSR_TINTCLR);