2005-04-16 15:20:36 -07:00
/************************************************************************/
/* */
/* Title : RIO Shared Memory Window Inteface */
/* */
/* Author : N.P.Vassallo */
/* */
/* Creation : 7th June 1999 */
/* */
/* Version : 1.0.0 */
/* */
/* Copyright : (c) Specialix International Ltd. 1999 *
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
* */
/* Description : Prototypes, structures and definitions */
/* describing RIO host card shared memory */
/* window interface structures: */
/* PARMMAP */
/* RUP */
/* PHB */
/* LPB */
/* PKT */
/* */
/************************************************************************/
/* History...
1.0 .0 07 / 06 / 99 NPV Creation . ( based on PARMMAP . H )
*/
2006-01-11 12:17:49 -08:00
# ifndef _riowinif_h /* If RIOWINDIF.H not already defined */
2005-04-16 15:20:36 -07:00
# define _riowinif_h 1
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * General * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# define TPNULL ((_u16)(0x8000))
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PARM_MAP * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The PARM_MAP structure defines global values relating to the Host Card / RTA
and is the main structure from which all other structures are referenced . */
2006-01-11 12:17:49 -08:00
typedef struct _PARM_MAP {
_u16 phb_ptr ; /* 0x00 Pointer to the PHB array */
_u16 phb_num_ptr ; /* 0x02 Ptr to Number of PHB's */
_u16 free_list ; /* 0x04 Free List pointer */
_u16 free_list_end ; /* 0x06 Free List End pointer */
_u16 q_free_list_ptr ; /* 0x08 Ptr to Q_BUF variable */
_u16 unit_id_ptr ; /* 0x0A Unit Id */
_u16 link_str_ptr ; /* 0x0C Link Structure Array */
_u16 bootloader_1 ; /* 0x0E 1st Stage Boot Loader */
_u16 bootloader_2 ; /* 0x10 2nd Stage Boot Loader */
_u16 port_route_map_ptr ; /* 0x12 Port Route Map */
_u16 route_ptr ; /* 0x14 Route Map */
_u16 map_present ; /* 0x16 Route Map present */
_u16 pkt_num ; /* 0x18 Total number of packets */
_u16 q_num ; /* 0x1A Total number of Q packets */
_u16 buffers_per_port ; /* 0x1C Number of buffers per port */
_u16 heap_size ; /* 0x1E Initial size of heap */
_u16 heap_left ; /* 0x20 Current Heap left */
_u16 error ; /* 0x22 Error code */
_u16 tx_max ; /* 0x24 Max number of tx pkts per phb */
_u16 rx_max ; /* 0x26 Max number of rx pkts per phb */
_u16 rx_limit ; /* 0x28 For high / low watermarks */
_u16 links ; /* 0x2A Links to use */
_u16 timer ; /* 0x2C Interrupts per second */
_u16 rups ; /* 0x2E Pointer to the RUPs */
_u16 max_phb ; /* 0x30 Mostly for debugging */
_u16 living ; /* 0x32 Just increments!! */
_u16 init_done ; /* 0x34 Initialisation over */
_u16 booting_link ; /* 0x36 */
_u16 idle_count ; /* 0x38 Idle time counter */
_u16 busy_count ; /* 0x3A Busy counter */
_u16 idle_control ; /* 0x3C Control Idle Process */
_u16 tx_intr ; /* 0x3E TX interrupt pending */
_u16 rx_intr ; /* 0x40 RX interrupt pending */
_u16 rup_intr ; /* 0x42 RUP interrupt pending */
2005-04-16 15:20:36 -07:00
} PARM_MAP ;
/* Same thing again, but defined as offsets... */
# define PM_phb_ptr 0x00 /* 0x00 Pointer to the PHB array */
# define PM_phb_num_ptr 0x02 /* 0x02 Ptr to Number of PHB's */
# define PM_free_list 0x04 /* 0x04 Free List pointer */
# define PM_free_list_end 0x06 /* 0x06 Free List End pointer */
# define PM_q_free_list_ptr 0x08 /* 0x08 Ptr to Q_BUF variable */
# define PM_unit_id_ptr 0x0A /* 0x0A Unit Id */
# define PM_link_str_ptr 0x0C /* 0x0C Link Structure Array */
# define PM_bootloader_1 0x0E /* 0x0E 1st Stage Boot Loader */
# define PM_bootloader_2 0x10 /* 0x10 2nd Stage Boot Loader */
# define PM_port_route_map_ptr 0x12 /* 0x12 Port Route Map */
# define PM_route_ptr 0x14 /* 0x14 Route Map */
# define PM_map_present 0x16 /* 0x16 Route Map present */
# define PM_pkt_num 0x18 /* 0x18 Total number of packets */
# define PM_q_num 0x1A /* 0x1A Total number of Q packets */
# define PM_buffers_per_port 0x1C /* 0x1C Number of buffers per port */
# define PM_heap_size 0x1E /* 0x1E Initial size of heap */
# define PM_heap_left 0x20 /* 0x20 Current Heap left */
# define PM_error 0x22 /* 0x22 Error code */
# define PM_tx_max 0x24 /* 0x24 Max number of tx pkts per phb */
# define PM_rx_max 0x26 /* 0x26 Max number of rx pkts per phb */
# define PM_rx_limit 0x28 /* 0x28 For high / low watermarks */
# define PM_links 0x2A /* 0x2A Links to use */
# define PM_timer 0x2C /* 0x2C Interrupts per second */
# define PM_rups 0x2E /* 0x2E Pointer to the RUPs */
# define PM_max_phb 0x30 /* 0x30 Mostly for debugging */
# define PM_living 0x32 /* 0x32 Just increments!! */
# define PM_init_done 0x34 /* 0x34 Initialisation over */
# define PM_booting_link 0x36 /* 0x36 */
# define PM_idle_count 0x38 /* 0x38 Idle time counter */
# define PM_busy_count 0x3A /* 0x3A Busy counter */
# define PM_idle_control 0x3C /* 0x3C Control Idle Process */
# define PM_tx_intr 0x3E /* 0x4E TX interrupt pending */
# define PM_rx_intr 0x40 /* 0x40 RX interrupt pending */
# define PM_rup_intr 0x42 /* 0x42 RUP interrupt pending */
# define sizeof_PARM_MAP 0x44 /* structure size = 0x44 */
/* PARM_MAP.error definitions... */
# define E_NO_ERROR 0x00
# define E_PROCESS_NOT_INIT 0x01
# define E_LINK_TIMEOUT 0x02
# define E_NO_ROUTE 0x03
# define E_CONFUSED 0x04
# define E_HOME 0x05
# define E_CSUM_FAIL 0x06
# define E_DISCONNECTED 0x07
# define E_BAD_RUP 0x08
# define E_NO_VIRGIN 0x09
# define E_BOOT_RUP_BUSY 0x10
# define E_CHANALLOC 0x80
# define E_POLL_ALLOC 0x81
# define E_LTTWAKE 0x82
# define E_LTT_ALLOC 0x83
# define E_LRT_ALLOC 0x84
# define E_CIRRUS 0x85
# define E_MONITOR 0x86
# define E_PHB_ALLOC 0x87
# define E_ARRAY_ALLOC 0x88
# define E_QBUF_ALLOC 0x89
# define E_PKT_ALLOC 0x8a
# define E_GET_TX_Q_BUF 0x8b
# define E_GET_RX_Q_BUF 0x8c
# define E_MEM_OUT 0x8d
# define E_MMU_INIT 0x8e
# define E_LTT_INIT 0x8f
# define E_LRT_INIT 0x90
# define E_LINK_RUN 0x91
# define E_MONITOR_ALLOC 0x92
# define E_MONITOR_INIT 0x93
# define E_POLL_INIT 0x94
/* PARM_MAP.links definitions... */
# define RIO_LINK_ENABLE 0x80FF
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * RUP * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The RUP (Remote Unit Port) structure relates to the Remote Terminal Adapters
attached to the system and there is normally an array of MAX_RUPS ( = 16 ) structures
in a host card , defined by PARM_MAP - > rup . */
2006-01-11 12:17:49 -08:00
typedef struct _RUP {
_u16 txpkt ; /* 0x00 Outgoing packet */
_u16 rxpkt ; /* 0x02 ncoming packet */
_u16 link ; /* 0x04 Which link to send packet down ? */
_u8 rup_dest_unit [ 2 ] ; /* 0x06 Destination Unit */
_u16 handshake ; /* 0x08 Handshaking */
_u16 timeout ; /* 0x0A Timeout */
_u16 status ; /* 0x0C Status */
_u16 txcontrol ; /* 0x0E Transmit control */
_u16 rxcontrol ; /* 0x10 Receive control */
2005-04-16 15:20:36 -07:00
} RUP ;
/* Same thing again, but defined as offsets... */
2006-01-11 12:17:49 -08:00
# define RUP_txpkt 0x00 /* 0x00 Outgoing packet */
# define RUP_rxpkt 0x02 /* 0x02 Incoming packet */
# define RUP_link 0x04 /* 0x04 Which link to send packet down ? */
# define RUP_rup_dest_unit 0x06 /* 0x06 Destination Unit */
# define RUP_handshake 0x08 /* 0x08 Handshaking */
# define RUP_timeout 0x0A /* 0x0A Timeout */
# define RUP_status 0x0C /* 0x0C Status */
# define RUP_txcontrol 0x0E /* 0x0E Transmit control */
# define RUP_rxcontrol 0x10 /* 0x10 Receive control */
# define sizeof_RUP 0x12 /* structure size = 0x12 */
2005-04-16 15:20:36 -07:00
# define MAX_RUP 16
/* RUP.txcontrol definitions... */
2006-01-11 12:17:49 -08:00
# define TX_RUP_INACTIVE 0 /* Nothing to transmit */
# define TX_PACKET_READY 1 /* Transmit packet ready */
# define TX_LOCK_RUP 2 /* Transmit side locked */
2005-04-16 15:20:36 -07:00
/* RUP.txcontrol definitions... */
2006-01-11 12:17:49 -08:00
# define RX_RUP_INACTIVE 0 /* Nothing received */
# define RX_PACKET_READY 1 /* Packet received */
2005-04-16 15:20:36 -07:00
2006-01-11 12:17:49 -08:00
# define RUP_NO_OWNER 0xFF /* RUP not owned by any process */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PHB * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The PHB (Port Header Block) structure relates to the serial ports attached
to the system and there is normally an array of MAX_PHBS ( = 128 ) structures
in a host card , defined by PARM_MAP - > phb_ptr and PARM_MAP - > phb_num_ptr . */
2006-01-11 12:17:49 -08:00
typedef struct _PHB {
_u16 source ; /* 0x00 Location of the PHB in the host card */
_u16 handshake ; /* 0x02 Used to manage receive packet flow control */
_u16 status ; /* 0x04 Internal port transmit/receive status */
_u16 timeout ; /* 0x06 Time period to wait for an ACK */
_u16 link ; /* 0x08 The host link associated with the PHB */
_u16 destination ; /* 0x0A Location of the remote port on the network */
_u16 tx_start ; /* 0x0C first entry in the packet array for transmit packets */
_u16 tx_end ; /* 0x0E last entry in the packet array for transmit packets */
_u16 tx_add ; /* 0x10 position in the packet array for new transmit packets */
_u16 tx_remove ; /* 0x12 current position in the packet pointer array */
_u16 rx_start ; /* 0x14 first entry in the packet array for receive packets */
_u16 rx_end ; /* 0x16 last entry in the packet array for receive packets */
_u16 rx_add ; /* 0x18 position in the packet array for new receive packets */
_u16 rx_remove ; /* 0x1A current position in the packet pointer array */
2005-04-16 15:20:36 -07:00
} PHB ;
/* Same thing again, but defined as offsets... */
2006-01-11 12:17:49 -08:00
# define PHB_source 0x00 /* 0x00 Location of the PHB in the host card */
# define PHB_handshake 0x02 /* 0x02 Used to manage receive packet flow control */
# define PHB_status 0x04 /* 0x04 Internal port transmit/receive status */
# define PHB_timeout 0x06 /* 0x06 Time period to wait for an ACK */
# define PHB_link 0x08 /* 0x08 The host link associated with the PHB */
# define PHB_destination 0x0A /* 0x0A Location of the remote port on the network */
# define PHB_tx_start 0x0C /* 0x0C first entry in the packet array for transmit packets */
# define PHB_tx_end 0x0E /* 0x0E last entry in the packet array for transmit packets */
# define PHB_tx_add 0x10 /* 0x10 position in the packet array for new transmit packets */
# define PHB_tx_remove 0x12 /* 0x12 current position in the packet pointer array */
# define PHB_rx_start 0x14 /* 0x14 first entry in the packet array for receive packets */
# define PHB_rx_end 0x16 /* 0x16 last entry in the packet array for receive packets */
# define PHB_rx_add 0x18 /* 0x18 position in the packet array for new receive packets */
# define PHB_rx_remove 0x1A /* 0x1A current position in the packet pointer array */
# define sizeof_PHB 0x1C /* structure size = 0x1C */
2005-04-16 15:20:36 -07:00
/* PHB.handshake definitions... */
2006-01-11 12:17:49 -08:00
# define PHB_HANDSHAKE_SET 0x0001 /* Set by LRT */
# define PHB_HANDSHAKE_RESET 0x0002 /* Set by ISR / driver */
2005-04-16 15:20:36 -07:00
# define PHB_HANDSHAKE_FLAGS (PHB_HANDSHAKE_RESET|PHB_HANDSHAKE_SET)
/* Reset by ltt */
2006-01-11 12:17:49 -08:00
# define MAX_PHB 128 /* range 0-127 */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * LPB * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The LPB (Link Parameter Block) structure relates to a RIO Network Link
and there is normally an array of MAX_LINKS ( = 4 ) structures in a host card ,
defined by PARM_MAP - > link_str_ptr . */
2006-01-11 12:17:49 -08:00
typedef struct _LPB {
_u16 link_number ; /* 0x00 Link Number */
_u16 in_ch ; /* 0x02 Link In Channel */
_u16 out_ch ; /* 0x04 Link Out Channel */
_u8 attached_serial [ 4 ] ; /* 0x06 Attached serial number */
_u8 attached_host_serial [ 4 ] ; /* 0x0A Serial number of Host who booted other end */
_u16 descheduled ; /* 0x0E Currently Descheduled */
_u16 state ; /* 0x10 Current state */
_u16 send_poll ; /* 0x12 Send a Poll Packet */
_u16 ltt_p ; /* 0x14 Process Descriptor */
_u16 lrt_p ; /* 0x16 Process Descriptor */
_u16 lrt_status ; /* 0x18 Current lrt status */
_u16 ltt_status ; /* 0x1A Current ltt status */
_u16 timeout ; /* 0x1C Timeout value */
_u16 topology ; /* 0x1E Topology bits */
_u16 mon_ltt ; /* 0x20 */
_u16 mon_lrt ; /* 0x22 */
_u16 num_pkts ; /* 0x24 */
_u16 add_packet_list ; /* 0x26 Add packets to here */
_u16 remove_packet_list ; /* 0x28 Send packets from here */
_u16 lrt_fail_chan ; /* 0x2A Lrt's failure channel */
_u16 ltt_fail_chan ; /* 0x2C Ltt's failure channel */
RUP rup ; /* 0x2E RUP structure for HOST to driver comms */
RUP link_rup ; /* 0x40 RUP for the link (POLL, topology etc.) */
_u16 attached_link ; /* 0x52 Number of attached link */
_u16 csum_errors ; /* 0x54 csum errors */
_u16 num_disconnects ; /* 0x56 number of disconnects */
_u16 num_sync_rcvd ; /* 0x58 # sync's received */
_u16 num_sync_rqst ; /* 0x5A # sync requests */
_u16 num_tx ; /* 0x5C Num pkts sent */
_u16 num_rx ; /* 0x5E Num pkts received */
_u16 module_attached ; /* 0x60 Module tpyes of attached */
_u16 led_timeout ; /* 0x62 LED timeout */
_u16 first_port ; /* 0x64 First port to service */
_u16 last_port ; /* 0x66 Last port to service */
2005-04-16 15:20:36 -07:00
} LPB ;
/* Same thing again, but defined as offsets... */
2006-01-11 12:17:49 -08:00
# define LPB_link_number 0x00 /* 0x00 Link Number */
# define LPB_in_ch 0x02 /* 0x02 Link In Channel */
# define LPB_out_ch 0x04 /* 0x04 Link Out Channel */
# define LPB_attached_serial 0x06 /* 0x06 Attached serial number */
# define LPB_attached_host_serial 0x0A /* 0x0A Serial number of Host who booted other end */
# define LPB_descheduled 0x0E /* 0x0E Currently Descheduled */
# define LPB_state 0x10 /* 0x10 Current state */
# define LPB_send_poll 0x12 /* 0x12 Send a Poll Packet */
# define LPB_ltt_p 0x14 /* 0x14 Process Descriptor */
# define LPB_lrt_p 0x16 /* 0x16 Process Descriptor */
# define LPB_lrt_status 0x18 /* 0x18 Current lrt status */
# define LPB_ltt_status 0x1A /* 0x1A Current ltt status */
# define LPB_timeout 0x1C /* 0x1C Timeout value */
# define LPB_topology 0x1E /* 0x1E Topology bits */
# define LPB_mon_ltt 0x20 /* 0x20 */
# define LPB_mon_lrt 0x22 /* 0x22 */
# define LPB_num_pkts 0x24 /* 0x24 */
# define LPB_add_packet_list 0x26 /* 0x26 Add packets to here */
# define LPB_remove_packet_list 0x28 /* 0x28 Send packets from here */
# define LPB_lrt_fail_chan 0x2A /* 0x2A Lrt's failure channel */
# define LPB_ltt_fail_chan 0x2C /* 0x2C Ltt's failure channel */
# define LPB_rup 0x2E /* 0x2E RUP structure for HOST to driver comms */
# define LPB_link_rup 0x40 /* 0x40 RUP for the link (POLL, topology etc.) */
# define LPB_attached_link 0x52 /* 0x52 Number of attached link */
# define LPB_csum_errors 0x54 /* 0x54 csum errors */
# define LPB_num_disconnects 0x56 /* 0x56 number of disconnects */
# define LPB_num_sync_rcvd 0x58 /* 0x58 # sync's received */
# define LPB_num_sync_rqst 0x5A /* 0x5A # sync requests */
# define LPB_num_tx 0x5C /* 0x5C Num pkts sent */
# define LPB_num_rx 0x5E /* 0x5E Num pkts received */
# define LPB_module_attached 0x60 /* 0x60 Module tpyes of attached */
# define LPB_led_timeout 0x62 /* 0x62 LED timeout */
# define LPB_first_port 0x64 /* 0x64 First port to service */
# define LPB_last_port 0x66 /* 0x66 Last port to service */
# define sizeof_LPB 0x68 /* structure size = 0x68 */
# define LINKS_PER_UNIT 4 /* number of links from a host */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * FREE_LIST * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Used to overlay packet headers when allocating/freeing packets from the free list */
2006-01-11 12:17:49 -08:00
typedef struct _FREE_LIST {
_u16 next ; /* 0x00 offset of next list item */
_u16 prev ; /* 0x02 offset of previous list item */
2005-04-16 15:20:36 -07:00
} FREE_LIST ;
/* Same thing again, but defined as offsets... */
2006-01-11 12:17:49 -08:00
# define FL_next 0x00 /* 0x00 offset of next list item */
# define FL_prev 0x02 /* 0x02 offset of previous list item */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PKT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The PKT is the main unit of communication between Host Cards and RTAs across
the RIO network . */
2006-01-11 12:17:49 -08:00
# define PKT_MAX_DATA_LEN 72 /* Size of packet data */
2005-04-16 15:20:36 -07:00
2006-01-11 12:17:49 -08:00
typedef struct _PKT {
_u8 dest_unit ; /* 0x00 Destination Unit Id */
_u8 dest_port ; /* 0x01 Destination Port */
_u8 src_unit ; /* 0x02 Source Unit Id */
_u8 src_port ; /* 0x03 Source Port */
_u8 len ; /* 0x04 Length (in bytes) of data field */
_u8 control ; /* 0x05 */
_u8 data [ PKT_MAX_DATA_LEN ] ; /* 0x06 Actual data */
_u16 csum ; /* 0x4E C-SUM */
2005-04-16 15:20:36 -07:00
} PKT ;
/* Same thing again, but defined as offsets... */
2006-01-11 12:17:49 -08:00
# define PKT_dest_unit 0x00 /* 0x00 Destination Unit Id */
# define PKT_dest_port 0x01 /* 0x01 Destination Port */
# define PKT_src_unit 0x02 /* 0x02 Source Unit Id */
# define PKT_src_port 0x03 /* 0x03 Source Port */
# define PKT_len 0x04 /* 0x04 Length (in bytes) of data field */
# define PKT_control 0x05 /* 0x05 */
# define PKT_data 0x06 /* 0x06 Actual data */
# define PKT_csum 0x4E /* 0x4E C-SUM */
# define sizeof_PKT 0x50 /* structure size = 0x50 */
2005-04-16 15:20:36 -07:00
/* PKT.len definitions... */
# define PKT_CMD_BIT 0x80
# define PKT_CMD_DATA 0x80
# define PKT_LEN_MASK 0x7F
/* PKT.control definitions... */
# define PKT_ACK 0x40
# define PKT_TGL 0x20
# define DATA_WNDW 0x10
# define PKT_TTL_MASK 0x0F
# define MAX_TTL 0x0F
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * Control Packets * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* The following definitions and structures define the control packets sent
between the driver and RIO Ports , RTAs and Host Cards . */
2006-01-11 12:17:49 -08:00
# define PRE_EMPTIVE 0x80 /* Pre-emptive command (sent via port's RUP) */
2005-04-16 15:20:36 -07:00
/* "in-band" and "pre-emptive" port commands... */
2006-01-11 12:17:49 -08:00
# define OPEN 0x00 /* Driver->RIO Open a port */
# define CONFIG 0x01 /* Driver->RIO Configure a port */
# define MOPEN 0x02 /* Driver->RIO Modem open (wait for DCD) */
# define CLOSE 0x03 /* Driver->RIO Close a port */
2005-04-16 15:20:36 -07:00
# define WFLUSH (0x04|PRE_EMPTIVE) /* Driver->RIO Write flush */
# define RFLUSH (0x05|PRE_EMPTIVE) /* Driver->RIO Read flush */
# define RESUME (0x06|PRE_EMPTIVE) /* Driver->RIO Behave as if XON received */
2006-01-11 12:17:49 -08:00
# define SBREAK 0x07 /* Driver->RIO Start break */
# define EBREAK 0x08 /* Driver->RIO End break */
2005-04-16 15:20:36 -07:00
# define SUSPEND (0x09|PRE_EMPTIVE) /* Driver->RIO Behave as if XOFF received */
# define FCLOSE (0x0A|PRE_EMPTIVE) /* Driver->RIO Force close */
2006-01-11 12:17:49 -08:00
# define XPRINT 0x0B /* Driver->RIO Xprint packet */
2005-04-16 15:20:36 -07:00
# define MBIS (0x0C|PRE_EMPTIVE) /* Driver->RIO Set modem lines */
# define MBIC (0x0D|PRE_EMPTIVE) /* Driver->RIO Clear modem lines */
# define MSET (0x0E|PRE_EMPTIVE) /* Driver->RIO Set modem lines */
2006-01-11 12:17:49 -08:00
# define PCLOSE 0x0F /* Driver->RIO Pseudo close */
2005-04-16 15:20:36 -07:00
# define MGET (0x10|PRE_EMPTIVE) /* Driver->RIO Force update of modem status */
# define MEMDUMP (0x11|PRE_EMPTIVE) /* Driver->RIO DEBUG request for RTA memory */
# define READ_REGISTER (0x12|PRE_EMPTIVE) /* Driver->RIO DEBUG read CD1400 register */
/* Remote Unit Port (RUP) packet definitions... (specified in PKT.dest_unit and PKT.src_unit) */
2006-01-11 12:17:49 -08:00
# define SYNC_RUP 0xFF /* Download internal */
# define COMMAND_RUP 0xFE /* Command ack/status */
# define ERROR_RUP 0xFD /* Download internal */
# define POLL_RUP 0xFC /* Download internal */
# define BOOT_RUP 0xFB /* Used to boot RTAs */
# define ROUTE_RUP 0xFA /* Used to specify routing/topology */
# define STATUS_RUP 0xF9 /* Not used */
# define POWER_RUP 0xF8 /* Download internal */
2005-04-16 15:20:36 -07:00
/* COMMAND_RUP definitions... */
# define COMPLETE (0x20|PRE_EMPTIVE) /* RIO->Driver Command complete */
# define BREAK_RECEIVED (0x21|PRE_EMPTIVE) /* RIO->Driver Break received */
# define MODEM_STATUS (0x22|PRE_EMPTIVE) /* RIO->Driver Modem status change */
/* BOOT_RUP definitions... */
2006-01-11 12:17:49 -08:00
# define BOOT_REQUEST 0x00 /* RIO->Driver Request for boot */
# define BOOT_ABORT 0x01 /* Driver->RIO Abort a boot */
# define BOOT_SEQUENCE 0x02 /* Driver->RIO Packet with firmware details */
# define BOOT_COMPLETED 0x03 /* RIO->Driver Boot completed */
# define IFOAD 0x2F /* Driver->RIO Shutdown/Reboot RTA (Fall Over And Die) */
# define IDENTIFY 0x30 /* Driver->RIO Identify RTA */
# define ZOMBIE 0x31 /* Driver->RIO Shutdown/Flash LEDs */
# define UFOAD 0x32 /* Driver->RIO Shutdown/Reboot neighbouring RTA */
# define IWAIT 0x33 /* Driver->RIO Pause booting process */
2005-04-16 15:20:36 -07:00
/* ROUTE_RUP definitions... */
2006-01-11 12:17:49 -08:00
# define ROUTE_REQUEST 0x00 /* RIO->Driver Request an ID */
# define ROUTE_FOAD 0x01 /* Driver->RIO Shutdown/reboot RTA */
# define ROUTE_ALREADY 0x02 /* Driver->RIO Not used */
# define ROUTE_USED 0x03 /* Driver->RIO Not used */
# define ROUTE_ALLOCATE 0x04 /* Driver->RIO Allocate RTA RUP numbers */
# define ROUTE_REQ_TOP 0x05 /* Driver->RIO Not used */
# define ROUTE_TOPOLOGY 0x06 /* RIO->Driver Route/Topology status */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * OPEN * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
Sent to open a port .
Structure of configuration info used with OPEN , CONFIG and MOPEN packets . . . */
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_Cor1 (PKT_Data+1) /* Channel Option Register 1 */
# define PKT_Cor2 (PKT_Data+2) /* Channel Option Register 2 */
# define PKT_Cor4 (PKT_Data+3) /* Channel Option Register 4 */
# define PKT_Cor5 (PKT_Data+4) /* Channel Option Register 5 */
# define PKT_TxXon (PKT_Data+5) /* Transmit XON character */
# define PKT_TxXoff (PKT_Data+6) /* Transmit XOFF character */
# define PKT_RxXon (PKT_Data+7) /* Receive XON character */
# define PKT_RxXoff (PKT_Data+8) /* Receive XOFF character */
# define PKT_Lnext (PKT_Data+9) /* Lnext character */
# define PKT_TxBaud (PKT_Data+10) /* Transmit baud rate */
# define PKT_RxBaud (PKT_Data+11) /* Receive baud rate */
2005-04-16 15:20:36 -07:00
/* COR1 definitions... */
2006-01-11 12:17:49 -08:00
# define COR1_PARITY 0xE0 /* Parity mask */
# define COR1_NONE 0x00 /* No parity */
# define COR1_SPACE 0x20 /* Space parity */
# define COR1_EVEN 0x40 /* Even parity */
# define COR1_MARK 0xA0 /* Mark parity */
# define COR1_ODD 0xC0 /* Odd parity */
# define COR1_STOPBITS 0x0C /* Stop bits mask */
# define COR1_STOP1 0x00 /* 1 stop bit */
# define COR1_STOP1_5 0x04 /* 1.5 stop bits */
# define COR1_STOP2 0x08 /* 2 stop bits */
# define COR1_DATABITS 0x03 /* Data bits mask */
# define COR1_DATA5 0x00 /* 5 data bits */
# define COR1_DATA6 0x01 /* 6 data bits */
# define COR1_DATA7 0x02 /* 7 data bits */
# define COR1_DATA8 0x03 /* 8 data bits */
2005-04-16 15:20:36 -07:00
/* COR2 definitions... */
2006-01-11 12:17:49 -08:00
# define COR2_XON_TXFLOW 0x40 /* XON/XOFF Transmit Flow */
# define COR2_XANY_TXFLOW 0xC0 /* XON/XANY Transmit Flow */
# define COR2_HUPCL 0x20 /* Hang Up On Close */
# define COR2_DSR_TXFLOW 0x08 /* DSR Transmit Flow Control */
# define COR2_RTS_RXFLOW 0x04 /* RTS Receive Flow Control */
# define COR2_CTS_TXFLOW 0x02 /* CTS Transmit Flow Control */
# define COR2_XON_RXFLOW 0x01 /* XON/XOFF Receive Flow */
2005-04-16 15:20:36 -07:00
/* COR4 definition... */
2006-01-11 12:17:49 -08:00
# define COR4_IGNCR 0x80 /* Discard received CR */
# define COR4_ICRNL 0x40 /* Map received CR -> NL */
# define COR4_INLCR 0x20 /* Map received NL -> CR */
# define COR4_IGNBRK 0x10 /* Ignore Received Break */
# define COR4_NBRKINT 0x08 /* No interrupt on rx Break */
# define COR4_IGNPAR 0x04 /* ignore rx parity error chars */
# define COR4_PARMRK 0x02 /* Mark rx parity error chars */
# define COR4_RAISEMOD 0x01 /* Raise modem lines on !0 baud */
2005-04-16 15:20:36 -07:00
/* COR5 definitions... */
2006-01-11 12:17:49 -08:00
# define COR5_ISTRIP 0x80 /* Strip input chars to 7 bits */
# define COR5_LNE 0x40 /* Enable LNEXT processing */
# define COR5_CMOE 0x20 /* Match good & error characters */
# define COR5_TAB3 0x10 /* TAB3 mode */
# define COR5_TSTATE_ON 0x08 /* Enable tbusy/tstop monitoring */
# define COR5_TSTATE_OFF 0x04 /* Disable tbusy/tstop monitoring */
# define COR5_ONLCR 0x02 /* NL -> CR NL on output */
# define COR5_OCRNL 0x01 /* CR -> NL on output */
2005-04-16 15:20:36 -07:00
/* RxBaud and TxBaud definitions... */
2006-01-11 12:17:49 -08:00
# define RIO_B0 0x00 /* RTS / DTR signals dropped */
# define RIO_B50 0x01 /* 50 baud */
# define RIO_B75 0x02 /* 75 baud */
# define RIO_B110 0x03 /* 110 baud */
# define RIO_B134 0x04 /* 134.5 baud */
# define RIO_B150 0x05 /* 150 baud */
# define RIO_B200 0x06 /* 200 baud */
# define RIO_B300 0x07 /* 300 baud */
# define RIO_B600 0x08 /* 600 baud */
# define RIO_B1200 0x09 /* 1200 baud */
# define RIO_B1800 0x0A /* 1800 baud */
# define RIO_B2400 0x0B /* 2400 baud */
# define RIO_B4800 0x0C /* 4800 baud */
# define RIO_B9600 0x0D /* 9600 baud */
# define RIO_B19200 0x0E /* 19200 baud */
# define RIO_B38400 0x0F /* 38400 baud */
# define RIO_B56000 0x10 /* 56000 baud */
# define RIO_B57600 0x11 /* 57600 baud */
# define RIO_B64000 0x12 /* 64000 baud */
# define RIO_B115200 0x13 /* 115200 baud */
# define RIO_B2000 0x14 /* 2000 baud */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CONFIG * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
CONFIG is sent from the driver to configure an already opened port .
Packet structure is same as OPEN . */
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MOPEN * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
MOPEN is sent from the driver to open a port attached to a modem . ( in - band )
Packet structure is same as OPEN . */
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CLOSE * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
CLOSE is sent from the driver to close a previously opened port .
No parameters .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * WFLUSH * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
WFLUSH is sent pre - emptively from the driver to flush the write buffers and
packets of a port . ( pre - emptive )
WFLUSH is also sent in - band from the driver to a port as a marker to end
write flushing previously started by a pre - emptive WFLUSH packet . ( in - band )
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * RFLUSH * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
RFLUSH is sent pre - emptively from the driver to flush the read buffers and
packets of a port .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * RESUME * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
RESUME is sent pre - emptively from the driver to cause a port to resume
transmission of data if blocked by XOFF . ( as if XON had been received )
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SBREAK * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
SBREAK is sent in - band from the driver to a port to suspend data and start
break signal transmission .
If the break delay is 0 , the break signal will be acknowledged with a
RUP_COMMAND , COMPLETE packet and continue until an EBREAK packet is received .
Otherwise , there is no acknowledgement and the break signal will last for the
specified number of mS .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_BreakDelay (PKT_Data+1) /* Break delay in mS */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * EBREAK * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
EBREAK is sent in - band from the driver to a port to stop transmission of a
break signal .
No parameters . */
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SUSPEND * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
SUSPEND is sent pre - emptively from the driver to cause a port to suspend
transmission of data . ( as if XOFF had been received )
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * FCLOSE * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
FCLOSE is sent pre - emptively from the driver to force close a port .
A force close flushes receive and transmit queues , and also lowers all output
modem signals if the COR5_HUPCL ( Hang Up On Close ) flag is set .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * XPRINT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
XPRINT is sent as a normal I / O data packet except that the PKT_CMD_BIT of
the " len " field is set , and the first " data " byte is XPRINT .
The I / O data in the XPRINT packet will contain the following :
- Transparent Print Start Sequence
- Transparent Print Data
- Transparent Print Stop Sequence .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MBIS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
MBIS is sent pre - emptively from the driver to set a port ' s modem signals .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_ModemSet (PKT_Data+4) /* Modem set signals mask */
2005-04-16 15:20:36 -07:00
/* ModemSet definitions... */
2006-01-11 12:17:49 -08:00
# define MBIS_RTS 0x01 /* RTS modem signal */
# define MBIS_DTR 0x02 /* DTR modem signal */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MBIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
MBIC is sent pre - emptively from the driver to clear a port ' s modem signals .
*/
2006-01-11 12:17:49 -08:00
#if 0
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_ModemClear (PKT_Data+4) /* Modem clear signals mask */
2005-04-16 15:20:36 -07:00
/* ModemClear definitions... */
2006-01-11 12:17:49 -08:00
# define MBIC_RTS 0x01 /* RTS modem signal */
# define MBIC_DTR 0x02 /* DTR modem signal */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MSET * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
MSET is sent pre - emptively from the driver to set / clear a port ' s modem signals . */
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_ModemSet (PKT_Data+4) /* Modem set signals mask */
2005-04-16 15:20:36 -07:00
/* ModemSet definitions... */
2006-01-11 12:17:49 -08:00
# define MSET_RTS 0x01 /* RTS modem signal */
# define MSET_DTR 0x02 /* DTR modem signal */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PCLOSE * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,in-band)
PCLOSE is sent from the driver to pseudo close a previously opened port .
The port will close when all data has been sent / received , however , the
port ' s transmit / receive and modem signals will be left enabled and the
port marked internally as Pseudo Closed . */
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MGET * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
MGET is sent pre - emptively from the driver to request the port ' s current modem signals . */
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MEMDUMP * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
MEMDUMP is sent pre - emptively from the driver to request a dump of 32 bytes
of the specified port ' s RTA address space .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
# define PKT_Address (PKT_Data+6) /* Requested address */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * READ_REGISTER * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
READ_REGISTER is sent pre - emptively from the driver to request the contents
of the CD1400 register specified in address .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
# define PKT_Address (PKT_Data+6) /* Requested address */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * COMMAND_RUP - COMPLETE * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - COMPLETE is sent in response to all port I / O control command
packets , except MEMDUMP and READ_REGISTER .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
# define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */
# define PKT_PortStatus (PKT_Data+4) /* Port signal status */
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
2005-04-16 15:20:36 -07:00
/* ModemStatus definitions... */
2006-01-11 12:17:49 -08:00
# define MODEM_DSR 0x80 /* Data Set Ready modem state */
# define MODEM_CTS 0x40 /* Clear To Send modem state */
# define MODEM_RI 0x20 /* Ring Indicate modem state */
# define MODEM_CD 0x10 /* Carrier Detect modem state */
# define MODEM_TSTOP 0x08 /* Transmit Stopped state */
# define MODEM_TEMPTY 0x04 /* Transmit Empty state */
# define MODEM_DTR 0x02 /* DTR modem output state */
# define MODEM_RTS 0x01 /* RTS modem output state */
2005-04-16 15:20:36 -07:00
/* PortStatus definitions... */
2006-01-11 12:17:49 -08:00
# define PORT_ISOPEN 0x01 /* Port open ? */
# define PORT_HUPCL 0x02 /* Hangup on close? */
# define PORT_MOPENPEND 0x04 /* Modem open pending */
# define PORT_ISPARALLEL 0x08 /* Parallel port */
# define PORT_BREAK 0x10 /* Port on break */
# define PORT_STATUSPEND 0020 /* Status packet pending */
# define PORT_BREAKPEND 0x40 /* Break packet pending */
# define PORT_MODEMPEND 0x80 /* Modem status packet pending */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * COMMAND_RUP - COMPLETE * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - COMPLETE is sent in response to all port I / O control command
packets , except MEMDUMP and READ_REGISTER .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */
# define PKT_PortStatus (PKT_Data+4) /* Port signal status */
2005-04-16 15:20:36 -07:00
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
2005-04-16 15:20:36 -07:00
# endif
/* ModemStatus definitions... */
2006-01-11 12:17:49 -08:00
# define MODEM_DSR 0x80 /* Data Set Ready modem state */
# define MODEM_CTS 0x40 /* Clear To Send modem state */
# define MODEM_RI 0x20 /* Ring Indicate modem state */
# define MODEM_CD 0x10 /* Carrier Detect modem state */
# define MODEM_TSTOP 0x08 /* Transmit Stopped state */
# define MODEM_TEMPTY 0x04 /* Transmit Empty state */
# define MODEM_DTR 0x02 /* DTR modem output state */
# define MODEM_RTS 0x01 /* RTS modem output state */
2005-04-16 15:20:36 -07:00
/* PortStatus definitions... */
2006-01-11 12:17:49 -08:00
# define PORT_ISOPEN 0x01 /* Port open ? */
# define PORT_HUPCL 0x02 /* Hangup on close? */
# define PORT_MOPENPEND 0x04 /* Modem open pending */
# define PORT_ISPARALLEL 0x08 /* Parallel port */
# define PORT_BREAK 0x10 /* Port on break */
# define PORT_STATUSPEND 0020 /* Status packet pending */
# define PORT_BREAKPEND 0x40 /* Break packet pending */
# define PORT_MODEMPEND 0x80 /* Modem status packet pending */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * COMMAND_RUP - COMPLETE - MEMDUMP * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - COMPLETE - MEMDUMP is sent as an acknowledgement for a MEMDUMP
port I / O control command packet .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
# define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */
# define PKT_PortStatus (PKT_Data+4) /* Port signal status */
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
# define PKT_Address (PKT_Data+6) /* Requested address */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_Dump (PKT_Data+8) /* 32bytes of requested dump data */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * COMMAND_RUP - COMPLETE - READ_REGISTER * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - COMPLETE - READ_REGISTER is sent as an acknowledgement for a
READ_REGISTER port I / O control command packet .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /*Command code */
# define PKT_PhbNum (PKT_Data+1) /*Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_RegisterValue (PKT_Data+3) /* Modem signal status */
2005-04-16 15:20:36 -07:00
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_PortStatus (PKT_Data+4) /* Port signal status */
# define PKT_SubCmd (PKT_Data+5) /* Sub Command */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * COMMAND_RUP - BREAK_RECEIVED * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - BREAK_RECEIVED packets are sent when the port detects a receive BREAK signal .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * COMMAND_RUP - MODEM_STATUS * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
COMMAND_RUP - MODEM_STATUS packets are sent whenever the port detects a
change in the input modem signal states .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */
# define PKT_Cmd2 (PKT_Data+2) /* Command code copy */
# define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - BOOT_REQUEST * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
BOOT_RUP - BOOT_REQUEST packets are sent to the Driver from RIO to request
firmware code to load onto attached RTAs .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - BOOT_SEQUENCE * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - BOOT_SEQUENCE packets are sent from the Driver to RIO in response
to a BOOT_RUP - BOOT_REQUEST packet .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_NumPackets (PKT_Data+2) /* Packets required to load firmware */
# define PKT_LoadBase (PKT_Data+4) /* RTA firmware load address */
# define PKT_CodeSize (PKT_Data+6) /* Size of firmware in bytes */
# define PKT_CmdString (PKT_Data+8) /* Command string */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - BOOT_COMPLETED * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
BOOT_RUP - BOOT_COMPLETE is sent to the Driver from RIO when downloading of
RTA firmware has completed .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_LinkNumber (PKT_Data+1) /* Link number RTA booted on */
# define PKT_SerialNumber (PKT_Data+2) /* 4 byte serial number */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - Packet Request * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
BOOT_RUP packet without the PKT_CMD_BIT set in the PKT - > len field is sent
from RIO to the Driver as a request for a firmware boot packet . */
2006-01-11 12:17:49 -08:00
# define PKT_SequenceNumber (PKT_Data+0) /* Packet sequence number */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - Packet Response * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
In response to a BOOT_RUP boot packet request , the driver fills out the response
packet with the 70 bytes of the requested sequence .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_SequenceNumber (PKT_Data+0) /* Packet sequence number */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_FirmwarePacket (PKT_Data+2) /* Firmware packet */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - IFOAD * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - IFOAD packets are sent from the Driver to an RTA to cause the
RTA to shut down and reboot .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_IfoadId1 (PKT_Data+2) /* IFOAD Id 1 */
# define PKT_IfoadId2 (PKT_Data+3) /* IFOAD Id 2 */
2005-04-16 15:20:36 -07:00
# define IFOADID1 0xAD
# define IFOADID2 0xF0
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - IDENTIFY * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - IDENTIFY packets are sent from the Driver to an RTA to cause the
RTA to flash its LEDs for a period of time .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_IdentifyId (PKT_Data+2) /* defines pattern to flash */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - ZOMBIE * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - ZOMBIE packets are sent from the Driver to an RTA to cause the
RTA to shut down and flash it ' s LEDs .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_ZombieId1 (PKT_Data+2) /* ZOMBIE Id 1 */
# define PKT_ZombieId2 (PKT_Data+3) /* ZOMBIE Id 2 */
2005-04-16 15:20:36 -07:00
# define ZOMBIEID1 0x52
# define ZOMBIEID2 0x21
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - UFOAD * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - UFOAD packets are sent from the Driver to an RTA to cause the RTA
to ask it ' s neighbouring RTA to shut down and reboot .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_LinkNumber (PKT_Data+1) /* Link number of RTA to UFOAD */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_UfoadId1 (PKT_Data+2) /* UFOAD Id 1 */
# define PKT_UfoadId2 (PKT_Data+3) /* UFOAD Id 2 */
2005-04-16 15:20:36 -07:00
# define UFOADID1 0x1E
# define UFOADID2 0x0D
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * BOOT_RUP - IWAIT * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
BOOT_RUP - IWAIT packets are sent from the Driver to an RTA to cause the RTA
to pause booting on the specified link for 30 seconds .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
# define PKT_LinkNumber (PKT_Data+1) /* Link number of RTA to UFOAD */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_IwaitId1 (PKT_Data+2) /* IWAIT Id 1 */
# define PKT_IwaitId2 (PKT_Data+3) /* IWAIT Id 2 */
2005-04-16 15:20:36 -07:00
# define IWAITID1 0xDE
# define IWAITID2 0xB1
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * ROUTE_RUP - ROUTE_REQUEST * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
ROUTE_RUP - ROUTE_REQUEST packets are sent from a newly booted or connected
RTA to a Driver to request an ID ( RUP or unit number ) .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_SerialNumber (PKT_Data+2) /* 4 byte serial number */
# define PKT_ModuleTypes (PKT_Data+6) /* RTA Module types */
2005-04-16 15:20:36 -07:00
/* ModuleTypes definitions... */
2006-01-11 12:17:49 -08:00
# define MOD_BLANK 0x0F /* Blank plate attached */
# define MOD_RS232DB25 0x00 /* RS232 DB25 connector */
# define MOD_RS232RJ45 0x01 /* RS232 RJ45 connector */
# define MOD_RS422DB25 0x02 /* RS422 DB25 connector */
# define MOD_RS485DB25 0x03 /* RS485 DB25 connector */
# define MOD_PARALLEL 0x04 /* Centronics parallel */
2005-04-16 15:20:36 -07:00
2006-01-11 12:17:49 -08:00
# define MOD2 0x08 /* Set to indicate Rev2 module */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * ROUTE_RUP - ROUTE_FOAD * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
ROUTE_RUP - ROUTE_FOAD packet is sent as a response to a ROUTE_RUP - ROUTE_REQUEST
packet to cause the RTA to " Fall Over And Die " . , i . e . shutdown and reboot .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_RouteCmdString (PKT_Data+2) /* Command string */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * ROUTE_RUP - ROUTE_ALLOCATE * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (Driver->RIO,pre-emptive)
ROUTE_RUP - ROUTE_ALLOCATE packet is sent as a response to a ROUTE_RUP - ROUTE_REQUEST
packet to allocate the RTA ' s Id number ( RUP number 1. .16 )
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_IdNum (PKT_Data+1) /* RUP number for ports 1..8 */
2005-04-16 15:20:36 -07:00
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_RouteCmdString (PKT_Data+2) /* Command string */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_IdNum2 (PKT_Data+0x17) /* RUP number for ports 9..16 */
2005-04-16 15:20:36 -07:00
/*****************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * ROUTE_RUP - ROUTE_TOPOLOGY * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* (RIO->Driver,pre-emptive)
ROUTE_RUP - ROUTE_TOPOLOGY packet is sent to inform the driver of an RTA ' s
current link status .
*/
#if 0
2006-01-11 12:17:49 -08:00
# define PKT_Cmd (PKT_Data+0) /* Command code */
2005-04-16 15:20:36 -07:00
# endif
2006-01-11 12:17:49 -08:00
# define PKT_Link1Rup (PKT_Data+2) /* Link 1 RUP number */
# define PKT_Link1Link (PKT_Data+3) /* Link 1 link number */
# define PKT_Link2Rup (PKT_Data+4) /* Link 2 RUP number */
# define PKT_Link2Link (PKT_Data+5) /* Link 2 link number */
# define PKT_Link3Rup (PKT_Data+6) /* Link 3 RUP number */
# define PKT_Link3Link (PKT_Data+7) /* Link 3 link number */
# define PKT_Link4Rup (PKT_Data+8) /* Link 4 RUP number */
# define PKT_Link4Link (PKT_Data+9) /* Link 4 link number */
# define PKT_RtaVpdProm (PKT_Data+10) /* 32 bytes of RTA VPD PROM Contents */
# endif /* _sxwinif_h */
2005-04-16 15:20:36 -07:00
/* End of RIOWINIF.H */