dragon-nx-32: turn on tc3 probing logic and fix tc3 bugs
authorAlan Cox <alan@linux.intel.com>
Sat, 10 Oct 2015 20:12:21 +0000 (21:12 +0100)
committerAlan Cox <alan@linux.intel.com>
Sat, 10 Oct 2015 20:12:21 +0000 (21:12 +0100)
B is the 8bit return
Remove bogus push of pc in the cmd write

Kernel/platform-dragon-nx32/devices.c
Kernel/platform-dragon-nx32/scsi_tc3.s

index cf0aa19..27fd898 100644 (file)
@@ -78,4 +78,5 @@ void device_init(void)
       ide_slot = i;
     }
     devide_init();
+    devscsi_init();
 }
index 38ff0fd..16824b7 100644 (file)
@@ -32,7 +32,7 @@ _si_read:                     ; X is pointer
        sta ,x+
        leay -1,y
        bne _si_read
-       ldx #0                  ; Return 0
+       clrb                    ; Return 0
        puls y,u,pc
 
 _si_write:                     ; X is pointer, dcb block gives length
@@ -47,12 +47,12 @@ _si_write:                  ; X is pointer, dcb block gives length
        sta $FF70
        leay -1,y
        bne _si_write
-       ldx #0                  ; Return 0
+       clrb                    ; Return 0
        puls y,u,pc
 timeout:
        tfr u,s                 ; Throw an exception
 si_busfailw:
-       ldx #-1
+       ldb #-1
        puls y,u,pc
 
 ;
@@ -72,7 +72,7 @@ waitreql:
        .area .text
        
 _si_writecmd:                  ; DCB, B is len (check B or X)
-       pshs y,u,pc
+       pshs y,u
        tfr s,u                 ; Required exception frame for waitreq
        jsr waitreq
        ldx #_si_dcb
@@ -82,14 +82,14 @@ _si_writecmd:                       ; DCB, B is len (check B or X)
        sta $FF70
        decb
        bne _si_writecmd
-       ldx #0                  ; Return 0
+       clrb                    ; Return 0
        puls y,u,pc
 si_busfail:
-       ldx #-1                 ; Error (should sort some codes for type!)
+       ldb #-1                 ; Error (should sort some codes for type!)
        puls y,u,pc
 
 _si_select:                    ; Select device B
-       cmpb #7
+       ldb #_si_dcb+20         ; Device number
        beq si_seltimeo         ; FIXME: different errorcodes ? 
        ldx #0
        lda #1
@@ -116,10 +116,10 @@ si_bsyc:
        lda $FF71
        bita #0x02
        beq si_bsyc             ; The device asserts BSY for us
-       ldx #0                  ; All good
+       clrb                    ; All good
        rts
 si_seltimeo:
-       ldx #-1
+       ldb #-1
        rts
 
 _si_clear: