diff options
author | Chasel, Chiu <chasel.chiu@intel.com> | 2018-10-19 17:10:30 +0800 |
---|---|---|
committer | Chasel, Chiu <chasel.chiu@intel.com> | 2018-10-25 17:01:36 +0800 |
commit | b1cc6f672f3b924cdb190e5b92db3b47f46a8911 (patch) | |
tree | 6422a8a03f085dcbec590ef45193af008d1bcaaf /IntelFsp2Pkg/FspSecCore/SecMain.h | |
parent | 5061efe70d020a6811788de2408531f661ef1e45 (diff) | |
download | edk2-b1cc6f672f3b924cdb190e5b92db3b47f46a8911.zip edk2-b1cc6f672f3b924cdb190e5b92db3b47f46a8911.tar.gz edk2-b1cc6f672f3b924cdb190e5b92db3b47f46a8911.tar.bz2 |
IntelFsp2Pkg: FSP should not override IDT
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1265
FSP should not override IDT table when it is initialized
by boot loader. IDT should be re-initialized in FSP only
when it is invalid.
To mitigate temporary memory usage a PCD
PcdFspMaxInterruptSupported created for platform to decide
how many interrupts the FSP IDT table can support.
Test: Verified on internal platform and boots successfully.
Cc: Jiewen Yao <Jiewen.yao@intel.com>
Cc: Desimone Nathaniel L <nathaniel.l.desimone@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Diffstat (limited to 'IntelFsp2Pkg/FspSecCore/SecMain.h')
-rw-r--r-- | IntelFsp2Pkg/FspSecCore/SecMain.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/IntelFsp2Pkg/FspSecCore/SecMain.h b/IntelFsp2Pkg/FspSecCore/SecMain.h index 291bc5c..19ac2fb 100644 --- a/IntelFsp2Pkg/FspSecCore/SecMain.h +++ b/IntelFsp2Pkg/FspSecCore/SecMain.h @@ -1,6 +1,6 @@ /** @file
- Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -29,8 +29,6 @@ #include <Library/FspCommonLib.h>
#include <FspEas.h>
-#define SEC_IDT_ENTRY_COUNT 34
-
typedef VOID (*PEI_CORE_ENTRY) ( \
IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, \
IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList \
@@ -38,7 +36,7 @@ typedef VOID (*PEI_CORE_ENTRY) ( \ typedef struct _SEC_IDT_TABLE {
EFI_PEI_SERVICES *PeiService;
- UINT64 IdtTable[SEC_IDT_ENTRY_COUNT];
+ UINT64 IdtTable[FixedPcdGet8 (PcdFspMaxInterruptSupported)];
} SEC_IDT_TABLE;
/**
|