Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / uarch / pmu / diag / itlbSl3.pal
# 1 "pmu_sl4_mask_n2.pal"
:#define MAIN_PAGE_NUCLEUS_ALSO
:#define MAIN_PAGE_HV_ALSO
:#define DMMU_SKIP_IF_NO_TTE
:#include "hboot.s"
:
:.text
:.global main
:main:
:! Thread 0 Start
:!main_t0:
: set 0x20010044, %l0 ! Reserved
: set 0x20110084, %l1 ! Reserved
: set 0x5822c102, %l2 ! Count ITLB References to L2
: set 0x1840c202, %l3 ! Count DTLB References to L2
: set 0x20810402, %l4 ! Count ITLB References to L2 which miss in L2
: set 0x21010802, %l5 ! count DTLB References to L2 which miss in L2
: set 0x22011004, %l6 ! Reserved
: set 0x24012004, %l7 ! Reserved
: ! Execute Main Diag ..
: ta T_CHANGE_PRIV ! Should cause Watchdog_reset trap
:!Count_ITLB_References:
: wr %l2, %g0, %pcr ! count ITLB References
: wr %g0, %g0, %pic ! zero out the counter
for ($i=0; $i<10; $i++) {
: ta T_CHANGE_HPRIV
: set 0x80, %g1
: stxa %g1, [%g1] 0x57
: ta T_CHANGE_NONHPRIV
: and %g1, %g2, %g3
}
:!
:! Add ITLB References
:!
:!Check_ITLB_References:
: setx 0x0000001300000013, %o4, %g5 ! Set expected results in %g5
: rd %pic, %g2 ! load the current pic value into %g2
: xor %g2, %g5, %g6 ! Compare expected results with actual
: brnz %g6, fail
: nop
:done:
: EXIT_GOOD
:fail:
: EXIT_BAD
:.data
:user_data_start:
:scratch_area:
:.align 16
:load_1:
:.word 0xFFFF2e2d
:.word 0x2e2dFFFF
:.align 16
:store_1:
:.align 16
:.word 0xDEADBEEF
:.word 0xAAAAAAAA
:.align 16
:.end