Machine Check Exception Handling for a Pentium Pro Processor
If the MCA exception handler detects only Intel Pentium technology (style) MCE support on the platform, it does the following:
If an MCA driver is registered with the HAL, call the MCA driver ExceptionCallback function providing the contents of P5_MC_ADDR and P5_MC_TYPE register values. This callback routine can log the register values in NVRAM and return.
- Call KeBugCheckEx with the following four parameters, to halt the system:
- Low 32 bits of P5_MC_TYPE MSR
- Always zero
- High 32 bits of P5_MC_ADDR MSR
- Low 32 bits of P5_MC_ADDR MSR
If MCA support (Pentium Pro processor) on the platform is detected, the exception handler determines if the error is restartable. If not, it does the following:
Calls the MCA Driver ExceptionCallback routine to give the MCA driver a chance to log the errors in NVRAM.
- Calls KeBugCheckEx with the following four parameters, to halt the system:
- MCA bank number that generated MCE
- Address field from MCi_ADDR MSR for this MCA bank
- High 32 bits of MCi_STATUS MSR for this MCA bank
- Low 32 bits of MCi_STATUS MSR for this MCA bank
If the error is restartable, the exception handler queues a DPC which, when called, reports the MCA bank error to the MCA driver through the DpcCallback routine.