···1-/************************************************************************/2-/* */3-/* Title : RIO Shared Memory Window Inteface */4-/* */5-/* Author : N.P.Vassallo */6-/* */7-/* Creation : 7th June 1999 */8-/* */9-/* Version : 1.0.0 */10-/* */11-/* Copyright : (c) Specialix International Ltd. 1999 *12- * This program is free software; you can redistribute it and/or modify13- * it under the terms of the GNU General Public License as published by14- * the Free Software Foundation; either version 2 of the License, or15- * (at your option) any later version.16- *17- * This program is distributed in the hope that it will be useful,18- * but WITHOUT ANY WARRANTY; without even the implied warranty of19- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the20- * GNU General Public License for more details.21- *22- * You should have received a copy of the GNU General Public License23- * along with this program; if not, write to the Free Software24- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.25- * */26-/* Description : Prototypes, structures and definitions */27-/* describing RIO host card shared memory */28-/* window interface structures: */29-/* PARMMAP */30-/* RUP */31-/* PHB */32-/* LPB */33-/* PKT */34-/* */35-/************************************************************************/36-37-/* History...38-39-1.0.0 07/06/99 NPV Creation. (based on PARMMAP.H)40-41-*/42-43-#ifndef _riowinif_h /* If RIOWINDIF.H not already defined */44-#define _riowinif_h 145-46-/*****************************************************************************47-******************************** *********************************48-******************************** General *********************************49-******************************** *********************************50-*****************************************************************************/51-52-#define TPNULL ((_u16)(0x8000))53-54-/*****************************************************************************55-******************************** ********************************56-******************************** PARM_MAP ********************************57-******************************** ********************************58-*****************************************************************************/59-60-/* The PARM_MAP structure defines global values relating to the Host Card / RTA61- and is the main structure from which all other structures are referenced. */62-63-typedef struct _PARM_MAP {64- _u16 phb_ptr; /* 0x00 Pointer to the PHB array */65- _u16 phb_num_ptr; /* 0x02 Ptr to Number of PHB's */66- _u16 free_list; /* 0x04 Free List pointer */67- _u16 free_list_end; /* 0x06 Free List End pointer */68- _u16 q_free_list_ptr; /* 0x08 Ptr to Q_BUF variable */69- _u16 unit_id_ptr; /* 0x0A Unit Id */70- _u16 link_str_ptr; /* 0x0C Link Structure Array */71- _u16 bootloader_1; /* 0x0E 1st Stage Boot Loader */72- _u16 bootloader_2; /* 0x10 2nd Stage Boot Loader */73- _u16 port_route_map_ptr; /* 0x12 Port Route Map */74- _u16 route_ptr; /* 0x14 Route Map */75- _u16 map_present; /* 0x16 Route Map present */76- _u16 pkt_num; /* 0x18 Total number of packets */77- _u16 q_num; /* 0x1A Total number of Q packets */78- _u16 buffers_per_port; /* 0x1C Number of buffers per port */79- _u16 heap_size; /* 0x1E Initial size of heap */80- _u16 heap_left; /* 0x20 Current Heap left */81- _u16 error; /* 0x22 Error code */82- _u16 tx_max; /* 0x24 Max number of tx pkts per phb */83- _u16 rx_max; /* 0x26 Max number of rx pkts per phb */84- _u16 rx_limit; /* 0x28 For high / low watermarks */85- _u16 links; /* 0x2A Links to use */86- _u16 timer; /* 0x2C Interrupts per second */87- _u16 rups; /* 0x2E Pointer to the RUPs */88- _u16 max_phb; /* 0x30 Mostly for debugging */89- _u16 living; /* 0x32 Just increments!! */90- _u16 init_done; /* 0x34 Initialisation over */91- _u16 booting_link; /* 0x36 */92- _u16 idle_count; /* 0x38 Idle time counter */93- _u16 busy_count; /* 0x3A Busy counter */94- _u16 idle_control; /* 0x3C Control Idle Process */95- _u16 tx_intr; /* 0x3E TX interrupt pending */96- _u16 rx_intr; /* 0x40 RX interrupt pending */97- _u16 rup_intr; /* 0x42 RUP interrupt pending */98-99-} PARM_MAP;100-101-/* Same thing again, but defined as offsets... */102-103-#define PM_phb_ptr 0x00 /* 0x00 Pointer to the PHB array */104-#define PM_phb_num_ptr 0x02 /* 0x02 Ptr to Number of PHB's */105-#define PM_free_list 0x04 /* 0x04 Free List pointer */106-#define PM_free_list_end 0x06 /* 0x06 Free List End pointer */107-#define PM_q_free_list_ptr 0x08 /* 0x08 Ptr to Q_BUF variable */108-#define PM_unit_id_ptr 0x0A /* 0x0A Unit Id */109-#define PM_link_str_ptr 0x0C /* 0x0C Link Structure Array */110-#define PM_bootloader_1 0x0E /* 0x0E 1st Stage Boot Loader */111-#define PM_bootloader_2 0x10 /* 0x10 2nd Stage Boot Loader */112-#define PM_port_route_map_ptr 0x12 /* 0x12 Port Route Map */113-#define PM_route_ptr 0x14 /* 0x14 Route Map */114-#define PM_map_present 0x16 /* 0x16 Route Map present */115-#define PM_pkt_num 0x18 /* 0x18 Total number of packets */116-#define PM_q_num 0x1A /* 0x1A Total number of Q packets */117-#define PM_buffers_per_port 0x1C /* 0x1C Number of buffers per port */118-#define PM_heap_size 0x1E /* 0x1E Initial size of heap */119-#define PM_heap_left 0x20 /* 0x20 Current Heap left */120-#define PM_error 0x22 /* 0x22 Error code */121-#define PM_tx_max 0x24 /* 0x24 Max number of tx pkts per phb */122-#define PM_rx_max 0x26 /* 0x26 Max number of rx pkts per phb */123-#define PM_rx_limit 0x28 /* 0x28 For high / low watermarks */124-#define PM_links 0x2A /* 0x2A Links to use */125-#define PM_timer 0x2C /* 0x2C Interrupts per second */126-#define PM_rups 0x2E /* 0x2E Pointer to the RUPs */127-#define PM_max_phb 0x30 /* 0x30 Mostly for debugging */128-#define PM_living 0x32 /* 0x32 Just increments!! */129-#define PM_init_done 0x34 /* 0x34 Initialisation over */130-#define PM_booting_link 0x36 /* 0x36 */131-#define PM_idle_count 0x38 /* 0x38 Idle time counter */132-#define PM_busy_count 0x3A /* 0x3A Busy counter */133-#define PM_idle_control 0x3C /* 0x3C Control Idle Process */134-#define PM_tx_intr 0x3E /* 0x4E TX interrupt pending */135-#define PM_rx_intr 0x40 /* 0x40 RX interrupt pending */136-#define PM_rup_intr 0x42 /* 0x42 RUP interrupt pending */137-#define sizeof_PARM_MAP 0x44 /* structure size = 0x44 */138-139-/* PARM_MAP.error definitions... */140-#define E_NO_ERROR 0x00141-#define E_PROCESS_NOT_INIT 0x01142-#define E_LINK_TIMEOUT 0x02143-#define E_NO_ROUTE 0x03144-#define E_CONFUSED 0x04145-#define E_HOME 0x05146-#define E_CSUM_FAIL 0x06147-#define E_DISCONNECTED 0x07148-#define E_BAD_RUP 0x08149-#define E_NO_VIRGIN 0x09150-#define E_BOOT_RUP_BUSY 0x10151-#define E_CHANALLOC 0x80152-#define E_POLL_ALLOC 0x81153-#define E_LTTWAKE 0x82154-#define E_LTT_ALLOC 0x83155-#define E_LRT_ALLOC 0x84156-#define E_CIRRUS 0x85157-#define E_MONITOR 0x86158-#define E_PHB_ALLOC 0x87159-#define E_ARRAY_ALLOC 0x88160-#define E_QBUF_ALLOC 0x89161-#define E_PKT_ALLOC 0x8a162-#define E_GET_TX_Q_BUF 0x8b163-#define E_GET_RX_Q_BUF 0x8c164-#define E_MEM_OUT 0x8d165-#define E_MMU_INIT 0x8e166-#define E_LTT_INIT 0x8f167-#define E_LRT_INIT 0x90168-#define E_LINK_RUN 0x91169-#define E_MONITOR_ALLOC 0x92170-#define E_MONITOR_INIT 0x93171-#define E_POLL_INIT 0x94172-173-/* PARM_MAP.links definitions... */174-#define RIO_LINK_ENABLE 0x80FF175-176-/*****************************************************************************177-********************************** ***********************************178-********************************** RUP ***********************************179-********************************** ***********************************180-*****************************************************************************/181-182-/* The RUP (Remote Unit Port) structure relates to the Remote Terminal Adapters183- attached to the system and there is normally an array of MAX_RUPS (=16) structures184- in a host card, defined by PARM_MAP->rup. */185-186-typedef struct _RUP {187- _u16 txpkt; /* 0x00 Outgoing packet */188- _u16 rxpkt; /* 0x02 ncoming packet */189- _u16 link; /* 0x04 Which link to send packet down ? */190- _u8 rup_dest_unit[2]; /* 0x06 Destination Unit */191- _u16 handshake; /* 0x08 Handshaking */192- _u16 timeout; /* 0x0A Timeout */193- _u16 status; /* 0x0C Status */194- _u16 txcontrol; /* 0x0E Transmit control */195- _u16 rxcontrol; /* 0x10 Receive control */196-197-} RUP;198-199-/* Same thing again, but defined as offsets... */200-201-#define RUP_txpkt 0x00 /* 0x00 Outgoing packet */202-#define RUP_rxpkt 0x02 /* 0x02 Incoming packet */203-#define RUP_link 0x04 /* 0x04 Which link to send packet down ? */204-#define RUP_rup_dest_unit 0x06 /* 0x06 Destination Unit */205-#define RUP_handshake 0x08 /* 0x08 Handshaking */206-#define RUP_timeout 0x0A /* 0x0A Timeout */207-#define RUP_status 0x0C /* 0x0C Status */208-#define RUP_txcontrol 0x0E /* 0x0E Transmit control */209-#define RUP_rxcontrol 0x10 /* 0x10 Receive control */210-#define sizeof_RUP 0x12 /* structure size = 0x12 */211-212-#define MAX_RUP 16213-214-/* RUP.txcontrol definitions... */215-#define TX_RUP_INACTIVE 0 /* Nothing to transmit */216-#define TX_PACKET_READY 1 /* Transmit packet ready */217-#define TX_LOCK_RUP 2 /* Transmit side locked */218-219-/* RUP.txcontrol definitions... */220-#define RX_RUP_INACTIVE 0 /* Nothing received */221-#define RX_PACKET_READY 1 /* Packet received */222-223-#define RUP_NO_OWNER 0xFF /* RUP not owned by any process */224-225-/*****************************************************************************226-********************************** ***********************************227-********************************** PHB ***********************************228-********************************** ***********************************229-*****************************************************************************/230-231-/* The PHB (Port Header Block) structure relates to the serial ports attached232- to the system and there is normally an array of MAX_PHBS (=128) structures233- in a host card, defined by PARM_MAP->phb_ptr and PARM_MAP->phb_num_ptr. */234-235-typedef struct _PHB {236- _u16 source; /* 0x00 Location of the PHB in the host card */237- _u16 handshake; /* 0x02 Used to manage receive packet flow control */238- _u16 status; /* 0x04 Internal port transmit/receive status */239- _u16 timeout; /* 0x06 Time period to wait for an ACK */240- _u16 link; /* 0x08 The host link associated with the PHB */241- _u16 destination; /* 0x0A Location of the remote port on the network */242-243- _u16 tx_start; /* 0x0C first entry in the packet array for transmit packets */244- _u16 tx_end; /* 0x0E last entry in the packet array for transmit packets */245- _u16 tx_add; /* 0x10 position in the packet array for new transmit packets */246- _u16 tx_remove; /* 0x12 current position in the packet pointer array */247-248- _u16 rx_start; /* 0x14 first entry in the packet array for receive packets */249- _u16 rx_end; /* 0x16 last entry in the packet array for receive packets */250- _u16 rx_add; /* 0x18 position in the packet array for new receive packets */251- _u16 rx_remove; /* 0x1A current position in the packet pointer array */252-253-} PHB;254-255-/* Same thing again, but defined as offsets... */256-257-#define PHB_source 0x00 /* 0x00 Location of the PHB in the host card */258-#define PHB_handshake 0x02 /* 0x02 Used to manage receive packet flow control */259-#define PHB_status 0x04 /* 0x04 Internal port transmit/receive status */260-#define PHB_timeout 0x06 /* 0x06 Time period to wait for an ACK */261-#define PHB_link 0x08 /* 0x08 The host link associated with the PHB */262-#define PHB_destination 0x0A /* 0x0A Location of the remote port on the network */263-#define PHB_tx_start 0x0C /* 0x0C first entry in the packet array for transmit packets */264-#define PHB_tx_end 0x0E /* 0x0E last entry in the packet array for transmit packets */265-#define PHB_tx_add 0x10 /* 0x10 position in the packet array for new transmit packets */266-#define PHB_tx_remove 0x12 /* 0x12 current position in the packet pointer array */267-#define PHB_rx_start 0x14 /* 0x14 first entry in the packet array for receive packets */268-#define PHB_rx_end 0x16 /* 0x16 last entry in the packet array for receive packets */269-#define PHB_rx_add 0x18 /* 0x18 position in the packet array for new receive packets */270-#define PHB_rx_remove 0x1A /* 0x1A current position in the packet pointer array */271-#define sizeof_PHB 0x1C /* structure size = 0x1C */272-273-/* PHB.handshake definitions... */274-#define PHB_HANDSHAKE_SET 0x0001 /* Set by LRT */275-#define PHB_HANDSHAKE_RESET 0x0002 /* Set by ISR / driver */276-#define PHB_HANDSHAKE_FLAGS (PHB_HANDSHAKE_RESET|PHB_HANDSHAKE_SET)277- /* Reset by ltt */278-279-#define MAX_PHB 128 /* range 0-127 */280-281-/*****************************************************************************282-********************************** ***********************************283-********************************** LPB ***********************************284-********************************** ***********************************285-*****************************************************************************/286-287-/* The LPB (Link Parameter Block) structure relates to a RIO Network Link288- and there is normally an array of MAX_LINKS (=4) structures in a host card,289- defined by PARM_MAP->link_str_ptr. */290-291-typedef struct _LPB {292- _u16 link_number; /* 0x00 Link Number */293- _u16 in_ch; /* 0x02 Link In Channel */294- _u16 out_ch; /* 0x04 Link Out Channel */295- _u8 attached_serial[4]; /* 0x06 Attached serial number */296- _u8 attached_host_serial[4]; /* 0x0A Serial number of Host who booted other end */297- _u16 descheduled; /* 0x0E Currently Descheduled */298- _u16 state; /* 0x10 Current state */299- _u16 send_poll; /* 0x12 Send a Poll Packet */300- _u16 ltt_p; /* 0x14 Process Descriptor */301- _u16 lrt_p; /* 0x16 Process Descriptor */302- _u16 lrt_status; /* 0x18 Current lrt status */303- _u16 ltt_status; /* 0x1A Current ltt status */304- _u16 timeout; /* 0x1C Timeout value */305- _u16 topology; /* 0x1E Topology bits */306- _u16 mon_ltt; /* 0x20 */307- _u16 mon_lrt; /* 0x22 */308- _u16 num_pkts; /* 0x24 */309- _u16 add_packet_list; /* 0x26 Add packets to here */310- _u16 remove_packet_list; /* 0x28 Send packets from here */311-312- _u16 lrt_fail_chan; /* 0x2A Lrt's failure channel */313- _u16 ltt_fail_chan; /* 0x2C Ltt's failure channel */314-315- RUP rup; /* 0x2E RUP structure for HOST to driver comms */316- RUP link_rup; /* 0x40 RUP for the link (POLL, topology etc.) */317- _u16 attached_link; /* 0x52 Number of attached link */318- _u16 csum_errors; /* 0x54 csum errors */319- _u16 num_disconnects; /* 0x56 number of disconnects */320- _u16 num_sync_rcvd; /* 0x58 # sync's received */321- _u16 num_sync_rqst; /* 0x5A # sync requests */322- _u16 num_tx; /* 0x5C Num pkts sent */323- _u16 num_rx; /* 0x5E Num pkts received */324- _u16 module_attached; /* 0x60 Module tpyes of attached */325- _u16 led_timeout; /* 0x62 LED timeout */326- _u16 first_port; /* 0x64 First port to service */327- _u16 last_port; /* 0x66 Last port to service */328-329-} LPB;330-331-/* Same thing again, but defined as offsets... */332-333-#define LPB_link_number 0x00 /* 0x00 Link Number */334-#define LPB_in_ch 0x02 /* 0x02 Link In Channel */335-#define LPB_out_ch 0x04 /* 0x04 Link Out Channel */336-#define LPB_attached_serial 0x06 /* 0x06 Attached serial number */337-#define LPB_attached_host_serial 0x0A /* 0x0A Serial number of Host who booted other end */338-#define LPB_descheduled 0x0E /* 0x0E Currently Descheduled */339-#define LPB_state 0x10 /* 0x10 Current state */340-#define LPB_send_poll 0x12 /* 0x12 Send a Poll Packet */341-#define LPB_ltt_p 0x14 /* 0x14 Process Descriptor */342-#define LPB_lrt_p 0x16 /* 0x16 Process Descriptor */343-#define LPB_lrt_status 0x18 /* 0x18 Current lrt status */344-#define LPB_ltt_status 0x1A /* 0x1A Current ltt status */345-#define LPB_timeout 0x1C /* 0x1C Timeout value */346-#define LPB_topology 0x1E /* 0x1E Topology bits */347-#define LPB_mon_ltt 0x20 /* 0x20 */348-#define LPB_mon_lrt 0x22 /* 0x22 */349-#define LPB_num_pkts 0x24 /* 0x24 */350-#define LPB_add_packet_list 0x26 /* 0x26 Add packets to here */351-#define LPB_remove_packet_list 0x28 /* 0x28 Send packets from here */352-#define LPB_lrt_fail_chan 0x2A /* 0x2A Lrt's failure channel */353-#define LPB_ltt_fail_chan 0x2C /* 0x2C Ltt's failure channel */354-#define LPB_rup 0x2E /* 0x2E RUP structure for HOST to driver comms */355-#define LPB_link_rup 0x40 /* 0x40 RUP for the link (POLL, topology etc.) */356-#define LPB_attached_link 0x52 /* 0x52 Number of attached link */357-#define LPB_csum_errors 0x54 /* 0x54 csum errors */358-#define LPB_num_disconnects 0x56 /* 0x56 number of disconnects */359-#define LPB_num_sync_rcvd 0x58 /* 0x58 # sync's received */360-#define LPB_num_sync_rqst 0x5A /* 0x5A # sync requests */361-#define LPB_num_tx 0x5C /* 0x5C Num pkts sent */362-#define LPB_num_rx 0x5E /* 0x5E Num pkts received */363-#define LPB_module_attached 0x60 /* 0x60 Module tpyes of attached */364-#define LPB_led_timeout 0x62 /* 0x62 LED timeout */365-#define LPB_first_port 0x64 /* 0x64 First port to service */366-#define LPB_last_port 0x66 /* 0x66 Last port to service */367-#define sizeof_LPB 0x68 /* structure size = 0x68 */368-369-#define LINKS_PER_UNIT 4 /* number of links from a host */370-371-/*****************************************************************************372-******************************** *******************************373-******************************** FREE_LIST *******************************374-******************************** *******************************375-*****************************************************************************/376-377-/* Used to overlay packet headers when allocating/freeing packets from the free list */378-379-typedef struct _FREE_LIST {380- _u16 next; /* 0x00 offset of next list item */381- _u16 prev; /* 0x02 offset of previous list item */382-383-} FREE_LIST;384-385-/* Same thing again, but defined as offsets... */386-387-#define FL_next 0x00 /* 0x00 offset of next list item */388-#define FL_prev 0x02 /* 0x02 offset of previous list item */389-390-/*****************************************************************************391-********************************** ***********************************392-********************************** PKT ***********************************393-********************************** ***********************************394-*****************************************************************************/395-396-/* The PKT is the main unit of communication between Host Cards and RTAs across397- the RIO network. */398-399-#define PKT_MAX_DATA_LEN 72 /* Size of packet data */400-401-typedef struct _PKT {402- _u8 dest_unit; /* 0x00 Destination Unit Id */403- _u8 dest_port; /* 0x01 Destination Port */404- _u8 src_unit; /* 0x02 Source Unit Id */405- _u8 src_port; /* 0x03 Source Port */406- _u8 len; /* 0x04 Length (in bytes) of data field */407- _u8 control; /* 0x05 */408- _u8 data[PKT_MAX_DATA_LEN]; /* 0x06 Actual data */409- _u16 csum; /* 0x4E C-SUM */410-411-} PKT;412-413-/* Same thing again, but defined as offsets... */414-415-#define PKT_dest_unit 0x00 /* 0x00 Destination Unit Id */416-#define PKT_dest_port 0x01 /* 0x01 Destination Port */417-#define PKT_src_unit 0x02 /* 0x02 Source Unit Id */418-#define PKT_src_port 0x03 /* 0x03 Source Port */419-#define PKT_len 0x04 /* 0x04 Length (in bytes) of data field */420-#define PKT_control 0x05 /* 0x05 */421-#define PKT_data 0x06 /* 0x06 Actual data */422-#define PKT_csum 0x4E /* 0x4E C-SUM */423-#define sizeof_PKT 0x50 /* structure size = 0x50 */424-425-/* PKT.len definitions... */426-#define PKT_CMD_BIT 0x80427-#define PKT_CMD_DATA 0x80428-#define PKT_LEN_MASK 0x7F429-430-/* PKT.control definitions... */431-#define PKT_ACK 0x40432-#define PKT_TGL 0x20433-#define DATA_WNDW 0x10434-#define PKT_TTL_MASK 0x0F435-#define MAX_TTL 0x0F436-437-/*****************************************************************************438-***************************** ****************************439-***************************** Control Packets ****************************440-***************************** ****************************441-*****************************************************************************/442-443-/* The following definitions and structures define the control packets sent444- between the driver and RIO Ports, RTAs and Host Cards. */445-446-#define PRE_EMPTIVE 0x80 /* Pre-emptive command (sent via port's RUP) */447-448-/* "in-band" and "pre-emptive" port commands... */449-#define OPEN 0x00 /* Driver->RIO Open a port */450-#define CONFIG 0x01 /* Driver->RIO Configure a port */451-#define MOPEN 0x02 /* Driver->RIO Modem open (wait for DCD) */452-#define CLOSE 0x03 /* Driver->RIO Close a port */453-#define WFLUSH (0x04|PRE_EMPTIVE) /* Driver->RIO Write flush */454-#define RFLUSH (0x05|PRE_EMPTIVE) /* Driver->RIO Read flush */455-#define RESUME (0x06|PRE_EMPTIVE) /* Driver->RIO Behave as if XON received */456-#define SBREAK 0x07 /* Driver->RIO Start break */457-#define EBREAK 0x08 /* Driver->RIO End break */458-#define SUSPEND (0x09|PRE_EMPTIVE) /* Driver->RIO Behave as if XOFF received */459-#define FCLOSE (0x0A|PRE_EMPTIVE) /* Driver->RIO Force close */460-#define XPRINT 0x0B /* Driver->RIO Xprint packet */461-#define MBIS (0x0C|PRE_EMPTIVE) /* Driver->RIO Set modem lines */462-#define MBIC (0x0D|PRE_EMPTIVE) /* Driver->RIO Clear modem lines */463-#define MSET (0x0E|PRE_EMPTIVE) /* Driver->RIO Set modem lines */464-#define PCLOSE 0x0F /* Driver->RIO Pseudo close */465-#define MGET (0x10|PRE_EMPTIVE) /* Driver->RIO Force update of modem status */466-#define MEMDUMP (0x11|PRE_EMPTIVE) /* Driver->RIO DEBUG request for RTA memory */467-#define READ_REGISTER (0x12|PRE_EMPTIVE) /* Driver->RIO DEBUG read CD1400 register */468-469-/* Remote Unit Port (RUP) packet definitions... (specified in PKT.dest_unit and PKT.src_unit) */470-#define SYNC_RUP 0xFF /* Download internal */471-#define COMMAND_RUP 0xFE /* Command ack/status */472-#define ERROR_RUP 0xFD /* Download internal */473-#define POLL_RUP 0xFC /* Download internal */474-#define BOOT_RUP 0xFB /* Used to boot RTAs */475-#define ROUTE_RUP 0xFA /* Used to specify routing/topology */476-#define STATUS_RUP 0xF9 /* Not used */477-#define POWER_RUP 0xF8 /* Download internal */478-479-/* COMMAND_RUP definitions... */480-#define COMPLETE (0x20|PRE_EMPTIVE) /* RIO->Driver Command complete */481-#define BREAK_RECEIVED (0x21|PRE_EMPTIVE) /* RIO->Driver Break received */482-#define MODEM_STATUS (0x22|PRE_EMPTIVE) /* RIO->Driver Modem status change */483-484-/* BOOT_RUP definitions... */485-#define BOOT_REQUEST 0x00 /* RIO->Driver Request for boot */486-#define BOOT_ABORT 0x01 /* Driver->RIO Abort a boot */487-#define BOOT_SEQUENCE 0x02 /* Driver->RIO Packet with firmware details */488-#define BOOT_COMPLETED 0x03 /* RIO->Driver Boot completed */489-#define IFOAD 0x2F /* Driver->RIO Shutdown/Reboot RTA (Fall Over And Die) */490-#define IDENTIFY 0x30 /* Driver->RIO Identify RTA */491-#define ZOMBIE 0x31 /* Driver->RIO Shutdown/Flash LEDs */492-#define UFOAD 0x32 /* Driver->RIO Shutdown/Reboot neighbouring RTA */493-#define IWAIT 0x33 /* Driver->RIO Pause booting process */494-495-/* ROUTE_RUP definitions... */496-#define ROUTE_REQUEST 0x00 /* RIO->Driver Request an ID */497-#define ROUTE_FOAD 0x01 /* Driver->RIO Shutdown/reboot RTA */498-#define ROUTE_ALREADY 0x02 /* Driver->RIO Not used */499-#define ROUTE_USED 0x03 /* Driver->RIO Not used */500-#define ROUTE_ALLOCATE 0x04 /* Driver->RIO Allocate RTA RUP numbers */501-#define ROUTE_REQ_TOP 0x05 /* Driver->RIO Not used */502-#define ROUTE_TOPOLOGY 0x06 /* RIO->Driver Route/Topology status */503-504-/*****************************************************************************505-********************************** **********************************506-********************************** OPEN **********************************507-********************************** **********************************508-*****************************************************************************/509-510-/* (Driver->RIO,in-band)511-512- Sent to open a port. 513- Structure of configuration info used with OPEN, CONFIG and MOPEN packets... */514-515-#define PKT_Cmd (PKT_Data+0) /* Command code */516-#define PKT_Cor1 (PKT_Data+1) /* Channel Option Register 1 */517-#define PKT_Cor2 (PKT_Data+2) /* Channel Option Register 2 */518-#define PKT_Cor4 (PKT_Data+3) /* Channel Option Register 4 */519-#define PKT_Cor5 (PKT_Data+4) /* Channel Option Register 5 */520-#define PKT_TxXon (PKT_Data+5) /* Transmit XON character */521-#define PKT_TxXoff (PKT_Data+6) /* Transmit XOFF character */522-#define PKT_RxXon (PKT_Data+7) /* Receive XON character */523-#define PKT_RxXoff (PKT_Data+8) /* Receive XOFF character */524-#define PKT_Lnext (PKT_Data+9) /* Lnext character */525-#define PKT_TxBaud (PKT_Data+10) /* Transmit baud rate */526-#define PKT_RxBaud (PKT_Data+11) /* Receive baud rate */527-528-/* COR1 definitions... */529-#define COR1_PARITY 0xE0 /* Parity mask */530-#define COR1_NONE 0x00 /* No parity */531-#define COR1_SPACE 0x20 /* Space parity */532-#define COR1_EVEN 0x40 /* Even parity */533-#define COR1_MARK 0xA0 /* Mark parity */534-#define COR1_ODD 0xC0 /* Odd parity */535-536-#define COR1_STOPBITS 0x0C /* Stop bits mask */537-#define COR1_STOP1 0x00 /* 1 stop bit */538-#define COR1_STOP1_5 0x04 /* 1.5 stop bits */539-#define COR1_STOP2 0x08 /* 2 stop bits */540-541-#define COR1_DATABITS 0x03 /* Data bits mask */542-#define COR1_DATA5 0x00 /* 5 data bits */543-#define COR1_DATA6 0x01 /* 6 data bits */544-#define COR1_DATA7 0x02 /* 7 data bits */545-#define COR1_DATA8 0x03 /* 8 data bits */546-547-/* COR2 definitions... */548-#define COR2_XON_TXFLOW 0x40 /* XON/XOFF Transmit Flow */549-#define COR2_XANY_TXFLOW 0xC0 /* XON/XANY Transmit Flow */550-#define COR2_HUPCL 0x20 /* Hang Up On Close */551-#define COR2_DSR_TXFLOW 0x08 /* DSR Transmit Flow Control */552-#define COR2_RTS_RXFLOW 0x04 /* RTS Receive Flow Control */553-#define COR2_CTS_TXFLOW 0x02 /* CTS Transmit Flow Control */554-#define COR2_XON_RXFLOW 0x01 /* XON/XOFF Receive Flow */555-556-/* COR4 definition... */557-#define COR4_IGNCR 0x80 /* Discard received CR */558-#define COR4_ICRNL 0x40 /* Map received CR -> NL */559-#define COR4_INLCR 0x20 /* Map received NL -> CR */560-#define COR4_IGNBRK 0x10 /* Ignore Received Break */561-#define COR4_NBRKINT 0x08 /* No interrupt on rx Break */562-#define COR4_IGNPAR 0x04 /* ignore rx parity error chars */563-#define COR4_PARMRK 0x02 /* Mark rx parity error chars */564-#define COR4_RAISEMOD 0x01 /* Raise modem lines on !0 baud */565-566-/* COR5 definitions... */567-#define COR5_ISTRIP 0x80 /* Strip input chars to 7 bits */568-#define COR5_LNE 0x40 /* Enable LNEXT processing */569-#define COR5_CMOE 0x20 /* Match good & error characters */570-#define COR5_TAB3 0x10 /* TAB3 mode */571-#define COR5_TSTATE_ON 0x08 /* Enable tbusy/tstop monitoring */572-#define COR5_TSTATE_OFF 0x04 /* Disable tbusy/tstop monitoring */573-#define COR5_ONLCR 0x02 /* NL -> CR NL on output */574-#define COR5_OCRNL 0x01 /* CR -> NL on output */575-576-/* RxBaud and TxBaud definitions... */577-#define RIO_B0 0x00 /* RTS / DTR signals dropped */578-#define RIO_B50 0x01 /* 50 baud */579-#define RIO_B75 0x02 /* 75 baud */580-#define RIO_B110 0x03 /* 110 baud */581-#define RIO_B134 0x04 /* 134.5 baud */582-#define RIO_B150 0x05 /* 150 baud */583-#define RIO_B200 0x06 /* 200 baud */584-#define RIO_B300 0x07 /* 300 baud */585-#define RIO_B600 0x08 /* 600 baud */586-#define RIO_B1200 0x09 /* 1200 baud */587-#define RIO_B1800 0x0A /* 1800 baud */588-#define RIO_B2400 0x0B /* 2400 baud */589-#define RIO_B4800 0x0C /* 4800 baud */590-#define RIO_B9600 0x0D /* 9600 baud */591-#define RIO_B19200 0x0E /* 19200 baud */592-#define RIO_B38400 0x0F /* 38400 baud */593-#define RIO_B56000 0x10 /* 56000 baud */594-#define RIO_B57600 0x11 /* 57600 baud */595-#define RIO_B64000 0x12 /* 64000 baud */596-#define RIO_B115200 0x13 /* 115200 baud */597-#define RIO_B2000 0x14 /* 2000 baud */598-599-/*****************************************************************************600-********************************* *********************************601-********************************* CONFIG *********************************602-********************************* *********************************603-*****************************************************************************/604-605-/* (Driver->RIO,in-band)606-607- CONFIG is sent from the driver to configure an already opened port.608- Packet structure is same as OPEN. */609-610-/*****************************************************************************611-********************************* **********************************612-********************************* MOPEN **********************************613-********************************* **********************************614-*****************************************************************************/615-616-/* (Driver->RIO,in-band)617-618- MOPEN is sent from the driver to open a port attached to a modem. (in-band)619- Packet structure is same as OPEN. */620-621-/*****************************************************************************622-********************************* **********************************623-********************************* CLOSE **********************************624-********************************* **********************************625-*****************************************************************************/626-627-/* (Driver->RIO,in-band)628-629- CLOSE is sent from the driver to close a previously opened port.630- No parameters.631- */632-#if 0633-#define PKT_Cmd (PKT_Data+0) /* Command code */634-#endif635-/*****************************************************************************636-********************************* *********************************637-********************************* WFLUSH *********************************638-********************************* *********************************639-*****************************************************************************/640-641-/* (Driver->RIO,pre-emptive)642-643- WFLUSH is sent pre-emptively from the driver to flush the write buffers and644- packets of a port. (pre-emptive)645-646- WFLUSH is also sent in-band from the driver to a port as a marker to end647- write flushing previously started by a pre-emptive WFLUSH packet. (in-band)648- */649-#if 0650-#define PKT_Cmd (PKT_Data+0) /* Command code */651-#endif652-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */653-654-/*****************************************************************************655-********************************* *********************************656-********************************* RFLUSH *********************************657-********************************* *********************************658-*****************************************************************************/659-660-/* (Driver->RIO,pre-emptive)661-662- RFLUSH is sent pre-emptively from the driver to flush the read buffers and663- packets of a port.664- */665-#if 0666-#define PKT_Cmd (PKT_Data+0) /* Command code */667-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */668-#endif669-670-/*****************************************************************************671-********************************* *********************************672-********************************* RESUME *********************************673-********************************* *********************************674-*****************************************************************************/675-676-/* (Driver->RIO,pre-emptive)677-678- RESUME is sent pre-emptively from the driver to cause a port to resume 679- transmission of data if blocked by XOFF. (as if XON had been received)680- */681-#if 0682-#define PKT_Cmd (PKT_Data+0) /* Command code */683-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */684-#endif685-686-/*****************************************************************************687-********************************* *********************************688-********************************* SBREAK *********************************689-********************************* *********************************690-*****************************************************************************/691-692-/* (Driver->RIO,in-band)693-694- SBREAK is sent in-band from the driver to a port to suspend data and start695- break signal transmission.696-697- If the break delay is 0, the break signal will be acknowledged with a698- RUP_COMMAND, COMPLETE packet and continue until an EBREAK packet is received.699-700- Otherwise, there is no acknowledgement and the break signal will last for the701- specified number of mS.702- */703-#if 0704-#define PKT_Cmd (PKT_Data+0) /* Command code */705-#endif706-#define PKT_BreakDelay (PKT_Data+1) /* Break delay in mS */707-708-/*****************************************************************************709-********************************* *********************************710-********************************* EBREAK *********************************711-********************************* *********************************712-*****************************************************************************/713-714-/* (Driver->RIO,in-band)715-716- EBREAK is sent in-band from the driver to a port to stop transmission of a717- break signal.718-719- No parameters. */720-721-/*****************************************************************************722-********************************* ********************************723-********************************* SUSPEND ********************************724-********************************* ********************************725-*****************************************************************************/726-727-/* (Driver->RIO,pre-emptive)728-729- SUSPEND is sent pre-emptively from the driver to cause a port to suspend730- transmission of data. (as if XOFF had been received)731- */732-#if 0733-#define PKT_Cmd (PKT_Data+0) /* Command code */734-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */735-#endif736-737-/*****************************************************************************738-********************************* *********************************739-********************************* FCLOSE *********************************740-********************************* *********************************741-*****************************************************************************/742-743-/* (Driver->RIO,pre-emptive)744-745- FCLOSE is sent pre-emptively from the driver to force close a port.746- A force close flushes receive and transmit queues, and also lowers all output747- modem signals if the COR5_HUPCL (Hang Up On Close) flag is set.748- */749-#if 0750-#define PKT_Cmd (PKT_Data+0) /* Command code */751-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */752-#endif753-754-/*****************************************************************************755-********************************* *********************************756-********************************* XPRINT *********************************757-********************************* *********************************758-*****************************************************************************/759-760-/* (Driver->RIO,in-band)761-762- XPRINT is sent as a normal I/O data packet except that the PKT_CMD_BIT of763- the "len" field is set, and the first "data" byte is XPRINT.764-765- The I/O data in the XPRINT packet will contain the following:766- - Transparent Print Start Sequence767- - Transparent Print Data768- - Transparent Print Stop Sequence.769- */770-#if 0771-#define PKT_Cmd (PKT_Data+0) /* Command code */772-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */773-#endif774-775-/*****************************************************************************776-********************************** **********************************777-********************************** MBIS **********************************778-********************************** **********************************779-*****************************************************************************/780-781-/* (Driver->RIO,pre-emptive)782-783- MBIS is sent pre-emptively from the driver to set a port's modem signals.784- */785-#if 0786-#define PKT_Cmd (PKT_Data+0) /* Command code */787-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */788-#endif789-#define PKT_ModemSet (PKT_Data+4) /* Modem set signals mask */790-791-/* ModemSet definitions... */792-#define MBIS_RTS 0x01 /* RTS modem signal */793-#define MBIS_DTR 0x02 /* DTR modem signal */794-795-/*****************************************************************************796-********************************** **********************************797-********************************** MBIC **********************************798-********************************** **********************************799-*****************************************************************************/800-801-/* (Driver->RIO,pre-emptive)802-803- MBIC is sent pre-emptively from the driver to clear a port's modem signals.804- */805-#if 0806-#define PKT_Cmd (PKT_Data+0) /* Command code */807-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */808-#endif809-810-#define PKT_ModemClear (PKT_Data+4) /* Modem clear signals mask */811-812-/* ModemClear definitions... */813-#define MBIC_RTS 0x01 /* RTS modem signal */814-#define MBIC_DTR 0x02 /* DTR modem signal */815-816-/*****************************************************************************817-********************************** **********************************818-********************************** MSET **********************************819-********************************** **********************************820-*****************************************************************************/821-822-/* (Driver->RIO,pre-emptive)823-824- MSET is sent pre-emptively from the driver to set/clear a port's modem signals. */825-#if 0826-#define PKT_Cmd (PKT_Data+0) /* Command code */827-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */828-#endif829-830-#define PKT_ModemSet (PKT_Data+4) /* Modem set signals mask */831-832-/* ModemSet definitions... */833-#define MSET_RTS 0x01 /* RTS modem signal */834-#define MSET_DTR 0x02 /* DTR modem signal */835-836-/*****************************************************************************837-********************************* *********************************838-********************************* PCLOSE *********************************839-********************************* *********************************840-*****************************************************************************/841-842-/* (Driver->RIO,in-band)843-844- PCLOSE is sent from the driver to pseudo close a previously opened port.845-846- The port will close when all data has been sent/received, however, the847- port's transmit / receive and modem signals will be left enabled and the848- port marked internally as Pseudo Closed. */849-850-#define PKT_Cmd (PKT_Data+0) /* Command code */851-852-/*****************************************************************************853-********************************** **********************************854-********************************** MGET **********************************855-********************************** **********************************856-*****************************************************************************/857-858-/* (Driver->RIO,pre-emptive)859-860- MGET is sent pre-emptively from the driver to request the port's current modem signals. */861-862-#define PKT_Cmd (PKT_Data+0) /* Command code */863-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */864-865-/*****************************************************************************866-********************************* ********************************867-********************************* MEMDUMP ********************************868-********************************* ********************************869-*****************************************************************************/870-871-/* (Driver->RIO,pre-emptive)872-873- MEMDUMP is sent pre-emptively from the driver to request a dump of 32 bytes874- of the specified port's RTA address space.875- */876-#if 0877-#define PKT_Cmd (PKT_Data+0) /* Command code */878-#endif879-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */880-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */881-#define PKT_Address (PKT_Data+6) /* Requested address */882-883-/*****************************************************************************884-****************************** *****************************885-****************************** READ_REGISTER *****************************886-****************************** *****************************887-*****************************************************************************/888-889-/* (Driver->RIO,pre-emptive)890-891- READ_REGISTER is sent pre-emptively from the driver to request the contents892- of the CD1400 register specified in address.893- */894-#if 0895-#define PKT_Cmd (PKT_Data+0) /* Command code */896-#endif897-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */898-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */899-#define PKT_Address (PKT_Data+6) /* Requested address */900-901-/*****************************************************************************902-************************ **************************903-************************ COMMAND_RUP - COMPLETE **************************904-************************ **************************905-*****************************************************************************/906-907-/* (RIO->Driver,pre-emptive)908-909- COMMAND_RUP - COMPLETE is sent in response to all port I/O control command910- packets, except MEMDUMP and READ_REGISTER.911- */912-#if 0913-#define PKT_Cmd (PKT_Data+0) /* Command code */914-#endif915-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */916-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */917-#define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */918-#define PKT_PortStatus (PKT_Data+4) /* Port signal status */919-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */920-921-/* ModemStatus definitions... */922-#define MODEM_DSR 0x80 /* Data Set Ready modem state */923-#define MODEM_CTS 0x40 /* Clear To Send modem state */924-#define MODEM_RI 0x20 /* Ring Indicate modem state */925-#define MODEM_CD 0x10 /* Carrier Detect modem state */926-#define MODEM_TSTOP 0x08 /* Transmit Stopped state */927-#define MODEM_TEMPTY 0x04 /* Transmit Empty state */928-#define MODEM_DTR 0x02 /* DTR modem output state */929-#define MODEM_RTS 0x01 /* RTS modem output state */930-931-/* PortStatus definitions... */932-#define PORT_ISOPEN 0x01 /* Port open ? */933-#define PORT_HUPCL 0x02 /* Hangup on close? */934-#define PORT_MOPENPEND 0x04 /* Modem open pending */935-#define PORT_ISPARALLEL 0x08 /* Parallel port */936-#define PORT_BREAK 0x10 /* Port on break */937-#define PORT_STATUSPEND 0020 /* Status packet pending */938-#define PORT_BREAKPEND 0x40 /* Break packet pending */939-#define PORT_MODEMPEND 0x80 /* Modem status packet pending */940-941-/*****************************************************************************942-************************ **************************943-************************ COMMAND_RUP - COMPLETE **************************944-************************ **************************945-*****************************************************************************/946-947-/* (RIO->Driver,pre-emptive)948-949- COMMAND_RUP - COMPLETE is sent in response to all port I/O control command950- packets, except MEMDUMP and READ_REGISTER.951- */952-#if 0953-#define PKT_Cmd (PKT_Data+0) /* Command code */954-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */955-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */956-#endif957-#define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */958-#define PKT_PortStatus (PKT_Data+4) /* Port signal status */959-#if 0960-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */961-#endif962-963-/* ModemStatus definitions... */964-#define MODEM_DSR 0x80 /* Data Set Ready modem state */965-#define MODEM_CTS 0x40 /* Clear To Send modem state */966-#define MODEM_RI 0x20 /* Ring Indicate modem state */967-#define MODEM_CD 0x10 /* Carrier Detect modem state */968-#define MODEM_TSTOP 0x08 /* Transmit Stopped state */969-#define MODEM_TEMPTY 0x04 /* Transmit Empty state */970-#define MODEM_DTR 0x02 /* DTR modem output state */971-#define MODEM_RTS 0x01 /* RTS modem output state */972-973-/* PortStatus definitions... */974-#define PORT_ISOPEN 0x01 /* Port open ? */975-#define PORT_HUPCL 0x02 /* Hangup on close? */976-#define PORT_MOPENPEND 0x04 /* Modem open pending */977-#define PORT_ISPARALLEL 0x08 /* Parallel port */978-#define PORT_BREAK 0x10 /* Port on break */979-#define PORT_STATUSPEND 0020 /* Status packet pending */980-#define PORT_BREAKPEND 0x40 /* Break packet pending */981-#define PORT_MODEMPEND 0x80 /* Modem status packet pending */982-983-/*****************************************************************************984-******************** ********************985-******************** COMMAND_RUP - COMPLETE - MEMDUMP ********************986-******************** ********************987-*****************************************************************************/988-989-/* (RIO->Driver,pre-emptive)990-991- COMMAND_RUP - COMPLETE - MEMDUMP is sent as an acknowledgement for a MEMDUMP992- port I/O control command packet.993- */994-#if 0995-#define PKT_Cmd (PKT_Data+0) /* Command code */996-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */997-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */998-#define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */999-#define PKT_PortStatus (PKT_Data+4) /* Port signal status */1000-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */1001-#define PKT_Address (PKT_Data+6) /* Requested address */1002-#endif1003-#define PKT_Dump (PKT_Data+8) /* 32bytes of requested dump data */1004-1005-/*****************************************************************************1006-***************** *****************1007-***************** COMMAND_RUP - COMPLETE - READ_REGISTER *****************1008-***************** *****************1009-*****************************************************************************/1010-1011-/* (RIO->Driver,pre-emptive)1012-1013- COMMAND_RUP - COMPLETE - READ_REGISTER is sent as an acknowledgement for a1014- READ_REGISTER port I/O control command packet.1015- */1016-#if 01017-#define PKT_Cmd (PKT_Data+0) /*Command code */1018-#define PKT_PhbNum (PKT_Data+1) /*Port number wrt RTA */1019-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */1020-#endif1021-#define PKT_RegisterValue (PKT_Data+3) /* Modem signal status */1022-#if 01023-#define PKT_PortStatus (PKT_Data+4) /* Port signal status */1024-#define PKT_SubCmd (PKT_Data+5) /* Sub Command */1025-#endif1026-1027-/*****************************************************************************1028-********************* ***********************1029-********************* COMMAND_RUP - BREAK_RECEIVED ***********************1030-********************* ***********************1031-*****************************************************************************/1032-1033-/* (RIO->Driver,pre-emptive)1034-1035- COMMAND_RUP - BREAK_RECEIVED packets are sent when the port detects a receive BREAK signal.1036- */1037-#if 01038-#define PKT_Cmd (PKT_Data+0) /* Command code */1039-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */1040-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */1041-#endif1042-1043-/*****************************************************************************1044-********************* *************************1045-********************* COMMAND_RUP - MODEM_STATUS *************************1046-********************* *************************1047-*****************************************************************************/1048-1049-/* (RIO->Driver,pre-emptive)1050-1051- COMMAND_RUP - MODEM_STATUS packets are sent whenever the port detects a1052- change in the input modem signal states.1053-1054- */1055-#if 01056-#define PKT_Cmd (PKT_Data+0) /* Command code */1057-#define PKT_PhbNum (PKT_Data+1) /* Port number wrt RTA */1058-#define PKT_Cmd2 (PKT_Data+2) /* Command code copy */1059-#define PKT_ModemStatus (PKT_Data+3) /* Modem signal status */1060-#endif1061-1062-/*****************************************************************************1063-************************ *************************1064-************************ BOOT_RUP - BOOT_REQUEST *************************1065-************************ *************************1066-*****************************************************************************/1067-1068-/* (RIO->Driver,pre-emptive)1069-1070- BOOT_RUP - BOOT_REQUEST packets are sent to the Driver from RIO to request1071- firmware code to load onto attached RTAs.1072- */1073-#if 01074-#define PKT_Cmd (PKT_Data+0) /* Command code */1075-#endif1076-1077-/*****************************************************************************1078-************************ ************************1079-************************ BOOT_RUP - BOOT_SEQUENCE ************************1080-************************ ************************1081-*****************************************************************************/1082-1083-/* (Driver->RIO,pre-emptive)1084-1085- BOOT_RUP - BOOT_SEQUENCE packets are sent from the Driver to RIO in response1086- to a BOOT_RUP - BOOT_REQUEST packet.1087- */1088-#if 01089-#define PKT_Cmd (PKT_Data+0) /* Command code */1090-#endif1091-#define PKT_NumPackets (PKT_Data+2) /* Packets required to load firmware */1092-#define PKT_LoadBase (PKT_Data+4) /* RTA firmware load address */1093-#define PKT_CodeSize (PKT_Data+6) /* Size of firmware in bytes */1094-#define PKT_CmdString (PKT_Data+8) /* Command string */1095-1096-/*****************************************************************************1097-************************ ***********************1098-************************ BOOT_RUP - BOOT_COMPLETED ***********************1099-************************ ***********************1100-*****************************************************************************/1101-1102-/* (RIO->Driver,pre-emptive)1103-1104- BOOT_RUP - BOOT_COMPLETE is sent to the Driver from RIO when downloading of1105- RTA firmware has completed.1106- */1107-#if 01108-#define PKT_Cmd (PKT_Data+0) /* Command code */1109-#endif1110-#define PKT_LinkNumber (PKT_Data+1) /* Link number RTA booted on */1111-#define PKT_SerialNumber (PKT_Data+2) /* 4 byte serial number */1112-1113-/*****************************************************************************1114-************************ ***********************1115-************************ BOOT_RUP - Packet Request ***********************1116-************************ ***********************1117-*****************************************************************************/1118-1119-/* (RIO->Driver,pre-emptive)1120-1121- BOOT_RUP packet without the PKT_CMD_BIT set in the PKT->len field is sent1122- from RIO to the Driver as a request for a firmware boot packet. */1123-1124-#define PKT_SequenceNumber (PKT_Data+0) /* Packet sequence number */1125-1126-/*****************************************************************************1127-*********************** ***********************1128-*********************** BOOT_RUP - Packet Response ***********************1129-*********************** ***********************1130-*****************************************************************************/1131-1132-/* (Driver->RIO,pre-emptive)1133-1134- In response to a BOOT_RUP boot packet request, the driver fills out the response1135- packet with the 70 bytes of the requested sequence.1136- */1137-#if 01138-#define PKT_SequenceNumber (PKT_Data+0) /* Packet sequence number */1139-#endif1140-#define PKT_FirmwarePacket (PKT_Data+2) /* Firmware packet */1141-1142-/*****************************************************************************1143-**************************** ****************************1144-**************************** BOOT_RUP - IFOAD ****************************1145-**************************** ****************************1146-*****************************************************************************/1147-1148-/* (Driver->RIO,pre-emptive)1149-1150- BOOT_RUP - IFOAD packets are sent from the Driver to an RTA to cause the1151- RTA to shut down and reboot.1152- */1153-#if 01154-#define PKT_Cmd (PKT_Data+0) /* Command code */1155-#endif1156-#define PKT_IfoadId1 (PKT_Data+2) /* IFOAD Id 1 */1157-#define PKT_IfoadId2 (PKT_Data+3) /* IFOAD Id 2 */1158-1159-#define IFOADID1 0xAD1160-#define IFOADID2 0xF01161-1162-/*****************************************************************************1163-************************** ***************************1164-************************** BOOT_RUP - IDENTIFY ***************************1165-************************** ***************************1166-*****************************************************************************/1167-1168-/* (Driver->RIO,pre-emptive)1169-1170- BOOT_RUP - IDENTIFY packets are sent from the Driver to an RTA to cause the1171- RTA to flash its LEDs for a period of time.1172- */1173-#if 01174-#define PKT_Cmd (PKT_Data+0) /* Command code */1175-#endif1176-#define PKT_IdentifyId (PKT_Data+2) /* defines pattern to flash */1177-1178-/*****************************************************************************1179-**************************** ***************************1180-**************************** BOOT_RUP - ZOMBIE ***************************1181-**************************** ***************************1182-*****************************************************************************/1183-1184-/* (Driver->RIO,pre-emptive)1185-1186- BOOT_RUP - ZOMBIE packets are sent from the Driver to an RTA to cause the1187- RTA to shut down and flash it's LEDs.1188- */1189-#if 01190-#define PKT_Cmd (PKT_Data+0) /* Command code */1191-#endif1192-#define PKT_ZombieId1 (PKT_Data+2) /* ZOMBIE Id 1 */1193-#define PKT_ZombieId2 (PKT_Data+3) /* ZOMBIE Id 2 */1194-1195-#define ZOMBIEID1 0x521196-#define ZOMBIEID2 0x211197-1198-/*****************************************************************************1199-**************************** ****************************1200-**************************** BOOT_RUP - UFOAD ****************************1201-**************************** ****************************1202-*****************************************************************************/1203-1204-/* (Driver->RIO,pre-emptive)1205-1206- BOOT_RUP - UFOAD packets are sent from the Driver to an RTA to cause the RTA1207- to ask it's neighbouring RTA to shut down and reboot.1208- */1209-#if 01210-#define PKT_Cmd (PKT_Data+0) /* Command code */1211-#define PKT_LinkNumber (PKT_Data+1) /* Link number of RTA to UFOAD */1212-#endif1213-#define PKT_UfoadId1 (PKT_Data+2) /* UFOAD Id 1 */1214-#define PKT_UfoadId2 (PKT_Data+3) /* UFOAD Id 2 */1215-1216-#define UFOADID1 0x1E1217-#define UFOADID2 0x0D1218-1219-/*****************************************************************************1220-**************************** ****************************1221-**************************** BOOT_RUP - IWAIT ****************************1222-**************************** ****************************1223-*****************************************************************************/1224-1225-/* (Driver->RIO,pre-emptive)1226-1227- BOOT_RUP - IWAIT packets are sent from the Driver to an RTA to cause the RTA1228- to pause booting on the specified link for 30 seconds.1229- */1230-#if 01231-#define PKT_Cmd (PKT_Data+0) /* Command code */1232-#define PKT_LinkNumber (PKT_Data+1) /* Link number of RTA to UFOAD */1233-#endif1234-#define PKT_IwaitId1 (PKT_Data+2) /* IWAIT Id 1 */1235-#define PKT_IwaitId2 (PKT_Data+3) /* IWAIT Id 2 */1236-1237-#define IWAITID1 0xDE1238-#define IWAITID2 0xB11239-1240-/*****************************************************************************1241-************************ ***********************1242-************************ ROUTE_RUP - ROUTE_REQUEST ***********************1243-************************ ***********************1244-*****************************************************************************/1245-1246-/* (RIO->Driver,pre-emptive)1247-1248- ROUTE_RUP - ROUTE_REQUEST packets are sent from a newly booted or connected1249- RTA to a Driver to request an ID (RUP or unit number).1250- */1251-#if 01252-#define PKT_Cmd (PKT_Data+0) /* Command code */1253-#endif1254-#define PKT_SerialNumber (PKT_Data+2) /* 4 byte serial number */1255-#define PKT_ModuleTypes (PKT_Data+6) /* RTA Module types */1256-1257-/* ModuleTypes definitions... */1258-#define MOD_BLANK 0x0F /* Blank plate attached */1259-#define MOD_RS232DB25 0x00 /* RS232 DB25 connector */1260-#define MOD_RS232RJ45 0x01 /* RS232 RJ45 connector */1261-#define MOD_RS422DB25 0x02 /* RS422 DB25 connector */1262-#define MOD_RS485DB25 0x03 /* RS485 DB25 connector */1263-#define MOD_PARALLEL 0x04 /* Centronics parallel */1264-1265-#define MOD2 0x08 /* Set to indicate Rev2 module */1266-1267-/*****************************************************************************1268-************************* *************************1269-************************* ROUTE_RUP - ROUTE_FOAD *************************1270-************************* *************************1271-*****************************************************************************/1272-1273-/* (Driver->RIO,pre-emptive)1274-1275- ROUTE_RUP - ROUTE_FOAD packet is sent as a response to a ROUTE_RUP - ROUTE_REQUEST1276- packet to cause the RTA to "Fall Over And Die"., i.e. shutdown and reboot.1277- */1278-#if 01279-#define PKT_Cmd (PKT_Data+0) /* Command code */1280-#endif1281-#define PKT_RouteCmdString (PKT_Data+2) /* Command string */1282-1283-/*****************************************************************************1284-*********************** ***********************1285-*********************** ROUTE_RUP - ROUTE_ALLOCATE ***********************1286-*********************** ***********************1287-*****************************************************************************/1288-1289-/* (Driver->RIO,pre-emptive)1290-1291- ROUTE_RUP - ROUTE_ALLOCATE packet is sent as a response to a ROUTE_RUP - ROUTE_REQUEST1292- packet to allocate the RTA's Id number (RUP number 1..16)1293- */1294-#if 01295-#define PKT_Cmd (PKT_Data+0) /* Command code */1296-#endif1297-#define PKT_IdNum (PKT_Data+1) /* RUP number for ports 1..8 */1298-#if 01299-#define PKT_RouteCmdString (PKT_Data+2) /* Command string */1300-#endif1301-#define PKT_IdNum2 (PKT_Data+0x17) /* RUP number for ports 9..16 */1302-1303-/*****************************************************************************1304-*********************** ***********************1305-*********************** ROUTE_RUP - ROUTE_TOPOLOGY ***********************1306-*********************** ***********************1307-*****************************************************************************/1308-1309-/* (RIO->Driver,pre-emptive)1310-1311- ROUTE_RUP - ROUTE_TOPOLOGY packet is sent to inform the driver of an RTA's1312- current link status.1313- */1314-#if 01315-#define PKT_Cmd (PKT_Data+0) /* Command code */1316-#endif1317-#define PKT_Link1Rup (PKT_Data+2) /* Link 1 RUP number */1318-#define PKT_Link1Link (PKT_Data+3) /* Link 1 link number */1319-#define PKT_Link2Rup (PKT_Data+4) /* Link 2 RUP number */1320-#define PKT_Link2Link (PKT_Data+5) /* Link 2 link number */1321-#define PKT_Link3Rup (PKT_Data+6) /* Link 3 RUP number */1322-#define PKT_Link3Link (PKT_Data+7) /* Link 3 link number */1323-#define PKT_Link4Rup (PKT_Data+8) /* Link 4 RUP number */1324-#define PKT_Link4Link (PKT_Data+9) /* Link 4 link number */1325-#define PKT_RtaVpdProm (PKT_Data+10) /* 32 bytes of RTA VPD PROM Contents */1326-1327-#endif /* _sxwinif_h */1328-1329-/* End of RIOWINIF.H */