123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493 |
- #ifndef _UAPI_LINUX_CYCLADES_H
- #define _UAPI_LINUX_CYCLADES_H
- #include <linux/types.h>
- struct cyclades_monitor {
- unsigned long int_count;
- unsigned long char_count;
- unsigned long char_max;
- unsigned long char_last;
- };
- struct cyclades_idle_stats {
- __kernel_time_t in_use;
- __kernel_time_t recv_idle;
- __kernel_time_t xmit_idle;
- unsigned long recv_bytes;
- unsigned long xmit_bytes;
- unsigned long overruns;
- unsigned long frame_errs;
- unsigned long parity_errs;
- };
- #define CYCLADES_MAGIC 0x4359
- #define CYGETMON 0x435901
- #define CYGETTHRESH 0x435902
- #define CYSETTHRESH 0x435903
- #define CYGETDEFTHRESH 0x435904
- #define CYSETDEFTHRESH 0x435905
- #define CYGETTIMEOUT 0x435906
- #define CYSETTIMEOUT 0x435907
- #define CYGETDEFTIMEOUT 0x435908
- #define CYSETDEFTIMEOUT 0x435909
- #define CYSETRFLOW 0x43590a
- #define CYGETRFLOW 0x43590b
- #define CYSETRTSDTR_INV 0x43590c
- #define CYGETRTSDTR_INV 0x43590d
- #define CYZSETPOLLCYCLE 0x43590e
- #define CYZGETPOLLCYCLE 0x43590f
- #define CYGETCD1400VER 0x435910
- #define CYSETWAIT 0x435912
- #define CYGETWAIT 0x435913
- #define CZIOC ('M' << 8)
- #define CZ_NBOARDS (CZIOC|0xfa)
- #define CZ_BOOT_START (CZIOC|0xfb)
- #define CZ_BOOT_DATA (CZIOC|0xfc)
- #define CZ_BOOT_END (CZIOC|0xfd)
- #define CZ_TEST (CZIOC|0xfe)
- #define CZ_DEF_POLL (HZ/25)
- #define MAX_BOARD 4
- #define MAX_DEV 256
- #define CYZ_MAX_SPEED 921600
- #define CYZ_FIFO_SIZE 16
- #define CYZ_BOOT_NWORDS 0x100
- struct CYZ_BOOT_CTRL {
- unsigned short nboard;
- int status[MAX_BOARD];
- int nchannel[MAX_BOARD];
- int fw_rev[MAX_BOARD];
- unsigned long offset;
- unsigned long data[CYZ_BOOT_NWORDS];
- };
- #ifndef DP_WINDOW_SIZE
- #define DP_WINDOW_SIZE (0x00080000)
- #define ZE_DP_WINDOW_SIZE (0x00100000)
- #define CTRL_WINDOW_SIZE (0x00000080)
- struct CUSTOM_REG {
- __u32 fpga_id;
- __u32 fpga_version;
- __u32 cpu_start;
- __u32 cpu_stop;
- __u32 misc_reg;
- __u32 idt_mode;
- __u32 uart_irq_status;
- __u32 clear_timer0_irq;
- __u32 clear_timer1_irq;
- __u32 clear_timer2_irq;
- __u32 test_register;
- __u32 test_count;
- __u32 timer_select;
- __u32 pr_uart_irq_status;
- __u32 ram_wait_state;
- __u32 uart_wait_state;
- __u32 timer_wait_state;
- __u32 ack_wait_state;
- };
- struct RUNTIME_9060 {
- __u32 loc_addr_range;
- __u32 loc_addr_base;
- __u32 loc_arbitr;
- __u32 endian_descr;
- __u32 loc_rom_range;
- __u32 loc_rom_base;
- __u32 loc_bus_descr;
- __u32 loc_range_mst;
- __u32 loc_base_mst;
- __u32 loc_range_io;
- __u32 pci_base_mst;
- __u32 pci_conf_io;
- __u32 filler1;
- __u32 filler2;
- __u32 filler3;
- __u32 filler4;
- __u32 mail_box_0;
- __u32 mail_box_1;
- __u32 mail_box_2;
- __u32 mail_box_3;
- __u32 filler5;
- __u32 filler6;
- __u32 filler7;
- __u32 filler8;
- __u32 pci_doorbell;
- __u32 loc_doorbell;
- __u32 intr_ctrl_stat;
- __u32 init_ctrl;
- };
- #define WIN_RAM 0x00000001L
- #define WIN_CREG 0x14000001L
- #define TIMER_BY_1M 0x00
- #define TIMER_BY_256K 0x01
- #define TIMER_BY_128K 0x02
- #define TIMER_BY_32K 0x03
- #endif
- #ifndef ZFIRM_ID
- #define MAX_CHAN 64
- #define ID_ADDRESS 0x00000180L
- #define ZFIRM_ID 0x5557465AL
- #define ZFIRM_HLT 0x59505B5CL
- #define ZFIRM_RST 0x56040674L
- #define ZF_TINACT_DEF 1000
- #define ZF_TINACT ZF_TINACT_DEF
- struct FIRM_ID {
- __u32 signature;
- __u32 zfwctrl_addr;
- };
- #define C_OS_LINUX 0x00000030
- #define C_CH_DISABLE 0x00000000
- #define C_CH_TXENABLE 0x00000001
- #define C_CH_RXENABLE 0x00000002
- #define C_CH_ENABLE 0x00000003
- #define C_CH_LOOPBACK 0x00000004
- #define C_PR_NONE 0x00000000
- #define C_PR_ODD 0x00000001
- #define C_PR_EVEN 0x00000002
- #define C_PR_MARK 0x00000004
- #define C_PR_SPACE 0x00000008
- #define C_PR_PARITY 0x000000ff
- #define C_PR_DISCARD 0x00000100
- #define C_PR_IGNORE 0x00000200
- #define C_DL_CS5 0x00000001
- #define C_DL_CS6 0x00000002
- #define C_DL_CS7 0x00000004
- #define C_DL_CS8 0x00000008
- #define C_DL_CS 0x0000000f
- #define C_DL_1STOP 0x00000010
- #define C_DL_15STOP 0x00000020
- #define C_DL_2STOP 0x00000040
- #define C_DL_STOP 0x000000f0
- #define C_IN_DISABLE 0x00000000
- #define C_IN_TXBEMPTY 0x00000001
- #define C_IN_TXLOWWM 0x00000002
- #define C_IN_RXHIWM 0x00000010
- #define C_IN_RXNNDT 0x00000020
- #define C_IN_MDCD 0x00000100
- #define C_IN_MDSR 0x00000200
- #define C_IN_MRI 0x00000400
- #define C_IN_MCTS 0x00000800
- #define C_IN_RXBRK 0x00001000
- #define C_IN_PR_ERROR 0x00002000
- #define C_IN_FR_ERROR 0x00004000
- #define C_IN_OVR_ERROR 0x00008000
- #define C_IN_RXOFL 0x00010000
- #define C_IN_IOCTLW 0x00020000
- #define C_IN_MRTS 0x00040000
- #define C_IN_ICHAR 0x00080000
-
- #define C_FL_OXX 0x00000001
- #define C_FL_IXX 0x00000002
- #define C_FL_OIXANY 0x00000004
- #define C_FL_SWFLOW 0x0000000f
- #define C_FS_TXIDLE 0x00000000
- #define C_FS_SENDING 0x00000001
- #define C_FS_SWFLOW 0x00000002
- #define C_RS_PARAM 0x80000000
- #define C_RS_RTS 0x00000001
- #define C_RS_DTR 0x00000004
- #define C_RS_DCD 0x00000100
- #define C_RS_DSR 0x00000200
- #define C_RS_RI 0x00000400
- #define C_RS_CTS 0x00000800
- #define C_CM_RESET 0x01
- #define C_CM_IOCTL 0x02
- #define C_CM_IOCTLW 0x03
- #define C_CM_IOCTLM 0x04
- #define C_CM_SENDXOFF 0x10
- #define C_CM_SENDXON 0x11
- #define C_CM_CLFLOW 0x12
- #define C_CM_SENDBRK 0x41
- #define C_CM_INTBACK 0x42
- #define C_CM_SET_BREAK 0x43
- #define C_CM_CLR_BREAK 0x44
- #define C_CM_CMD_DONE 0x45
- #define C_CM_INTBACK2 0x46
- #define C_CM_TINACT 0x51
- #define C_CM_IRQ_ENBL 0x52
- #define C_CM_IRQ_DSBL 0x53
- #define C_CM_ACK_ENBL 0x54
- #define C_CM_ACK_DSBL 0x55
- #define C_CM_FLUSH_RX 0x56
- #define C_CM_FLUSH_TX 0x57
- #define C_CM_Q_ENABLE 0x58
- #define C_CM_Q_DISABLE 0x59
- #define C_CM_TXBEMPTY 0x60
- #define C_CM_TXLOWWM 0x61
- #define C_CM_RXHIWM 0x62
- #define C_CM_RXNNDT 0x63
- #define C_CM_TXFEMPTY 0x64
- #define C_CM_ICHAR 0x65
- #define C_CM_MDCD 0x70
- #define C_CM_MDSR 0x71
- #define C_CM_MRI 0x72
- #define C_CM_MCTS 0x73
- #define C_CM_MRTS 0x74
- #define C_CM_RXBRK 0x84
- #define C_CM_PR_ERROR 0x85
- #define C_CM_FR_ERROR 0x86
- #define C_CM_OVR_ERROR 0x87
- #define C_CM_RXOFL 0x88
- #define C_CM_CMDERROR 0x90
- #define C_CM_FATAL 0x91
- #define C_CM_HW_RESET 0x92
- struct CH_CTRL {
- __u32 op_mode;
- __u32 intr_enable;
- __u32 sw_flow;
- __u32 flow_status;
- __u32 comm_baud;
- __u32 comm_parity;
- __u32 comm_data_l;
- __u32 comm_flags;
- __u32 hw_flow;
- __u32 rs_control;
- __u32 rs_status;
- __u32 flow_xon;
- __u32 flow_xoff;
- __u32 hw_overflow;
- __u32 sw_overflow;
- __u32 comm_error;
- __u32 ichar;
- __u32 filler[7];
- };
- struct BUF_CTRL {
- __u32 flag_dma;
- __u32 tx_bufaddr;
- __u32 tx_bufsize;
- __u32 tx_threshold;
- __u32 tx_get;
- __u32 tx_put;
- __u32 rx_bufaddr;
- __u32 rx_bufsize;
- __u32 rx_threshold;
- __u32 rx_get;
- __u32 rx_put;
- __u32 filler[5];
- };
- struct BOARD_CTRL {
-
- __u32 n_channel;
- __u32 fw_version;
-
- __u32 op_system;
- __u32 dr_version;
-
- __u32 inactivity;
-
- __u32 hcmd_channel;
- __u32 hcmd_param;
-
- __u32 fwcmd_channel;
- __u32 fwcmd_param;
- __u32 zf_int_queue_addr;
-
- __u32 filler[6];
- };
- #define QUEUE_SIZE (10*MAX_CHAN)
- struct INT_QUEUE {
- unsigned char intr_code[QUEUE_SIZE];
- unsigned long channel[QUEUE_SIZE];
- unsigned long param[QUEUE_SIZE];
- unsigned long put;
- unsigned long get;
- };
-
- struct ZFW_CTRL {
- struct BOARD_CTRL board_ctrl;
- struct CH_CTRL ch_ctrl[MAX_CHAN];
- struct BUF_CTRL buf_ctrl[MAX_CHAN];
- };
- #endif
- #endif
|