mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
Raise TPL to high to disable CPU interrupt before 8259 legacy base vector is changed, then restore TPL level at last when 8259 initialization is done.
Signed-off-by: Li Elvin <elvin.li@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13901 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
25bc832666
commit
4fde0f15aa
@ -123,8 +123,10 @@ Interrupt8259SetVectorBase (
|
|||||||
IN UINT8 SlaveBase
|
IN UINT8 SlaveBase
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT8 Mask;
|
UINT8 Mask;
|
||||||
|
EFI_TPL OriginalTpl;
|
||||||
|
|
||||||
|
OriginalTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
|
||||||
//
|
//
|
||||||
// Set vector base for slave PIC
|
// Set vector base for slave PIC
|
||||||
//
|
//
|
||||||
@ -211,6 +213,8 @@ Interrupt8259SetVectorBase (
|
|||||||
|
|
||||||
IoWrite8 (LEGACY_8259_CONTROL_REGISTER_SLAVE, LEGACY_8259_EOI);
|
IoWrite8 (LEGACY_8259_CONTROL_REGISTER_SLAVE, LEGACY_8259_EOI);
|
||||||
IoWrite8 (LEGACY_8259_CONTROL_REGISTER_MASTER, LEGACY_8259_EOI);
|
IoWrite8 (LEGACY_8259_CONTROL_REGISTER_MASTER, LEGACY_8259_EOI);
|
||||||
|
|
||||||
|
gBS->RestoreTPL (OriginalTpl);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user