mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
10 KiB
207 lines
10 KiB
;++
|
|
;
|
|
; Module Name:
|
|
;
|
|
; astmp.inc
|
|
;
|
|
; Abstract:
|
|
;
|
|
; ASTMP include file
|
|
;
|
|
; Author:
|
|
; Quang Phan (v-quangp) 25-Jul-1992
|
|
;
|
|
; Modification:
|
|
; Quang Phan (v-quangp) 15-Sep-1993:
|
|
; Save MMIOtable and SPIsource in Pcr area.
|
|
; Quang Phan (v-quangp) 15-Dec-1992:
|
|
; Added new functions to the EBI2 call table.
|
|
;
|
|
;--
|
|
;*****************************
|
|
;
|
|
; The kernel leaves some space (64 byte) of the PCR for the HAL to use
|
|
; as it needs. Currently this space is used for some efficiency in
|
|
; some of the MP specific code and is highly implementation
|
|
; dependant.
|
|
;
|
|
PcHalData struc
|
|
PcrEBI2ProcessorID dd 0 ; EBI2 ProcessorID
|
|
PcrCpuLedRateCount dd 0 ; Cur. cnt for sampling CPU LED
|
|
PcrEBI2ProcInterruptHandle dd 0 ; EBI2 Processor Interrupt handle
|
|
PcrEBI2RaiseIrqlFunction dd 0 ; EBI2 ProcessorID
|
|
PcrEBI2LowerIrqlFunction dd 0 ; EBI2 ProcessorID
|
|
PcrEBI2portAddress0 dd 0 ; EBI2 Addr for Port0
|
|
PcrEBI2portAddress1 dd 0 ; EBI2 Addr for Port1
|
|
PcrEBI2portAddress2 dd 0 ; EBI2 Addr for Port2
|
|
PcrEBI2portAddress3 dd 0 ; EBI2 Addr for Port3
|
|
PcrEBI2MMIOtable dd 0 ; Addr of EBI2MMIO_Table
|
|
PcrEBI2SPIsource dd 0 ; SPI sources
|
|
PcHalData ends
|
|
;
|
|
;EBI2 Function call table:
|
|
;
|
|
ebi_2_func_tbl struc
|
|
GetNumProcs dd ? ;Func # 1
|
|
GetProcConf dd ? ;Func # 2
|
|
StartProc dd ? ;Func # 3
|
|
StopProc dd ? ;Func # 4
|
|
GetProcID dd ? ;Func # 5
|
|
EnableRAMCache dd ? ;Func # 6
|
|
DisableRAMCache dd ? ;Func # 7
|
|
FlushRAMCache dd ? ;Func # 8
|
|
ControlCacheRegion dd ? ;Func # 9
|
|
GetCacheControlInfo dd ? ;Func # 10
|
|
SetPanelUPS dd ? ;Func # 11
|
|
GetPanelUPS dd ? ;Func # 12
|
|
SetPanelProcGraphMode dd ? ;Func # 13
|
|
GetPanelProcGraphMode dd ? ;Func # 14
|
|
SetPanelProcGraphValue dd ? ;Func # 15
|
|
GetPanelProcGraphValue dd ? ;Func # 16
|
|
LogProcIdle dd ? ;Func # 17
|
|
LogProcBusy dd ? ;Func # 18
|
|
GetPanelAttnSwitchLatch dd ? ;Func # 19
|
|
GetPanelOffSwitchLatch dd ? ;Func # 20
|
|
GetPanelKeyPos dd ? ;Func # 21
|
|
GetPanelAlphaNumInfo dd ? ;Func # 22
|
|
GetPanelAlphaNum dd ? ;Func # 23
|
|
SetPanelAlphaNum dd ? ;Func # 24
|
|
SetPanelOffSwitchMode dd ? ;Func # 25
|
|
GetPanelOffSwitchMode dd ? ;Func # 26
|
|
GetIntSybsysType dd ? ;Func # 27
|
|
SetGlobalIntMask dd ? ;Func # 28
|
|
GetGlobalIntMask dd ? ;Func # 29
|
|
SetLocalIntMask dd ? ;Func # 30
|
|
GetLocalIntMask dd ? ;Func # 31
|
|
SetAdvIntMode dd ? ;Func # 32
|
|
SetIRQVectorAssign dd ? ;Func # 33
|
|
GetIRQVectorAssign dd ? ;Func # 34
|
|
GetNumPowerSupplies dd ? ;Func # 35
|
|
GetPowerSupplyInfo dd ? ;Func # 36
|
|
DeInitEBI dd ? ;Func # 37
|
|
SetLSIVector dd ? ;Func # 38
|
|
GetLSIVector dd ? ;Func # 39
|
|
SetSPIVector dd ? ;Func # 40
|
|
GetSPIVector dd ? ;Func # 41
|
|
SetIPIVector dd ? ;Func # 42
|
|
GetIPIVector dd ? ;Func # 43
|
|
SetIPIID dd ? ;Func # 44
|
|
GetIPIID dd ? ;Func # 45
|
|
GenIPI dd ? ;Func # 46
|
|
GenerateLSI dd ? ;Func # 47
|
|
GetNMISource dd ? ;Func # 48
|
|
GetSPISource dd ? ;Func # 49
|
|
GetLocalIRQStatus dd ? ;Func # 50
|
|
MaskableIntEOI dd ? ;Func # 51
|
|
NonMaskableIntEOI dd ? ;Func # 52
|
|
CancelInterrupt dd ? ;Func # 53
|
|
GetSysTimer dd ? ;Func # 54
|
|
GetSysTimerFreq dd ? ;Func # 55
|
|
GetNumMemBlocks dd ? ;Func # 56
|
|
GetNumMemBlocks16 dd ? ;Func # 57
|
|
GetMemInfoTable dd ? ;Func # 58
|
|
GetMemInfoTable16 dd ? ;Func # 59
|
|
GetMemoryErrorInfo dd ? ;Func # 60
|
|
GetRevision dd ? ;Func # 61
|
|
GetMMIOTableLen dd ? ;Func # 62
|
|
GetMMIOTable dd ? ;Func # 63
|
|
InitEBI dd ? ;Func # 64
|
|
GetThermalState dd ? ;Func # 65
|
|
ShutdownPowerSupply dd ? ;Func # 66
|
|
SimulatePowerFail dd ? ;Func # 67
|
|
SetPanelSwitchVisibility dd ? ;Func # 68
|
|
GetPanelSwitchVisibility dd ? ;Func # 69
|
|
GetGlobalIRQStatus dd ? ;Func # 70
|
|
FastSetLocalIntMask dd ? ;Func # 71
|
|
GetProcIntHandle dd ? ;Func # 72
|
|
RegSetLocalIntMask dd ? ;Func # 73
|
|
GetLocalIntMaskInfo dd ? ;Func # 74
|
|
AST_Invalid_Func dd 22 DUP (?)
|
|
OEM0 dd ? ;Func #97
|
|
OEM_Invalid_Func dd 31 DUP (?)
|
|
ebi_2_func_tbl ends
|
|
|
|
;
|
|
;*****************************
|
|
; Equates.
|
|
cr equ 0ah
|
|
lf equ 0dh
|
|
MaskAllIrqs equ 0700FFFBh ; EBI2's mask for all irqs
|
|
; (but irq2 for chaining)
|
|
NOT_ASSIGNED equ 0FFh ;used in IrqlToProcessor table,
|
|
;(irql not assigned to any proc yet)
|
|
;
|
|
;##qp: Temp fix the stall scale to a fix number for now.
|
|
;
|
|
DefaultStallScaleFactor equ 9 ; temp default value for Stall scale
|
|
WarmResetVector equ 0467h
|
|
CpuLedSamplingRate equ 10 ; 15ms * X
|
|
|
|
TIME_INCREMENT EQU 100144
|
|
|
|
;*****************************
|
|
;
|
|
;
|
|
; The following equates used for debugging HAL (ifdef'ed by DBG). The
|
|
; hex number will be displayed to the front panel as 'H xx'
|
|
; e.g. "DisplPanel HalEnableSystemInterruptEnter" will display as 'H 10'
|
|
; where HalEnableSystemInterruptEnter is equated to 010h.
|
|
;
|
|
HalEnableSystemInterruptEnter equ 010h
|
|
HalEnableSystemInterruptExit equ 011h
|
|
HalEnableSystemInterruptError equ 012h
|
|
HalDisableSystemInterruptEnter equ 015h
|
|
HalDisableSystemInterruptExit equ 016h
|
|
HalDisableSystemInterruptError equ 017h
|
|
HalEndSystemInterruptEnter equ 018h
|
|
HalEndSystemInterruptExit equ 019h
|
|
HalLowerIrqlEnter equ 020h
|
|
HalLowerIrqlExit equ 021h
|
|
HalRaiseIrqlEnter equ 022h
|
|
HalRaiseIrqlExit equ 023h
|
|
HalBeginSystemInterruptEnter equ 024h
|
|
HalBeginSystemInterruptExit equ 025h
|
|
HalStartProfileInterruptEnter equ 026h
|
|
HalStartProfileInterruptExit equ 027h
|
|
HalStopProfileInterruptEnter equ 028h
|
|
HalStopProfileInterruptExit equ 029h
|
|
HalClockInterruptEnter equ 030h
|
|
HalStartNextProcEnter equ 040h
|
|
HalStartNextProcExit equ 041h
|
|
HalStartNextProcProblem equ 0c0h
|
|
HalSpuriousInterrupt equ 0c1h
|
|
HalDisableInterruptProblem equ 0c2h
|
|
HalRaiseIrqlProblem equ 0c3h
|
|
HalSpuriousInterrupt2 equ 0c4h
|
|
HalSpuriousInterrupt3 equ 0c5h
|
|
HalSpuriousInterrupt4 equ 0c6h
|
|
;
|
|
;*** MACRO ***
|
|
;
|
|
;DisplPanel displays 'DisplCode' in hex to the front panel display
|
|
|
|
DisplPanel macro DisplCode
|
|
if DBG
|
|
stdCall _DisplPanel,<DisplCode>
|
|
endif ;DBG
|
|
endm
|
|
;
|
|
;CALL_EBI2 setups the MMIOTable argument, calls the specified EBI function
|
|
;'EBI2Function', and then cleans up the stack according to the number of
|
|
;arguments 'NumArg'
|
|
;
|
|
CALL_EBI2 macro EBI2Function,NumArg
|
|
lea eax,_EBI2_MMIOTable
|
|
push eax
|
|
lea edx, _EBI2_CallTab
|
|
call [edx]+EBI2Function
|
|
add esp,NumArg * 4 ;clean stack
|
|
endm
|
|
;
|
|
CALL_FastEBI2 macro EBI2Function,NumArg
|
|
lea edx, _EBI2_CallTab
|
|
call [edx]+EBI2Function
|
|
add esp,NumArg * 4 ;clean stack
|
|
endm
|
|
;
|
|
;end
|