|
@@ -460,3 +460,170 @@ struct SCC
|
|
|
/* TT SCC DMA Controller (same chip as SCSI DMA) */
|
|
|
|
|
|
#define TT_SCC_DMA_BAS (0xffff8c00)
|
|
|
+#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS))
|
|
|
+
|
|
|
+/*
|
|
|
+** VIDEL Palette Register
|
|
|
+ */
|
|
|
+
|
|
|
+#define FPL_BAS (0xffff9800)
|
|
|
+struct VIDEL_PALETTE
|
|
|
+ {
|
|
|
+ u_long reg[256];
|
|
|
+ };
|
|
|
+# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS))
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+** Falcon DSP Host Interface
|
|
|
+ */
|
|
|
+
|
|
|
+#define DSP56K_HOST_INTERFACE_BASE (0xffffa200)
|
|
|
+struct DSP56K_HOST_INTERFACE {
|
|
|
+ u_char icr;
|
|
|
+#define DSP56K_ICR_RREQ 0x01
|
|
|
+#define DSP56K_ICR_TREQ 0x02
|
|
|
+#define DSP56K_ICR_HF0 0x08
|
|
|
+#define DSP56K_ICR_HF1 0x10
|
|
|
+#define DSP56K_ICR_HM0 0x20
|
|
|
+#define DSP56K_ICR_HM1 0x40
|
|
|
+#define DSP56K_ICR_INIT 0x80
|
|
|
+
|
|
|
+ u_char cvr;
|
|
|
+#define DSP56K_CVR_HV_MASK 0x1f
|
|
|
+#define DSP56K_CVR_HC 0x80
|
|
|
+
|
|
|
+ u_char isr;
|
|
|
+#define DSP56K_ISR_RXDF 0x01
|
|
|
+#define DSP56K_ISR_TXDE 0x02
|
|
|
+#define DSP56K_ISR_TRDY 0x04
|
|
|
+#define DSP56K_ISR_HF2 0x08
|
|
|
+#define DSP56K_ISR_HF3 0x10
|
|
|
+#define DSP56K_ISR_DMA 0x40
|
|
|
+#define DSP56K_ISR_HREQ 0x80
|
|
|
+
|
|
|
+ u_char ivr;
|
|
|
+
|
|
|
+ union {
|
|
|
+ u_char b[4];
|
|
|
+ u_short w[2];
|
|
|
+ u_long l;
|
|
|
+ } data;
|
|
|
+};
|
|
|
+#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE))
|
|
|
+
|
|
|
+/*
|
|
|
+** MFP 68901
|
|
|
+ */
|
|
|
+
|
|
|
+#define MFP_BAS (0xfffffa01)
|
|
|
+struct MFP
|
|
|
+ {
|
|
|
+ u_char par_dt_reg;
|
|
|
+ u_char char_dummy1;
|
|
|
+ u_char active_edge;
|
|
|
+ u_char char_dummy2;
|
|
|
+ u_char data_dir;
|
|
|
+ u_char char_dummy3;
|
|
|
+ u_char int_en_a;
|
|
|
+ u_char char_dummy4;
|
|
|
+ u_char int_en_b;
|
|
|
+ u_char char_dummy5;
|
|
|
+ u_char int_pn_a;
|
|
|
+ u_char char_dummy6;
|
|
|
+ u_char int_pn_b;
|
|
|
+ u_char char_dummy7;
|
|
|
+ u_char int_sv_a;
|
|
|
+ u_char char_dummy8;
|
|
|
+ u_char int_sv_b;
|
|
|
+ u_char char_dummy9;
|
|
|
+ u_char int_mk_a;
|
|
|
+ u_char char_dummy10;
|
|
|
+ u_char int_mk_b;
|
|
|
+ u_char char_dummy11;
|
|
|
+ u_char vec_adr;
|
|
|
+ u_char char_dummy12;
|
|
|
+ u_char tim_ct_a;
|
|
|
+ u_char char_dummy13;
|
|
|
+ u_char tim_ct_b;
|
|
|
+ u_char char_dummy14;
|
|
|
+ u_char tim_ct_cd;
|
|
|
+ u_char char_dummy15;
|
|
|
+ u_char tim_dt_a;
|
|
|
+ u_char char_dummy16;
|
|
|
+ u_char tim_dt_b;
|
|
|
+ u_char char_dummy17;
|
|
|
+ u_char tim_dt_c;
|
|
|
+ u_char char_dummy18;
|
|
|
+ u_char tim_dt_d;
|
|
|
+ u_char char_dummy19;
|
|
|
+ u_char sync_char;
|
|
|
+ u_char char_dummy20;
|
|
|
+ u_char usart_ctr;
|
|
|
+ u_char char_dummy21;
|
|
|
+ u_char rcv_stat;
|
|
|
+ u_char char_dummy22;
|
|
|
+ u_char trn_stat;
|
|
|
+ u_char char_dummy23;
|
|
|
+ u_char usart_dta;
|
|
|
+ };
|
|
|
+# define st_mfp ((*(volatile struct MFP*)MFP_BAS))
|
|
|
+
|
|
|
+/* TT's second MFP */
|
|
|
+
|
|
|
+#define TT_MFP_BAS (0xfffffa81)
|
|
|
+# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS))
|
|
|
+
|
|
|
+
|
|
|
+/* TT System Control Unit */
|
|
|
+
|
|
|
+#define TT_SCU_BAS (0xffff8e01)
|
|
|
+struct TT_SCU {
|
|
|
+ u_char sys_mask;
|
|
|
+ u_char char_dummy1;
|
|
|
+ u_char sys_stat;
|
|
|
+ u_char char_dummy2;
|
|
|
+ u_char softint;
|
|
|
+ u_char char_dummy3;
|
|
|
+ u_char vmeint;
|
|
|
+ u_char char_dummy4;
|
|
|
+ u_char gp_reg1;
|
|
|
+ u_char char_dummy5;
|
|
|
+ u_char gp_reg2;
|
|
|
+ u_char char_dummy6;
|
|
|
+ u_char vme_mask;
|
|
|
+ u_char char_dummy7;
|
|
|
+ u_char vme_stat;
|
|
|
+};
|
|
|
+#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS))
|
|
|
+
|
|
|
+/* TT real time clock */
|
|
|
+
|
|
|
+#define TT_RTC_BAS (0xffff8961)
|
|
|
+struct TT_RTC {
|
|
|
+ u_char regsel;
|
|
|
+ u_char dummy;
|
|
|
+ u_char data;
|
|
|
+};
|
|
|
+#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS))
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+** ACIA 6850
|
|
|
+ */
|
|
|
+/* constants for the ACIA registers */
|
|
|
+
|
|
|
+/* baudrate selection and reset (Baudrate = clock/factor) */
|
|
|
+#define ACIA_DIV1 0
|
|
|
+#define ACIA_DIV16 1
|
|
|
+#define ACIA_DIV64 2
|
|
|
+#define ACIA_RESET 3
|
|
|
+
|
|
|
+/* character format */
|
|
|
+#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */
|
|
|
+#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */
|
|
|
+#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */
|
|
|
+#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */
|
|
|
+#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */
|
|
|
+#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */
|
|
|
+#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */
|