68000: add IDE copiers, tidy up
authorAlan Cox <alan@linux.intel.com>
Mon, 12 Sep 2016 23:17:09 +0000 (00:17 +0100)
committerAlan Cox <alan@linux.intel.com>
Mon, 12 Sep 2016 23:17:09 +0000 (00:17 +0100)
Kernel/platform-v68/p68000.S

index 773df5f..647eb19 100644 (file)
@@ -9,6 +9,8 @@
                .globl outchar
                .globl trap_monitor
                .globl udata_block
+               .globl devide_read_data
+               .globl devide_write_data
 
 .mri 1
 trap_reboot:
@@ -64,23 +66,18 @@ trapset:
            move.l #timer_irq,$78(a0)
            move.l #mmu_fault,$7C(a0)
 
-           moveq #100,d0                       ; Timer on (but slow)
+           moveq #1,d0                 ;
            move.b d0,$00F04000
             rts
 
 timer_irq:
            movem.l a0-a6/d0-d7,-(a7)
-           move.l #intmsg,a0
-           bsr outstring
            move.l udata_shadow,a5      ; set up the register global
            jsr platform_interrupt
            move.b $00F04000,d0         ; Re-enable
            movem.l (a7)+,a0-a6/d0-d7
            rte
 
-intmsg:
-           asciz "IRQ"
-
 mmu_fault:
            movem.l a0-a6/d0-d7,-(a7)
            move.l #mmutrap,a0
@@ -119,6 +116,25 @@ outcharw:
            move.b d0,$00F03000
            rts
 
+;
+;      IDE
+;
+devide_read_data:
+       move.l blk_op,a0
+       move.w #255,d0
+devide_read_l:
+       move.w $00F01000,(a0)+
+       dbra d0,devide_read_l
+       rts
+
+devide_write_data:
+       move.l blk_op,a0
+       move.w #255,d0
+devide_write_l:
+       move.w (a0)+,$00F01000
+       dbra d0,devide_write_l
+       rts
+
 .section data
 
 kernel_flag: byte 1