OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [trunk/] [monitor/] [monitor/] [boards/] [s3e-500/] [start.s] - Diff between revs 180 and 182

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 180 Rev 182
Line 25... Line 25...
 
 
        .import _ecode
        .import _ecode
        .import _edata
        .import _edata
        .import _ebss
        .import _ebss
 
 
        .import kbdinit
 
        .import kbdinchk
 
        .import kbdin
 
 
 
        .import dspinit
        .import dspinit
        .import dspoutchk
        .import dspoutchk
        .import dspout
        .import dspout
 
 
        .import serinit
        .import kbdinit
 
        .import kbdinchk
 
        .import kbdin
 
 
 
        .import ser0init
        .import ser0inchk
        .import ser0inchk
        .import ser0in
        .import ser0in
        .import ser0outchk
        .import ser0outchk
        .import ser0out
        .import ser0out
 
 
        .import sctcapctl
        .import ser1init
        .import sctioctl
        .import ser1inchk
        .import sctcapser
        .import ser1in
        .import sctioser
        .import ser1outchk
 
        .import ser1out
 
 
 
        .import dskinit
 
        .import dskcapctl
 
        .import dskioctl
 
        .import dskcapser
 
        .import dskioser
 
 
        .import main
        .import main
 
 
        .export _bcode
        .export _bcode
        .export _bdata
        .export _bdata
Line 61... Line 68...
        .export soutchk
        .export soutchk
        .export sout
        .export sout
        .export dskcap
        .export dskcap
        .export dskio
        .export dskio
 
 
        .export setISR
 
        .export setUMSR
 
        .export isrPtr
 
        .export umsrPtr
 
 
 
        .export getTLB_HI
        .export getTLB_HI
        .export getTLB_LO
        .export getTLB_LO
        .export setTLB
        .export setTLB
 
 
        .export saveState
        .export saveState
Line 149... Line 151...
        j       reserved2
        j       reserved2
 
 
reserved3:
reserved3:
        j       reserved3
        j       reserved3
 
 
setISR:
 
        j       setISR1
 
 
 
setUMSR:
 
        j       setUMSR1
 
 
 
;***************************************************************
;***************************************************************
 
 
        .code
        .code
        .align  4
        .align  4
 
 
Line 173... Line 169...
        stw     $9,$8,0
        stw     $9,$8,0
 
 
        ; initialize TLB
        ; initialize TLB
        mvts    $0,TLB_ENTRY_LO          ; invalidate all TLB entries
        mvts    $0,TLB_ENTRY_LO          ; invalidate all TLB entries
        add     $8,$0,dmapaddr           ; by impossible virtual page number
        add     $8,$0,dmapaddr           ; by impossible virtual page number
        add     $9,$0,$0
 
        add     $10,$0,TLB_ENTRIES
 
tlbloop:
 
        mvts    $8,TLB_ENTRY_HI
        mvts    $8,TLB_ENTRY_HI
        mvts    $9,TLB_INDEX
        add     $8,$0,$0
 
        add     $9,$0,TLB_ENTRIES
 
tlbloop:
 
        mvts    $8,TLB_INDEX
        tbwi
        tbwi
        add     $8,$8,0x1000            ; all entries must be different
        add     $8,$8,1
        add     $9,$9,1
        bne     $8,$9,tlbloop
        bne     $9,$10,tlbloop
 
 
 
        ; copy data segment
        ; copy data segment
        add     $10,$0,_bdata            ; lowest dst addr to be written to
        add     $10,$0,_bdata            ; lowest dst addr to be written to
        add     $8,$0,_edata             ; one above the top dst addr
        add     $8,$0,_edata             ; one above the top dst addr
        sub     $9,$8,$10               ; $9 = size of data segment
        sub     $9,$8,$10               ; $9 = size of data segment
Line 211... Line 206...
 
 
        ; now do some useful work
        ; now do some useful work
        add     $29,$0,stacktop          ; setup monitor stack
        add     $29,$0,stacktop          ; setup monitor stack
        jal     dspinit                 ; init display
        jal     dspinit                 ; init display
        jal     kbdinit                 ; init keyboard
        jal     kbdinit                 ; init keyboard
        jal     serinit                 ; init serial interface
        jal     ser0init                ; init serial line 0
 
        jal     ser1init                ; init serial line 1
 
        jal     dskinit                 ; init disk
        jal     main                    ; enter command loop
        jal     main                    ; enter command loop
 
 
        ; main should never return
        ; main should never return
        j       start                   ; just to be sure...
        j       start                   ; just to be sure...
 
 
Line 252... Line 249...
        .align  4
        .align  4
 
 
        ; int dskcap(int dskno)
        ; int dskcap(int dskno)
dcap:
dcap:
        bne     $4,$0,dcapser
        bne     $4,$0,dcapser
        j       sctcapctl
        j       dskcapctl
dcapser:
dcapser:
        j       sctcapser
        j       dskcapser
 
 
        ; int dskio(int dskno, char cmd, int sct, Word addr, int nscts)
        ; int dskio(int dskno, char cmd, int sct, Word addr, int nscts)
dio:
dio:
        bne     $4,$0,dioser
        bne     $4,$0,dioser
        add     $4,$5,$0
        add     $4,$5,$0
        add     $5,$6,$0
        add     $5,$6,$0
        add     $6,$7,$0
        add     $6,$7,$0
        ldw     $7,$29,16
        ldw     $7,$29,16
        j       sctioctl
        j       dskioctl
dioser:
dioser:
        add     $4,$5,$0
        add     $4,$5,$0
        add     $5,$6,$0
        add     $5,$6,$0
        add     $6,$7,$0
        add     $6,$7,$0
        ldw     $7,$29,16
        ldw     $7,$29,16
        j       sctioser
        j       dskioser
 
 
;***************************************************************
 
 
 
        .code
 
        .align  4
 
 
 
        ; void setISR(Word ptr)
 
setISR1:
 
        stw     $4,$0,isrPtr
 
        jr      $31
 
 
 
        ; void setUMSR(Word ptr)
 
setUMSR1:
 
        stw     $4,$0,umsrPtr
 
        jr      $31
 
 
 
        .data
 
        .align  4
 
 
 
isrPtr:
 
        .word   0
 
 
 
umsrPtr:
 
        .word   0
 
 
 
;***************************************************************
;***************************************************************
 
 
        .code
        .code
        .align  4
        .align  4

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.