ats.s 1.57 KB
/************************************************************************
  This RSP program implements the Algorithmic Test Sequence (ATS) memory
  test procedure for DMEM.
 ************************************************************************/

#define	G0_START	0x0FFC
#define	G1_START	0x0FF4
#define	G2_START	0x0FF8

	.base 0x04001000

	nor	$31, $0,  $0

	ori	$30, $0,  1
	ori	$1,  $0,  G1_START
Step1a:	sw	$0,  0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step1a
	nop

	ori	$1,  $0,  G2_START
Step1b:	sw	$0,  0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step1b
	nop

	ori	$30, $0,  2
	ori	$1,  $0,  G0_START
Step2:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step2
	nop

	ori	$30, $0,  3
	ori	$1,  $0,  G1_START
Step3:	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step3
	nop

	ori	$30, $0,  4
	ori	$1,  $0,  G1_START
Step4:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step4
	nop

	ori	$30, $0,  5
	ori	$1,  $0,  G2_START
Step5:	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step5
	nop

	ori	$30, $0,  6
	ori	$1,  $0,  G0_START
Step6a:	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step6a
	nop

	ori	$1,  $0,  G1_START
Step6b:	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step6b
	nop

	ori	$30, $0,  7
	ori	$1,  $0,  G0_START
Step7:	sw	$0,  0 ($1)
	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step7
	nop

	ori	$30, $0,  8
	ori	$1,  $0,  G2_START
Step8:	sw	$31, 0 ($1)
	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step8
	nop

	ori	$1,  $0,  0xFEED
Fail:	break