##// END OF EJS Templates
added re-run option to LFR filter random ram init test.
added re-run option to LFR filter random ram init test.

File last commit:

r14:46dea010b1a4 default
r680:45edea4f35b8 default
Show More
prom.S
185 lines | 2.3 KiB | text/S-plus | SLexer
/* Template boot-code for LEON3 test benches */
#ifndef STACKSIZE
#define STACKSIZE 0x00002000
#endif
#include "prom.h"
.seg "text"
.proc 0
.align 4
.global start
start:
flush
set 0x10e0, %g1 ! init IU
mov %g1, %psr
mov %g0, %wim
mov %g0, %tbr
mov %g0, %y
nop
set 0x81000f, %g1
sta %g1, [%g0] 2
mov %g0, %g2
nop
nop
nop
nop
nop
or %g2, %g2, %g0
nop
nop
nop
nop
nop
2:
mov %asr17, %g3
and %g3, 0x1f, %g3
mov %g0, %g4
mov %g0, %g5
mov %g0, %g6
mov %g0, %g7
1:
mov %g0, %l0
mov %g0, %l1
mov %g0, %l2
mov %g0, %l3
mov %g0, %l4
mov %g0, %l5
mov %g0, %l6
mov %g0, %l7
mov %g0, %o0
mov %g0, %o1
mov %g0, %o2
mov %g0, %o3
mov %g0, %o4
mov %g0, %o5
mov %g0, %o6
mov %g0, %o7
subcc %g3, 1, %g3
bge 1b
save
mov 2, %g1
mov %g1, %wim
set 0x10e0, %g1 ! enable traps
mov %g1, %psr
nop; nop; nop;
mov %psr, %g1
srl %g1, 12, %g1
andcc %g1, 1, %g0
be 1f
nop
set _fsrxx, %g3
ld [%g3], %fsr
ldd [%g3], %f0
ldd [%g3], %f2
ldd [%g3], %f4
ldd [%g3], %f6
ldd [%g3], %f8
ldd [%g3], %f10
ldd [%g3], %f12
ldd [%g3], %f14
ldd [%g3], %f16
ldd [%g3], %f18
ldd [%g3], %f20
ldd [%g3], %f22
ldd [%g3], %f24
ldd [%g3], %f26
ldd [%g3], %f28
ldd [%g3], %f30
nop
nop
nop
nop
nop
faddd %f0, %f2, %f4
nop
nop
nop
nop
ba 1f
nop
.align 8
_fsrxx:
.word 0
.word 0
1:
set 0xfff00100, %g3
ld [%g3], %g4
set 0x7c1fffff, %g5
and %g5, %g4, %g4
set 0x01010000, %g5
or %g5, %g4, %g4
st %g4, [%g3]
set 0x80000600, %g7
set RAMSTART, %g1
st %g1, [%g7+0x14]
set 0x0257031f, %g1
st %g1, [%g7+4]
set 0x00250038, %g1
st %g1, [%g7+8]
set 0x00060078, %g1
st %g1, [%g7+12]
set 0x0299040f, %g1
st %g1, [%g7+16]
set 0x21, %g1
! st %g1, [%g7]
mov %asr17, %g3
srl %g3, 28, %g3
andcc %g3, 0x0f, %g3
bne 1f
set L2MCTRLIO, %g1
set MCFG1, %g2
st %g2, [%g1]
set MCFG2, %g2
st %g2, [%g1+4]
set MCFG3, %g2
st %g2, [%g1+8]
! set IRQCTRL, %g1
! set 0x0ffff, %g2
! st %g2, [%g1+0x10]
set 0xFFFFF860, %g1
ld [%g1], %g2
srl %g2, 12, %g2
set 0x01009, %g1
subcc %g1, %g2, %g0
bne 1f
set ASDCFG, %g1
set DSDCFG, %g2
st %g2, [%g1]
! %g3 = cpu index
1: set STACKSIZE, %g2
mov %g0, %g1
2: subcc %g3, 0, %g0
be 3f
nop
add %g1, %g2, %g1
ba 2b
sub %g3, 1, %g3
3: set RAMSTART+ RAMSIZE-32, %fp
sub %fp, %g1, %fp
sub %fp, 96, %sp
set RAMSTART, %g1
! st %g0, [%g7]
jmp %g1
nop
.align 32