summaryrefslogblamecommitdiffstats
path: root/private/ntos/nthals/halncr/i386/ncrpsi.h
blob: 2bda2f117ebc5b8bcc5a5f96cc2eb516db90db8e (plain) (tree)


































































































































































































































































































                                                                           
/*++

Copyright (C) 1992 NCR Corporation


Module Name:

    ncrpsi.h

Author:

Abstract:

    System equates for dealing with the NCR PSI boad.

++*/

#ifndef _NCRPSI_
#define _NCRPSI_

/* 
 * CAT_I is the only ASIC on the Power Supply Interface Module 
 */ 


/* UNDEFINED STATUS BITS */

#define PSI_Security_Switch_L5		0x01

/* END UNDEFINED STATUS BITS */


#define NUM_POWER_SUPPLIES_L5		5
#define NUM_FANS_L5			8

#define PSI_Interrupt_Status_L5		0x08

	/* Read Values */

#define PSI_DC_Failed0_L5		0x01
#define PSI_PwrSupplyMon_L5		0x02
#define PSI_Fault_L5			0x04
#define PSI_TimerAlarm_L5		0x08
#define PSI_DVM_Int_L5			0x20
#define PSI_StatusChange_L5		0x80

	/* Write Values */

#define PSI_ClearFault_L5		0x00


#define PSI_Status_Change_1_L5			0x09

#define PSI_Temp2_L5			0x02
#define PSI_Temp1_L5			0x04
#define PSI_Diag_Stat_L5			0x40

#define PSI_Status_Change_3_L5			0x0A
#define PSI_Fan1_Failed_L5		0x01
#define PSI_Fan2_Failed_L5		0x02
#define PSI_Fan3_Failed_L5		0x04
#define PSI_Fan4_Failed_L5		0x08
#define PSI_Fan5_Failed_L5		0x10
#define PSI_Fan6_Failed_L5		0x20
#define PSI_Fan7_Failed_L5		0x40
#define PSI_Fan8_Failed_L5		0x80

#define PSI_Fault_Status_L5			0x0B
#define PSI_VSB_OverCurrent_L5		0x01
#define PSI_PMC_OverCurrent_L5		0x02
#define PSI_SMC_OverCurrent_L5		0x04
#define PSI_TempFault_L5			0x80

#define PSI_TMS_Activity_L5			0x0C
#define PSI_TMSX_0			0x01
#define PSI_TMSX_1			0x02
#define PSI_TMSX_2			0x04
#define PSI_TMSX_3			0x08
#define PSI_TMSX_4			0x10
#define PSI_TMSX_5			0x20
#define PSI_TMSX_MC			0x40
#define PSI_TMSX_Spare			0x80

#define PSI_General_XS1_L5			0x0D

	/* Read Values */

#define PSI_Red_Disk_LED_L5		0x01
#define PSI_Grn_Disk_LED_L5		0x02
#define PSI_Red_Stat_LED_L5		0x04
#define PSI_Grn_Stat_LED_L5		0x08
#define PSI_Diag_Stat_L5			0x40
#define PSI_Q_Cold_Reset_L5		0x80

/* Write Values */

#define PSI_Red_Disk_LED_Off_L5		0x00
#define PSI_Red_Disk_LED_On_L5		0x10
#define PSI_Grn_Disk_LED_Off_L5		0x01
#define PSI_Grn_Disk_LED_On_L5		0x11
#define PSI_Red_Stat_LED_Off_L5		0x02
#define PSI_Red_Stat_LED_On_L5		0x12
#define PSI_Grn_Stat_LED_Off_L5		0x03
#define PSI_Grn_Stat_LED_On_L5		0x13
#define PSI_Diag_Stat_Off_L5		0x06
#define PSI_Diag_Stat_On_L5		0x16
#define PSI_Assert_Cold_Reset_L5		0x07
#define PSI_Unassert_Cold_Reset_L5	0x17

#define PSI_Sys_Status_L5			0x0E
#define PSI_S_128_256_L5			0x04
#define PSI_Test_L5			0x08
#define PSI_Enable_Fault_L5		0x40
#define PSI_Enable_HX_Off_L5		0x80
		

#define PSI_Pwr_Supply_Status_L5		0x8000

	/* read values */

#define PSI_DC_Fail0			0x01
#define PSI_AC_Fail0			0x02
#define PSI_PSMon_INT			0x04
#define PSI_PowerOff_Request		0x08
#define PSI_HX_Off			0x10
#define PSI_SecuritySwitch_On		0x20
#define PSI_CmosBattery_Low		0x40
#define PSI_CmosBattery_Fail		0x80

	/* write values */

#define PSI_Clear_PowerOff_Request	0x13
#define PSI_Clear_HXOff_Request		0x14
#define PSI_Clear_CmosBattery_Fail	0x17

#define PSI_Pwr_Supply_Mask_L5			0x8001

	/* read values */

#define PSI_Redundant_Config		0x20

	/* write values */

#define PSI_PowerSupply1_Mask		0x10
#define PSI_PowerSupply2_Mask		0x11
#define PSI_PowerSupply3_Mask		0x12
#define PSI_PowerSupply4_Mask		0x13
#define PSI_PowerSupply5_Mask		0x14

#define PSI_Pwr_Supply_Pres_L5			0x8002
#define PSI_PowerSupply1_Present		0x01
#define PSI_PowerSupply2_Present		0x02
#define PSI_PowerSupply3_Present		0x04
#define PSI_PowerSupply4_Present		0x08
#define PSI_PowerSupply5_Present		0x10
#define PSI_UPS_Present			0x20	
#define PSI_True				0x40
#define PSI_PowerSupply_Failure		0x80

#define PSI_Pwr_Supply_DCFail_L5		0x8003
#define PSI_DcFail1			0x01
#define PSI_DcFail2			0x02
#define PSI_DcFail3			0x04
#define PSI_DcFail4			0x08
#define PSI_DcFail5			0x10
#define PSI_DcChange			0x80

#define PSI_Pwr_Supply_AcFail_L5	0x8004
#define PSI_AcFail1			0x01
#define PSI_AcFail2			0x02
#define PSI_AcFail3			0x04
#define PSI_AcFail4			0x08
#define PSI_AcFail5			0x10
#define PSI_AcChange			0x80

#define PSI_Pwr_Supply_Fail_L5		0x8005
#define PSI_PwrFail1			0x01
#define PSI_PwrFail2			0x02
#define PSI_PwrFail3			0x04
#define PSI_PwrFail4			0x08
#define PSI_PwrFail5			0x10
#define PSI_PsChange			0x80

#define PSI_Pwr_Supply_UpsFail_L5	0x8006
#define PSI_UpsFail1			0x01
#define PSI_UpsFail2			0x02
#define PSI_UpsFail3			0x04
#define PSI_UpsFail4			0x08
#define PSI_UpsFail5			0x10
#define PSI_UpsPresent			0x20
#define PSI_UpsChargeLow			0x40
#define PSI_UpsChange			0x80

#define PSI_General_Ps_Status_L5	0x8007

	/* read values */

#define PSI_PowerSwitch_On	0x01
#define PSI_PowerSwitch_Enabled	0x02
#define PSI_Alarm_Enabled	0x08
#define PSI_SecureSwitch_Enabled	0x10
#define PSI_Cold_Reset		0x20
#define PSI_Cold_Start		0x80

	/* write values */

#define PSI_SoftwarePowerDown0	0x00 
#define PSI_SoftwarePowerDown1	0x10
#define PSI_Clear_AlarmEnable	0x01
#define PSI_Set_AlarmEnable	0x11
#define PSI_Disable_FrontSwitch	0x02
#define PSI_Enable_FrontSwitch	0x12
#define PSI_LPB_Reset		0x13
#define PSI_SwClear_On		0x14
#define PSI_Clear_ColdReset	0x05
#define PSI_Set_ColdReset	0x15
#define PSI_Clear_ColdStart0	0x07
#define PSI_Clear_ColdStart1	0x17

#define PSI_DiskGroupEnable_L5		0x8010
#define PSI_DiskStatus_L5		0x8020
#define PSI_DiskLatchInstalled_L5	0x8028
#define PSI_Dvm_Select_L5		0x8030
#define PSI_Dvm_Int_En_L5		0x80
#define DVM_CONTROL			(0x8030)
#define DVM_DBASE			(0x8038)
#define	DVM_SAMPLE      		(0x80)
#define DVM_SAMPLE_TIME			(5000000) // 500ms in 100ns ticks

#define PSI_WDT_Command_Register_L5		0x804b

	/* write values */

#define PSI_Set_TDM_Bit					0x04

typedef struct _PSI_INFORMATION {
	union {
		CAT_REGISTERS CatRegs;
		struct {
			UCHAR Dummy0;		
			UCHAR Dummy1;		
			UCHAR Dummy2;		
			UCHAR Dummy3;		
			UCHAR Dummy4;		
			UCHAR Dummy5;		
			UCHAR Dummy6;		
			UCHAR Dummy7;		
			UCHAR InterruptStatus;
			UCHAR Status1;
			UCHAR Status3;
			UCHAR Fault;
			UCHAR Tms;
			UCHAR General1;
			UCHAR SystemConfig;
			UCHAR DummyF;		
		} PsiRegisters;
	} CatRegisters;

        /* Begin Subaddress space */
 
        UCHAR PowerSupplyStatus;              /* begin address 8000 */
        UCHAR PowerSupplyMask;
        UCHAR PowerSupplyPres;
        UCHAR PowerSupplyDcFail;
        UCHAR PowerSupplyAcFail;
        UCHAR PowerSupplyPsFail;
        UCHAR PowerSupplyUpsFail;
	UCHAR GeneralPowerSupplyStatus;
        UCHAR DiskPowerStatus[8];           /* begin address 8020 */
        UCHAR DiskInstallStatus[8];         /* begin address 8028 */
        UCHAR DvmSelect;                   /* begin address 8030 */
        UCHAR DvmData0;
        UCHAR DvmData1;
        UCHAR DvmData2;
        UCHAR DvmData3;

} PSI_INFORMATION, *PPSI_INFORMATION;

/* defines for union referencing */
#define INTERRUPT_STATUS	CatRegisters.PsiRegisters.InterruptStatus
#define STATUS_CHANGE_1		CatRegisters.PsiRegisters.Status1
#define STATUS_CHANGE_3		CatRegisters.PsiRegisters.Status3
#define GENERAL_1		CatRegisters.PsiRegisters.General1
#define FAULT_STATUS		CatRegisters.PsiRegisters.Fault
#define SYSTEM_CONFIG		CatRegisters.PsiRegisters.SystemConfig

#define PSI_SHUTDOWN	0   /* tells kernel power fail code to shutdown */
#define PSI_POWERFAIL	1   /* tells kernel power fail code to powerfail */


#endif // _NCRPSI_