/* SPDX-License-Identifier: GPL-2.0-or-later */ /****************************************************************************** * * (C)Copyright 1998,1999 SysKonnect, * a business unit of Schneider & Koch & Co. Datensysteme GmbH. * * The information in this file is provided "AS IS" without warranty. *
******************************************************************************/
/* defines for AMD Supernet II chip set the chips are referred to as FPLUS Formac Plus PLC Physical Layer
added defines for AMD Supernet III chip set added comments on differences between Supernet II and Supernet III added defines for the Motorola ELM (MOT_ELM)
*/
#ifndef _SUPERNET_ #define _SUPERNET_
/* * Define Supernet 3 when used
*/ #ifdef PCI #ifndef SUPERNET_3 #define SUPERNET_3 #endif #define TAG #endif
/* * PLC read/write (r/w) registers
*/ #define PL_CNTRL_A 0x00 /* control register A (r/w) */ #define PL_CNTRL_B 0x01 /* control register B (r/w) */ #define PL_INTR_MASK 0x02 /* interrupt mask (r/w) */ #define PL_XMIT_VECTOR 0x03 /* transmit vector register (r/w) */ #define PL_VECTOR_LEN 0x04 /* transmit vector length (r/w) */ #define PL_LE_THRESHOLD 0x05 /* link error event threshold (r/w) */ #define PL_C_MIN 0x06 /* minimum connect state time (r/w) */ #define PL_TL_MIN 0x07 /* min. line state transmit t. (r/w) */ #define PL_TB_MIN 0x08 /* minimum break time (r/w) */ #define PL_T_OUT 0x09 /* signal timeout (r/w) */ #define PL_CNTRL_C 0x0a /* control register C (r/w) */ #define PL_LC_LENGTH 0x0b /* link confidence test time (r/w) */ #define PL_T_SCRUB 0x0c /* scrub time = MAC TVX (r/w) */ #define PL_NS_MAX 0x0d /* max. noise time before break (r/w)*/ #define PL_TPC_LOAD_V 0x0e /* TPC timer load value (write only) */ #define PL_TNE_LOAD_V 0x0f /* TNE timer load value (write only) */ #define PL_STATUS_A 0x10 /* status register A (read only) */ #define PL_STATUS_B 0x11 /* status register B (read only) */ #define PL_TPC 0x12 /* timer for PCM (ro) [20.48 us] */ #define PL_TNE 0x13 /* time of noise event [0.32 us] */ #define PL_CLK_DIV 0x14 /* TNE clock divider (read only) */ #define PL_BIST_SIGNAT 0x15 /* built in self test signature (ro)*/ #define PL_RCV_VECTOR 0x16 /* receive vector reg. (read only) */ #define PL_INTR_EVENT 0x17 /* interrupt event reg. (read only) */ #define PL_VIOL_SYM_CTR 0x18 /* violation symbol count. (read o) */ #define PL_MIN_IDLE_CTR 0x19 /* minimum idle counter (read only) */ #define PL_LINK_ERR_CTR 0x1a /* link error event ctr.(read only) */ #ifdef MOT_ELM #define PL_T_FOT_ASS 0x1e /* FOTOFF Assert Timer */ #define PL_T_FOT_DEASS 0x1f /* FOTOFF Deassert Timer */ #endif/* MOT_ELM */
#ifdef MOT_ELM /* * Special Quad-Elm Registers. * A Quad-ELM consists of for ELMs and these additional registers.
*/ #define QELM_XBAR_W 0x80 /* Crossbar Control ELM W */ #define QELM_XBAR_X 0x81 /* Crossbar Control ELM X */ #define QELM_XBAR_Y 0x82 /* Crossbar Control ELM Y */ #define QELM_XBAR_Z 0x83 /* Crossbar Control ELM Z */ #define QELM_XBAR_P 0x84 /* Crossbar Control Bus P */ #define QELM_XBAR_S 0x85 /* Crossbar Control Bus S */ #define QELM_XBAR_R 0x86 /* Crossbar Control Bus R */ #define QELM_WR_XBAR 0x87 /* Write the Crossbar now (write) */ #define QELM_CTR_W 0x88 /* Counter W */ #define QELM_CTR_X 0x89 /* Counter X */ #define QELM_CTR_Y 0x8a /* Counter Y */ #define QELM_CTR_Z 0x8b /* Counter Z */ #define QELM_INT_MASK 0x8c /* Interrupt mask register */ #define QELM_INT_DATA 0x8d /* Interrupt data (event) register */ #define QELM_ELMB 0x00 /* Elm base */ #define QELM_ELM_SIZE 0x20 /* ELM size */ #endif/* MOT_ELM */ /* * PLC control register A (PL_CNTRL_A: log. addr. 0x00) * It is used for timer configuration, specification of PCM MAINT state option, * counter interrupt frequency, PLC data path config. and Built In Self Test.
*/ #define PL_RUN_BIST 0x0001 /* begin running its Built In Self T.*/ #define PL_RF_DISABLE 0x0002 /* disable the Repeat Filter state m.*/ #define PL_SC_REM_LOOP 0x0004 /* remote loopback path */ #define PL_SC_BYPASS 0x0008 /* by providing a physical bypass */ #define PL_LM_LOC_LOOP 0x0010 /* loop path just after elastic buff.*/ #define PL_EB_LOC_LOOP 0x0020 /* loop path just prior to PDT/PDR IF*/ #define PL_FOT_OFF 0x0040 /* assertion of /FOTOFF pin of PLC */ #define PL_LOOPBACK 0x0080 /* it cause the /LPBCK pin ass. low */ #define PL_MINI_CTR_INT 0x0100 /* partially contr. when bit is ass. */ #define PL_VSYM_CTR_INT 0x0200 /* controls when int bit is asserted */ #define PL_ENA_PAR_CHK 0x0400 /* enable parity check */ #define PL_REQ_SCRUB 0x0800 /* limited access to scrub capability*/ #define PL_TPC_16BIT 0x1000 /* causes the TPC as a 16 bit timer */ #define PL_TNE_16BIT 0x2000 /* causes the TNE as a 16 bit timer */ #define PL_NOISE_TIMER 0x4000 /* allows the noise timing function */
/* * PLC control register B (PL_CNTRL_B: log. addr. 0x01) * It contains signals and requeste to direct the process of PCM and it is also * used to control the Line State Match interrupt.
*/ #define PL_PCM_CNTRL 0x0003 /* control PCM state machine */ #define PL_PCM_NAF (0) /* state is not affected */ #define PL_PCM_START (1) /* goes to the BREAK state */ #define PL_PCM_TRACE (2) /* goes to the TRACE state */ #define PL_PCM_STOP (3) /* goes to the OFF state */
#define PL_MAINT 0x0004 /* if OFF state --> MAINT state */ #define PL_LONG 0x0008 /* perf. a long Link Confid.Test(LCT)*/ #define PL_PC_JOIN 0x0010 /* if NEXT state --> JOIN state */
#define PL_PC_LOOP 0x0060 /* loopback used in the LCT */ #define PL_NOLCT (0<<5) /* no LCT is performed */ #define PL_TPDR (1<<5) /* PCM asserts transmit PDR */ #define PL_TIDLE (2<<5) /* PCM asserts transmit idle */ #define PL_RLBP (3<<5) /* trans. PDR & remote loopb. path */
#define PL_CLASS_S 0x0080 /* signif. that single att. station */
#define PL_MAINT_LS 0x0700 /* line state while in the MAINT st. */ #define PL_M_QUI0 (0<<8) /* transmit QUIET line state */ #define PL_M_IDLE (1<<8) /* transmit IDLE line state */ #define PL_M_HALT (2<<8) /* transmit HALT line state */ #define PL_M_MASTR (3<<8) /* transmit MASTER line state */ #define PL_M_QUI1 (4<<8) /* transmit QUIET line state */ #define PL_M_QUI2 (5<<8) /* transmit QUIET line state */ #define PL_M_TPDR (6<<8) /* tr. PHY_DATA requ.-symbol is tr.ed*/ #define PL_M_QUI3 (7<<8) /* transmit QUIET line state */
#define PL_MATCH_LS 0x7800 /* line state to be comp. with curr.*/ #define PL_I_ANY (0<<11) /* Int. on any change in *_LINE_ST */ #define PL_I_IDLE (1<<11) /* Interrupt on IDLE line state */ #define PL_I_HALT (2<<11) /* Interrupt on HALT line state */ #define PL_I_MASTR (4<<11) /* Interrupt on MASTER line state */ #define PL_I_QUIET (8<<11) /* Interrupt on QUIET line state */
#define PL_CONFIG_CNTRL 0x8000 /* control over scrub, byp. & loopb.*/
/* * PLC control register C (PL_CNTRL_C: log. addr. 0x0a) * It contains the scrambling control registers (PLC-S only)
*/ #define PL_C_CIPHER_ENABLE (1<<0) /* enable scrambler */ #define PL_C_CIPHER_LPBCK (1<<1) /* loopback scrambler */ #define PL_C_SDOFF_ENABLE (1<<6) /* enable SDOFF timer */ #define PL_C_SDON_ENABLE (1<<7) /* enable SDON timer */ #ifdef MOT_ELM #define PL_C_FOTOFF_CTRL (3<<2) /* FOTOFF timer control */ #define PL_C_FOTOFF_TIM (0<<2) /* FOTOFF use timer for (de)-assert */ #define PL_C_FOTOFF_INA (2<<2) /* FOTOFF forced inactive */ #define PL_C_FOTOFF_ACT (3<<2) /* FOTOFF forced active */ #define PL_C_FOTOFF_SRCE (1<<4) /* FOTOFF source is PCM state != OFF */ #define PL_C_RXDATA_EN (1<<5) /* Rec scr data forced to 0 */ #define PL_C_SDNRZEN (1<<8) /* Monitor rec descr. data for act */ #else/* nMOT_ELM */ #define PL_C_FOTOFF_CTRL (3<<8) /* FOTOFF timer control */ #define PL_C_FOTOFF_0 (0<<8) /* timer off */ #define PL_C_FOTOFF_30 (1<<8) /* 30uS */ #define PL_C_FOTOFF_50 (2<<8) /* 50uS */ #define PL_C_FOTOFF_NEVER (3<<8) /* never */ #define PL_C_SDON_TIMER (3<<10) /* SDON timer control */ #define PL_C_SDON_084 (0<<10) /* 0.84 uS */ #define PL_C_SDON_132 (1<<10) /* 1.32 uS */ #define PL_C_SDON_252 (2<<10) /* 2.52 uS */ #define PL_C_SDON_512 (3<<10) /* 5.12 uS */ #define PL_C_SOFF_TIMER (3<<12) /* SDOFF timer control */ #define PL_C_SOFF_076 (0<<12) /* 0.76 uS */ #define PL_C_SOFF_132 (1<<12) /* 1.32 uS */ #define PL_C_SOFF_252 (2<<12) /* 2.52 uS */ #define PL_C_SOFF_512 (3<<12) /* 5.12 uS */ #define PL_C_TSEL (3<<14) /* scrambler path select */ #endif/* nMOT_ELM */
/* * PLC status register A (PL_STATUS_A: log. addr. 0x10) * It is used to report status information to the Node Processor about the * Line State Machine (LSM).
*/ #ifdef MOT_ELM #define PLC_INT_MASK 0xc000 /* ELM integration bits in status A */ #define PLC_INT_C 0x0000 /* ELM Revision Band C */ #define PLC_INT_CAMEL 0x4000 /* ELM integrated into CAMEL */ #define PLC_INT_QE 0x8000 /* ELM integrated into Quad ELM */ #define PLC_REV_MASK 0x3800 /* revision bits in status A */ #define PLC_REVISION_B 0x0000 /* rev bits for ELM Rev B */ #define PLC_REVISION_QA 0x0800 /* rev bits for ELM core in QELM-A */ #else/* nMOT_ELM */ #define PLC_REV_MASK 0xf800 /* revision bits in status A */ #define PLC_REVISION_A 0x0000 /* revision bits for PLC */ #define PLC_REVISION_S 0xf800 /* revision bits for PLC-S */ #define PLC_REV_SN3 0x7800 /* revision bits for PLC-S in IFCP */ #endif/* nMOT_ELM */ #define PL_SYM_PR_CTR 0x0007 /* contains the LSM symbol pair Ctr. */ #define PL_UNKN_LINE_ST 0x0008 /* unknown line state bit from LSM */ #define PL_LSM_STATE 0x0010 /* state bit of LSM */
#define PL_LINE_ST 0x00e0 /* contains recogn. line state of LSM*/ #define PL_L_NLS (0<<5) /* noise line state */ #define PL_L_ALS (1<<5) /* activ line state */ #define PL_L_UND (2<<5) /* undefined */ #define PL_L_ILS4 (3<<5) /* idle l. s. (after 4 idle symbols) */ #define PL_L_QLS (4<<5) /* quiet line state */ #define PL_L_MLS (5<<5) /* master line state */ #define PL_L_HLS (6<<5) /* halt line state */ #define PL_L_ILS16 (7<<5) /* idle line state (after 16 idle s.)*/
#define PL_PREV_LINE_ST 0x0300 /* value of previous line state */ #define PL_P_QLS (0<<8) /* quiet line state */ #define PL_P_MLS (1<<8) /* master line state */ #define PL_P_HLS (2<<8) /* halt line state */ #define PL_P_ILS16 (3<<8) /* idle line state (after 16 idle s.)*/
#define PL_SIGNAL_DET 0x0400 /* 1=that signal detect is deasserted*/
/* * PLC status register B (PL_STATUS_B: log. addr. 0x11) * It contains signals and status from the repeat filter and PCM state machine.
*/ #define PL_BREAK_REASON 0x0007 /* reason for PCM state mach.s to br.*/ #define PL_B_NOT (0) /* PCM SM has not gone to BREAK state*/ #define PL_B_PCS (1) /* PC_Start issued */ #define PL_B_TPC (2) /* TPC timer expired after T_OUT */ #define PL_B_TNE (3) /* TNE timer expired after NS_MAX */ #define PL_B_QLS (4) /* quit line state detected */ #define PL_B_ILS (5) /* idle line state detected */ #define PL_B_HLS (6) /* halt line state detected */
#define PL_TCF 0x0008 /* transmit code flag (start exec.) */ #define PL_RCF 0x0010 /* receive code flag (start exec.) */ #define PL_LSF 0x0020 /* line state flag (l.s. has been r.)*/ #define PL_PCM_SIGNAL 0x0040 /* indic. that XMIT_VECTOR hb.written*/
#define PL_PCM_STATE 0x0780 /* state bits of PCM state machine */ #define PL_PC0 (0<<7) /* OFF - when /RST or PCM_CNTRL */ #define PL_PC1 (1<<7) /* BREAK - entry point in start PCM*/ #define PL_PC2 (2<<7) /* TRACE - to localize stuck Beacon*/ #define PL_PC3 (3<<7) /* CONNECT - synchronize ends of conn*/ #define PL_PC4 (4<<7) /* NEXT - to separate the signalng*/ #define PL_PC5 (5<<7) /* SIGNAL - PCM trans/rec. bit infos*/ #define PL_PC6 (6<<7) /* JOIN - 1. state to activ conn. */ #define PL_PC7 (7<<7) /* VERIFY - 2. - " - (3. ACTIVE) */ #define PL_PC8 (8<<7) /* ACTIVE - PHY has been incorporated*/ #define PL_PC9 (9<<7) /* MAINT - for test purposes or so
that PCM op. completely in softw. */
#define PL_PCI_SCRUB 0x0800 /* scrubbing function is being exec. */
#define PL_RF_STATE 0xc000 /* state bit of repeate filter SM */ #define PL_RF_REPT (0<<14) /* REPEAT */ #define PL_RF_IDLE (1<<14) /* IDLE */ #define PL_RF_HALT1 (2<<14) /* HALT1 */ #define PL_RF_HALT2 (3<<14) /* HALT2 */
/* * PLC interrupt event register (PL_INTR_EVENT: log. addr. 0x17) * It is read only and is clearde whenever it is read! * It is used by the PLC to report events to the node processor.
*/ #define PL_PARITY_ERR 0x0001 /* p. error h.b.detected on TX9-0 inp*/ #define PL_LS_MATCH 0x0002 /* l.s.== l.s. PLC_CNTRL_B's MATCH_LS*/ #define PL_PCM_CODE 0x0004 /* transmit&receive | LCT complete */ #define PL_TRACE_PROP 0x0008 /* master l.s. while PCM ACTIV|TRACE */ #define PL_SELF_TEST 0x0010 /* QUIET|HALT while PCM in TRACE st. */ #define PL_PCM_BREAK 0x0020 /* PCM has entered the BREAK state */ #define PL_PCM_ENABLED 0x0040 /* asserted SC_JOIN, scrub. & ACTIV */ #define PL_TPC_EXPIRED 0x0080 /* TPC timer reached zero */ #define PL_TNE_EXPIRED 0x0100 /* TNE timer reached zero */ #define PL_EBUF_ERR 0x0200 /* elastic buff. det. over-|underflow*/ #define PL_PHYINV 0x0400 /* physical layer invalid signal */ #define PL_VSYM_CTR 0x0800 /* violation symbol counter has incr.*/ #define PL_MINI_CTR 0x1000 /* dep. on PLC_CNTRL_A's MINI_CTR_INT*/ #define PL_LE_CTR 0x2000 /* link error event counter */ #define PL_LSDO 0x4000 /* SDO input pin changed to a 1 */ #define PL_NP_ERR 0x8000 /* NP has requested to r/w an inv. r.*/
/* * The PLC interrupt mask register (PL_INTR_MASK: log. addr. 0x02) constr. is * equal PL_INTR_EVENT register. * For each set bit, the setting of corresponding bit generate an int to NP.
*/
#ifdef MOT_ELM /* * Quad ELM Crosbar Control register values (QELM_XBAR_?)
*/ #define QELM_XOUT_IDLE 0x0000 /* Idles/Passthrough */ #define QELM_XOUT_P 0x0001 /* Output to: Bus P */ #define QELM_XOUT_S 0x0002 /* Output to: Bus S */ #define QELM_XOUT_R 0x0003 /* Output to: Bus R */ #define QELM_XOUT_W 0x0004 /* Output to: ELM W */ #define QELM_XOUT_X 0x0005 /* Output to: ELM X */ #define QELM_XOUT_Y 0x0006 /* Output to: ELM Y */ #define QELM_XOUT_Z 0x0007 /* Output to: ELM Z */
/* * Quad ELM Interrupt data and event registers.
*/ #define QELM_NP_ERR (1<<15) /* Node Processor Error */ #define QELM_COUNT_Z (1<<7) /* Counter Z Interrupt */ #define QELM_COUNT_Y (1<<6) /* Counter Y Interrupt */ #define QELM_COUNT_X (1<<5) /* Counter X Interrupt */ #define QELM_COUNT_W (1<<4) /* Counter W Interrupt */ #define QELM_ELM_Z (1<<3) /* ELM Z Interrupt */ #define QELM_ELM_Y (1<<2) /* ELM Y Interrupt */ #define QELM_ELM_X (1<<1) /* ELM X Interrupt */ #define QELM_ELM_W (1<<0) /* ELM W Interrupt */ #endif/* MOT_ELM */ /* * PLC Timing Parameters
*/ #define TP_C_MIN 0xff9c /* 2 ms */ #define TP_TL_MIN 0xfff0 /* 0.3 ms */ #define TP_TB_MIN 0xff10 /* 5 ms */ #define TP_T_OUT 0xd9db /* 200 ms */ #define TP_LC_LENGTH 0xf676 /* 50 ms */ #define TP_LC_LONGLN 0xa0a2 /* 500 ms */ #define TP_T_SCRUB 0xff6d /* 3.5 ms */ #define TP_NS_MAX 0xf021 /* 1.3 ms */
/* * BIST values
*/ #define PLC_BIST 0x6ecd /* BIST signature for PLC */ #define PLCS_BIST 0x5b6b /* BIST signature for PLC-S */ #define PLC_ELM_B_BIST 0x6ecd /* BIST signature of ELM Rev. B */ #define PLC_ELM_D_BIST 0x5b6b /* BIST signature of ELM Rev. D */ #define PLC_CAM_A_BIST 0x9e75 /* BIST signature of CAMEL Rev. A */ #define PLC_CAM_B_BIST 0x5b6b /* BIST signature of CAMEL Rev. B */ #define PLC_IFD_A_BIST 0x9e75 /* BIST signature of IFDDI Rev. A */ #define PLC_IFD_B_BIST 0x5b6b /* BIST signature of IFDDI Rev. B */ #define PLC_QELM_A_BIST 0x5b6b /* BIST signature of QELM Rev. A */
/* * FDDI defaults * NOTE : In the ANSI docs, times are specified in units of "symbol time". * AMD chips use BCLK as unit. 1 BCKL == 2 symbols
*/ #define COMPLREF ((u_long)32*256*256) /* two's complement 21 bit */ #define MSTOBCLK(x) ((u_long)(x)*12500L) #define MSTOTVX(x) (((u_long)(x)*1000L)/80/255)
#endif/* _SUPERNET_ */
Messung V0.5
¤ Dauer der Verarbeitung: 0.4 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.