#ifndef _ARCH_SGIMIPS_HPC_HPCREG_H_
#define _ARCH_SGIMIPS_HPC_HPCREG_H_
#define HPC_BASE_ADDRESS_0 0x1fb80000
#define HPC_BASE_ADDRESS_1 0x1fb00000
#define HPC_BASE_ADDRESS_2 0x1f980000
#define HPC_BASE_ADDRESS_3 0x1f900000
struct hpc_dma_desc {
uint32_t hdd_bufptr;
uint32_t hdd_ctl;
uint32_t hdd_descptr;
uint32_t hdd_pad;
};
#define hpc1_hdd_ctl hdd_bufptr
#define hpc1_hdd_bufptr hdd_ctl
#define hpc3_hdd_ctl hdd_ctl
#define hpc3_hdd_bufptr hdd_bufptr
#define HPC3_HDD_CTL_EOCHAIN 0x80000000
#define HPC3_HDD_CTL_EOPACKET 0x40000000
#define HPC3_HDD_CTL_INTR 0x20000000
#define HPC3_HDD_CTL_XMITDONE 0x00008000
#define HPC3_HDD_CTL_OWN 0x00004000
#define HPC3_HDD_CTL_BYTECNT(x) ((x) & 0x3fff)
#define HPC3_PBUS_DMAREGS 0x00000000
#define HPC3_PBUS_DMAREGS_SIZE 0x0000ffff
#define HPC3_PBUS_CH0_BP 0x00000000
#define HPC3_PBUS_CH0_DP 0x00000004
#define HPC3_PBUS_CH0_CTL 0x00001000
#define HPC3_PBUS_CH1_BP 0x00002000
#define HPC3_PBUS_CH1_DP 0x00002004
#define HPC3_PBUS_CH1_CTL 0x00003000
#define HPC3_PBUS_CH2_BP 0x00004000
#define HPC3_PBUS_CH2_DP 0x00004004
#define HPC3_PBUS_CH2_CTL 0x00005000
#define HPC3_PBUS_CH3_BP 0x00006000
#define HPC3_PBUS_CH3_DP 0x00006004
#define HPC3_PBUS_CH3_CTL 0x00007000
#define HPC3_PBUS_CH4_BP 0x00008000
#define HPC3_PBUS_CH4_DP 0x00008004
#define HPC3_PBUS_CH4_CTL 0x00009000
#define HPC3_PBUS_CH5_BP 0x0000a000
#define HPC3_PBUS_CH5_DP 0x0000a004
#define HPC3_PBUS_CH5_CTL 0x0000b000
#define HPC3_PBUS_CH6_BP 0x0000c000
#define HPC3_PBUS_CH6_DP 0x0000c004
#define HPC3_PBUS_CH6_CTL 0x0000d000
#define HPC3_PBUS_CH7_BP 0x0000e000
#define HPC3_PBUS_CH7_DP 0x0000e004
#define HPC3_PBUS_CH7_CTL 0x0000f000
#define HPC3_SCSI0_REGS 0x00010000
#define HPC3_SCSI0_REGS_SIZE 0x00001fff
#define HPC3_SCSI0_CBP 0x00000000
#define HPC3_SCSI0_NDBP 0x00000004
#define HPC3_SCSI0_BC 0x00001000
#define HPC3_SCSI0_CTL 0x00001004
#define HPC3_SCSI0_GIO 0x00001008
#define HPC3_SCSI0_DEV 0x0000100c
#define HPC3_SCSI0_DMACFG 0x00001010
#define HPC3_SCSI0_PIOCFG 0x00001014
#define HPC3_SCSI1_REGS 0x00012000
#define HPC3_SCSI1_REGS_SIZE 0x00001fff
#define HPC3_SCSI1_CBP 0x00000000
#define HPC3_SCSI1_NDBP 0x00000004
#define HPC3_SCSI1_BC 0x00001000
#define HPC3_SCSI1_CTL 0x00001004
#define HPC3_SCSI1_GIO 0x00001008
#define HPC3_SCSI1_DEV 0x0000100c
#define HPC3_SCSI1_DMACFG 0x00001010
#define HPC3_SCSI1_PIOCFG 0x00001014
#define HPC3_SCSI_DMACTL_IRQ 0x01
#define HPC3_SCSI_DMACTL_ENDIAN 0x02
#define HPC3_SCSI_DMACTL_DIR 0x04
#define HPC3_SCSI_DMACTL_FLUSH 0x08
#define HPC3_SCSI_DMACTL_ACTIVE 0x10
#define HPC3_SCSI_DMACTL_AMASK 0x20
#define HPC3_SCSI_DMACTL_RESET 0x40
#define HPC3_SCSI_DMACTL_PERR 0x80
#define HPC3_PBUS_DMACTL_IRQ 0x01
#define HPC3_PBUS_DMACTL_ISACT 0x02
#define HPC3_PBUS_DMACTL_ENDIAN 0x02
#define HPC3_PBUS_DMACTL_RECEIVE 0x04
#define HPC3_PBUS_DMACTL_FLUSH 0x08
#define HPC3_PBUS_DMACTL_ACT 0x10
#define HPC3_PBUS_DMACTL_ACT_LD 0x20
#define HPC3_PBUS_DMACTL_RT 0x40
#define HPC3_PBUS_DMACTL_HIGHWATER_SHIFT 8
#define HPC3_PBUS_DMACTL_FIFOBEG_SHIFT 16
#define HPC3_PBUS_DMACTL_FIFOEND_SHIFT 24
#define HPC3_ENET_REGS 0x00014000
#define HPC3_ENET_REGS_SIZE 0x00003fff
#define HPC3_ENETR_CBP 0x00000000
#define HPC3_ENETR_NDBP 0x00000004
#define HPC3_ENETR_BC 0x00001000
#define HPC3_ENETR_CTL 0x00001004
#define HPC3_ENETR_CTL_STAT_5_0 0x003f
#define HPC3_ENETR_CTL_STAT_6 0x0040
#define HPC3_ENETR_CTL_STAT_7 0x0080
#define HPC3_ENETR_CTL_LENDIAN 0x0100
#define HPC3_ENETR_CTL_ACTIVE 0x0200
#define HPC3_ENETR_CTL_ACTIVE_MSK 0x0400
#define HPC3_ENETR_CTL_RBO 0x0800
#define HPC3_ENETR_GIO 0x00001008
#define HPC3_ENETR_DEV 0x0000100c
#define HPC3_ENETR_RESET 0x00001014
#define HPC3_ENETR_RESET_CH 0x0001
#define HPC3_ENETR_RESET_CLRINT 0x0002
#define HPC3_ENETR_RESET_LOOPBK 0x0004
#define HPC3_ENETR_RESET_CLRRBO 0x0008
#define HPC3_ENETR_DMACFG 0x00001018
#define HPC3_ENETR_DMACFG_D1(_x) (((_x) << 0) & 0x000f)
#define HPC3_ENETR_DMACFG_D2(_x) (((_x) << 4) & 0x00f0)
#define HPC3_ENETR_DMACFG_D3(_x) (((_x) << 8) & 0x0f00)
#define HPC3_ENETR_DMACFG_WRCTL 0x01000
#define HPC3_ENETR_DMACFG_FIX_RXDC 0x02000
#define HPC3_ENETR_DMACFG_FIX_EOP 0x04000
#define HPC3_ENETR_DMACFG_FIX_INTR 0x08000
#define HPC3_ENETR_DMACFG_TIMEOUT 0x30000
#define HPC3_ENETR_PIOCFG 0x0000101c
#define HPC3_ENETR_PIOCFG_P1(_x) (((_x) << 0) & 0x000f)
#define HPC3_ENETR_PIOCFG_P2(_x) (((_x) << 4) & 0x00f0)
#define HPC3_ENETR_PIOCFG_P3(_x) (((_x) << 8) & 0x0f00)
#define HPC3_ENETX_CBP 0x00002000
#define HPC3_ENETX_NDBP 0x00002004
#define HPC3_ENETX_BC 0x00003000
#define HPC3_ENETX_CTL 0x00003004
#define HPC3_ENETX_CTL_STAT_5_0 0x003f
#define HPC3_ENETX_CTL_STAT_6 0x0040
#define HPC3_ENETX_CTL_STAT_7 0x0080
#define HPC3_ENETX_CTL_LENDIAN 0x0100
#define HPC3_ENETX_CTL_ACTIVE 0x0200
#define HPC3_ENETX_CTL_ACTIVE_MSK 0x0400
#define HPC3_ENETX_CTL_RBO 0x0800
#define HPC3_ENETX_GIO 0x00003008
#define HPC3_ENETX_DEV 0x0000300c
#define HPC3_PBUS_FIFO 0x00020000
#define HPC3_PBUS_FIFO_SIZE 0x00007fff
#define HPC3_SCSI0_FIFO 0x00028000
#define HPC3_SCSI0_FIFO_SIZE 0x00001fff
#define HPC3_SCSI1_FIFO 0x0002a000
#define HPC3_SCSI1_FIFO_SIZE 0x00001fff
#define HPC3_ENETR_FIFO 0x0002c000
#define HPC3_ENETR_FIFO_SIZE 0x00001fff
#define HPC3_ENETX_FIFO 0x0002e000
#define HPC3_ENETX_FIFO_SIZE 0x00001fff
#define HPC3_INTRSTAT_40 0x00030000
#define HPC3_INTRSTAT_95 0x0003000c
#define HPC3_GIO_MISC 0x00030004
#define HPC3_EEPROM_DATA 0x0003000b
#define HPC3_GIO_BUSERR 0x00030010
#define HPC3_SCSI0_DEVREGS 0x00044000
#define HPC3_SCSI0_DEVREGS_SIZE 0x000003ff
#define HPC3_SCSI1_DEVREGS 0x0004c000
#define HPC3_SCSI1_DEVREGS_SIZE 0x000003ff
#define HPC3_ENET_DEVREGS 0x00054000
#define HPC3_ENET_DEVREGS_SIZE 0x000004ff
#define HPC3_PBUS_DEVREGS 0x00054000
#define HPC3_PBUS_DEVREGS_SIZE 0x000003ff
#define HPC3_PBUS_CH0_DEVREGS 0x00058000
#define HPC3_PBUS_CH0_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH1_DEVREGS 0x00058400
#define HPC3_PBUS_CH1_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH2_DEVREGS 0x00058800
#define HPC3_PBUS_CH2_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH3_DEVREGS 0x00058c00
#define HPC3_PBUS_CH3_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH4_DEVREGS 0x00059000
#define HPC3_PBUS_CH4_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH5_DEVREGS 0x00059400
#define HPC3_PBUS_CH5_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH6_DEVREGS 0x00059800
#define HPC3_PBUS_CH6_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH7_DEVREGS 0x00059c00
#define HPC3_PBUS_CH7_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH8_DEVREGS 0x0005a000
#define HPC3_PBUS_CH8_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH9_DEVREGS 0x0005a400
#define HPC3_PBUS_CH9_DEVREGS_SIZE 0x03ff
#define HPC3_PBUS_CH8_DEVREGS_2 0x0005a800
#define HPC3_PBUS_CH8_DEVREGS_2_SIZE 0x03ff
#define HPC3_PBUS_CH9_DEVREGS_2 0x0005ac00
#define HPC3_PBUS_CH9_DEVREGS_2_SIZE 0x03ff
#define HPC3_PBUS_CH8_DEVREGS_3 0x0005b000
#define HPC3_PBUS_CH8_DEVREGS_3_SIZE 0x03ff
#define HPC3_PBUS_CH9_DEVREGS_3 0x0005b400
#define HPC3_PBUS_CH9_DEVREGS_3_SIZE 0x03ff
#define HPC3_PBUS_CH8_DEVREGS_4 0x0005b800
#define HPC3_PBUS_CH8_DEVREGS_4_SIZE 0x03ff
#define HPC3_PBUS_CH9_DEVREGS_4 0x0005bc00
#define HPC3_PBUS_CH9_DEVREGS_4_SIZE 0x03ff
#define HPC3_PBUS_CFGDMA_REGS 0x0005c000
#define HPC3_PBUS_CFGDMA_REGS_SIZE 0x0fff
#define HPC3_PBUS_CH0_CFGDMA 0x0005c000
#define HPC3_PBUS_CH0_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH1_CFGDMA 0x0005c200
#define HPC3_PBUS_CH1_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH2_CFGDMA 0x0005c400
#define HPC3_PBUS_CH2_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH3_CFGDMA 0x0005c600
#define HPC3_PBUS_CH3_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH4_CFGDMA 0x0005c800
#define HPC3_PBUS_CH4_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH5_CFGDMA 0x0005ca00
#define HPC3_PBUS_CH5_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH6_CFGDMA 0x0005cc00
#define HPC3_PBUS_CH6_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CH7_CFGDMA 0x0005ce00
#define HPC3_PBUS_CH7_CFGDMA_SIZE 0x01ff
#define HPC3_PBUS_CFGPIO_REGS 0x0005d000
#define HPC3_PBUS_CFGPIO_REGS_SIZE 0x0fff
#define HPC3_PBUS_CH0_CFGPIO 0x0005d000
#define HPC3_PBUS_CH1_CFGPIO 0x0005d100
#define HPC3_PBUS_CH2_CFGPIO 0x0005d200
#define HPC3_PBUS_CH3_CFGPIO 0x0005d300
#define HPC3_PBUS_CH4_CFGPIO 0x0005d400
#define HPC3_PBUS_CH5_CFGPIO 0x0005d500
#define HPC3_PBUS_CH6_CFGPIO 0x0005d600
#define HPC3_PBUS_CH7_CFGPIO 0x0005d700
#define HPC3_PBUS_CH8_CFGPIO 0x0005d800
#define HPC3_PBUS_CH9_CFGPIO 0x0005d900
#define HPC3_PBUS_CH8_CFGPIO_2 0x0005da00
#define HPC3_PBUS_CH9_CFGPIO_2 0x0005db00
#define HPC3_PBUS_CH8_CFGPIO_3 0x0005dc00
#define HPC3_PBUS_CH9_CFGPIO_3 0x0005dd00
#define HPC3_PBUS_CH8_CFGPIO_4 0x0005de00
#define HPC3_PBUS_CH9_CFGPIO_4 0x0005df00
#define HPC3_PBUS_PROM_WE 0x0005e000
#define HPC3_PBUS_PROM_SWAP 0x0005e800
#define HPC3_PBUS_GEN_OUT 0x0005f000
#define HPC3_PBUS_BBRAM 0x00060000
#define HPC1_HDD_CTL_EOCHAIN 0x80000000
#define HPC1_HDD_CTL_EOPACKET 0x80000000
#define HPC1_HDD_CTL_INTR 0x00008000
#define HPC1_HDD_CTL_OWN 0x40000000
#define HPC1_HDD_CTL_BYTECNT(x) ((x) & 0x1fff)
#define HPC1_BIGENDIAN 0x000000c0
#define HPC1_REVSHIFT 0x00000006
#define HPC1_REVMASK 0x00000003
#define HPC1_REV15 0x00000001
#define HPC1_SCSI0_REGS 0x00000088
#define HPC1_SCSI0_REGS_SIZE 0x00000018
#define HPC1_SCSI0_CBP 0x00000004
#define HPC1_SCSI0_NDBP 0x00000008
#define HPC1_SCSI0_BC 0x00000000
#define HPC1_SCSI0_CTL 0x0000000c
#define HPC1_SCSI0_DEV 0x00000014
#define HPC1_SCSI0_DMACFG 0x00000010
#define HPC1_SCSI0_GIO 0x00001008
#define HPC1_SCSI0_PIOCFG 0x00001014
#define HPC1_SCSI_DMACTL_RESET 0x01
#define HPC1_SCSI_DMACTL_FLUSH 0x02
#define HPC1_SCSI_DMACTL_DIR 0x10
#define HPC1_SCSI_DMACTL_ACTIVE 0x80
#define HPC1_ENET_REGS 0x00000000
#define HPC1_ENET_REGS_SIZE 0x00000100
#define HPC1_ENET_INTDELAY 0x0000002c
#define HPC1_ENET_INTDELAY_OFF 0x01000000
#define HPC1_ENETR_CBP 0x00000054
#define HPC1_ENETR_NDBP 0x00000050
#define HPC1_ENETR_BC 0x00000048
#define HPC1_ENETR_CTL 0x00000038
#define HPC1_ENETR_CTL_ACTIVE 0x00004000
#define HPC1_ENETR_RESET 0x0000003c
#define HPC1_ENETR_RESET_CH 0x0001
#define HPC1_ENETR_RESET_CLRINT 0x0002
#define HPC1_ENETR_RESET_LOOPBK 0x0004
#define HPC1_ENETR_RESET_CLRRBO 0x0008
#define HPC1_ENETX_CBP 0x00000020
#define HPC1_ENETX_NDBP 0x00000010
#define HPC1_ENETX_CFXBP 0x00000024
#define HPC1_ENETX_PFXBP 0x00000028
#define HPC1_ENETX_BC 0x00000014
#define HPC1_ENETX_CTL 0x00000034
#define HPC1_ENETX_CTL_ACTIVE 0x00400000
#define HPC1_ENETR_FIFO 0x0002c000
#define HPC1_ENETR_FIFO_SIZE 0x00001fff
#define HPC1_ENETX_FIFO 0x0002e000
#define HPC1_ENETX_FIFO_SIZE 0x00001fff
#define HPC1_SCSI0_DEVREGS 0x0000011f
#define HPC1_SCSI0_DEVREGS_SIZE 0x00000008
#define HPC1_ENET_DEVREGS 0x00000100
#define HPC1_ENET_DEVREGS_SIZE 0x00000020
#define HPC1_PBUS_BBRAM 0x00000e00
#define HPC1_LPT_REGS 0x000000a8
#define HPC1_LPT_REGS_SIZE 0x00000018
#define HPC1_LPT_BC 0x00000000
#define HPC1_LPT_CBP 0x00000004
#define HPC1_LPT_NDBP 0x00000008
#define HPC1_LPT_CTL 0x0000000c
#define HPC1_LPT_DEV 0x00000010
#define HPC1_LPT_DMACFG 0x00000014
#define HPC1_LPT_DEVREGS 0x00000132
#define HPC1_LPT_DEVREGS_SIZE 0x00000001
#define HPC1_DSP_DEVREGS 0x00000180
#define HPC1_DSP_DEVREGS_SIZE 0x00000038
#define HPC1_DSP_SRAM 0x00060000
#define HPC1_DSP_SRAM_SIZE 0x00020000
#define HPC1_AUX_REGS 0x000001bf
#define HPC1_AUX_CONSLED 0x01
#define HPC_AUX_EEPROM_PRE 0x01
#define HPC_AUX_EEPROM_CS 0x02
#define HPC_AUX_EEPROM_SK 0x04
#define HPC_AUX_EEPROM_DI 0x08
#define HPC_AUX_EEPROM_DO 0x10
#endif