diff options
Diffstat (limited to 'arch/sparc64/kernel/entry.S')
-rw-r--r-- | arch/sparc64/kernel/entry.S | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index ffe717ab7f83..eee516a71c14 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -701,116 +701,6 @@ utrap_ill: | |||
701 | ba,pt %xcc, rtrap | 701 | ba,pt %xcc, rtrap |
702 | clr %l6 | 702 | clr %l6 |
703 | 703 | ||
704 | #ifdef CONFIG_BLK_DEV_FD | ||
705 | .globl floppy_hardint | ||
706 | floppy_hardint: | ||
707 | wr %g0, (1 << 11), %clear_softint | ||
708 | sethi %hi(doing_pdma), %g1 | ||
709 | ld [%g1 + %lo(doing_pdma)], %g2 | ||
710 | brz,pn %g2, floppy_dosoftint | ||
711 | sethi %hi(fdc_status), %g3 | ||
712 | ldx [%g3 + %lo(fdc_status)], %g3 | ||
713 | sethi %hi(pdma_vaddr), %g5 | ||
714 | ldx [%g5 + %lo(pdma_vaddr)], %g4 | ||
715 | sethi %hi(pdma_size), %g5 | ||
716 | ldx [%g5 + %lo(pdma_size)], %g5 | ||
717 | |||
718 | next_byte: | ||
719 | lduba [%g3] ASI_PHYS_BYPASS_EC_E, %g7 | ||
720 | andcc %g7, 0x80, %g0 | ||
721 | be,pn %icc, floppy_fifo_emptied | ||
722 | andcc %g7, 0x20, %g0 | ||
723 | be,pn %icc, floppy_overrun | ||
724 | andcc %g7, 0x40, %g0 | ||
725 | be,pn %icc, floppy_write | ||
726 | sub %g5, 1, %g5 | ||
727 | |||
728 | inc %g3 | ||
729 | lduba [%g3] ASI_PHYS_BYPASS_EC_E, %g7 | ||
730 | dec %g3 | ||
731 | orcc %g0, %g5, %g0 | ||
732 | stb %g7, [%g4] | ||
733 | bne,pn %xcc, next_byte | ||
734 | add %g4, 1, %g4 | ||
735 | |||
736 | b,pt %xcc, floppy_tdone | ||
737 | nop | ||
738 | |||
739 | floppy_write: | ||
740 | ldub [%g4], %g7 | ||
741 | orcc %g0, %g5, %g0 | ||
742 | inc %g3 | ||
743 | stba %g7, [%g3] ASI_PHYS_BYPASS_EC_E | ||
744 | dec %g3 | ||
745 | bne,pn %xcc, next_byte | ||
746 | add %g4, 1, %g4 | ||
747 | |||
748 | floppy_tdone: | ||
749 | sethi %hi(pdma_vaddr), %g1 | ||
750 | stx %g4, [%g1 + %lo(pdma_vaddr)] | ||
751 | sethi %hi(pdma_size), %g1 | ||
752 | stx %g5, [%g1 + %lo(pdma_size)] | ||
753 | sethi %hi(auxio_register), %g1 | ||
754 | ldx [%g1 + %lo(auxio_register)], %g7 | ||
755 | lduba [%g7] ASI_PHYS_BYPASS_EC_E, %g5 | ||
756 | or %g5, AUXIO_AUX1_FTCNT, %g5 | ||
757 | /* andn %g5, AUXIO_AUX1_MASK, %g5 */ | ||
758 | stba %g5, [%g7] ASI_PHYS_BYPASS_EC_E | ||
759 | andn %g5, AUXIO_AUX1_FTCNT, %g5 | ||
760 | /* andn %g5, AUXIO_AUX1_MASK, %g5 */ | ||
761 | |||
762 | nop; nop; nop; nop; nop; nop; | ||
763 | nop; nop; nop; nop; nop; nop; | ||
764 | |||
765 | stba %g5, [%g7] ASI_PHYS_BYPASS_EC_E | ||
766 | sethi %hi(doing_pdma), %g1 | ||
767 | b,pt %xcc, floppy_dosoftint | ||
768 | st %g0, [%g1 + %lo(doing_pdma)] | ||
769 | |||
770 | floppy_fifo_emptied: | ||
771 | sethi %hi(pdma_vaddr), %g1 | ||
772 | stx %g4, [%g1 + %lo(pdma_vaddr)] | ||
773 | sethi %hi(pdma_size), %g1 | ||
774 | stx %g5, [%g1 + %lo(pdma_size)] | ||
775 | sethi %hi(irq_action), %g1 | ||
776 | or %g1, %lo(irq_action), %g1 | ||
777 | ldx [%g1 + (11 << 3)], %g3 ! irqaction[floppy_irq] | ||
778 | ldx [%g3 + 0x08], %g4 ! action->flags>>48==ino | ||
779 | sethi %hi(ivector_table), %g3 | ||
780 | srlx %g4, 48, %g4 | ||
781 | or %g3, %lo(ivector_table), %g3 | ||
782 | sllx %g4, 5, %g4 | ||
783 | ldx [%g3 + %g4], %g4 ! &ivector_table[ino] | ||
784 | ldx [%g4 + 0x10], %g4 ! bucket->iclr | ||
785 | stwa %g0, [%g4] ASI_PHYS_BYPASS_EC_E ! ICLR_IDLE | ||
786 | membar #Sync ! probably not needed... | ||
787 | retry | ||
788 | |||
789 | floppy_overrun: | ||
790 | sethi %hi(pdma_vaddr), %g1 | ||
791 | stx %g4, [%g1 + %lo(pdma_vaddr)] | ||
792 | sethi %hi(pdma_size), %g1 | ||
793 | stx %g5, [%g1 + %lo(pdma_size)] | ||
794 | sethi %hi(doing_pdma), %g1 | ||
795 | st %g0, [%g1 + %lo(doing_pdma)] | ||
796 | |||
797 | floppy_dosoftint: | ||
798 | rdpr %pil, %g2 | ||
799 | wrpr %g0, 15, %pil | ||
800 | sethi %hi(109f), %g7 | ||
801 | b,pt %xcc, etrap_irq | ||
802 | 109: or %g7, %lo(109b), %g7 | ||
803 | |||
804 | mov 11, %o0 | ||
805 | mov 0, %o1 | ||
806 | call sparc_floppy_irq | ||
807 | add %sp, PTREGS_OFF, %o2 | ||
808 | |||
809 | b,pt %xcc, rtrap_irq | ||
810 | nop | ||
811 | |||
812 | #endif /* CONFIG_BLK_DEV_FD */ | ||
813 | |||
814 | /* XXX Here is stuff we still need to write... -DaveM XXX */ | 704 | /* XXX Here is stuff we still need to write... -DaveM XXX */ |
815 | .globl netbsd_syscall | 705 | .globl netbsd_syscall |
816 | netbsd_syscall: | 706 | netbsd_syscall: |