NT4/private/ntos/nthals/halncr/i386/ncrarb.h
2020-09-30 17:12:29 +02:00

158 lines
3.6 KiB
C

/*++
Copyright (C) 1992 NCR Corporation
Module Name:
ncrarb.h
Author:
Abstract:
System equates for dealing with the NCR Arbiter ASIC.
++*/
#ifndef _NCRARB_
#define _NCRARB_
/* Level 4 Arbiter ASIC ID */
#define SBA_ID_L4 0xC1
/* Arbiter Register Addresses and their bit definitions */
#define SBA_Dev_Id 0x00
#define SBA_Dev_Info 0x01
#define SBA_CAT_Cntl1 0x02
#define SBA_Extended_Reg_Data 0x03
#define SBA_Extended_Reg_Addr 0x06
#define SBA_Intr_Stat1 0x08
# define SBA_Proto_Err_A 0x80
# define SBA_Proto_Err_B 0x40
# define SBA_Toe_A 0x20
# define SBA_Toe_B 0x10
# define SBA_Elatchd_A 0x08
# define SBA_Elatchd_B 0x04
# define SBA_Par_Int_A 0x02
# define SBA_Par_Int_B 0x01
#define SBA_Intr_Stat2 0x09
# define SBA_Reserved 0x80
# define SBA_Sw_Nmi 0x40
# define SBA_Error_Int 0x20
# define SBA_Power_Fail 0x10
# define SBA_Exp_Cougar_Nmi 0x08
# define SBA_Exp_Mc_Toe 0x04
# define SBA_Cougar_Nmi 0x02
# define SBA_Mc_Toe 0x01
#define SBA_SysInt_Enables 0x0A
# define SBA_Toe_S 0x80
# define SBA_Par_Int_S 0x40
# define SBA_Err_Int_S 0x20
# define SBA_Power_Fail_S 0x10
# define SBA_Exp_Cougar_Nmi_S 0x08
# define SBA_Exp_Mc_Toe_S 0x04
# define SBA_Cougar_Nmi_S 0x02
# define SBA_Mc_Toe_S 0x01
#define SBA_GNMI_Enables 0x0B
# define SBA_Toe_G 0x80
# define SBA_Par_Int_G 0x40
# define SBA_Err_Int_G 0x20
# define SBA_Power_Fail_G 0x10
# define SBA_Exp_Cougar_Nmi_G 0x08
# define SBA_Exp_Mc_Toe_G 0x04
# define SBA_Cougar_Nmi_G 0x02
# define SBA_Mc_Toe_G 0x01
#define SBA_Control 0x0C
#define SBA_Intr_Clear 0x0D
# define SBA_Err_Int_Clr 0x10
# define SBA_Par_Clr_A 0x08
# define SBA_Par_Clr_B 0x04
# define SBA_Err_Clr_A 0x02
# define SBA_Err_Clr_B 0x01
#define SBA_Misc 0x0E
#define SBA_CAT_Cntl2 0x0F
# define SBA_Reset_Not_Compl 0x80
# define SBA_Cat_Inst_Perr 0x08
/* Extended Registers; Accessed via SBA_Extended_Reg_Data &
** SBA_Extended_Reg_Data above
*/
#define SBA_Size_Subaddress 0x08
#define SBA_Ext_Err0_BusA 0x00
#define SBA_Ext_Err1_BusA 0x01
#define SBA_Ext_Err2_BusA 0x02
# define SBA_ErrParInt 0x20
#define SBA_Ext_Err3_BusA 0x03
#define SBA_Ext_Err4_BusB 0x04
#define SBA_Ext_Err5_BusB 0x05
#define SBA_Ext_Err6_BusB 0x06
#define SBA_Ext_Err7_BusB 0x07
/* Valuable Arbiter error information to be captured when SYS_INT or
** G_NMI occurs.
*/
typedef struct SBA_INFO {
UCHAR Flag; /* for state of information in struct */
union {
CAT_REGISTERS CatRegs;
struct {
UCHAR Dummy0;
UCHAR Dummy1;
UCHAR Dummy2;
UCHAR Dummy3;
UCHAR Dummy4;
UCHAR Dummy5;
UCHAR Dummy6;
UCHAR Dummy7;
UCHAR InterruptStatus1;
UCHAR InterruptStatus2;
UCHAR SysIntEnables;
UCHAR GlobalNmiEnables;
UCHAR ArbControl;
UCHAR InterruptClear;
UCHAR Misc;
UCHAR DummyF;
} ArbRegisters;
} CatRegisters;
UCHAR ExtError0BusA; /* for PAR_INT */
UCHAR ExtError1BusA; /* for PAR_INT */
UCHAR ExtError2BusA; /* for ERROR_L */
UCHAR ExtError3BusA; /* for ERROR_L */
UCHAR ExtError4BusB; /* for PAR_INT */
UCHAR ExtError5BusB; /* for PAR_INT */
UCHAR ExtError6BusB; /* for ERROR_L */
UCHAR ExtError7BusB; /* for ERROR_L */
} SBA_INFO, *PSBA_INFO;
/* defines for union referencing */
#define Intr_Stat1 CatRegisters.ArbRegisters.InterruptStatus1
#define Intr_Stat2 CatRegisters.ArbRegisters.InterruptStatus2
#define SysIntEnables CatRegisters.ArbRegisters.SysIntEnables
#define GNMIEnables CatRegisters.ArbRegisters.GlobalNmiEnables
#define ArbControl CatRegisters.ArbRegisters.ArbControl
#define InterruptClear CatRegisters.ArbRegisters.InterruptClear
#define Misc CatRegisters.ArbRegisters.Misc
#endif // _NCRARB_