Restriction 40: Scrubbing a Single-Bit Error

hw_mtpr

r31, EV6__DTB_IA

; (7,1L) flush dtb

lda

r20, ^x3301(r31)

; set WE, RE

bis

r31, r31,

r31

 

bis

r31, r31,

r31

 

hw_mtpr

r31, <EV6__MM_STAT ! ^x80>

srl

r4, #13, r6

sll

r6, #EV6__DTB_PTE0__PFN__S, r6

bis

r6, r20, r6

hw_mtpr

r4, EV6__DTB_TAG0

hw_mtpr

r4, EV6__DTB_TAG1

hw_mtpr

r6, EV6__DTB_PTE0

hw_mtpr

r6, EV6__DTB_PTE1

;wait for retire

;shift byte offset

;shift into position

;produce pte

;(2&6,0L) write tag0

;(1&5,1L) write tag1

;(0&4,0L) write pte0

;(3&7,1L) write pte1

mb

 

; quiet before we start

bis

r31, r31, r31

 

bis

r31, r31, r31

 

bis

r31, r31, r31

 

ldq

r6, ^x00(r4)

; re-read the bad block QW #0

ldq

r6, ^x08(r4)

; re-read the bad block QW #1

ldq

r6, ^x10(r4)

; re-read the bad block QW #2

ldq

r6, ^x18(r4)

; re-read the bad block QW #3

ldq

r6, ^x20(r4)

; re-read the bad block QW #4

ldq

r6, ^x28(r4)

; re-read the bad block QW #5

ldq

r6, ^x30(r4)

; re-read the bad block QW #6

mb

 

; no other mem-ops till done

ldq_l

r6, ^x38(r4)

; re-read the bad block QW #7

stq_c

r6, ^x38(r4)

; now store it to force scrub

mb

 

 

and

r6, r31, r6

; consumer of above

beq

r6, sys__crd_scrub_done

; these 2 lines

br

r31, .-4

; .....stop pre-fetching

sys__crd_scrub_done:

 

bsr

r7, sys__cbox

; clean the cbox error chain

bis

r31, r31, r31

 

hw_mtpr

r31, EV6__DTB_IA

; (7,1L) flush dtb

bis

r31, r31, r31

 

bis

r31, r31, r31

 

bis

r31, r31, r31

 

hw_mtpr

r31, <EV6__MM_STAT ! ^x80>

; wait for retire

bis

r31, #1, r7

; get a 1

sll

r7, #EV6__HW_INT_CLR__CR__S, r7

; shift into position

hw_mtpr

r7, EV6__HW_INT_CLR

; (4,0L) clear crd

lda

r7, EV6__DC_STAT_W1C_CRD(r31)

; W1C bits

hw_mtpr

r7, EV6__DC_STAT

; (6,0L)

bis

r31, r31 ,r31

 

bis

r31, r31 ,r31

 

hw_mtpr

r31, <EV6__MM_STAT ! ^x50>

; stall till they retire

D–20PALcode Restrictions and Guidelines

Alpha 21264/EV67 Hardware Reference Manual

Page 318
Image 318
Compaq EV67, 21264 specifications Restriction 40 Scrubbing a Single-Bit Error, 20PALcode Restrictions and Guidelines