|
|
|
@ -115,8 +115,10 @@ |
|
|
|
; |
|
|
|
SD_NOPULLUP .EQU TRUE ; ASSUME NO PULLUP |
|
|
|
; |
|
|
|
SD_DEVCNT .EQU SDCNT ; SET SD_DEVCNT TO SDCNT CONFIG VAR |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_JUHA) ; JUHA MINI-BOARD |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION |
|
|
|
SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE |
|
|
|
SD_OPRMSK .EQU %10000111 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
@ -131,7 +133,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_N8) ; UNMODIFIED N8-2511 |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION |
|
|
|
SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE |
|
|
|
SD_OPRMSK .EQU %01000111 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
@ -146,7 +148,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_CSIO) ; N8-2312 |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION |
|
|
|
SD_OPRDEF .EQU %00000000 ; QUIESCENT STATE |
|
|
|
SD_OPRMSK .EQU %00000100 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
@ -159,7 +161,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_PPI) ; PPISD |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_PPIBASE .EQU PPIBASE ; BASE IO PORT FOR PPI |
|
|
|
SD_PPIB .EQU PPIBASE + 1 ; PPI PORT B (INPUT: DOUT) |
|
|
|
SD_PPIC .EQU PPIBASE + 2 ; PPI PORT C (OUTPUT: CS, CLK, DIN) |
|
|
|
@ -175,7 +177,7 @@ SD_IOBASE .EQU SD_PPIBASE ; IOBASE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_UART) |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU SIO_MCR ; UART MCR PORT (OUTPUT: CS, CLK, DIN) |
|
|
|
SD_OPRDEF .EQU %00001100 ; QUIESCENT STATE |
|
|
|
SD_OPRMSK .EQU %00101101 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
@ -188,7 +190,7 @@ SD_IOBASE .EQU UARTIOB ; IOBASE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_DSD) ; DUAL SD |
|
|
|
SD_DEVCNT .EQU SDCNT ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU $08 ; DEDICATED OPERATIONS REGISTER |
|
|
|
SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE |
|
|
|
SD_INPREG .EQU SD_OPRREG ; INPUT REGISTER IS OPRREG |
|
|
|
@ -202,7 +204,7 @@ SD_IOBASE .EQU SD_OPRREG ; IOBASE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_MK4) ; MARK IV (CSIO STYLE INTERFACE) |
|
|
|
SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU $89 ; DEDICATED MK4 SDCARD REGISTER |
|
|
|
SD_OPRDEF .EQU %00000000 ; QUIESCENT STATE |
|
|
|
SD_CS0 .EQU %00000100 ; SELECT ACTIVE |
|
|
|
@ -212,7 +214,7 @@ SD_IOBASE .EQU SD_OPRREG ; IOBASE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_SC) ; SC |
|
|
|
SD_DEVCNT .EQU SDCNT ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION |
|
|
|
SD_OPRDEF .EQU %00001100 ; QUIESCENT STATE (/CS1 & /CS2 DEASSERTED) |
|
|
|
SD_OPRMSK .EQU %00001100 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
@ -232,7 +234,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE |
|
|
|
; ARE ASSUMED TO BE CONNECTED TO SD CARDS. |
|
|
|
; |
|
|
|
SD_BASE .EQU $5C ; Module base address |
|
|
|
SD_DEVCNT .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) |
|
|
|
SD_WRTR .EQU SD_BASE + 0 ; Write data and transfer |
|
|
|
SD_RDTR .EQU SD_BASE + 1 ; Read data and transfer |
|
|
|
SD_RDNTR .EQU SD_BASE + 0 ; Read data and NO transfer |
|
|
|
@ -261,6 +263,11 @@ SD_CS1 .EQU %00010000 ; IN/OUT:SD_OPREG:4 = CS1, SDCARD1 CS, IN=1 Card present |
|
|
|
SD_IOBASE .EQU SD_BASE ; IOBASE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (SD_DEVCNT > SD_DEVMAX) |
|
|
|
.ECHO "*** ERROR: SDCNT EXCEEDS MAXIMUM SUPPORTED BY INTERFACE!!!\n" |
|
|
|
!!! ; FORCE AN ASSEMBLY ERROR |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; SD CARD COMMANDS |
|
|
|
; |
|
|
|
SD_CMD_GO_IDLE_STATE .EQU $40 + 0 ; $40, CMD0 -> R1 |
|
|
|
|