150ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifndef _INC_LIBSBEW_H_ 250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define _INC_LIBSBEW_H_ 350ee11fe383255db8e5c3307319d470015616f27Bob Beers 450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*----------------------------------------------------------------------------- 550ee11fe383255db8e5c3307319d470015616f27Bob Beers * libsbew.h - common library elements, charge across mulitple boards 650ee11fe383255db8e5c3307319d470015616f27Bob Beers * 750ee11fe383255db8e5c3307319d470015616f27Bob Beers * This file contains common Ioctl structures and contents definitions. 850ee11fe383255db8e5c3307319d470015616f27Bob Beers * 950ee11fe383255db8e5c3307319d470015616f27Bob Beers * Copyright (C) 2004-2005 SBE, Inc. 1050ee11fe383255db8e5c3307319d470015616f27Bob Beers * 1150ee11fe383255db8e5c3307319d470015616f27Bob Beers * This program is free software; you can redistribute it and/or modify 1250ee11fe383255db8e5c3307319d470015616f27Bob Beers * it under the terms of the GNU General Public License as published by 1350ee11fe383255db8e5c3307319d470015616f27Bob Beers * the Free Software Foundation; either version 2 of the License, or 1450ee11fe383255db8e5c3307319d470015616f27Bob Beers * (at your option) any later version. 1550ee11fe383255db8e5c3307319d470015616f27Bob Beers * 1650ee11fe383255db8e5c3307319d470015616f27Bob Beers * This program is distributed in the hope that it will be useful, 1750ee11fe383255db8e5c3307319d470015616f27Bob Beers * but WITHOUT ANY WARRANTY; without even the implied warranty of 1850ee11fe383255db8e5c3307319d470015616f27Bob Beers * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1950ee11fe383255db8e5c3307319d470015616f27Bob Beers * GNU General Public License for more details. 2050ee11fe383255db8e5c3307319d470015616f27Bob Beers * 2150ee11fe383255db8e5c3307319d470015616f27Bob Beers * For further information, contact via email: support@sbei.com 2250ee11fe383255db8e5c3307319d470015616f27Bob Beers * SBE, Inc. San Ramon, California U.S.A. 2350ee11fe383255db8e5c3307319d470015616f27Bob Beers *----------------------------------------------------------------------------- 2450ee11fe383255db8e5c3307319d470015616f27Bob Beers */ 2550ee11fe383255db8e5c3307319d470015616f27Bob Beers 2650ee11fe383255db8e5c3307319d470015616f27Bob Beers/********************************/ 2750ee11fe383255db8e5c3307319d470015616f27Bob Beers/** set driver logging level **/ 2850ee11fe383255db8e5c3307319d470015616f27Bob Beers/********************************/ 2950ee11fe383255db8e5c3307319d470015616f27Bob Beers 3050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_loglevel() - SBE_IOC_SET_LOGLEVEL */ 3150ee11fe383255db8e5c3307319d470015616f27Bob Beers 3250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_NONE 0 3350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_ERROR 1 3450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_SBEBUG3 3 /* hidden, for development/debug usage */ 3550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_LSCHANGE 5 /* line state change logging */ 3650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_LSIMMEDIATE 6 /* line state change logging w/o hysterisis */ 3750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_WARN 8 3850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_MONITOR 10 3950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_SBEBUG12 12 /* hidden, for development/debug usage */ 4050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_MONITOR2 14 /* hidden, for development/debug usage */ 4150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOG_DEBUG 16 4250ee11fe383255db8e5c3307319d470015616f27Bob Beers 4350ee11fe383255db8e5c3307319d470015616f27Bob Beers /* TEMPORARY DEFINES *//* RLD DEBUG */ 4450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_NONE LOG_NONE 4550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_ERROR LOG_ERROR 4650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_WARN LOG_WARN 4750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_sTrace LOG_MONITOR /* do some trace logging into 4850ee11fe383255db8e5c3307319d470015616f27Bob Beers * functions */ 4950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_DEBUG LOG_DEBUG 5050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define c4_LOG_MAX LOG_DEBUG 5150ee11fe383255db8e5c3307319d470015616f27Bob Beers 5250ee11fe383255db8e5c3307319d470015616f27Bob Beers 5350ee11fe383255db8e5c3307319d470015616f27Bob Beers 5450ee11fe383255db8e5c3307319d470015616f27Bob Beers/******************************/ 5550ee11fe383255db8e5c3307319d470015616f27Bob Beers/** get driver information **/ 5650ee11fe383255db8e5c3307319d470015616f27Bob Beers/******************************/ 5750ee11fe383255db8e5c3307319d470015616f27Bob Beers 5850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_drvinfo() - SBE_IOC_GET_DRVINFO */ 5950ee11fe383255db8e5c3307319d470015616f27Bob Beers 6050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define REL_STRLEN 80 6150ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbe_drv_info 6250ee11fe383255db8e5c3307319d470015616f27Bob Beers { 6350ee11fe383255db8e5c3307319d470015616f27Bob Beers int rel_strlen; 6450ee11fe383255db8e5c3307319d470015616f27Bob Beers char release[REL_STRLEN]; 6550ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 6650ee11fe383255db8e5c3307319d470015616f27Bob Beers 6750ee11fe383255db8e5c3307319d470015616f27Bob Beers 6850ee11fe383255db8e5c3307319d470015616f27Bob Beers/*****************************/ 6950ee11fe383255db8e5c3307319d470015616f27Bob Beers/** get board information **/ 7050ee11fe383255db8e5c3307319d470015616f27Bob Beers/*****************************/ 7150ee11fe383255db8e5c3307319d470015616f27Bob Beers 7250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_brdinfo() - SBE_IOC_GET_BRDINFO */ 7350ee11fe383255db8e5c3307319d470015616f27Bob Beers 7450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CHNM_STRLEN 16 7550ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbe_brd_info 7650ee11fe383255db8e5c3307319d470015616f27Bob Beers { 7750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t brd_id; /* SBE's unique PCI VENDOR/DEVID */ 7850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t brd_sn; 7950ee11fe383255db8e5c3307319d470015616f27Bob Beers int brd_chan_cnt; /* number of channels being used */ 8050ee11fe383255db8e5c3307319d470015616f27Bob Beers int brd_port_cnt; /* number of ports being used */ 8150ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char brdno; /* our board number */ 8250ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char brd_pci_speed; /* PCI speed, 33/66Mhz */ 8350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t brd_mac_addr[6]; 8450ee11fe383255db8e5c3307319d470015616f27Bob Beers char first_iname[CHNM_STRLEN]; /* first assigned channel's 8550ee11fe383255db8e5c3307319d470015616f27Bob Beers * interface name */ 8650ee11fe383255db8e5c3307319d470015616f27Bob Beers char last_iname[CHNM_STRLEN]; /* last assigned channel's 8750ee11fe383255db8e5c3307319d470015616f27Bob Beers * interface name */ 8850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t brd_hdw_id; /* on/board unique hdw ID */ 8950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t reserved8[3]; /* alignment preservation */ 9050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t reserved32[3]; /* size preservation */ 9150ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 9250ee11fe383255db8e5c3307319d470015616f27Bob Beers 9350ee11fe383255db8e5c3307319d470015616f27Bob Beers/* These IDs are sometimes available thru pci_ids.h, but not currently. */ 9450ee11fe383255db8e5c3307319d470015616f27Bob Beers 9550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_VENDOR_ID_SBE 0x1176 9650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C4T1E1 0x0701 /* BID 0x0X, BTYP 0x0X */ 9750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_C4T1E1 0x0702 /* BID 0x41 */ 9850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANADAPT_HC4T1E1 0x0703 /* BID 0x44 */ 9950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_256T3_T1 0x0704 /* BID 0x42 (T1 Version) */ 10050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C4T1E1 0x0705 /* BID 0x1X, BTYP 0x0X */ 10150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T3 0x0706 /* BID 0x45 */ 10250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C2T1E1 0x0707 /* BID 0x1X, BTYP 0x2X */ 10350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_C1T1E1 0x0708 /* BID 0x1X, BTYP 0x1X */ 10450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C2T1E1 0x0709 /* BID 0x0X, BTYP 0x2X */ 10550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T1E1 0x070A /* BID 0x0X, BTYP 0x1X */ 10650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_256T3_E1 0x070B /* BID 0x46 (E1 Version) */ 10750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPTMC_C24TE1 0x070C /* BID 0x47 */ 10850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C4T1E1_L 0x070D /* BID 0x2X, BTYPE 0x0X w/FP 10950ee11fe383255db8e5c3307319d470015616f27Bob Beers * LEDs */ 11050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C2T1E1_L 0x070E /* BID 0x2X, BTYPE 0x2X w/FP 11150ee11fe383255db8e5c3307319d470015616f27Bob Beers * LEDs */ 11250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_C1T1E1_L 0x070F /* BID 0x2X, BTYPE 0x1X w/FP 11350ee11fe383255db8e5c3307319d470015616f27Bob Beers * LEDs */ 11450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_2SSI 0x0801 11550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPCI_4SSI 0x0802 11650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define PCI_DEVICE_ID_WANPMC_2T3E3 0x0900 /* BID 0x43 */ 11750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SBE_BOARD_ID(v,id) ((v<<16) | id) 11850ee11fe383255db8e5c3307319d470015616f27Bob Beers 11950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_unk 0 12050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_33 1 12150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BINFO_PCI_SPEED_66 2 12250ee11fe383255db8e5c3307319d470015616f27Bob Beers 12350ee11fe383255db8e5c3307319d470015616f27Bob Beers/***************************/ 12450ee11fe383255db8e5c3307319d470015616f27Bob Beers/** obtain interface ID **/ 12550ee11fe383255db8e5c3307319d470015616f27Bob Beers/***************************/ 12650ee11fe383255db8e5c3307319d470015616f27Bob Beers 12750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_iid() - SBE_IOC_IID_GET */ 12850ee11fe383255db8e5c3307319d470015616f27Bob Beers 12950ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbe_iid_info 13050ee11fe383255db8e5c3307319d470015616f27Bob Beers { 13150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t channum; /* channel requested */ 13250ee11fe383255db8e5c3307319d470015616f27Bob Beers char iname[CHNM_STRLEN]; /* channel's interface name */ 13350ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 13450ee11fe383255db8e5c3307319d470015616f27Bob Beers 13550ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************/ 13650ee11fe383255db8e5c3307319d470015616f27Bob Beers/** get board address information **/ 13750ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************/ 13850ee11fe383255db8e5c3307319d470015616f27Bob Beers 13950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_brdaddr() - SBE_IOC_BRDADDR_GET */ 14050ee11fe383255db8e5c3307319d470015616f27Bob Beers 14150ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbe_brd_addr 14250ee11fe383255db8e5c3307319d470015616f27Bob Beers { 14350ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char func; /* select PCI address space function */ 14450ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char brdno; /* returns brdno requested */ 14550ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char irq; 14650ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned char size; /* returns size of address */ 14750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BRDADDR_SIZE_64 1 14850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define BRDADDR_SIZE_32 2 14950ee11fe383255db8e5c3307319d470015616f27Bob Beers int reserved1; /* mod64 align, reserved for future use */ 15050ee11fe383255db8e5c3307319d470015616f27Bob Beers 15150ee11fe383255db8e5c3307319d470015616f27Bob Beers union 15250ee11fe383255db8e5c3307319d470015616f27Bob Beers { 15350ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long virt64; /* virtual/mapped address */ 15450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t virt32[2]; 15550ee11fe383255db8e5c3307319d470015616f27Bob Beers } v; 15650ee11fe383255db8e5c3307319d470015616f27Bob Beers union 15750ee11fe383255db8e5c3307319d470015616f27Bob Beers { 15850ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long phys64; /* physical bus address */ 15950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t phys32[2]; 16050ee11fe383255db8e5c3307319d470015616f27Bob Beers } p; 16150ee11fe383255db8e5c3307319d470015616f27Bob Beers int reserved2[4]; /* reserved for future use */ 16250ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 16350ee11fe383255db8e5c3307319d470015616f27Bob Beers 16450ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/ 16550ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read/write board registers **/ 16650ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/ 16750ee11fe383255db8e5c3307319d470015616f27Bob Beers 16850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_read_vec() - SBE_IOC_READ_VEC */ 16950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_write_vec() - SBE_IOC_WRITE_VEC */ 17050ee11fe383255db8e5c3307319d470015616f27Bob Beers 17150ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbecom_wrt_vec 17250ee11fe383255db8e5c3307319d470015616f27Bob Beers { 17350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t reg; 17450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t data; 17550ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 17650ee11fe383255db8e5c3307319d470015616f27Bob Beers 17750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_MSCC_32 0x01000000 17850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_TECT3_8 0x02000000 17950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_CPLD_8 0x03000000 18050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define C1T3_CHIP_EEPROM_8 0x04000000 18150ee11fe383255db8e5c3307319d470015616f27Bob Beers 18250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_MUSYCC_32 0x02000000 18350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_TEMUX_8 0x10000000 18450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_T8110_8 0x20000000 18550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_T8110_32 0x22000000 18650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_CPLD_8 0x30000000 18750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define W256T3_CHIP_EEPROM_8 0x40000000 18850ee11fe383255db8e5c3307319d470015616f27Bob Beers 18950ee11fe383255db8e5c3307319d470015616f27Bob Beers 19050ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/ 19150ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read write port parameters **/ 19250ee11fe383255db8e5c3307319d470015616f27Bob Beers/**********************************/ 19350ee11fe383255db8e5c3307319d470015616f27Bob Beers 19450ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_getset_port_param() - SBE_IOC_PORT_GET */ 19550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_port_param() - SBE_IOC_PORT_SET */ 19650ee11fe383255db8e5c3307319d470015616f27Bob Beers 19750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* NOTE: this structure supports hardware which supports individual per/port control */ 19850ee11fe383255db8e5c3307319d470015616f27Bob Beers 19950ee11fe383255db8e5c3307319d470015616f27Bob Beersstruct sbecom_port_param 20050ee11fe383255db8e5c3307319d470015616f27Bob Beers{ 20150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t portnum; 20250ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t port_mode; /* variations of T1 or E1 mode */ 20350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t portStatus; 20450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t portP; /* more port parameters (clock source - 0x80; 20550ee11fe383255db8e5c3307319d470015616f27Bob Beers * and LBO - 0xf; */ 20650ee11fe383255db8e5c3307319d470015616f27Bob Beers /* bits 0x70 are reserved for future use ) */ 20750ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef SBE_PMCC4_ENABLE 20850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t hypersize; /* RLD DEBUG - add this in until I learn how to make this entry obsolete */ 20950ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif 21050ee11fe383255db8e5c3307319d470015616f27Bob Beers int reserved[3-1]; /* reserved for future use */ 21150ee11fe383255db8e5c3307319d470015616f27Bob Beers int _res[4]; 21250ee11fe383255db8e5c3307319d470015616f27Bob Beers}; 21350ee11fe383255db8e5c3307319d470015616f27Bob Beers 21450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_MASK 0x80 /* Loop timing */ 21550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_INTERNAL 0x80 /* Loop timing */ 21650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_PORT_EXTERNAL 0x00 /* Loop timing */ 21750ee11fe383255db8e5c3307319d470015616f27Bob Beers 21850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_MASK 0x0F 21950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_unk 0 /* <not defined> */ 22050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH0 1 /* T1 Long Haul (default) */ 22150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH7_5 2 /* T1 Long Haul */ 22250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH15 3 /* T1 Long Haul */ 22350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_LH22_5 4 /* T1 Long Haul */ 22450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH110 5 /* T1 Short Haul */ 22550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH220 6 /* T1 Short Haul */ 22650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH330 7 /* T1 Short Haul */ 22750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH440 8 /* T1 Short Haul */ 22850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH550 9 /* T1 Short Haul */ 22950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_SH660 10 /* T1 Short Haul */ 23050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_E75 11 /* E1 75 Ohm */ 23150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LBO_E120 12 /* E1 120 Ohm (default) */ 23250ee11fe383255db8e5c3307319d470015616f27Bob Beers 23350ee11fe383255db8e5c3307319d470015616f27Bob Beers 23450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*************************************/ 23550ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read write channel parameters **/ 23650ee11fe383255db8e5c3307319d470015616f27Bob Beers/*************************************/ 23750ee11fe383255db8e5c3307319d470015616f27Bob Beers 23850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_getset_chan_param() - SBE_IOC_CHAN_GET */ 23950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_chan_param() - SBE_IOC_CHAN_SET */ 24050ee11fe383255db8e5c3307319d470015616f27Bob Beers 24150ee11fe383255db8e5c3307319d470015616f27Bob Beers/* NOTE: this structure supports hardware which supports individual per/channel control */ 24250ee11fe383255db8e5c3307319d470015616f27Bob Beers 24350ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbecom_chan_param 24450ee11fe383255db8e5c3307319d470015616f27Bob Beers { 24550ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t channum; /* 0: */ 24650ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef SBE_PMCC4_ENABLE 24750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t card; /* RLD DEBUG - add this in until I learn how to make this entry obsolete */ 24850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t port; /* RLD DEBUG - add this in until I learn how to make this entry obsolete */ 24950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t bitmask[32]; 25050ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif 25150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t intr_mask; /* 4: interrupt mask, specify ored 25250ee11fe383255db8e5c3307319d470015616f27Bob Beers * (SS7_)INTR_* to disable */ 25350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t status; /* 8: channel transceiver status (TX_ENABLED, 25450ee11fe383255db8e5c3307319d470015616f27Bob Beers * RX_ENABLED) */ 25550ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t chan_mode; /* 9: protocol mode */ 25650ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t idlecode; /* A: idle code, in (FLAG_7E, FLAG_FF, 25750ee11fe383255db8e5c3307319d470015616f27Bob Beers * FLAG_00) */ 25850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t pad_fill_count; /* B: pad fill count (1-127), 0 - pad 25950ee11fe383255db8e5c3307319d470015616f27Bob Beers * fill disabled */ 26050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t data_inv; /* C: channel data inversion selection */ 26150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t mode_56k; /* D: 56kbps mode */ 26250ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t reserved[2 + 8]; /* E: */ 26350ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 26450ee11fe383255db8e5c3307319d470015616f27Bob Beers 26550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* SS7 interrupt signals <intr_mask> */ 26650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SFILT 0x00000020 26750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SDEC 0x00000040 26850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SINC 0x00000080 26950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define SS7_INTR_SUERR 0x00000100 27050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Other interrupts that can be masked */ 27150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_BUFF 0x00000002 27250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_EOM 0x00000004 27350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_MSG 0x00000008 27450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define INTR_IDLE 0x00000010 27550ee11fe383255db8e5c3307319d470015616f27Bob Beers 27650ee11fe383255db8e5c3307319d470015616f27Bob Beers/* transceiver status flags <status> */ 27750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define TX_ENABLED 0x01 27850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RX_ENABLED 0x02 27950ee11fe383255db8e5c3307319d470015616f27Bob Beers 28050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Protocol modes <mode> */ 28150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_TRANS 0 28250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_SS7 1 28350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_HDLC_FCS16 2 28450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_HDLC_FCS32 3 28550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_PROTO_ISLP_MODE 4 28650ee11fe383255db8e5c3307319d470015616f27Bob Beers 28750ee11fe383255db8e5c3307319d470015616f27Bob Beers/* Possible idle code assignments <idlecode> */ 28850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_7E 0 28950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_FF 1 29050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_FLAG_00 2 29150ee11fe383255db8e5c3307319d470015616f27Bob Beers 29250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* data inversion selection <data_inv> */ 29350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_NONE 0x00 29450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_RX 0x01 29550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CH_DINV_TX 0x02 29650ee11fe383255db8e5c3307319d470015616f27Bob Beers 29750ee11fe383255db8e5c3307319d470015616f27Bob Beers 29842b2aa86c6670347a2a07e6d7af0e0ecc8fdbff9Justin P. Mattock/* Possible resettable chipsets/functions */ 29950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_TEMUX 1 30050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_TECT3 RESET_DEV_TEMUX 30150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define RESET_DEV_PLL 2 30250ee11fe383255db8e5c3307319d470015616f27Bob Beers 30350ee11fe383255db8e5c3307319d470015616f27Bob Beers 30450ee11fe383255db8e5c3307319d470015616f27Bob Beers/*********************************************/ 30550ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read reset channel thruput statistics **/ 30650ee11fe383255db8e5c3307319d470015616f27Bob Beers/*********************************************/ 30750ee11fe383255db8e5c3307319d470015616f27Bob Beers 30850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_chan_stats() - SBE_IOC_CHAN_GET_STAT */ 30950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_del_chan_stats() - SBE_IOC_CHAN_DEL_STAT */ 31050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_card_chan_stats() - SBE_IOC_CARD_CHAN_STAT */ 31150ee11fe383255db8e5c3307319d470015616f27Bob Beers 31250ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbecom_chan_stats 31350ee11fe383255db8e5c3307319d470015616f27Bob Beers { 31450ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_packets; /* total packets received */ 31550ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_packets; /* total packets transmitted */ 31650ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_bytes; /* total bytes received */ 31750ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_bytes; /* total bytes transmitted */ 31850ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_errors;/* bad packets received */ 31950ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_errors;/* packet transmit problems */ 32050ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_dropped; /* no space in linux buffers */ 32150ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_dropped; /* no space available in linux */ 32250ee11fe383255db8e5c3307319d470015616f27Bob Beers 32350ee11fe383255db8e5c3307319d470015616f27Bob Beers /* detailed rx_errors: */ 32450ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_length_errors; 32550ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_over_errors; /* receiver ring buff overflow */ 32650ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_crc_errors; /* recved pkt with crc error */ 32750ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_frame_errors; /* recv'd frame alignment error */ 32850ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_fifo_errors; /* recv'r fifo overrun */ 32950ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long rx_missed_errors; /* receiver missed packet */ 33050ee11fe383255db8e5c3307319d470015616f27Bob Beers 33150ee11fe383255db8e5c3307319d470015616f27Bob Beers /* detailed tx_errors */ 33250ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_aborted_errors; 33350ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_fifo_errors; 33450ee11fe383255db8e5c3307319d470015616f27Bob Beers unsigned long tx_pending; 33550ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 33650ee11fe383255db8e5c3307319d470015616f27Bob Beers 33750ee11fe383255db8e5c3307319d470015616f27Bob Beers 33850ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/ 33950ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read write card level parameters **/ 34050ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/ 34150ee11fe383255db8e5c3307319d470015616f27Bob Beers 34250ee11fe383255db8e5c3307319d470015616f27Bob Beers /* NOTE: this structure supports hardware which supports per/card control */ 34350ee11fe383255db8e5c3307319d470015616f27Bob Beers 34450ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbecom_card_param 34550ee11fe383255db8e5c3307319d470015616f27Bob Beers { 34650ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t framing_type; /* 0: CBP or M13 */ 34750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t loopback; /* 1: one of LOOPBACK_* */ 34850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t line_build_out; /* 2: boolean */ 34950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t receive_eq; /* 3: boolean */ 35050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t transmit_ones; /* 4: boolean */ 35150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t clock; /* 5: 0 - internal, i>0 - external (recovered 35250ee11fe383255db8e5c3307319d470015616f27Bob Beers * from framer i) */ 35350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t h110enable; /* 6: */ 35450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t disable_leds; /* 7: */ 35550ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t reserved1; /* 8: available - old 256t3 hypersized, but 35650ee11fe383255db8e5c3307319d470015616f27Bob Beers * never used */ 35750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t rear_io; /* 9: rear I/O off/on */ 35850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t disable_tx; /* A: disable TX off/on */ 35950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t mute_los; /* B: mute LOS off/on */ 36050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t los_threshold; /* C: LOS threshold norm/low 36150ee11fe383255db8e5c3307319d470015616f27Bob Beers * (default: norm) */ 36250ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t ds1_mode; /* D: DS1 mode T1/E1 (default: T1) */ 36350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t ds3_unchan; /* E: DS3 unchannelized mode off/on */ 36450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t reserved[1 + 16]; /* reserved for expansion - must be 36550ee11fe383255db8e5c3307319d470015616f27Bob Beers * ZERO filled */ 36650ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 36750ee11fe383255db8e5c3307319d470015616f27Bob Beers 36850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* framing types <framing_type> */ 36950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define FRAMING_M13 0 37050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define FRAMING_CBP 1 37150ee11fe383255db8e5c3307319d470015616f27Bob Beers 37250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* card level loopback options <loopback> */ 37350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_NONE 0x00 37450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_DIAG 0x01 37550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_LINE 0x02 37650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CARD_LOOPBACK_PAYLOAD 0x03 37750ee11fe383255db8e5c3307319d470015616f27Bob Beers 37850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* line level loopback options <loopback> */ 37950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_NONE 0x00 38050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_ANALOG 0x10 38150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_DIGITAL 0x11 38250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_LIU_LOOPBACK_REMOTE 0x12 38350ee11fe383255db8e5c3307319d470015616f27Bob Beers 38450ee11fe383255db8e5c3307319d470015616f27Bob Beers/* card level clock options <clock> */ 38550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_INTERNAL 0x00 38650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_CLK_EXTERNAL 0x01 38750ee11fe383255db8e5c3307319d470015616f27Bob Beers 38850ee11fe383255db8e5c3307319d470015616f27Bob Beers/* legacy 256T3 loopback values */ 38950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_NONE 0 39050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_ANALOG 1 39150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_DIGITAL 2 39250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_FRAMER_DS3 3 39350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_FRAMER_T1 4 39450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define LOOPBACK_LIU_REMOTE 5 39550ee11fe383255db8e5c3307319d470015616f27Bob Beers 39650ee11fe383255db8e5c3307319d470015616f27Bob Beers/* DS1 mode <ds1_mode> */ 39750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_MASK 0x0f 39850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_T1 0x00 39950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_E1 0x01 40050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS1_MODE_CHANGE 0x80 40150ee11fe383255db8e5c3307319d470015616f27Bob Beers 40250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* DS3 unchannelized values <ds1_unchan> */ 40350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_MASK 0x01 40450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_OFF 0x00 40550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_DS3_UNCHAN_ON 0x01 40650ee11fe383255db8e5c3307319d470015616f27Bob Beers 40750ee11fe383255db8e5c3307319d470015616f27Bob Beers 40850ee11fe383255db8e5c3307319d470015616f27Bob Beers/************************************/ 40950ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read write framer parameters **/ 41050ee11fe383255db8e5c3307319d470015616f27Bob Beers/************************************/ 41150ee11fe383255db8e5c3307319d470015616f27Bob Beers 41250ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_framer() - SBE_IOC_FRAMER_GET */ 41350ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_set_framer() - SBE_IOC_FRAMER_SET */ 41450ee11fe383255db8e5c3307319d470015616f27Bob Beers 41550ee11fe383255db8e5c3307319d470015616f27Bob Beers struct sbecom_framer_param 41650ee11fe383255db8e5c3307319d470015616f27Bob Beers { 41750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t framer_num; 41850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t frame_type; /* SF, ESF, E1PLAIN, E1CAS, E1CRC, E1CRC+CAS */ 41950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t loopback_type; /* DIGITAL, LINE, PAYLOAD */ 42050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t auto_alarms;/* auto alarms */ 42150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t reserved[12]; /* reserved for expansion - must be 42250ee11fe383255db8e5c3307319d470015616f27Bob Beers * ZERO filled */ 42350ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 42450ee11fe383255db8e5c3307319d470015616f27Bob Beers 42550ee11fe383255db8e5c3307319d470015616f27Bob Beers/* frame types <frame_type> */ 42650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_NONE 0 42750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_SF 1 /* T1 B8ZS */ 42850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_ESF 2 /* T1 B8ZS */ 42950ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1PLAIN 3 /* HDB3 w/o CAS,CRC */ 43050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CAS 4 /* HDB3 */ 43150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC 5 /* HDB3 */ 43250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_CAS 6 /* HDB3 */ 43350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_SF_AMI 7 /* T1 AMI */ 43450ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_ESF_AMI 8 /* T1 AMI */ 43550ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1PLAIN_AMI 9 /* E1 AMI w/o CAS,CRC */ 43650ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CAS_AMI 10 /* E1 AMI */ 43750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_AMI 11 /* E1 AMI */ 43850ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRAME_E1CRC_CAS_AMI 12 /* E1 AMI */ 43950ee11fe383255db8e5c3307319d470015616f27Bob Beers 44050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_T1(field) \ 44150ee11fe383255db8e5c3307319d470015616f27Bob Beers (((field) == CFG_FRAME_NONE) || \ 44250ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_SF) || \ 44350ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_ESF) || \ 44450ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_SF_AMI) || \ 44550ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_ESF_AMI)) 44650ee11fe383255db8e5c3307319d470015616f27Bob Beers 44750ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_T1ESF(field) \ 44850ee11fe383255db8e5c3307319d470015616f27Bob Beers (((field) == CFG_FRAME_ESF) || \ 44950ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_ESF_AMI)) 45050ee11fe383255db8e5c3307319d470015616f27Bob Beers 45150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_E1(field) \ 45250ee11fe383255db8e5c3307319d470015616f27Bob Beers (((field) == CFG_FRAME_E1PLAIN) || \ 45350ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CAS) || \ 45450ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC) || \ 45550ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC_CAS) || \ 45650ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1PLAIN_AMI) || \ 45750ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CAS_AMI) || \ 45850ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC_AMI) || \ 45950ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC_CAS_AMI)) 46050ee11fe383255db8e5c3307319d470015616f27Bob Beers 46150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define IS_FRAME_ANY_AMI(field) \ 46250ee11fe383255db8e5c3307319d470015616f27Bob Beers (((field) == CFG_FRAME_SF_AMI) || \ 46350ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_ESF_AMI) || \ 46450ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1PLAIN_AMI) || \ 46550ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CAS_AMI) || \ 46650ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC_AMI) || \ 46750ee11fe383255db8e5c3307319d470015616f27Bob Beers ((field) == CFG_FRAME_E1CRC_CAS_AMI)) 46850ee11fe383255db8e5c3307319d470015616f27Bob Beers 46950ee11fe383255db8e5c3307319d470015616f27Bob Beers/* frame level loopback options <loopback_type> */ 47050ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_NONE 0 47150ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_DIAG 1 47250ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_LINE 2 47350ee11fe383255db8e5c3307319d470015616f27Bob Beers#define CFG_FRMR_LOOPBACK_PAYLOAD 3 47450ee11fe383255db8e5c3307319d470015616f27Bob Beers 47550ee11fe383255db8e5c3307319d470015616f27Bob Beers 47650ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/ 47750ee11fe383255db8e5c3307319d470015616f27Bob Beers/** read reset card error statistics **/ 47850ee11fe383255db8e5c3307319d470015616f27Bob Beers/****************************************/ 47950ee11fe383255db8e5c3307319d470015616f27Bob Beers 48050ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_get_card_stats() - SBE_IOC_CARD_GET_STAT */ 48150ee11fe383255db8e5c3307319d470015616f27Bob Beers/* routine/ioctl: wancfg_del_card_stats() - SBE_IOC_CARD_DEL_STAT */ 48250ee11fe383255db8e5c3307319d470015616f27Bob Beers 48350ee11fe383255db8e5c3307319d470015616f27Bob Beers struct temux_card_stats 48450ee11fe383255db8e5c3307319d470015616f27Bob Beers { 48550ee11fe383255db8e5c3307319d470015616f27Bob Beers struct temux_stats 48650ee11fe383255db8e5c3307319d470015616f27Bob Beers { 48750ee11fe383255db8e5c3307319d470015616f27Bob Beers /* TEMUX DS3 PMON counters */ 48850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t lcv; 48950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t err_framing; 49050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t febe; 49150ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t err_cpbit; 49250ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t err_parity; 49350ee11fe383255db8e5c3307319d470015616f27Bob Beers /* TEMUX DS3 FRMR status */ 49450ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t los; 49550ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t oof; 49650ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t red; 49750ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t yellow; 49850ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t idle; 49950ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t ais; 50050ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t cbit; 50150ee11fe383255db8e5c3307319d470015616f27Bob Beers /* TEMUX DS3 FEAC receiver */ 50250ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t feac; 50350ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int8_t feac_last; 50450ee11fe383255db8e5c3307319d470015616f27Bob Beers } t; 50550ee11fe383255db8e5c3307319d470015616f27Bob Beers u_int32_t tx_pending; /* total */ 50650ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 50750ee11fe383255db8e5c3307319d470015616f27Bob Beers 50850ee11fe383255db8e5c3307319d470015616f27Bob Beers/**************************************************************/ 50950ee11fe383255db8e5c3307319d470015616f27Bob Beers 51050ee11fe383255db8e5c3307319d470015616f27Bob Beers struct wancfg 51150ee11fe383255db8e5c3307319d470015616f27Bob Beers { 51250ee11fe383255db8e5c3307319d470015616f27Bob Beers int cs, ds; 51350ee11fe383255db8e5c3307319d470015616f27Bob Beers char *p; 51450ee11fe383255db8e5c3307319d470015616f27Bob Beers }; 51550ee11fe383255db8e5c3307319d470015616f27Bob Beers typedef struct wancfg wcfg_t; 51650ee11fe383255db8e5c3307319d470015616f27Bob Beers 51750ee11fe383255db8e5c3307319d470015616f27Bob Beers extern wcfg_t *wancfg_init (char *, char *); 51850ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_card_blink (wcfg_t *, int); 51950ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_ctl (wcfg_t *, int, void *, int, void *, int); 52050ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_del_card_stats (wcfg_t *); 52150ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_del_chan_stats (wcfg_t *, int); 52250ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_enable_ports (wcfg_t *, int); 52350ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_free (wcfg_t *); 52450ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_brdaddr (wcfg_t *, struct sbe_brd_addr *); 52550ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_brdinfo (wcfg_t *, struct sbe_brd_info *); 52650ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_card (wcfg_t *, struct sbecom_card_param *); 52750ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_card_chan_stats (wcfg_t *, struct sbecom_chan_stats *); 52850ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_card_sn (wcfg_t *); 52950ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_card_stats (wcfg_t *, struct temux_card_stats *); 53050ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_chan (wcfg_t *, int, struct sbecom_chan_param *); 53150ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_chan_stats (wcfg_t *, int, struct sbecom_chan_stats *); 53250ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_drvinfo (wcfg_t *, int, struct sbe_drv_info *); 53350ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_framer (wcfg_t *, int, struct sbecom_framer_param *); 53450ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_iid (wcfg_t *, int, struct sbe_iid_info *); 53550ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_sn (wcfg_t *, unsigned int *); 53650ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_read (wcfg_t *, int, struct sbecom_wrt_vec *); 53750ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_reset_device (wcfg_t *, int); 53850ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_set_card (wcfg_t *, struct sbecom_card_param *); 53950ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_set_chan (wcfg_t *, int, struct sbecom_chan_param *); 54050ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_set_framer (wcfg_t *, int, struct sbecom_framer_param *); 54150ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_set_loglevel (wcfg_t *, uint); 54250ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_write (wcfg_t *, int, struct sbecom_wrt_vec *); 54350ee11fe383255db8e5c3307319d470015616f27Bob Beers 54450ee11fe383255db8e5c3307319d470015616f27Bob Beers#ifdef NOT_YET_COMMON 54550ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_get_tsioc (wcfg_t *, struct wanc1t3_ts_hdr *, struct wanc1t3_ts_param *); 54650ee11fe383255db8e5c3307319d470015616f27Bob Beers extern int wancfg_set_tsioc (wcfg_t *, struct wanc1t3_ts_param *); 54750ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif 54850ee11fe383255db8e5c3307319d470015616f27Bob Beers 54950ee11fe383255db8e5c3307319d470015616f27Bob Beers#endif /*** _INC_LIBSBEW_H_ ***/ 550