CSR_SATP
hdr->saved_satp = csr_read(CSR_SATP);
context->satp = csr_read(CSR_SATP);
csr_write(CSR_SATP, context->satp);
csr_write(CSR_SATP, virt_to_pfn(mm->pgd) |
csr_write(CSR_SATP, virt_to_pfn(mm->pgd) | satp_mode);
old = csr_read(CSR_SATP);
csr_write(CSR_SATP, asid_bits);
asid_bits = (csr_read(CSR_SATP) >> SATP_ASID_SHIFT) & SATP_ASID_MASK;
csr_write(CSR_SATP, old);
pfn = csr_read(CSR_SATP) & SATP_PPN;
csr_write(CSR_SATP, PFN_DOWN(__pa_symbol(swapper_pg_dir)) | satp_mode);
csr_write(CSR_SATP, identity_satp);
hw_satp = csr_swap(CSR_SATP, 0ULL);
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(CSR_SATP, 0);