0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <linux/linkage.h>
0011
0012 #include <asm/asmmacro.h>
0013 #include <asm/pgtsrmmu.h>
0014 #include <asm/asi.h>
0015
0016
0017 ENTRY(srmmu_get_mmureg)
0018 LEON_PI(lda [%g0] ASI_LEON_MMUREGS, %o0)
0019 SUN_PI_(lda [%g0] ASI_M_MMUREGS, %o0)
0020 retl
0021 nop
0022 ENDPROC(srmmu_get_mmureg)
0023
0024
0025 ENTRY(srmmu_set_mmureg)
0026 LEON_PI(sta %o0, [%g0] ASI_LEON_MMUREGS)
0027 SUN_PI_(sta %o0, [%g0] ASI_M_MMUREGS)
0028 retl
0029 nop
0030 ENDPROC(srmmu_set_mmureg)
0031
0032
0033 ENTRY(srmmu_set_ctable_ptr)
0034
0035 srl %o0, 4, %g1
0036 and %g1, SRMMU_CTX_PMASK, %g1
0037
0038 mov SRMMU_CTXTBL_PTR, %g2
0039 LEON_PI(sta %g1, [%g2] ASI_LEON_MMUREGS)
0040 SUN_PI_(sta %g1, [%g2] ASI_M_MMUREGS)
0041 retl
0042 nop
0043 ENDPROC(srmmu_set_ctable_ptr)
0044
0045
0046
0047 ENTRY(srmmu_set_context)
0048 mov SRMMU_CTX_REG, %g1
0049 LEON_PI(sta %o0, [%g1] ASI_LEON_MMUREGS)
0050 SUN_PI_(sta %o0, [%g1] ASI_M_MMUREGS)
0051 retl
0052 nop
0053 ENDPROC(srmmu_set_context)
0054
0055
0056
0057 ENTRY(srmmu_get_context)
0058 mov SRMMU_CTX_REG, %o0
0059 LEON_PI(lda [%o0] ASI_LEON_MMUREGS, %o0)
0060 SUN_PI_(lda [%o0] ASI_M_MMUREGS, %o0)
0061 retl
0062 nop
0063 ENDPROC(srmmu_get_context)
0064
0065
0066
0067 ENTRY(srmmu_get_fstatus)
0068 mov SRMMU_FAULT_STATUS, %o0
0069 LEON_PI(lda [%o0] ASI_LEON_MMUREGS, %o0)
0070 SUN_PI_(lda [%o0] ASI_M_MMUREGS, %o0)
0071 retl
0072 nop
0073 ENDPROC(srmmu_get_fstatus)
0074
0075
0076
0077 ENTRY(srmmu_get_faddr)
0078 mov SRMMU_FAULT_ADDR, %o0
0079 LEON_PI(lda [%o0] ASI_LEON_MMUREGS, %o0)
0080 SUN_PI_(lda [%o0] ASI_M_MMUREGS, %o0)
0081 retl
0082 nop
0083 ENDPROC(srmmu_get_faddr)