/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Derived from IRIX , Revision 1.80. * * Copyright (C) 1992 - 1997, 1999 Silicon Graphics, Inc. * Copyright (C) 1999 by Ralf Baechle */ #ifndef _ASM_SGI_SN_SN0_HUBIO_H #define _ASM_SGI_SN_SN0_HUBIO_H /* * Hub I/O interface registers * * All registers in this file are subject to change until Hub chip tapeout. * In general, the longer software name should be used when available. */ /* * Slightly friendlier names for some common registers. * The hardware definitions follow. */ #define IIO_WIDGET IIO_WID /* Widget identification */ #define IIO_WIDGET_STAT IIO_WSTAT /* Widget status register */ #define IIO_WIDGET_CTRL IIO_WCR /* Widget control register */ #define IIO_WIDGET_TOUT IIO_WRTO /* Widget request timeout */ #define IIO_WIDGET_FLUSH IIO_WTFR /* Widget target flush */ #define IIO_PROTECT IIO_ILAPR /* IO interface protection */ #define IIO_PROTECT_OVRRD IIO_ILAPO /* IO protect override */ #define IIO_OUTWIDGET_ACCESS IIO_IOWA /* Outbound widget access */ #define IIO_INWIDGET_ACCESS IIO_IIWA /* Inbound widget access */ #define IIO_INDEV_ERR_MASK IIO_IIDEM /* Inbound device error mask */ #define IIO_LLP_CSR IIO_ILCSR /* LLP control and status */ #define IIO_LLP_LOG IIO_ILLR /* LLP log */ #define IIO_XTALKCC_TOUT IIO_IXCC /* Xtalk credit count timeout*/ #define IIO_XTALKTT_TOUT IIO_IXTT /* Xtalk tail timeout */ #define IIO_IO_ERR_CLR IIO_IECLR /* IO error clear */ #define IIO_BTE_CRB_CNT IIO_IBCN /* IO BTE CRB count */ #define IIO_LLP_CSR_IS_UP 0x00002000 #define IIO_LLP_CSR_LLP_STAT_MASK 0x00003000 #define IIO_LLP_CSR_LLP_STAT_SHFT 12 /* key to IIO_PROTECT_OVRRD */ #define IIO_PROTECT_OVRRD_KEY 0x53474972756c6573ull /* "SGIrules" */ /* BTE register names */ #define IIO_BTE_STAT_0 IIO_IBLS_0 /* Also BTE length/status 0 */ #define IIO_BTE_SRC_0 IIO_IBSA_0 /* Also BTE source address 0 */ #define IIO_BTE_DEST_0 IIO_IBDA_0 /* Also BTE dest. address 0 */ #define IIO_BTE_CTRL_0 IIO_IBCT_0 /* Also BTE control/terminate 0 */ #define IIO_BTE_NOTIFY_0 IIO_IBNA_0 /* Also BTE notification 0 */ #define IIO_BTE_INT_0 IIO_IBIA_0 /* Also BTE interrupt 0 */ #define IIO_BTE_OFF_0 0 /* Base offset from BTE 0 regs. */ #define IIO_BTE_OFF_1 IIO_IBLS_1 - IIO_IBLS_0 /* Offset from base to BTE 1 */ /* BTE register offsets from base */ #define BTEOFF_STAT 0 #define BTEOFF_SRC (IIO_BTE_SRC_0 - IIO_BTE_STAT_0) #define BTEOFF_DEST (IIO_BTE_DEST_0 - IIO_BTE_STAT_0) #define BTEOFF_CTRL (IIO_BTE_CTRL_0 - IIO_BTE_STAT_0) #define BTEOFF_NOTIFY (IIO_BTE_NOTIFY_0 - IIO_BTE_STAT_0) #define BTEOFF_INT (IIO_BTE_INT_0 - IIO_BTE_STAT_0) /* * The following definitions use the names defined in the IO interface * document for ease of reference. When possible, software should * generally use the longer but clearer names defined above. */ #define IIO_BASE 0x400000 #define IIO_BASE_BTE0 0x410000 #define IIO_BASE_BTE1 0x420000 #define IIO_BASE_PERF 0x430000 #define IIO_PERF_CNT 0x430008 #define IO_PERF_SETS 32 #define IIO_WID 0x400000 /* Widget identification */ #define IIO_WSTAT 0x400008 /* Widget status */ #define IIO_WCR 0x400020 /* Widget control */ #define IIO_WSTAT_ECRAZY (1ULL << 32) /* Hub gone crazy */ #define IIO_WSTAT_TXRETRY (1ULL << 9) /* Hub Tx Retry timeout */ #define IIO_WSTAT_TXRETRY_MASK (0x7F) #define IIO_WSTAT_TXRETRY_SHFT (16) #define IIO_WSTAT_TXRETRY_CNT(w) (((w) >> IIO_WSTAT_TXRETRY_SHFT) & \ IIO_WSTAT_TXRETRY_MASK) #define IIO_ILAPR 0x400100 /* Local Access Protection */ #define IIO_ILAPO 0x400108 /* Protection override */ #define IIO_IOWA 0x400110 /* outbound widget access */ #define IIO_IIWA 0x400118 /* inbound widget access */ #define IIO_IIDEM 0x400120 /* Inbound Device Error Mask */ #define IIO_ILCSR 0x400128 /* LLP control and status */ #define IIO_ILLR 0x400130 /* LLP Log */ #define IIO_IIDSR 0x400138 /* Interrupt destination */ #define IIO_IIBUSERR 0x1400208 /* Reads here cause a bus error. */ /* IO Interrupt Destination Register */ #define IIO_IIDSR_SENT_SHIFT 28 #define IIO_IIDSR_SENT_MASK 0x10000000 #define IIO_IIDSR_ENB_SHIFT 24 #define IIO_IIDSR_ENB_MASK 0x01000000 #define IIO_IIDSR_NODE_SHIFT 8 #define IIO_IIDSR_NODE_MASK 0x0000ff00 #define IIO_IIDSR_LVL_SHIFT 0 #define IIO_IIDSR_LVL_MASK 0x0000003f /* GFX Flow Control Node/Widget Register */ #define IIO_IGFX_0 0x400140 /* gfx node/widget register 0 */ #define IIO_IGFX_1 0x400148 /* gfx node/widget register 1 */ #define IIO_IGFX_W_NUM_BITS 4 /* size of widget num field */ #define IIO_IGFX_W_NUM_MASK ((1<