10 #define FPGA_TUMBL_IMEM_BASE 0x80000000
11 #define FPGA_TUMBL_DMEM_BASE 0x80001000
12 #define FPGA_TUMBL_CONTROL_REG 0x80003000
13 #define FPGA_TUMBL_TRACE_KICK_REG 0x80003004
14 #define FPGA_TUMBL_PC 0x80003008
16 #define FPGA_TUMBL_CONTROL_REG_RESET_BIT 0x01
17 #define FPGA_TUMBL_CONTROL_REG_INT_BIT 0x02
18 #define FPGA_TUMBL_CONTROL_REG_HALT_BIT 0x04
19 #define FPGA_TUMBL_CONTROL_REG_TRACE_BIT 0x08
21 extern volatile uint32_t *fpga_tumbl_control;
22 extern volatile uint32_t *fpga_tumbl_trace_kick;
23 extern volatile uint32_t *fpga_tumbl_pc;
24 extern volatile uint32_t *fpga_tumbl_imem;
25 extern volatile uint32_t *fpga_tumbl_dmem;
29 #define FPGA_IRC0_BASE 0x80022000
30 #define FPGA_IRC1_BASE 0x80022008
31 #define FPGA_IRC2_BASE 0x80022010
32 #define FPGA_IRC3_BASE 0x80022018
33 #define FPGA_IRC4_BASE 0x80022020
34 #define FPGA_IRC5_BASE 0x80022028
35 #define FPGA_IRC6_BASE 0x80022030
36 #define FPGA_IRC7_BASE 0x80022038
38 #define FPGA_IRC_RESET 0x80022044
46 extern volatile struct irc_register *fpga_irc1;
47 extern volatile struct irc_register *fpga_irc2;
48 extern volatile struct irc_register *fpga_irc3;
49 extern volatile struct irc_register *fpga_irc4;
50 extern volatile struct irc_register *fpga_irc5;
51 extern volatile struct irc_register *fpga_irc6;
52 extern volatile struct irc_register *fpga_irc7;
53 extern volatile struct irc_register *fpga_irc8;
55 extern volatile struct irc_register *fpga_irc[8];
58 #define FPGA_IRC_STATE_MARK_MASK 0x00000001
59 #define FPGA_IRC_STATE_AB_ERROR_MASK 0x00000002
60 #define FPGA_IRC_STATE_INDEX_EVENT_MASK 0x00000004
61 #define FPGA_IRC_STATE_INDEX_MASK 0x00000008
63 #define FPGA_IRC_STATE_RESET_AB_ERROR_MASK 0x00000002
64 #define FPGA_IRC_STATE_RESET_INDEX_EVENT_MASK 0x00000004
66 extern volatile uint8_t *fpga_irc1_state;
67 extern volatile uint8_t *fpga_irc2_state;
68 extern volatile uint8_t *fpga_irc3_state;
69 extern volatile uint8_t *fpga_irc4_state;
70 extern volatile uint8_t *fpga_irc6_state;
71 extern volatile uint8_t *fpga_irc5_state;
72 extern volatile uint8_t *fpga_irc7_state;
73 extern volatile uint8_t *fpga_irc8_state;
75 extern volatile uint8_t *fpga_irc_state[8];
77 extern volatile uint8_t *fpga_irc_reset;
81 #if 0 /* FPGA design version 2 */
82 #define FPGA_LX_MASTER_TRANSMITTER_BASE 0x80023000
83 #define FPGA_LX_MASTER_RECEIVER_BASE 0x80023804
84 #define FPGA_LX_MASTER_RESET 0x80023800
85 #else /* FPGA design version 3 */
86 #define FPGA_LX_MASTER_TRANSMITTER_BASE 0x80024000
87 #define FPGA_LX_MASTER_RECEIVER_BASE 0x80024800
88 #define FPGA_LX_MASTER_RESET 0x80025000
90 #define FPGA_LX_MASTER_TRANSMITTER_REG 0x80025004
91 #define FPGA_LX_MASTER_TRANSMITTER_WDOG 0x80025008
92 #define FPGA_LX_MASTER_RECEIVER_REG 0x80025012
94 extern volatile uint32_t *fpga_lx_master_transmitter_base;
95 extern volatile uint32_t *fpga_lx_master_transmitter_reg;
96 extern volatile uint32_t *fpga_lx_master_transmitter_wdog;
97 extern volatile uint32_t *fpga_lx_master_receiver_base;
98 extern volatile uint32_t *fpga_lx_master_receiver_reg;
99 extern volatile uint32_t *fpga_lx_master_reset;
100 extern volatile uint32_t *fpga_lx_master_conf;
102 extern volatile uint32_t *fpga_lx_master_transmitter_control_reg;
103 extern volatile uint32_t *fpga_lx_master_receiver_control_reg;
105 #define FPGA_LX_MASTER_CONTROL_ADDRESS_MASK 0x0000FF00
106 #define FPGA_LX_MASTER_CONTROL_DATA_LENGTH_MASK 0x000000FF
108 /* Configuration defines */
110 #define FPGA_CONFIGURATION_FILE_ADDRESS 0xA1C00000
112 #define FPGA_CONF_SUCESS 0
113 #define FPGA_CONF_ERR_RECONF_LOCKED 1
114 #define FPGA_CONF_ERR_RESET_FAIL 2
115 #define FPGA_CONF_ERR_WRITE_ERR 3
116 #define FPGA_CONF_ERR_CRC_ERR 4
118 int fpga_tumbl_set_reset(int reset);
119 int fpga_tumbl_set_halt(int halt);
120 int fpga_tumbl_set_trace(int trace);
121 int fpga_tumbl_kick_trace();
123 void fpga_tumbl_write(unsigned int offset, unsigned char *ptr, int len);
125 int (*fpga_reconfiguaration_initiated)(void);
126 int (*fpga_reconfiguaration_finished)(void);
129 int fpga_configure();
130 int fpga_measure_bus_read();
131 int fpga_measure_bus_write();
132 void fpga_set_reconfiguration_lock(int lock);
133 int fpga_get_reconfiguration_lock();
135 #endif /*_APPL_FPGA_H*/