summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Addon/AmiLegacy16.binbin65536 -> 65536 bytes
-rw-r--r--BIOS_CUSTOM/DWI-AH810-R10测试问题汇总.xlsxbin2421442 -> 1324319 bytes
-rw-r--r--BIOS_CUSTOM/GRG_Logo_800x600.jpgbin32284 -> 0 bytes
-rw-r--r--BIOS_CUSTOM/GRG Logo_800 x 600.pngbin35798 -> 0 bytes
-rw-r--r--Board/EM/AAEONSecurity/AAEONSecurity.sdl2
-rw-r--r--Board/EM/Csm/CSM.chmbin447966 -> 450616 bytes
-rw-r--r--Board/EM/Csm/CSMKRNL.ASM127
-rw-r--r--Board/EM/Csm/csm.sd26
-rw-r--r--Board/EM/Csm/csm.sdl35
-rw-r--r--Board/EM/Csm/csm.unibin7022 -> 7836 bytes
-rw-r--r--Board/EM/FixedBootOrder/DefaultFixedBootOrder/DefaultFixedBootOrder.sd30
-rw-r--r--Board/EM/FixedBootOrder/FixedBootOrder.c104
-rw-r--r--Board/EM/Platform/AcpiPlatform.c6
-rw-r--r--Board/EM/Platform/Library/Protocol/GlobalNvsArea/GlobalNvsArea.h2
-rw-r--r--Board/EM/Setup/Advanced.vfr7
-rw-r--r--Board/EM/Setup/Boot.vfr5
-rw-r--r--Board/EM/Setup/Setup.unibin24786 -> 24786 bytes
-rw-r--r--Board/IO/F81216/F81216DXE.C6
-rw-r--r--Board/IO/F81866/BSP/PeiIoTable.h2
-rw-r--r--Board/IO/F81866/F81866.ASL10
-rw-r--r--Board/IO/F81866/F81866.SD30
-rw-r--r--Board/IO/F81866/F81866.UNIbin39562 -> 39290 bytes
-rw-r--r--Board/IO/F81866/F81866DXE.C6
-rw-r--r--Board/NB/NBSetup/NB.sd70
-rw-r--r--Board/NB/NBSetup/NB.unibin172598 -> 172600 bytes
-rw-r--r--Board/SB/SB.sdl13
-rw-r--r--Board/SB/SBSetup/SB.sd220
-rw-r--r--Board/SB/SBSetup/SB.unibin150330 -> 144652 bytes
-rw-r--r--CRB/CRB.sdl26
-rw-r--r--CRB/CRBLib.c12
-rw-r--r--CRB/CRBPei.c38
-rw-r--r--CRB/CSP.sdl160
-rw-r--r--Chipset/NB/hsw_1039.datbin65536 -> 65536 bytes
-rw-r--r--Chipset/NB/hsw_1039.ssf10
-rw-r--r--Chipset/SB/BA1561L2.LOMbin0 -> 68608 bytes
-rw-r--r--Chipset/SB/RTEG263.LOMbin71680 -> 0 bytes
-rw-r--r--Chipset/SB/SleepSmi.c135
-rw-r--r--Core/EM/AMITSE/commonoem.c41
-rw-r--r--Core/EM/CSM/CSM.c222
-rw-r--r--Core/EM/CSM/CSM.h37
-rw-r--r--Core/EM/CSM/CSM.mak8
-rw-r--r--Core/EM/CSM/CsmBsp.c48
-rw-r--r--Core/EM/CSM/CsmHwInfo.c129
-rw-r--r--Core/EM/CSM/CsmLib.c56
-rw-r--r--Core/EM/CSM/CsmOpROM.c424
-rw-r--r--Core/EM/CSM/PciInterrupts.c3
-rw-r--r--Core/EM/CSM/thunk/BlockIo/CsmBlkIoComponentName.c11
-rw-r--r--Core/EM/CSM/thunk/BlockIo/CsmBlockIo.c105
-rw-r--r--Core/EM/CSM/thunk/BlockIo/CsmEdd.h13
-rw-r--r--Core/EM/CSM/thunk/BlockIo/CsmInt13.c18
-rw-r--r--Core/EM/CSM/thunk/CsmVideo/UefiBiosVideo.c6
-rw-r--r--Core/EM/CSM/thunk/x86/thunk.c59
-rw-r--r--Core/EM/EfiOsBootOptionNames/EfiOsBootOrder.c120
-rw-r--r--Core/EM/PS2CTL/kbc.c75
-rw-r--r--Core/EM/PS2CTL/ps2main.c3
-rw-r--r--DW01AR11.zipbin2825723 -> 0 bytes
-rw-r--r--DW01AR12.zipbin2825831 -> 0 bytes
-rw-r--r--DW01AR13.zipbin2852320 -> 0 bytes
-rw-r--r--DW01AR14.zipbin2866482 -> 0 bytes
-rw-r--r--DW01AR15.zipbin2867086 -> 0 bytes
-rw-r--r--DW01AR16.zipbin2866836 -> 0 bytes
-rw-r--r--DW01AT12.zipbin2825606 -> 0 bytes
-rw-r--r--DW01AT13.zipbin2825743 -> 0 bytes
-rw-r--r--DW01VR10.zip (renamed from DW01AT11.zip)bin2825755 -> 2790389 bytes
-rw-r--r--DW03AR00.zipbin0 -> 2789075 bytes
-rw-r--r--DW03AR01.zipbin0 -> 2788636 bytes
-rw-r--r--DW03AR02.zipbin0 -> 2789903 bytes
-rw-r--r--DWF-B850-R10测试问题汇总.xlsxbin0 -> 13491 bytes
-rw-r--r--DWI-AH810-R10测试问题汇总.xlsxbin2382206 -> 0 bytes
-rw-r--r--HDACfg-0662-10EC0000.txt12
-rw-r--r--New_Project_01/HDACfg.bakbin552 -> 0 bytes
-rw-r--r--New_Project_01/HDACfg.datbin552 -> 552 bytes
-rw-r--r--ReferenceCode/AcpiTables/Dsdt/GloblNvs.asl2
-rw-r--r--RomImage/FitcBuild.bat2
-rw-r--r--RomImage/XmlFiles/Q87_8Mx2.xml13
-rw-r--r--SharkBayDT.veb34
76 files changed, 1194 insertions, 1329 deletions
diff --git a/Addon/AmiLegacy16.bin b/Addon/AmiLegacy16.bin
index e7ab684..de2579f 100644
--- a/Addon/AmiLegacy16.bin
+++ b/Addon/AmiLegacy16.bin
Binary files differ
diff --git a/BIOS_CUSTOM/DWI-AH810-R10测试问题汇总.xlsx b/BIOS_CUSTOM/DWI-AH810-R10测试问题汇总.xlsx
index 0b0bf6b..10f4ffc 100644
--- a/BIOS_CUSTOM/DWI-AH810-R10测试问题汇总.xlsx
+++ b/BIOS_CUSTOM/DWI-AH810-R10测试问题汇总.xlsx
Binary files differ
diff --git a/BIOS_CUSTOM/GRG_Logo_800x600.jpg b/BIOS_CUSTOM/GRG_Logo_800x600.jpg
deleted file mode 100644
index db8bb3f..0000000
--- a/BIOS_CUSTOM/GRG_Logo_800x600.jpg
+++ /dev/null
Binary files differ
diff --git a/BIOS_CUSTOM/GRG Logo_800 x 600.png b/BIOS_CUSTOM/GRG Logo_800 x 600.png
deleted file mode 100644
index cdb5771..0000000
--- a/BIOS_CUSTOM/GRG Logo_800 x 600.png
+++ /dev/null
Binary files differ
diff --git a/Board/EM/AAEONSecurity/AAEONSecurity.sdl b/Board/EM/AAEONSecurity/AAEONSecurity.sdl
index 2467d0b..b557745 100644
--- a/Board/EM/AAEONSecurity/AAEONSecurity.sdl
+++ b/Board/EM/AAEONSecurity/AAEONSecurity.sdl
@@ -43,7 +43,7 @@ End
TOKEN
Name = "SIGNATURE_MODEL_TAG"
- Value = "'$$IEI-SA22$$'"
+ Value = "'$$IEI-SA93$$'"
TokenType = Expression
TargetMAK = Yes
TargetH = Yes
diff --git a/Board/EM/Csm/CSM.chm b/Board/EM/Csm/CSM.chm
index bd06c00..1e33b10 100644
--- a/Board/EM/Csm/CSM.chm
+++ b/Board/EM/Csm/CSM.chm
Binary files differ
diff --git a/Board/EM/Csm/CSMKRNL.ASM b/Board/EM/Csm/CSMKRNL.ASM
new file mode 100644
index 0000000..a22341b
--- /dev/null
+++ b/Board/EM/Csm/CSMKRNL.ASM
@@ -0,0 +1,127 @@
+
+ TITLE CSMKRNL.ASM -- KERNEL TABLES / PROCEDURES
+
+;-------- DO NOT EDIT THIS FILE --------
+;
+; FILE WAS GENERATED AUTOMATICALY USING AMISDL v3.64.1065 Test Only (Mar 15 2013,03:42:45)
+;
+;-------- DO NOT EDIT THIS FILE --------
+;****************************************************************************
+;****************************************************************************
+;** **
+;** (C)Copyright 1985-2013, American Megatrends, Inc. **
+;** **
+;** All Rights Reserved. **
+;** **
+;** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+;** **
+;** Phone (770)-246-8600 **
+;** **
+;****************************************************************************
+;****************************************************************************
+;****************************************************************************
+;---------------------------------------------------------------------------
+; INCLUDE FILES
+;---------------------------------------------------------------------------
+
+ INCLUDE mbiosequ.equ
+ INCLUDE mbiosmac.mac
+ INCLUDE equates.equ
+
+;---------------------------------------------------------------------------
+; EXTERNS USED
+;---------------------------------------------------------------------------
+
+
+;---------------------------------------------------------------------------
+; SEGMENTS USED
+;---------------------------------------------------------------------------
+
+STARTUP_SEG SEGMENT PARA PUBLIC 'CODE' USE32
+STARTUP_SEG ENDS
+
+CSMOEM_CSEG SEGMENT PARA PUBLIC 'CODE' USE16
+CSMOEM_CSEG ENDS
+
+
+;---------------------------------------------------------------------------
+; CSMOEM_CSEG S E G M E N T STARTS
+;---------------------------------------------------------------------------
+CSMOEM_CSEG SEGMENT PARA PUBLIC 'CODE' USE16
+
+;<AMI_THDR_START>
+;---------------------------------------------------------------------------
+;
+; Name: CsmOemInterrupts
+;
+; Type: eLink Table
+;
+; Description:
+;
+; Referrals:
+;
+; Notes: eLink comments display the name of immediate Parent.
+;
+;---------------------------------------------------------------------------
+;<AMI_THDR_END>
+
+PUBLIC CsmOemInterrupts
+PUBLIC CsmOemInterruptsEnd
+
+CsmOemInterrupts LABEL WORD
+ mBODY_ID_AND_TBL_CSM_ENTRY_NEAR 00015h, NBINT15
+mEND_TBL_CSM CsmOemInterrupts
+
+;<AMI_THDR_START>
+;---------------------------------------------------------------------------
+;
+; Name: CsmOem16Functions
+;
+; Type: eLink Table
+;
+; Description:
+;
+; Referrals:
+;
+; Notes: eLink comments display the name of immediate Parent.
+;
+;---------------------------------------------------------------------------
+;<AMI_THDR_END>
+
+PUBLIC CsmOem16Functions
+PUBLIC CsmOem16FunctionsEnd
+
+CsmOem16Functions LABEL WORD
+ mBODY_ID_AND_TBL_CSM_ENTRY_NEAR 00007h, AhciApiModuleStart
+ mBODY_ID_AND_TBL_CSM_ENTRY_NEAR 0000Bh, SerialCallBackApiModuleStart
+ mBODY_ID_AND_TBL_CSM_ENTRY_NEAR 00008h, LegcaySredirModuleStart
+ mBODY_ID_AND_TBL_CSM_ENTRY_NEAR 00006h, EnableLegcaySredirModuleStart
+mEND_TBL_CSM CsmOem16Functions
+
+;---------------------------------------------------------------------------
+; CSMOEM_CSEG S E G M E N T ENDS
+;---------------------------------------------------------------------------
+CSMOEM_CSEG ENDS
+
+END
+
+
+;-------- DO NOT EDIT THIS FILE --------
+;
+; FILE WAS GENERATED AUTOMATICALY USING AMISDL v3.64.1065 Test Only (Mar 15 2013,03:42:45)
+;
+;-------- DO NOT EDIT THIS FILE --------
+;****************************************************************************
+;****************************************************************************
+;** **
+;** (C)Copyright 1985-2013, American Megatrends, Inc. **
+;** **
+;** All Rights Reserved. **
+;** **
+;** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+;** **
+;** Phone (770)-246-8600 **
+;** **
+;****************************************************************************
+;****************************************************************************
+;****************************************************************************
diff --git a/Board/EM/Csm/csm.sd b/Board/EM/Csm/csm.sd
index 165fea4..42c5fc9 100644
--- a/Board/EM/Csm/csm.sd
+++ b/Board/EM/Csm/csm.sd
@@ -13,16 +13,20 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/csm.sd 23 8/06/14 4:23p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/csm.sd 24 9/09/15 9:46a Olegi $
//
-// $Revision: 23 $
+// $Revision: 24 $
//
-// $Date: 8/06/14 4:23p $
+// $Date: 9/09/15 9:46a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/csm.sd $
//
+// 24 9/09/15 9:46a Olegi
+// [TAG] EIP237381
+// [Description] Aptio 4 CSM: add INT19 TRAP setup question
+//
// 23 8/06/14 4:23p Fasihm
// [TAG] EIP180681
// [Category] Improvement
@@ -123,9 +127,10 @@
//**********************************************************************
#ifdef SETUP_DATA_DEFINITION
- UINT8 ExpansionCardText;
+ UINT8 ExpansionCardText;
+ UINT8 I19Trap;
UINT8 ZipEmulation;
- UINT8 KeepGA20Active;
+ UINT8 KeepGA20Active;
// UINT8 CsmSupport;
#endif
@@ -150,6 +155,13 @@
option text = STRING_TOKEN(STR_CSM_OPROM_DISPLAY_KEEP_CURRENT), value = 0, flags = 0, key = 0;\
endoneof;
+#define CSM_CHECKBOX_I19TRAP\
+ oneof varid = SETUP_DATA.I19Trap,\
+ prompt = STRING_TOKEN(STR_CSM_I19_TRAP),\
+ help = STRING_TOKEN(STR_CSM_I19_TRAP_HELP),\
+ option text = STRING_TOKEN(STR_CSM_I19_TRAP_IMMEDIATE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;\
+ option text = STRING_TOKEN(STR_CSM_I19_TRAP_POSTPONED), value = 0, flags = 0;\
+ endoneof;
#if CSM_SET_ZIP_EMULATION_TYPE
@@ -180,6 +192,7 @@
CSM_ONEOF_KEEPGA20ACTIVE
CSM_ONEOF_EXPANSIONCARDTEXT
+ CSM_CHECKBOX_I19TRAP
CSM_ONEOF_ZIPEMULATION
#endif //#ifdef CONTROLS_WITH_DEFAULTS
@@ -216,7 +229,6 @@
#ifdef FORM_SET_GOTO
// Define goto commands for the forms defined in this file
- SEPARATOR
goto CSM_FORM_ID,
prompt = STRING_TOKEN(STR_CSM_FORM),
help = STRING_TOKEN(STR_CSM_FORM_HELP);
@@ -240,7 +252,7 @@
CSM_ONEOF_KEEPGA20ACTIVE
CSM_ONEOF_EXPANSIONCARDTEXT
-
+ CSM_CHECKBOX_I19TRAP
#if CSM_SET_ZIP_EMULATION_TYPE
CSM_ONEOF_ZIPEMULATION
#endif
diff --git a/Board/EM/Csm/csm.sdl b/Board/EM/Csm/csm.sdl
index 5aaf973..3526135 100644
--- a/Board/EM/Csm/csm.sdl
+++ b/Board/EM/Csm/csm.sdl
@@ -20,7 +20,7 @@ End
TOKEN
Name = "CSM16_VERSION_MINOR"
- Value = "76"
+ Value = "78"
Help = "CSM16 minor version"
TokenType = Integer
TargetMAK = Yes
@@ -29,7 +29,7 @@ End
TOKEN
Name = "CSM_VERSION_BUILD"
- Value = "81"
+ Value = "82"
Help = "CSM module build version"
TokenType = Integer
TargetMAK = Yes
@@ -86,15 +86,6 @@ TOKEN
End
TOKEN
- Name = "LEGACY_TO_EFI_BOOTRECORD_RETURN"
- Value = "0"
- Help = "This token controls the LegacyToEfi feature after legacy boot gives control to the boot record\Disabled: next boot option can be Legacy only.\Enabled: next boot option can be either Legacy or UEFI."
- TokenType = Boolean
- TargetH = Yes
- Token = "LEGACY_TO_EFI_DEFAULT" "=" "1"
-End
-
-TOKEN
Name = "LEGACY_TO_EFI_BOOT_BUFFER_SIZE"
Value = "0x300000"
Help = "Size of buffer used to save memory context before legacy boot."
@@ -198,6 +189,14 @@ TOKEN
End
TOKEN
+ Name = "CSM_ALLOW_LARGE_OPROMS"
+ Value = "0"
+ Help = "Enabling this switch allows CSM to load and execute legacy Option ROMs larger than 128K. If enabled, the >128KB size will be taken from PCIR structure, not from ROM header."
+ TokenType = Boolean
+ TargetH = Yes
+End
+
+TOKEN
Name = "PXE_BASECODE_ROM_FILE"
Value = "AddOn\Pxebase.lom"
Help = "PXE base code ROM file."
@@ -364,3 +363,17 @@ ELINK
Name = "CSM_INIT_LEGACY_MEMORY_FUNCTIONS"
InvokeOrder = ReplaceParent
End
+
+ELINK
+ Name = "CSM_16_CALL_COMPANION_FUNCTIONS"
+ InvokeOrder = ReplaceParent
+End
+
+TOKEN
+ Name = "ACPI_TIMER_IN_LEGACY_SUPPORT"
+ Value = "0"
+ Help = "Enable this token if ACPI timer needs to be used in AmiLegacy16 instead of 8254 timer for delay.\ If disabled 8254 timer will be used for creating delay."
+ TokenType = Boolean
+ TargetH = Yes
+ Token = "ACPI_SUPPORT" "=" "1"
+End \ No newline at end of file
diff --git a/Board/EM/Csm/csm.uni b/Board/EM/Csm/csm.uni
index fea891f..7539215 100644
--- a/Board/EM/Csm/csm.uni
+++ b/Board/EM/Csm/csm.uni
Binary files differ
diff --git a/Board/EM/FixedBootOrder/DefaultFixedBootOrder/DefaultFixedBootOrder.sd b/Board/EM/FixedBootOrder/DefaultFixedBootOrder/DefaultFixedBootOrder.sd
index 15e44b6..97811b7 100644
--- a/Board/EM/FixedBootOrder/DefaultFixedBootOrder/DefaultFixedBootOrder.sd
+++ b/Board/EM/FixedBootOrder/DefaultFixedBootOrder/DefaultFixedBootOrder.sd
@@ -180,7 +180,6 @@ STRING_TOKEN(STR_BOOT_ORDER_16)
SEPARATOR
SUBTITLE(STRING_TOKEN(STR_FIXED_BOOT_ORDER_SUBTITLE))
-suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
//LEGACY BOOT ITEM
suppressif ideqvallist SETUP_DATA.BootMode == 1 2;
label AUTO_ID(FIXED_BOOT_ITEM_LABEL1);
@@ -196,28 +195,6 @@ suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
label AUTO_ID(FIXED_BOOT_ITEM_LABEL3);
endif; //suppressif
#endif
-endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
-suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 0 ;
- suppressif ideqvallist SETUP_DATA.BootMode == 1 2;
- grayoutif TRUE ;
- oneof varid = SETUP_DATA.LegacyPriorities[0],
- prompt = STRING_TOKEN(STR_BOOT_ORDER_1),
- help = STRING_TOKEN(STR_BOOT_OPTION_HELP),
- option text = STRING_TOKEN(STR_BOOT_HDD), value = 0, flags = MANUFACTURING | DEFAULT;
- endoneof;
- endif ; // grayoutif TRUE ;
- endif ; // suppressif ideqvallist SETUP_DATA.BootMode == 1 2;
-
- suppressif ideqvallist SETUP_DATA.BootMode == 0 2;
- grayoutif TRUE ;
- oneof varid = SETUP_DATA.UefiPriorities[0],
- prompt = STRING_TOKEN(STR_BOOT_ORDER_1),
- help = STRING_TOKEN(STR_BOOT_OPTION_HELP),
- option text = STRING_TOKEN(STR_BOOT_HDD), value = 0, flags = MANUFACTURING | DEFAULT;
- endoneof;
- endif ; // grayoutif TRUE ;
- endif ; // suppressif ideqvallist SETUP_DATA.BootMode == 0 2;
-endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 0 ;
//(EIP107268+)>
#if USE_BCP_DEFAULT_PRIORITIES
//----------------------------------------------------------------------------------//
@@ -772,7 +749,7 @@ endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 0 ;
help = STRING_TOKEN(STR_HDD_BOOT_ORDER_HELP);
endif;
endif;
-suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
+
suppressif ideqvallist SETUP_DATA.BootMode == 1;
suppressif ideqvallist FIXED_BOOT_GROUP.LegacyODD == 0;
goto ODD_BOOT_FORM_ID,
@@ -820,7 +797,6 @@ suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
help = STRING_TOKEN(STR_USBFDD_BOOT_ORDER_HELP);
endif;
endif;
-endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
#endif
//--------------------------------------------------
// UEFI GROUP FORM GOTO ITEM
@@ -832,7 +808,7 @@ endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
help = STRING_TOKEN(STR_UEFI_HDD_BOOT_ORDER_HELP);
endif;
endif;
-suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
+
suppressif ideqvallist SETUP_DATA.BootMode == 0;
suppressif ideqvallist FIXED_BOOT_GROUP.UefiODD == 0;
goto UEFI_ODD_BOOT_FORM_ID,
@@ -881,7 +857,7 @@ suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
help = STRING_TOKEN(STR_UEFI_USBFDD_BOOT_ORDER_HELP);
endif;
endif;
-endif ; // suppressif ideqvallist SETUP_DATA.OnlyBootHDD == 1 ;
+
#endif //#ifdef FORM_SET_GOTO
diff --git a/Board/EM/FixedBootOrder/FixedBootOrder.c b/Board/EM/FixedBootOrder/FixedBootOrder.c
index ecebea1..5c3a3ed 100644
--- a/Board/EM/FixedBootOrder/FixedBootOrder.c
+++ b/Board/EM/FixedBootOrder/FixedBootOrder.c
@@ -467,110 +467,6 @@ extern FBO_INITIAL_GROUP INITIAL_LEGCAY_GROUP_FUNCTION;
FBO_INITIAL_GROUP *InitLegacyGroup = INITIAL_LEGCAY_GROUP_FUNCTION;
extern FBO_INITIAL_GROUP INITIAL_UEFI_GROUP_FUNCTION;
FBO_INITIAL_GROUP *InitUefiGroup = INITIAL_UEFI_GROUP_FUNCTION;
-
-#define CONFIG_PORT0 0x2E
-#define INDEX_PORT0 0x2E
-#define DATA_PORT0 0x2F
-#define SEND_BYTE_DELEY 0x200
-#define SEND_BYTE_ATEMPTS 0x10
-
-#define COM_BASE_ADDR 0x03f8
-
-#define LSR_OFFSET 0x05
-#define LCR_OFFSET 0x03
-#define DIV_MSB 0x01
-#define DIV_LSB 0
-
-#define TRANSMIT_READY_BIT 0x020
-#ifdef UART_INPUT_CLOCK
-UINTN UartInputClock=UART_INPUT_CLOCK;
-#else
-//
-// Set the default value((24000000/13)MHz input clock) if the UART_INPUT_CLOCK SDL token is not present.
-//
-UINTN UartInputClock=1843200;
-#endif
-
-#define BAUD_RATE_DIVISOR 115200
-
-#define DATA_BITS 3 // 0 - 5 bits / 1 - 6 bits
-// 2 - 7 bits / 3 - 8 bits
-// RSP BUGBUG #define STOP_BIT 0 // 0 - 1 stop bit
-#define STOP_BIT 1 // 0 - 1 stop bit
-// 1 - mutiple bits depending on the databits
-#define PARITY_BITS 0 // 0 - None / 1 enables parity
-#define BREAK_BIT 0 // 0 - No break
-#define DLAB_BIT 1 // 0 - Divisor Latch Disabled
-
-BOOLEAN SendByte(UINT8 Byte)
-{
- UINT8 Buffer8;
- UINT32 Cntr = 0;
-
- do
- {
- // Read the ready signal to see if the serial port is
- // ready for the next byte.
- Buffer8 = IoRead8(COM_BASE_ADDR + LSR_OFFSET);
- // Increment timeout counter.
- Cntr++;
- // Loop until the serial port is ready for the next byte.
- }
- while ( (Cntr < SEND_BYTE_DELEY) &&
- ((Buffer8 & TRANSMIT_READY_BIT) == FALSE) );
- if (Cntr < SEND_BYTE_DELEY){
-
- IoWrite8(COM_BASE_ADDR, Byte);
- return TRUE;
- } else return FALSE;
-
-}
-
-EFI_STATUS SerialOutput(
- IN CHAR8 *String
-)
-{
-//#if SERIAL_STATUS_SUPPORT
- UINT8 *Buffer, i;
- UINT32 Delay;
- BOOLEAN ByteSent;
-
- if (String == NULL) return EFI_SUCCESS;
- // first make data useable
- Buffer = String;
-
- // now send data one byte at a time until the string hits the end of string
- // or we hit the max number of characters
- while (*Buffer)
- {
- // replace "\n" with "\r\n"
- for (i = 0; i <= SEND_BYTE_ATEMPTS; i++){
- ByteSent = TRUE;
-
- if (*Buffer=='\n') ByteSent = SendByte('\r');
-
- if (ByteSent) ByteSent = SendByte(*Buffer);
-
- if (ByteSent) break;
- else
- for (Delay = 0; Delay <= 100000; Delay++);
- }
-
- // move Data pointer to the next byte if previous was sent
- if (ByteSent) Buffer++;
- else return EFI_SUCCESS;
- }
-//#endif
- return EFI_SUCCESS;
-}
-
-VOID SerialCheckpoint(UINT16 Checkpoint)
-{
- char s[20];
- Sprintf_s(s, sizeof(s), " == %X\n",Checkpoint);
- SerialOutput(s);
-}
-
//<AMI_PHDR_START>
//---------------------------------------------------------------------------
//
diff --git a/Board/EM/Platform/AcpiPlatform.c b/Board/EM/Platform/AcpiPlatform.c
index e7cbe97..3e34931 100644
--- a/Board/EM/Platform/AcpiPlatform.c
+++ b/Board/EM/Platform/AcpiPlatform.c
@@ -1067,9 +1067,9 @@ AcpiPlatformInit (
mGlobalNvsArea.Area->Revision = GLOBAL_NVS_AREA_REVISION_1;
-{
- mGlobalNvsArea.Area->ComIrqShareMode = gSetupData->F81216ComIrqShareMode ;
-}
+//{
+// mGlobalNvsArea.Area->ComIrqShareMode = gSetupData->F81216ComIrqShareMode ;
+//}
Status = pBS->InstallMultipleProtocolInterfaces (&ImageHandle,
&gEfiGlobalNvsAreaProtocolGuid,
diff --git a/Board/EM/Platform/Library/Protocol/GlobalNvsArea/GlobalNvsArea.h b/Board/EM/Platform/Library/Protocol/GlobalNvsArea/GlobalNvsArea.h
index 0734577..a087173 100644
--- a/Board/EM/Platform/Library/Protocol/GlobalNvsArea/GlobalNvsArea.h
+++ b/Board/EM/Platform/Library/Protocol/GlobalNvsArea/GlobalNvsArea.h
@@ -522,7 +522,7 @@ typedef struct {
UINT8 SPST; // (688) SATA port state, Bit0 - Port0, Bit1 - Port1, Bit2 - Port2, Bit3 - Port3
UINT8 ECLP; // (689) EC Low Power Mode: 1 - Enabled, 0 - Disabled
UINT8 INSC; // (690) Intel RMT Configuration
- UINT8 ComIrqShareMode;
+// UINT8 ComIrqShareMode;
} EFI_GLOBAL_NVS_AREA;
#pragma pack ()
diff --git a/Board/EM/Setup/Advanced.vfr b/Board/EM/Setup/Advanced.vfr
index 425c9dd..d6a6fe7 100644
--- a/Board/EM/Setup/Advanced.vfr
+++ b/Board/EM/Setup/Advanced.vfr
@@ -121,13 +121,6 @@ formset guid = ADVANCED_FORM_SET_GUID,
#include <SetupDefinitions.h>
#undef FORM_SET_GOTO
- SEPARATOR
-
- CHECKBOX_F81866_WDT_ENABLE
- suppressif ideqval SETUP_DATA.F81866WdtEnable == 0x0;
- NUMERIC_F81866_WDT_TIMER
- endif;
-
#if SETUP_GROUP_DYNAMIC_PAGES
SEPARATOR
suppressif ideqvallist DYNAMIC_PAGE_COUNT.PageCount == 0xFFFF;
diff --git a/Board/EM/Setup/Boot.vfr b/Board/EM/Setup/Boot.vfr
index bb80a8b..e2afabd 100644
--- a/Board/EM/Setup/Boot.vfr
+++ b/Board/EM/Setup/Boot.vfr
@@ -186,8 +186,6 @@ formset guid = BOOT_FORM_SET_GUID,
#include <SetupDefinitions.h>
#undef FORM_SET_ITEM
-
-#if !FIXED_BOOT_ORDER_SUPPORT //(EIP9585)
SEPARATOR
SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
@@ -213,12 +211,10 @@ formset guid = BOOT_FORM_SET_GUID,
help = STRING_TOKEN(STR_BBS_ORDER_HELP);
endif;
#endif
-#endif //#if !FIXED_BOOT_ORDER_SUPPORT //(EIP9585)
#define FORM_SET_GOTO
#include <SetupDefinitions.h>
#undef FORM_SET_GOTO
endform;
-#if !FIXED_BOOT_ORDER_SUPPORT //(EIP9585)
#if !defined(GROUP_BOOT_OPTIONS_BY_TAG) || GROUP_BOOT_OPTIONS_BY_TAG==1
form
formid = AUTO_ID(BBS_ORDER_FORM),
@@ -241,7 +237,6 @@ formset guid = BOOT_FORM_SET_GUID,
endif;
endform;
#endif
-#endif //#if !FIXED_BOOT_ORDER_SUPPORT //(EIP9585)
#define FORM_SET_FORM
#include <SetupDefinitions.h>
#undef FORM_SET_FORM
diff --git a/Board/EM/Setup/Setup.uni b/Board/EM/Setup/Setup.uni
index 110b53f..c13cd21 100644
--- a/Board/EM/Setup/Setup.uni
+++ b/Board/EM/Setup/Setup.uni
Binary files differ
diff --git a/Board/IO/F81216/F81216DXE.C b/Board/IO/F81216/F81216DXE.C
index a33944a..4963c1b 100644
--- a/Board/IO/F81216/F81216DXE.C
+++ b/Board/IO/F81216/F81216DXE.C
@@ -421,10 +421,10 @@ static EFI_STATUS COM_Init(
{
case isGetSetupData:
// // Disable IODecode?
- if((!dev->DeviceInfo->Implemented) || (!dev->NvData.DevEnable)) {
+ // if((!dev->DeviceInfo->Implemented) || (!dev->NvData.DevEnable)) {
// LoopCspIoDecodeListInit(NULL,AmiSio);
- ClearDevResource(dev);
- }
+ // ClearDevResource(dev);
+ // }
break;
case isPrsSelect:
diff --git a/Board/IO/F81866/BSP/PeiIoTable.h b/Board/IO/F81866/BSP/PeiIoTable.h
index 4c5e205..ff51254 100644
--- a/Board/IO/F81866/BSP/PeiIoTable.h
+++ b/Board/IO/F81866/BSP/PeiIoTable.h
@@ -251,7 +251,7 @@ SIO_DATA F81866_PEI_Init_Table[] = {
{F81866_CONFIG_INDEX, 0xFF, 0x27},
{F81866_CONFIG_DATA, 0xF2, 0x04}, // GPIO_PROG_SEL = 01b , CLK_TUNE_PROG_EN = 0b
{F81866_CONFIG_INDEX, 0xFF, 0x2C},
- {F81866_CONFIG_DATA, 0x10, 0x4F},
+ {F81866_CONFIG_DATA, 0x10, 0x6F},
{F81866_CONFIG_INDEX, 0xFF, 0x27},
{F81866_CONFIG_DATA, 0xF2, 0x08}, // GPIO_PROG_SEL = 10b , CLK_TUNE_PROG_EN = 0b
{F81866_CONFIG_INDEX, 0xFF, 0x2C},
diff --git a/Board/IO/F81866/F81866.ASL b/Board/IO/F81866/F81866.ASL
index 3459f4d..8899ae8 100644
--- a/Board/IO/F81866/F81866.ASL
+++ b/Board/IO/F81866/F81866.ASL
@@ -348,7 +348,6 @@ Device(SIO1) {
ENFG(CGLD(Arg0)) //Enter Config Mode, Select LDN
Store(ACTR, Local0)
- Or(ShiftLeft(IOAH, 8),IOAL,Local1)
EXFG() //Exit Config Mode
If(LEqual(Local0, 0xFF)) {Return(0x0)} //LDN's not decoded, Device not present.
@@ -372,11 +371,10 @@ Device(SIO1) {
Else{ Return(0x00)} // Device not present
}
Else{//by Base1 & Base2 check
-// Or(ShiftLeft(IOAH, 8),IOAL,Local0)
-// If(Local0) { Return(0x0D)} // Device Detected & Not Active
+ Or(ShiftLeft(IOAH, 8),IOAL,Local0)
+ If(Local0) { Return(0x0D)} // Device Detected & Not Active
// Or(ShiftLeft(IOH2, 8),IOL2,Local0)
// If(Local0) { Return(0x0D)} // Device Detected & Not Active
- If(Local1) { Return(0x0D)} // Device Detected & Not Active
Return(0x00) // Device not present
}
} //Exit Config Mode
@@ -886,10 +884,6 @@ Method(SIOW, 1){
And(0xF0, ^SIO1.CR2D,^SIO1.CR2D) //disable kbc/mouse wakeup
And(0x7F, ^SIO1.RGE0, ^SIO1.RGE0) //disable ERP function,bit7
- ^SIO1.ENFG(0x07)
- And(^SIO1.OPT5, 0xDF, ^SIO1.OPT5)
- Store(^SIO1.OPT5, ^SIO1.OPT5)
-
^SIO1.EXFG()
}
diff --git a/Board/IO/F81866/F81866.SD b/Board/IO/F81866/F81866.SD
index d48621d..440861f 100644
--- a/Board/IO/F81866/F81866.SD
+++ b/Board/IO/F81866/F81866.SD
@@ -150,38 +150,8 @@
UINT8 F81866LptGpioConfiguration7xLevel[8];
UINT8 F81866LptGpioConfiguration8x[8]; // GPIO8x
UINT8 F81866LptGpioConfiguration8xLevel[8];
-
- UINT8 F81866WdtEnable ;
- UINT8 F81866WdtTimer ;
#endif //SETUP_DATA_DEFINITION
-#if defined(VFRCOMPILE) && !defined(CONTROLS_ARE_DEFINED)
-#define CONTROL_DEFINITION
-#endif
-
-#ifdef CONTROL_DEFINITION
-
- #define CHECKBOX_F81866_WDT_ENABLE\
- checkbox varid = SETUP_DATA.F81866WdtEnable,\
- prompt = STRING_TOKEN(STR_F81866_WDT_ENABLE),\
- help = STRING_TOKEN(STR_F81866_WDT_ENABLE),\
- flags = 1 | MANUFACTURING | RESET_REQUIRED,\
- key = 0,\
- endcheckbox;
-
- #define NUMERIC_F81866_WDT_TIMER\
- numeric varid = SETUP_DATA.F81866WdtTimer,\
- prompt = STRING_TOKEN(STR_F81866_WDT_TIMER),\
- help = STRING_TOKEN(STR_F81866_WDT_TIMER),\
- flags = 0 | RESET_REQUIRED,\
- minimum = 0,\
- maximum = 255,\
- step = 1,\
- default = 16,\
- endnumeric;
-
-#endif //#ifdef CONTROL_DEFINITION
-
//-------------------------------------------------------------------------
//Select Top level menu itmem (forset) for you pages
//-------------------------------------------------------------------------
diff --git a/Board/IO/F81866/F81866.UNI b/Board/IO/F81866/F81866.UNI
index 7b45f2d..26468f4 100644
--- a/Board/IO/F81866/F81866.UNI
+++ b/Board/IO/F81866/F81866.UNI
Binary files differ
diff --git a/Board/IO/F81866/F81866DXE.C b/Board/IO/F81866/F81866DXE.C
index ed434f5..d1ce887 100644
--- a/Board/IO/F81866/F81866DXE.C
+++ b/Board/IO/F81866/F81866DXE.C
@@ -627,10 +627,10 @@ static EFI_STATUS COM_Init(
switch (InitStep)
{
case isGetSetupData:
- if((!dev->DeviceInfo->Implemented) || (!dev->NvData.DevEnable)) {
+// if((!dev->DeviceInfo->Implemented) || (!dev->NvData.DevEnable)) {
// LoopCspIoDecodeListInit(NULL,AmiSio);
- ClearDevResource(dev);
- }
+// ClearDevResource(dev);
+// }
break;
case isPrsSelect:
diff --git a/Board/NB/NBSetup/NB.sd b/Board/NB/NBSetup/NB.sd
index d1f0591..88b5f95 100644
--- a/Board/NB/NBSetup/NB.sd
+++ b/Board/NB/NBSetup/NB.sd
@@ -641,8 +641,8 @@
oneof varid = SETUP_DATA.PrimaryDisplay,\
prompt = STRING_TOKEN(STR_PRIMARY_VIDEO),\
help = STRING_TOKEN(STR_PRIMARY_VIDEO_HELP3),\
- option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN(STR_IGFX_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_IGFX_STRING), value = 0, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_PEG_STRING), value = 1, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_PCIE_STRING), value = 2, flags = RESET_REQUIRED, key = 0;\
endoneof;
@@ -651,27 +651,18 @@
oneof varid = SETUP_DATA.PrimaryDisplay,\
prompt = STRING_TOKEN(STR_PRIMARY_VIDEO),\
help = STRING_TOKEN(STR_PRIMARY_VIDEO_HELP4),\
- option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN(STR_IGFX_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_IGFX_STRING), value = 0, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_PCIE_STRING), value = 2, flags = RESET_REQUIRED, key = 0;\
endoneof;
-//#define NB_ONEOF_PRIMARYDISPLAY1\
-// oneof varid = SETUP_DATA.PrimaryDisplay,\
-// prompt = STRING_TOKEN(STR_PRIMARY_VIDEO),\
-// help = STRING_TOKEN(STR_PRIMARY_VIDEO_HELP5),\
-// option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_PEG_STRING), value = 1, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_PCIE_STRING), value = 2, flags = RESET_REQUIRED, key = 0;\
-// endoneof;
#define NB_ONEOF_PRIMARYDISPLAY1\
oneof varid = SETUP_DATA.PrimaryDisplay,\
prompt = STRING_TOKEN(STR_PRIMARY_VIDEO),\
help = STRING_TOKEN(STR_PRIMARY_VIDEO_HELP5),\
- option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_COMMON_AUTO), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_PEG_STRING), value = 1, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_PCIE_STRING), value = 2, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN(STR_IGFX_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
endoneof;
#endif // SwitchableGraphics_SUPPORT
@@ -886,18 +877,6 @@
option text = STRING_TOKEN (STR_COMMON_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
endoneof;
-//#define NB_ONEOF_IGDBOOTTYPE\
-// oneof varid = SETUP_DATA.IgdBootType,\
-// prompt = STRING_TOKEN(STR_VIDEO_BT_PROMPT),\
-// help = STRING_TOKEN(STR_VIDEO_BT_HELP),\
-// option text = STRING_TOKEN(STR_VIDEO_BT_DEFAULT), value = 0, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_CRT), value = 0x01, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP), value = 0x04, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_LFP), value = 0x08, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP3), value = 0x20, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP2), value = 0x40, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_LFP2), value = 0x80, flags = RESET_REQUIRED, key = 0;\
-// endoneof;
#define NB_ONEOF_IGDBOOTTYPE\
oneof varid = SETUP_DATA.IgdBootType,\
prompt = STRING_TOKEN(STR_VIDEO_BT_PROMPT),\
@@ -905,20 +884,12 @@
option text = STRING_TOKEN(STR_VIDEO_BT_DEFAULT), value = 0, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
option text = STRING_TOKEN(STR_VIDEO_BT_CRT), value = 0x01, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_VIDEO_BT_EFP), value = 0x04, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_LFP), value = 0x08, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_EFP3), value = 0x20, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_EFP2), value = 0x40, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_LFP2), value = 0x80, flags = RESET_REQUIRED, key = 0;\
endoneof;
-//#define NB_ONEOF_DISPLAYPIPEB\
-// oneof varid = SETUP_DATA.DisplayPipeB,\
-// prompt = STRING_TOKEN(STR_VIDEO_BT_PIPE_B_PROMPT),\
-// help = STRING_TOKEN(STR_VIDEO_BT_PIPE_B_HELP),\
-// option text = STRING_TOKEN(STR_VIDEO_BT_PIPE_B_DISABLED), value = 0, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_CRT), value = 0x01, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP), value = 0x04, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_LFP), value = 0x08, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP3), value = 0x20, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_EFP2), value = 0x40, flags = RESET_REQUIRED, key = 0;\
-// option text = STRING_TOKEN(STR_VIDEO_BT_LFP2), value = 0x80, flags = RESET_REQUIRED, key = 0;\
-// endoneof;
#define NB_ONEOF_DISPLAYPIPEB\
oneof varid = SETUP_DATA.DisplayPipeB,\
prompt = STRING_TOKEN(STR_VIDEO_BT_PIPE_B_PROMPT),\
@@ -926,6 +897,10 @@
option text = STRING_TOKEN(STR_VIDEO_BT_PIPE_B_DISABLED), value = 0, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
option text = STRING_TOKEN(STR_VIDEO_BT_CRT), value = 0x01, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN(STR_VIDEO_BT_EFP), value = 0x04, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_LFP), value = 0x08, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_EFP3), value = 0x20, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_EFP2), value = 0x40, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_VIDEO_BT_LFP2), value = 0x80, flags = RESET_REQUIRED, key = 0;\
endoneof;
#define NB_ONEOF_LCDPANELTYPE\
@@ -3827,7 +3802,7 @@ NB_ONEOF_GDXCENABLE // GdxcEnable
form formid = AUTO_ID(INTEL_IGFX_ID),
title = STRING_TOKEN(STR_INTEL_IGFX_FORM);
SUBTITLE(STRING_TOKEN(STR_INTEL_IGFX_FORM))
-suppressif TRUE ;
+
suppressif ideqval NB_PLATFORM_DATA.IGFXAvailable == 0 OR
ideqval SETUP_DATA.InternalGraphics == 0 OR
ideqval NB_PLATFORM_DATA.IGFXGopAvailable == 1;
@@ -3849,7 +3824,7 @@ suppressif TRUE ;
NB_NUMERIC_GFXTURBOIMON
endif;
-endif ;
+
SEPARATOR
suppressif ideqval NB_PLATFORM_DATA.PegAvailable == 0 OR
@@ -3884,13 +3859,6 @@ endif ;
// endif;
- NB_ONEOF_IGDBOOTTYPE
- suppressif ideqval SETUP_DATA.IgdBootType == 0x0;
-
- NB_ONEOF_DISPLAYPIPEB
-
- endif;
-
#if defined(RC_PEG_0) && (RC_PEG_0 == 1)
#if ( defined(SwitchableGraphics_SUPPORT) && (SwitchableGraphics_SUPPORT == 1) )
suppressif NOT ideqval SETUP_DATA.PrimaryDisplay == 4 OR
@@ -3934,27 +3902,23 @@ endif ;
endif;
-suppressif TRUE ;
suppressif NOT ideqval NB_PLATFORM_DATA.IGFXCapability == 1;
NB_ONEOF_INTERNALGRAPHICS
endif;
-endif ;
suppressif ideqval NB_PLATFORM_DATA.IGFXAvailable == 0 OR
ideqval SETUP_DATA.InternalGraphics == 0;
// NB_ONEOF_GTTSIZE
-suppressif TRUE ;
NB_ONEOF_APERTURESIZE
-endif ;
NB_ONEOF_IGDDVMT50PREALLOC
NB_ONEOF_IGDDVMT50TOTALALLOC
-suppressif TRUE ;
+
NB_ONEOF_LOWPOWERMODE
NB_ONEOF_PANELPOWERE
@@ -3962,7 +3926,7 @@ suppressif TRUE ;
goto IGFX_LCD_FORM_ID,
prompt = STRING_TOKEN(STR_IGFX_LCD),
help = STRING_TOKEN(STR_IGFX_LCD);
-endif ;
+
endif;
endform;
diff --git a/Board/NB/NBSetup/NB.uni b/Board/NB/NBSetup/NB.uni
index 8f768d1..cf6eb1c 100644
--- a/Board/NB/NBSetup/NB.uni
+++ b/Board/NB/NBSetup/NB.uni
Binary files differ
diff --git a/Board/SB/SB.sdl b/Board/SB/SB.sdl
index 5199327..fe5738c 100644
--- a/Board/SB/SB.sdl
+++ b/Board/SB/SB.sdl
@@ -874,11 +874,11 @@ PCIDEVICE
DeviceType = Slot
PCIBusSize = PciEx
##DW01_Custom_Support_LAN_PXE_Boot >>
- ROMFile = "Chipset\SB\RTEG263.LOM"
+ ROMFile = "Chipset\SB\BA1561L2.LOM"
OptionROM = Yes
CompressedROM = Yes
- DeviceID = 08168h
- VendorID = 010ech
+ DeviceID = 01539h
+ VendorID = 08086h
##DW01_Custom_Support_LAN_PXE_Boot <<
End
@@ -895,13 +895,6 @@ PCIDEVICE
Token = "RC_PORT_1" "=" "1"
DeviceType = Slot
PCIBusSize = PciEx
-##DW01_Custom_Support_LAN_PXE_Boot >>
- ROMFile = "Chipset\SB\RTEG263.LOM"
- OptionROM = Yes
- CompressedROM = Yes
- DeviceID = 08168h
- VendorID = 010ech
-##DW01_Custom_Support_LAN_PXE_Boot <<
End
PCIDEVICE
diff --git a/Board/SB/SBSetup/SB.sd b/Board/SB/SBSetup/SB.sd
index c5b20c6..d944b68 100644
--- a/Board/SB/SBSetup/SB.sd
+++ b/Board/SB/SBSetup/SB.sd
@@ -691,15 +691,6 @@
UINT8 ADspMode;
UINT8 NFCE;
-
- UINT8 AaeonWakeOnRtc; //AAEON_RTC_001_Elflo+
-// UINT8 FixedWakeOnRTCS5; //AAEON_RTC_001_Elflo-
-// UINT8 DynamicWakeOnRTCS5; //AAEON_RTC_001_Elflo-
- UINT8 AaeonRTCWakeupTimeDay;
- UINT8 AaeonRTCWakeupTimeHour;
- UINT8 AaeonRTCWakeupTimeMinute;
- UINT8 AaeonRTCWakeupTimeSecond;
- UINT8 AaeonRTCWakeupTimeMinuteIncrease;
#endif
#ifdef FORM_SET_TYPEDEF
@@ -718,98 +709,6 @@
//---------------------------------------------------------------------------
#ifdef CONTROL_DEFINITION
- #define AAEON_WAKEONRTC_DIS\
- text \
- help = STRING_TOKEN(STR_WAKE_ON_RTC_PROMPT_HELP), \
- text = STRING_TOKEN(STR_WAKE_ON_RTC_PROMPT), \
- text = STRING_TOKEN(STR_DISABLED), \
- flags = 0, \
- key = 0;
-
- #define AAEON_WAKEONRTC\
- oneof varid = SETUP_DATA.AaeonWakeOnRtc,\
- prompt = STRING_TOKEN(STR_WAKE_ON_RTC_PROMPT),\
- help = STRING_TOKEN(STR_WAKE_ON_RTC_PROMPT_HELP),\
- option text = STRING_TOKEN(STR_DISABLED), value=0, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;\
- option text = STRING_TOKEN(STR_WOR_FIXED), value=1, flags= RESET_REQUIRED;\
- option text = STRING_TOKEN(STR_WOR_DYNAMIC), value=2, flags= RESET_REQUIRED;\
- endoneof;
-
-//AAEON_RTC_001_Elflo- >>
-// #define AAEON_ONEOF_FIXED_WAKEONRTCS5\
-// oneof varid = SETUP_DATA.FixedWakeOnRTCS5,\
-// prompt = STRING_TOKEN(STR_FIXED_WAKE_ON_RTCS5_PROMPT),\
-// help = STRING_TOKEN(STR_FIXED_WAKE_ON_RTCS5_HELP),\
-// option text = STRING_TOKEN(STR_DISABLED), value=0, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;\
-// option text = STRING_TOKEN(STR_ENABLED), value=1, flags= RESET_REQUIRED;\
-// endoneof;
-//AAEON_RTC_001_Elflo- <<
-
- #define AAEON_NUM_RTCWAKEUP_TIMEDAY\
- numeric varid = SETUP_DATA.AaeonRTCWakeupTimeDay,\
- prompt = STRING_TOKEN(STR_RTC_WAKEUP_DAY_PROMPT),\
- help = STRING_TOKEN(STR_RTC_DAY_HELP),\
- flags = RESET_REQUIRED,\
- minimum = 0,\
- maximum = 31,\
- step = 1,\
- default = 0,\
- endnumeric;
-
- #define AAEON_NUM_RTCWAKEUP_TIMEHOUR\
- numeric varid = SETUP_DATA.AaeonRTCWakeupTimeHour,\
- prompt = STRING_TOKEN(STR_RTC_WAKEUP_HOUR_PROMPT),\
- help = STRING_TOKEN(STR_RTC_HOUR_HELP),\
- flags = RESET_REQUIRED,\
- minimum = 0,\
- maximum = 23,\
- step = 1,\
- default = 0,\
- endnumeric;
-
- #define AAEON_NUM_RTCWAKEUP_TIMEMINUTE\
- numeric varid = SETUP_DATA.AaeonRTCWakeupTimeMinute,\
- prompt = STRING_TOKEN(STR_RTC_WAKEUP_MINUTE_PROMPT),\
- help = STRING_TOKEN(STR_TIME_MINUTE_HELP),\
- flags = RESET_REQUIRED,\
- minimum = 0,\
- maximum = 59,\
- step = 1,\
- default = 0,\
- endnumeric;
-
- #define AAEON_NUM_RTCWAKEUP_TIMESECOND\
- numeric varid = SETUP_DATA.AaeonRTCWakeupTimeSecond,\
- prompt = STRING_TOKEN(STR_RTC_WAKEUP_SECOND_PROMPT),\
- help = STRING_TOKEN(STR_TIME_SECOND_HELP),\
- flags = RESET_REQUIRED,\
- minimum = 0,\
- maximum = 59,\
- step = 1,\
- default = 0,\
- endnumeric;
-
-//AAEON_RTC_001_Elflo- >>
-// #define AAEON_ONEOF_DYNAMIC_WAKEONRTCS5\
-// oneof varid = SETUP_DATA.DynamicWakeOnRTCS5,\
-// prompt = STRING_TOKEN(STR_DYNAMIC_WAKE_ON_RTCS5_PROMPT),\
-// help = STRING_TOKEN(STR_DYNAMIC_WAKE_ON_RTCS5_HELP),\
-// option text = STRING_TOKEN(STR_DISABLED), value=0, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED;\
-// option text = STRING_TOKEN(STR_ENABLED), value=1, flags= RESET_REQUIRED;\
-// endoneof;
-//AAEON_RTC_001_Elflo- <<
-
- #define AAEON_NUM_RTCWAKEUP_TIMEMINUTEINCREASE\
- numeric varid = SETUP_DATA.AaeonRTCWakeupTimeMinuteIncrease,\
- prompt = STRING_TOKEN(STR_RTC_WAKEUP_MINUTE_INCREASE_PROMPT),\
- help = STRING_TOKEN(STR_TIME_MINUTE_INCREASE_HELP),\
- flags = RESET_REQUIRED,\
- minimum = 1,\
- maximum = 5,\
- step = 1,\
- default = 1,\
- endnumeric;
-
#define SB_ONEOF_ECTG\
oneof varid = SETUP_DATA.ECTG,\
prompt = STRING_TOKEN (STR_ECTG),\
@@ -1111,8 +1010,8 @@
prompt = STRING_TOKEN (STR_LAST_STATE_PROMPT),\
help = STRING_TOKEN (STR_LAST_STATE_HELP),\
option text = STRING_TOKEN (STR_POWER_OFF), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_POWER_ON), value = 1, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
- option text = STRING_TOKEN (STR_LAST_STATE), value = 2, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_POWER_ON), value = 1, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_LAST_STATE), value = 2, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING, key = 0;\
endoneof;
#define SB_ONEOF_PORT80\
@@ -1135,11 +1034,11 @@
oneof varid = SETUP_DATA.PchUsb30Mode,\
prompt = STRING_TOKEN (STR_PCH_USB30_MODE_PROMPT),\
help = STRING_TOKEN (STR_PCH_USB30_MODE_HELP),\
- option text = STRING_TOKEN (STR_COMMON_SMART_AUTO), value = 3, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_COMMON_SMART_AUTO), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN (STR_COMMON_AUTO), value = 2, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN (STR_COMMON_ENABLED), value = 1, flags = RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN (STR_COMMON_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_COMMON_MANUAL), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_COMMON_MANUAL), value = 4, flags = RESET_REQUIRED, key = 0;\
endoneof;
#define SB_ONEOF_PCHENABLERMH1\
@@ -1178,8 +1077,8 @@
oneof varid = SETUP_DATA.PchUsb20PinRoute,\
prompt = STRING_TOKEN (STR_PCH_ROUTE_USB20_PIN_TO_HC),\
help = STRING_TOKEN (STR_PCH_ROUTE_USB20_PIN_TO_HC_HELP),\
- option text = STRING_TOKEN (STR_ROUTE_PER_PIN), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_ROUTE_ALL_PIN_EHCI), value = 1, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_PER_PIN), value = 0, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_ALL_PIN_EHCI), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
option text = STRING_TOKEN (STR_ROUTE_ALL_PIN_XHCI), value = 2, flags = RESET_REQUIRED, key = 0;\
endoneof;
@@ -1188,24 +1087,24 @@
prompt = STRING_TOKEN (STR_PCH_ENABLE_USB30_PIN),\
help = STRING_TOKEN (STR_PCH_ENABLE_USB30_PIN_HELP),\
option text = STRING_TOKEN (STR_SELECT_PER_PIN), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_SELECT_ALL_PIN_DISABLE), value = 1, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_SELECT_ALL_PIN_ENABLE), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_SELECT_ALL_PIN_DISABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_SELECT_ALL_PIN_ENABLE), value = 2, flags = RESET_REQUIRED, key = 0;\
endoneof;
#define SB_ONEOF_USB20PERPINROUTE00\
oneof varid = SETUP_DATA.ManualModeUsb20PerPinRoute[OFFSET_0],\
prompt = STRING_TOKEN (STR_PCH_USB_20_PIN0),\
help = STRING_TOKEN (STR_EMPTY_STRING),\
- option text = STRING_TOKEN (STR_ROUTE_TO_EHCI), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_ROUTE_TO_XHCI), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_TO_EHCI), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_TO_XHCI), value = 1, flags = RESET_REQUIRED, key = 0;\
endoneof;
#define SB_ONEOF_USB20PERPINROUTE01\
oneof varid = SETUP_DATA.ManualModeUsb20PerPinRoute[OFFSET_1],\
prompt = STRING_TOKEN (STR_PCH_USB_20_PIN1),\
help = STRING_TOKEN (STR_EMPTY_STRING),\
- option text = STRING_TOKEN (STR_ROUTE_TO_EHCI), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_ROUTE_TO_XHCI), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_TO_EHCI), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_ROUTE_TO_XHCI), value = 1, flags = RESET_REQUIRED, key = 0;\
endoneof;
#define SB_ONEOF_USB20PERPINROUTE02\
@@ -1412,8 +1311,8 @@
oneof varid = SETUP_DATA.PchUsbPerPortCtl,\
prompt = STRING_TOKEN (STR_PCH_USB_PER_PORT_PROMPT),\
help = STRING_TOKEN (STR_PCH_USB_PER_PORT_HELP),\
- option text = STRING_TOKEN (STR_COMMON_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\
- option text = STRING_TOKEN (STR_COMMON_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_COMMON_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN (STR_COMMON_ENABLED), value = 1, flags = RESET_REQUIRED, key = 0;\
endoneof;
#if EHCI_CON_DISCON_WAKE_UP_SUPPORT
@@ -5517,14 +5416,6 @@
//---------------------------------------------------------------------------
#ifdef CONTROLS_WITH_DEFAULTS
- AAEON_WAKEONRTC //AAEON_RTC_001_Elflo+
-// AAEON_ONEOF_FIXED_WAKEONRTCS5 //AAEON_RTC_001_Elflo-
- AAEON_NUM_RTCWAKEUP_TIMEDAY
- AAEON_NUM_RTCWAKEUP_TIMEHOUR
- AAEON_NUM_RTCWAKEUP_TIMEMINUTE
- AAEON_NUM_RTCWAKEUP_TIMESECOND
-// AAEON_ONEOF_DYNAMIC_WAKEONRTCS5 //AAEON_RTC_001_Elflo-
- AAEON_NUM_RTCWAKEUP_TIMEMINUTEINCREASE
SB_ONEOF_ECTG
SB_ONEOF_PCHLAN
@@ -6328,40 +6219,23 @@
//
SB_ONEOF_PCHUSBPERPORTCTL
-// suppressif ideqval SETUP_DATA.PchUsbPerPortCtl == 0x0;
-// SB_ONEOF_PCHUSBPORT00
-// SB_ONEOF_PCHUSBPORT01
-// SB_ONEOF_PCHUSBPORT02
-//// SB_ONEOF_PCHUSBPORT03
-// SB_ONEOF_PCHUSBPORT04
-// SB_ONEOF_PCHUSBPORT05
-//// SB_ONEOF_PCHUSBPORT06
-//// SB_ONEOF_PCHUSBPORT07
-// suppressif ideqval SB_PLATFORM_DATA.LPTType == 1;
-//// SB_ONEOF_PCHUSBPORT08
-// SB_ONEOF_PCHUSBPORT09
-// SB_ONEOF_PCHUSBPORT10
-// SB_ONEOF_PCHUSBPORT11
-//// SB_ONEOF_PCHUSBPORT12
-//// SB_ONEOF_PCHUSBPORT13
-// endif;
suppressif ideqval SETUP_DATA.PchUsbPerPortCtl == 0x0;
- SB_ONEOF_PCHUSBPORT05
- SB_ONEOF_PCHUSBPORT04
- SB_ONEOF_PCHUSBPORT03
+ SB_ONEOF_PCHUSBPORT00
+ SB_ONEOF_PCHUSBPORT01
SB_ONEOF_PCHUSBPORT02
- SB_ONEOF_PCHUSBPORT11
- SB_ONEOF_PCHUSBPORT10
- SB_ONEOF_PCHUSBPORT09
+ SB_ONEOF_PCHUSBPORT03
+ SB_ONEOF_PCHUSBPORT04
+ SB_ONEOF_PCHUSBPORT05
+ SB_ONEOF_PCHUSBPORT06
+ SB_ONEOF_PCHUSBPORT07
+ suppressif ideqval SB_PLATFORM_DATA.LPTType == 1;
SB_ONEOF_PCHUSBPORT08
- SB_ONEOF_PCHUSBPORT01
- SB_ONEOF_PCHUSBPORT00
-// SB_ONEOF_PCHUSBPORT06
-// SB_ONEOF_PCHUSBPORT07
-// suppressif ideqval SB_PLATFORM_DATA.LPTType == 1;
-// SB_ONEOF_PCHUSBPORT12
-// SB_ONEOF_PCHUSBPORT13
-// endif;
+ SB_ONEOF_PCHUSBPORT09
+ SB_ONEOF_PCHUSBPORT10
+ SB_ONEOF_PCHUSBPORT11
+ SB_ONEOF_PCHUSBPORT12
+ SB_ONEOF_PCHUSBPORT13
+ endif;
// SEPARATOR
@@ -7474,11 +7348,6 @@
goto THERMAL_CONFIG_FORM_ID,
prompt = STRING_TOKEN (STR_THERMAL_CONFIGURATION),
help = STRING_TOKEN (STR_THERMAL_CONFIGURATION_HELP);
-
- goto S5_RTCWAKE_FORM_ID,
- prompt = STRING_TOKEN(STR_S5_RTCWAKE_FORM),
- help = STRING_TOKEN(STR_S5_RTCWAKE_FORM_HELP);
-
#endif
//----------------------------------------------------------------------------
@@ -7982,39 +7851,6 @@
#endif // End of SB_FORM_SATA_SFMS_OPTIONS
-//DW01_Custom_Support_RTC_Wake >>
- form formid = AUTO_ID(S5_RTCWAKE_FORM_ID),
- title = STRING_TOKEN(STR_S5_RTCWAKE_FORM);
-
- AAEON_WAKEONRTC //AAEON_RTC_001_Elflo+
-
-//AAEON_RTC_001_Elflo- >>
-// grayoutif ideqval SETUP_DATA.DynamicWakeOnRTCS5 == 1;
-// AAEON_ONEOF_FIXED_WAKEONRTCS5
-// endif;
-//AAEON_RTC_001_Elflo- <<
-
-// suppressif ideqval SETUP_DATA.FixedWakeOnRTCS5 == 0; //AAEON_RTC_001_Elflo-
- suppressif NOT ideqval SETUP_DATA.AaeonWakeOnRtc == 1; //AAEON_RTC_001_Elflo+
- AAEON_NUM_RTCWAKEUP_TIMEDAY
- AAEON_NUM_RTCWAKEUP_TIMEHOUR
- AAEON_NUM_RTCWAKEUP_TIMEMINUTE
- AAEON_NUM_RTCWAKEUP_TIMESECOND
- endif;
-//AAEON_RTC_001_Elflo- >>
-// SEPARATOR
-// grayoutif ideqval SETUP_DATA.FixedWakeOnRTCS5 == 1;
-// AAEON_ONEOF_DYNAMIC_WAKEONRTCS5
-// endif;
-//AAEON_RTC_001_Elflo- <<
-
-// suppressif ideqval SETUP_DATA.DynamicWakeOnRTCS5 == 0; //AAEON_RTC_001_Elflo-
- suppressif NOT ideqval SETUP_DATA.AaeonWakeOnRtc == 2; //AAEON_RTC_001_Elflo+
- AAEON_NUM_RTCWAKEUP_TIMEMINUTEINCREASE
- endif;
- endform; // AAEON_FORM_ID
-//DW01_Custom_Support_RTC_Wake <<
-
#endif
//----------------------------------------------------------------------------
//
diff --git a/Board/SB/SBSetup/SB.uni b/Board/SB/SBSetup/SB.uni
index 22a2ffc..ceb801a 100644
--- a/Board/SB/SBSetup/SB.uni
+++ b/Board/SB/SBSetup/SB.uni
Binary files differ
diff --git a/CRB/CRB.sdl b/CRB/CRB.sdl
index 1900690..5e6ecc5 100644
--- a/CRB/CRB.sdl
+++ b/CRB/CRB.sdl
@@ -2337,24 +2337,24 @@ TOKEN
Token = "WIN8_FEATURE_SUPPORT" "=" "0"
End
-##TOKEN
-## Name = "GC_MODE0"
-## Value = "{ 0, 80, 25, 0, 0 }"
-## Help = "Parameters of the graphica console text mode 0.\NOTE: Text resolution of the mode 0 must be 80 by 25\Format: {ModeNumber, TextColomns,TextRows, HorizontalPixels,VerticalPixels}"
-## TokenType = Expression
-## TargetH = Yes
-## Token = "WIN8_FEATURE_SUPPORT" "=" "1"
-##End
-
TOKEN
- Name = "DEFAULT_QUIET_BOOT"
- Value = "1"
- Help = "Default value of the Quiet Boot option"
- TokenType = Boolean
+ Name = "GC_MODE0"
+ Value = "{ 0, 80, 25, 0, 0 }"
+ Help = "Parameters of the graphica console text mode 0.\NOTE: Text resolution of the mode 0 must be 80 by 25\Format: {ModeNumber, TextColomns,TextRows, HorizontalPixels,VerticalPixels}"
+ TokenType = Expression
TargetH = Yes
Token = "WIN8_FEATURE_SUPPORT" "=" "1"
End
+##TOKEN
+## Name = "DEFAULT_QUIET_BOOT"
+## Value = "1"
+## Help = "Default value of the Quiet Boot option"
+## TokenType = Boolean
+## TargetH = Yes
+## Token = "WIN8_FEATURE_SUPPORT" "=" "1"
+##End
+
TOKEN
Name = "OPTIMIZE_BOOT_FV_COPY"
Value = "0"
diff --git a/CRB/CRBLib.c b/CRB/CRBLib.c
index 1a34a09..5369e6d 100644
--- a/CRB/CRBLib.c
+++ b/CRB/CRBLib.c
@@ -344,12 +344,12 @@ UINT32 ZprjHdaVerbTbl[] = {
// HDA Codec PnP ID : HDAUDIO\FUNC_01&VEN_10EC&DEV_0662&SUBSYS_10EC0000
// The number of verb command block : 13
-// NID 0x14 : 0x02014110
+// NID 0x14 : 0x02014010
// NID 0x15 : 0x4000C000
// NID 0x16 : 0x411111F0
-// NID 0x18 : 0x01A19120
+// NID 0x18 : 0x01A19020
// NID 0x19 : 0x411111F0
-// NID 0x1A : 0x0181312F
+// NID 0x1A : 0x0181302F
// NID 0x1B : 0x411111F0
// NID 0x1C : 0x411111F0
// NID 0x1D : 0x40B00001
@@ -372,7 +372,7 @@ UINT32 ZprjHdaVerbTbl[] = {
0x0017FF00,
// Pin widget 0x14 - FRONT (Port-D)
0x01471C10,
-0x01471D41,
+0x01471D40,
0x01471E01,
0x01471F02,
// Pin widget 0x15 - SURR (Port-A)
@@ -387,7 +387,7 @@ UINT32 ZprjHdaVerbTbl[] = {
0x01671F41,
// Pin widget 0x18 - MIC1 (Port-B)
0x01871C20,
-0x01871D91,
+0x01871D90,
0x01871EA1,
0x01871F01,
// Pin widget 0x19 - MIC2 (Port-F)
@@ -397,7 +397,7 @@ UINT32 ZprjHdaVerbTbl[] = {
0x01971F41,
// Pin widget 0x1A - LINE1 (Port-C)
0x01A71C2F,
-0x01A71D31,
+0x01A71D30,
0x01A71E81,
0x01A71F01,
// Pin widget 0x1B - LINE2 (Port-E)
diff --git a/CRB/CRBPei.c b/CRB/CRBPei.c
index e8cb3ef..fc93a20 100644
--- a/CRB/CRBPei.c
+++ b/CRB/CRBPei.c
@@ -558,44 +558,6 @@ EFI_STATUS EFIAPI CRBPEI_Init (
F81866ExitConfigMode();
}
// Parallel Port / Gpio multi function selection _End <<
-
- {
- F81866EnterConfigMode() ;
- F81866LDNSelect(F81866_LDN_WDT) ;
-
- switch( SetupData.F81866WdtEnable ) {
- case 1 : // WDT Enabled
- // Disable WDT
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~BIT5 ) ;
- // Clear WDT Status
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) | BIT6 ) ;
-
- // Configure WDT to Pulse Mode
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) | BIT4 ) ;
- // Configure WDT Pulse Width to 25ms
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~(BIT1 + BIT0) ) ;
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) | BIT0 ) ;
- // Configure WDT Polarity to Low Active
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~BIT2 ) ;
- // Configure WDT Reset via WDTRST#
- F81866ConfigRegisterWrite( 0xFA , F81866ConfigRegisterRead(0xFA) | BIT0 ) ;
-
- // Configure WDT Timer
- F81866ConfigRegisterWrite( 0xF6 , SetupData.F81866WdtTimer ) ;
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~BIT3 ) ; // Configure Timer Unit : 1 Second
-
- // Enable WDT
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) | BIT5 ) ;
- break ;
-
- default :
- case 0 : // WDT Disabled
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~BIT5 ) ;
- break ;
- }
-
- F81866ExitConfigMode() ;
- }
}
return EFI_SUCCESS;
}
diff --git a/CRB/CSP.sdl b/CRB/CSP.sdl
index 7a7b226..8fc30d0 100644
--- a/CRB/CSP.sdl
+++ b/CRB/CSP.sdl
@@ -791,6 +791,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO1 Core GPI Yes Yes No Desktop and Mobile: Available as GPIO1 only (Note 4).
+##Server: Multiplexed with TACH1.
TOKEN
Name = "GPIO_001"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -831,6 +833,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO6 Core GPI Yes Yes No Desktop and Mobile: Available as GPIO6 only (Note 4).
+##Server: Multiplexed with TACH2.
TOKEN
Name = "GPIO_006"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -839,6 +843,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO7 Core GPI Yes Yes No Desktop and Mobile: Available as GPIO7 only (Note 4).
+##Server: Multiplexed with TACH3.
TOKEN
Name = "GPIO_007"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -919,6 +925,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO17 Core GPI Yes Yes No Desktop and Mobile: Available as GPIO17 only (Note 4).
+##Server: Multiplexed with TACH0.
TOKEN
Name = "GPIO_017"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -1297,7 +1305,7 @@ TOKEN
End
TOKEN
Name = "GPIO_066"
- Value = "$(IS_NOT_GPIO)"
+ Value = "$(IS_GPIO)+$(IS_GPI)"
Help = "[0]:GPIO USE Select - 0:Native Mode/1:GPIO Mode.;\[1]:GPIO Input/Output Select.\[2]:GPIO Level Select.\[3]:GPIO Signal Invert(Only For GPIO_00~31).\[4]:GPIO Blink Enable(Only For GPIO_00~31).\[5]:GPIO Reset Select.\[15:6]:RESERVED"
TokenType = Integer
TargetEQU = Yes
@@ -1311,6 +1319,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO68 Core GPI No Yes No Desktop and Mobile: Available as GPIO68 only (Note 4).
+##Server: Multiplexed with TACH4.
TOKEN
Name = "GPIO_068"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -1319,6 +1329,8 @@ TOKEN
TargetEQU = Yes
TargetH = Yes
End
+##GPIO69 Core GPI No Yes No Desktop and Mobile: Available as GPIO69 only (Note 4).
+##Server: Multiplexed with TACH5.
TOKEN
Name = "GPIO_069"
Value = "$(IS_GPIO)+$(IS_GPI)"
@@ -1431,36 +1443,6 @@ TOKEN
Token = "F81866_HWM_PRESENT" "=" "1"
End
-## Board\IO\F81216\IO_F81216.SDL
-TOKEN
- Name = "F81216SEC_CLOCK"
- Value = "1"
- Help = "1/0 for 48Mhz/24MHz"
- TokenType = Integer
- TargetH = Yes
-End
-TOKEN
- Name = "F81216SEC_CONFIG_INDEX"
- Value = "0x4E"
- TokenType = Integer
- TargetEQU = Yes
- TargetH = Yes
-End
-TOKEN
- Name = "F81216SEC_CONFIG_DATA"
- Value = "0x4F"
- TokenType = Integer
- TargetEQU = Yes
- TargetH = Yes
-End
-TOKEN
- Name = "F81216SEC_CONFIG_MODE_ENTER_VALUE"
- Value = "0x67"
- Help = "Value to enter Configuration Mode.Please check your hardware\Default is 0x77.\others are 0xA0, 0x87, 0x67"
- TokenType = Integer
- TargetH = Yes
-End
-
## Core\EM\Recovery\Recovery.sdl
TOKEN
Name = "Recovery_SUPPORT"
@@ -1491,6 +1473,36 @@ ELINK
InvokeOrder = AfterParent
Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
End
+ELINK
+ Name = "{ CLOCK_SRC3, PCI_FUNCTION_NUMBER_PCH_PCIE_ROOT_PORT_4, 0 },"
+ Parent = "PCIEClockConfig"
+ InvokeOrder = AfterParent
+ Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
+End
+ELINK
+ Name = "{ CLOCK_SRC4, PCI_FUNCTION_NUMBER_PCH_PCIE_ROOT_PORT_5, 0 },"
+ Parent = "PCIEClockConfig"
+ InvokeOrder = AfterParent
+ Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
+End
+ELINK
+ Name = "{ CLOCK_SRC5, PCI_FUNCTION_NUMBER_PCH_PCIE_ROOT_PORT_6, 0 },"
+ Parent = "PCIEClockConfig"
+ InvokeOrder = AfterParent
+ Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
+End
+ELINK
+ Name = "{ CLOCK_SRC6, PCI_FUNCTION_NUMBER_PCH_PCIE_ROOT_PORT_7, 0 },"
+ Parent = "PCIEClockConfig"
+ InvokeOrder = AfterParent
+ Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
+End
+ELINK
+ Name = "{ CLOCK_SRC7, PCI_FUNCTION_NUMBER_PCH_PCIE_ROOT_PORT_8, 0 },"
+ Parent = "PCIEClockConfig"
+ InvokeOrder = AfterParent
+ Help = "Intel Flathead Creek, PCIE Slot#6(J13BU)"
+End
ELINK
Name = "ConInAvailabilityBeep,"
@@ -1541,7 +1553,7 @@ TOKEN
End
TOKEN
Name = "TSE_DEFAULT_SETUP_PASSWORD_SUPPORT"
- Value = "1"
+ Value = "0"
Help = "0 is default.set 1=> to Enable default setup password"
TokenType = Expression
TargetH = Yes
@@ -1582,7 +1594,7 @@ TOKEN
End
TOKEN
Name = "GC_MODE0"
- Value = "{ 0, 80, 25, 800, 600 }"
+ Value = "{ 0, 80, 25, 640, 480 }"
Help = "Parameters of the graphica console text mode 0.\NOTE: Text resolution of the mode 0 must be 80 by 25\Format: {ModeNumber, TextColomns,TextRows, HorizontalPixels,VerticalPixels}"
TokenType = Expression
TargetH = Yes
@@ -1607,7 +1619,7 @@ TOKEN
End
TOKEN
Name = "LOGO_FILE_NAME"
- Value = "BIOS_CUSTOM\GRG_Logo_800x600.jpg"
+ Value = "BIOS_CUSTOM\logo.jpg"
TokenType = Expression
TargetMAK = Yes
End
@@ -1654,7 +1666,7 @@ End
TOKEN
Name = "BBS_USB_DEVICE_TYPE_SUPPORT"
- Value = "0"
+ Value = "1"
Help = "Treat USB devices as a separate BBS device type"
TokenType = Boolean
TargetH = Yes
@@ -1686,7 +1698,7 @@ TOKEN
End
TOKEN
Name = "SYSTEM_PRODUCT_NAME"
- Value = "DW01"
+ Value = "DW03"
Help = "Specifies the System Product Name"
TokenType = Expression
TargetEQU = Yes
@@ -1708,7 +1720,7 @@ TOKEN
End
TOKEN
Name = "BASE_BOARD_PRODUCT_NAME"
- Value = "DW01"
+ Value = "DW03"
Help = "Specifies the Product Name"
TokenType = Expression
TargetEQU = Yes
@@ -1724,19 +1736,65 @@ TOKEN
# Token = "NUMBER_OF_BASEBOARDS" "=" "1"
End
-TOKEN
- Name = "TSE_MULTILINE_CONTROLS"
- Value = "1"
- Help = "Turns on multi line controls. Currently subtitle and static text controls are supported. Default is DISABLE"
- TokenType = Boolean
- TargetH = Yes
+PCIDEVICE
+ Title = "IT8892FX"
+ Bus = 06h
+ Dev = 00h
+ Fun = 00h
+ BridgeBus = 010h
+ IntA = LNKA; 16
+ IntB = LNKB; 17
+ IntC = LNKC; 18
+ IntD = LNKD; 19
+ DeviceType = OnBoard
+ PCIBusSize = PciEx
+ PCIBridge = Yes
End
-
-TOKEN
- Name = "DEFAULT_BOOT_TIMEOUT"
- Value = "3"
- Help = "Number of seconds that the firmware will wait before initiating the original default boot selection. \A value of 0 indicates that the default boot selection is to be initiated immediately on boot. \A value of 65535(0xFFFF) indicates that firmware will wait for user input before booting. \This means the default boot selection is not automatically started by the firmware."
- TokenType = Integer
- TargetH = Yes
- Range = "0-65535"
+PCIDEVICE
+ Title = "IT8892FX #1 Slot"
+ Bus = 010h
+ Dev = 00h
+ Slot = 00h
+ IntA = LNKA; 16
+ IntB = LNKB; 17
+ IntC = LNKC; 18
+ IntD = LNKD; 19
+ DeviceType = Slot
+ PCIBusSize = 32bit
+End
+PCIDEVICE
+ Title = "IT8892FX #2 Slot"
+ Bus = 010h
+ Dev = 00h
+ Slot = 01h
+ IntA = LNKB; 17
+ IntB = LNKC; 18
+ IntC = LNKD; 19
+ IntD = LNKA; 16
+ DeviceType = Slot
+ PCIBusSize = 32bit
+End
+PCIDEVICE
+ Title = "IT8892FX #3 Slot"
+ Bus = 010h
+ Dev = 00h
+ Slot = 02h
+ IntA = LNKC; 18
+ IntB = LNKD; 19
+ IntC = LNKA; 16
+ IntD = LNKB; 17
+ DeviceType = Slot
+ PCIBusSize = 32bit
+End
+PCIDEVICE
+ Title = "IT8892FX #4 Slot"
+ Bus = 010h
+ Dev = 00h
+ Slot = 03h
+ IntA = LNKD; 19
+ IntB = LNKA; 16
+ IntC = LNKB; 17
+ IntD = LNKC; 18
+ DeviceType = Slot
+ PCIBusSize = 32bit
End
diff --git a/Chipset/NB/hsw_1039.dat b/Chipset/NB/hsw_1039.dat
index eeb5cd3..b748e51 100644
--- a/Chipset/NB/hsw_1039.dat
+++ b/Chipset/NB/hsw_1039.dat
Binary files differ
diff --git a/Chipset/NB/hsw_1039.ssf b/Chipset/NB/hsw_1039.ssf
index 5e293fa..f342790 100644
--- a/Chipset/NB/hsw_1039.ssf
+++ b/Chipset/NB/hsw_1039.ssf
@@ -22,7 +22,7 @@ $Hotplug_Support_Enb 00
$Enable_Panel_Timing 00
PAGE Boot Display Algorithm
-TABLE $Dev_Boot_Table 09 08 01 0C 08 04 48 08 40 28 08 20 05 04 01 41 01 40 21 01 20 44 04 40 0D 01 04 45 01 04 64 04 40 49 01 40 29 01 20 4C 04 40 24 04 20 2C 04 20
+TABLE $Dev_Boot_Table 09 08 01 0C 08 04 48 08 40 28 08 20 05 01 04 41 01 40 21 01 20 44 04 40 0D 01 04 45 01 04 64 04 40 49 01 40 29 01 20 4C 04 40 24 04 20 2C 04 20
PAGE System BIOS Hooks
$H14_Get_Misc_Status 00
@@ -675,10 +675,10 @@ $DP_SSC_Enb 00
$DP_SSC_Dongle_Enb 00
PAGE Device 1 (EFP1)
-$Int_EFP1_Type C6 68
-$Int_EFP1_Port 07
-$Int_EFP1_DDC_Pin 00
-$Int_EFP1_AUX_Channel 10
+$Int_EFP1_Type D2 68
+$Int_EFP1_Port 01
+$Int_EFP1_DDC_Pin 05
+$Int_EFP1_AUX_Channel 00
$Int_EFP1_HDMI_LS_Type 03
$Int_EFP1_Lane_Reversal 00
$Int_EFP1_Port_Dockable 00
diff --git a/Chipset/SB/BA1561L2.LOM b/Chipset/SB/BA1561L2.LOM
new file mode 100644
index 0000000..10c4415
--- /dev/null
+++ b/Chipset/SB/BA1561L2.LOM
Binary files differ
diff --git a/Chipset/SB/RTEG263.LOM b/Chipset/SB/RTEG263.LOM
deleted file mode 100644
index 7b96161..0000000
--- a/Chipset/SB/RTEG263.LOM
+++ /dev/null
Binary files differ
diff --git a/Chipset/SB/SleepSmi.c b/Chipset/SB/SleepSmi.c
index 86debbe..6f17597 100644
--- a/Chipset/SB/SleepSmi.c
+++ b/Chipset/SB/SleepSmi.c
@@ -120,89 +120,8 @@ EFI_GUID gThisFileGuid = \
// External Declaration(s)
// Function Definition(s)
-// DW01_Custom_Support_RTC_Wake >>
-typedef struct {
- UINT8 AaeonRTCWakeupTimeHour ;
- UINT8 AaeonRTCWakeupTimeMinute ;
- UINT8 AaeonRTCWakeupTimeSecond ;
- UINT8 AaeonRTCWakeupDateDay;
-} SMMData ;
-
-SMMData gSmmData ;
-
-EFI_GUID gSetupGuid = SETUP_GUID;
-SETUP_DATA SetupData;
-//---------------------------------------------------------------------------
-UINT8 DecToBCD(UINT8 Dec)
-{
- UINT8 FirstDigit = Dec % 10;
- UINT8 SecondDigit = Dec / 10;
- return (SecondDigit << 4) + FirstDigit;
-}
-UINT8 BCDToDec(UINT8 BCD)
-{
- UINT8 FirstDigit = BCD & 0xf;
- UINT8 SecondDigit = BCD >> 4;;
-
- return SecondDigit * 10 + FirstDigit;
-}
-UINT8 ReadRtcIndex(IN UINT8 Index)
-{
- UINT8 volatile Value;
-
- // Check if Data Time is valid
- if(Index <= 9) do {
- IoWrite8(0x70, 0x0A | 0x80);
- Value = IoRead8(0x71);
- } while (Value & 0x80);
-
- IoWrite8(0x70, Index | 0x80);
- // Read register
- Value = IoRead8(0x71);
- if (Index <= 9) Value = BCDToDec(Value);
- return (UINT8)Value;
-}
-void WriteRtcIndex(IN UINT8 Index, IN UINT8 Value)
-{
- IoWrite8(0x70,Index | 0x80);
- if (Index <= 9 ) Value = DecToBCD(Value);
- // Write Register
- IoWrite8(0x71,Value);
-}
-void SetWakeupTime (
- IN EFI_TIME *Time
-)
-{
- UINT8 Value;
-
- WriteRtcIndex(5,Time->Hour);
- WriteRtcIndex(3,Time->Minute);
- WriteRtcIndex(1,Time->Second);
- Value = ReadRtcIndex(0x0D) & 0xC0;
- WriteRtcIndex(0x0D,(Value|DecToBCD(Time->Day)));
-
- //Set Enable
- Value = ReadRtcIndex(0xB);
- Value |= 1 << 5;
- WriteRtcIndex(0xB,Value);
-}
-VOID RTCWakeFunc(){
- UINT32 i = 0;
- EFI_TIME Time;
-
- Time.Hour = gSmmData.AaeonRTCWakeupTimeHour;
- Time.Minute = gSmmData.AaeonRTCWakeupTimeMinute;
- Time.Second = gSmmData.AaeonRTCWakeupTimeSecond;
- Time.Day = gSmmData.AaeonRTCWakeupDateDay;
-
- SetWakeupTime(&Time);
- //Clear RTC PM1 status
- IoWrite16(PM_BASE_ADDRESS , ( IoRead16(PM_BASE_ADDRESS) | (1 << 10) ));
- //set RTC_EN bit to wake up from the alarm
- IoWrite32(PM_BASE_ADDRESS, ( IoRead32(PM_BASE_ADDRESS) | (1 << 26) ));
-}
-// DW01_Custom_Support_RTC_Wake <<
+//---------------------------------------------------------------------------
//<AMI_PHDR_START>
//----------------------------------------------------------------------------
@@ -392,49 +311,6 @@ VOID S5SleepSmiOccurred (
if (gPchWakeOnLan) Enable_GbE_PME();
-// DW01_Custom_Support_RTC_Wake >>
- {
- EFI_STATUS Status = EFI_SUCCESS;
- UINT8 Value;
-
- //Disable RTC alarm and clear RTC PM1 status
- Value = ReadRtcIndex(0xB);
- Value &= ~((UINT8)1 << 5);
- WriteRtcIndex(0xB,Value);
- //Clear Alarm Flag (AF) by reading RTC Reg C
- Value = ReadRtcIndex(0xC);
- IoWrite16(PM_BASE_ADDRESS , ( IoRead16(PM_BASE_ADDRESS) | (1 << 10) ));
-
- if(!EFI_ERROR(Status)){
- //if(gSetupData.FixedWakeOnRTCS5 == 1){
- if(SetupData.AaeonWakeOnRtc == 1){
- gSmmData.AaeonRTCWakeupTimeHour = SetupData.AaeonRTCWakeupTimeHour ;
- gSmmData.AaeonRTCWakeupTimeMinute = SetupData.AaeonRTCWakeupTimeMinute ;
- gSmmData.AaeonRTCWakeupTimeSecond = SetupData.AaeonRTCWakeupTimeSecond ;
- gSmmData.AaeonRTCWakeupDateDay = SetupData.AaeonRTCWakeupTimeDay;
- }
-
- //if(gSetupData.DynamicWakeOnRTCS5 == 1){
- if(SetupData.AaeonWakeOnRtc == 2){
- gSmmData.AaeonRTCWakeupTimeHour = ReadRtcIndex(4);
- gSmmData.AaeonRTCWakeupTimeMinute = ReadRtcIndex(2);
- gSmmData.AaeonRTCWakeupTimeSecond = ReadRtcIndex(0);
- gSmmData.AaeonRTCWakeupTimeMinute += SetupData.AaeonRTCWakeupTimeMinuteIncrease;
- if (gSmmData.AaeonRTCWakeupTimeMinute >= 60)
- {
- gSmmData.AaeonRTCWakeupTimeMinute = 0;
- ++gSmmData.AaeonRTCWakeupTimeHour;
- if (gSmmData.AaeonRTCWakeupTimeHour == 24)
- gSmmData.AaeonRTCWakeupTimeHour = 0;
- }
- }
- }
-
- if(SetupData.AaeonWakeOnRtc == 1 || SetupData.AaeonWakeOnRtc == 2)
- RTCWakeFunc();
- }
-// DW01_Custom_Support_RTC_Wake <<
-
// Program AfterG3 bit depend the setup question.
ProgramAfterG3Bit();
@@ -563,15 +439,6 @@ EFI_STATUS InitSleepSmi (
gPchWakeOnLan = (SbSetupData->PchWakeOnLan == 1) ? TRUE : FALSE;
Status = pBS->FreePool( SbSetupData );
-// DW01_Custom_Support_RTC_Wake >>
- VariableSize = sizeof(SETUP_DATA);
- Status = pRS->GetVariable( L"Setup", \
- &gSetupGuid, \
- NULL, \
- &VariableSize, \
- &SetupData );
-
-// DW01_Custom_Support_RTC_Wake <<
// Porting End
return InitSmmHandler( ImageHandle, SystemTable, InSmmFunction, NULL );
diff --git a/Core/EM/AMITSE/commonoem.c b/Core/EM/AMITSE/commonoem.c
index ab5364c..cdc4d35 100644
--- a/Core/EM/AMITSE/commonoem.c
+++ b/Core/EM/AMITSE/commonoem.c
@@ -849,43 +849,6 @@ UINT16 gRootPageOrderIndex = 0;
UINTN CurrentScreenresolutionX, CurrentScreenresolutionY;
extern UINTN gPostStatus; //EIP-140123
-VOID F81866ConfigRegisterWrite(UINT8 Index, UINT8 Data)
-{
- IoWrite8(F81866_CONFIG_INDEX, Index);
- IoWrite8(F81866_CONFIG_DATA, Data);
-}
-UINT8 F81866ConfigRegisterRead(UINT8 Index)
-{
- UINT8 Data8;
- IoWrite8(F81866_CONFIG_INDEX, Index);
- Data8 = IoRead8(F81866_CONFIG_DATA);
- return Data8;
-}
-VOID F81866LDNSelect(UINT8 Ldn)
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_LDN_SEL_REGISTER);
- IoWrite8(F81866_CONFIG_DATA, Ldn);
-}
-VOID F81866EnterConfigMode()
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
-}
-VOID F81866ExitConfigMode()
-{
- // Exit config mode
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_EXIT_VALUE);
-}
-
-VOID F81866WDTDisable()
-{
- F81866EnterConfigMode() ;
- F81866LDNSelect(F81866_LDN_WDT) ;
- // WDT Disabled
- F81866ConfigRegisterWrite( 0xF5 , F81866ConfigRegisterRead(0xF5) & ~BIT5 ) ;
- F81866ExitConfigMode() ;
-}
-
//<AMI_PHDR_START>
//----------------------------------------------------------------------------
// Procedure: DrawQuietBootLogo
@@ -1676,7 +1639,6 @@ VOID CheckForKey (EFI_EVENT Event, VOID *Context)
)
{
- F81866WDTDisable() ;
CheckandDeactivateSoftkbd();// EIP62763 : Check and Deactivate if softkbd present
PrintEnterSetupMessage();
}
@@ -1690,7 +1652,6 @@ VOID CheckForKey (EFI_EVENT Event, VOID *Context)
#endif
)
{
- F81866WDTDisable() ;
CheckandDeactivateSoftkbd();// EIP62763 : Check and Deactivate if softkbd present
PrintEnterBBSPopupMessage ();
gBootFlow = BOOT_FLOW_CONDITION_BBS_POPUP;
@@ -1831,7 +1792,6 @@ VOID CheckForClick (EFI_EVENT Event, VOID *Context)
//<AMI_PHDR_END>
VOID BeforeLegacyBootLaunch(VOID)
{
- F81866WDTDisable() ;
}
//<AMI_PHDR_START>
@@ -1870,7 +1830,6 @@ VOID MouseDestroy(VOID);
//<AMI_PHDR_END>
VOID BeforeEfiBootLaunch(VOID)
{
- F81866WDTDisable() ;
StopClickEvent();//EIP 86253 : Mouse and SoftKbd does not work after displaying "No option to boot to" in POST
MouseDestroy();
diff --git a/Core/EM/CSM/CSM.c b/Core/EM/CSM/CSM.c
index c3b5314..bd70951 100644
--- a/Core/EM/CSM/CSM.c
+++ b/Core/EM/CSM/CSM.c
@@ -13,17 +13,76 @@
//**********************************************************************
//****************************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.c 198 8/06/14 12:57p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.c 211 9/14/15 1:53p Olegi $
//
-// $Revision: 198 $
+// $Revision: 211 $
//
-// $Date: 8/06/14 12:57p $
+// $Date: 9/14/15 1:53p $
//
//****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.c $
//
+// 211 9/14/15 1:53p Olegi
+// [TAG] EIP237981
+// [Description] Aptio4 CSM: BBS table adjustment needed when BootNext
+// variable is set
+//
+// 210 9/09/15 8:29a Olegi
+// [TAG] EIP237374
+// [Description] Aptio 4 CSM: ASSERT in TerminalSetup due to
+// DisconnectSerialIo in CSM
+//
+// 209 9/08/15 2:45p Olegi
+// [TAG] EIP237205
+// [Description] Aptio4 CSM: Add Lock/Unlock console calls during Option
+// ROMs execution
+//
+// 208 9/08/15 11:17a Olegi
+// [TAG] EIP237186
+// [Description] Aptio4 CSM: move BBS data to EBDA
+//
+// 207 8/26/15 9:49a Olegi
+// [TAG] EIP235407
+// [Description] Aptio4 CSM: add error handling for out-of-memory PMM
+// initialization
+//
+// 206 8/25/15 10:16a Olegi
+// [TAG] EIP235214
+// [Description] CSM Aptio4: properly restore BBS table after
+// unsuccessful boot
+//
+// 205 8/24/15 3:00p Olegi
+// [TAG] EIP235037
+// [Description] Aptio4 CSM: Optimize video mode switching during Option
+// ROMs execution
+//
+// 204 8/20/15 9:37a Olegi
+// [TAG] EIP234641
+// [Description] Aptio4 CSM: PMM memory life cycle
+//
+// 203 8/20/15 8:47a Olegi
+// [TAG] EIP234636
+// [Description] Aptio4 CSM: allocate PMM block below 4GB
+//
+// 202 8/20/15 8:38a Olegi
+// [TAG] EIP234635
+// [Description] CSM Aptio4: do not deallocate PMM block
+//
+// 201 8/19/15 1:31p Olegi
+// [TAG] EIP234472
+// [Description] Remove duplicate GetVariable calls from CSM.C
+//
+// 200 8/19/15 11:19a Olegi
+// [TAG] EIP234465
+// [Description] Aptio4 CSM: remove LEGACY_TO_EFI_BOOTRECORD_RETURN
+//
+// 199 12/01/14 1:17p Olegi
+// [TAG] EIP194476
+// [Category] New Feature
+// [Description] Aptio 4 CSM: Add ACPI timer parameters passing to CSM
+//
// 198 8/06/14 12:57p Fasihm
// [TAG] EIP180667
// [Category] Bug Fix
@@ -736,6 +795,7 @@ IVT_SAVE_RESTORE gIrqSav[MAX_NUM_IRQS_SAVERESTORE];
//
// gSetTxtMode
+// ff - initial value
// 0 - switching to text mode is needed (init value)
// 1 - switching is needed, restoration is not (set in ShadowOptionRoms)
// 2 - neither switching nor restoration is needed
@@ -759,10 +819,9 @@ VOID DisconnectSerialIO();
VOID DummyFunction(EFI_EVENT Event, VOID *Context);
EFI_TPL gOldTplValue = NULL;
UINT16 gProtectedIrqMask = 0xffff;
-BBS_TABLE *gOriginalBbsTable = NULL;
+BBS_TABLE *gBbsTableBackup = NULL;
VOID DumpBbsTable(UINT32);
-#define BBS_LOWEST_ACTIVE_PRIORITY 0xfffb
/*---------------------------------------------------*/
/*--- ---*/
@@ -936,15 +995,12 @@ InitializeCsm16MiscInfo(
*(UINT32*)Csm16BufferPointer = (UINT32)Address;
*(UINT32*)(Csm16BufferPointer+4) = LEGACY_TO_EFI_BOOT_BUFFER_SIZE;
- Csm16Configuration(Csm16FeatureReset, Csm16LegacyToEfi, NULL);
- Csm16Configuration(Csm16FeatureReset, Csm16LegacyToEfiPonr, NULL);
-
#if LEGACY_TO_EFI_DEFAULT
Csm16Configuration(Csm16FeatureSet, Csm16LegacyToEfi, NULL);
-#if LEGACY_TO_EFI_BOOTRECORD_RETURN
- Csm16Configuration(Csm16FeatureSet, Csm16LegacyToEfiPonr, NULL);
-#endif
+#else
+ Csm16Configuration(Csm16FeatureReset, Csm16LegacyToEfi, NULL);
#endif
+
}
}
@@ -1062,15 +1118,7 @@ EFI_STATUS UpdatePciLastBus()
return Status;
}
-VOID ReadyToBootNotify(EFI_EVENT Event, VOID *Context)
-{
- EFI_TO_COMPATIBILITY16_INIT_TABLE *Csm16InitTable;
- Csm16InitTable = &CoreBiosInfo->Thunk->Csm16InitTable;
- pBS->FreePool((VOID*)(UINTN)Csm16InitTable->HiPmmMemory);
- pBS->CloseEvent(Event);
-}
-
//<AMI_PHDR_START>
//---------------------------------------------------------------------------
//
@@ -1224,7 +1272,8 @@ CsmEntryPoint(
// - 1 - use text mode during all Option ROMs execution time, no mode
// switching during this time frame.
- gSetTxtMode = CSM_DEFAULT_VMODE_SWITCHING;
+ gSetTxtMode = 0xff; // CSM_DEFAULT_VMODE_SWITCHING will be applied after 1st ROM is executed
+
if (Status == EFI_SUCCESS && gSetup.ExpansionCardText == 0) {
gSetTxtMode = 2;
}
@@ -1316,7 +1365,7 @@ CsmEntryPoint(
UpdatePciLastBus(); // Update Pci Last Bus number in Csm16 Header
- Status = CreateReadyToBootEvent(TPL_CALLBACK, ReadyToBootNotify, NULL, &Event);
+ Status = CreateReadyToBootEvent(TPL_CALLBACK, FreePmmBeforeBoot, NULL, &Event);
ASSERT_EFI_ERROR(Status);
return EFI_SUCCESS; // Force success: every unsuccessful status is branched
@@ -1345,8 +1394,18 @@ AllConnectedCallback (
VOID *Context
)
{
- if (gSetTxtMode == 1 && gVgaHandle != NULL) {
- pBS->ConnectController(gVgaHandle, NULL, NULL, TRUE);
+ TRACE((-1, "CSM.AllConnectedCallback: SetMode: %x VgaHandle %x\n", gSetTxtMode, gVgaHandle));
+
+ if (gSetTxtMode == 1)
+ {
+ if (gVgaHandle != NULL)
+ {
+ TRACE((-1, "Reconnecting video and serial after all OPROMs are done.\n"));
+ pBS->DisconnectController(gVgaHandle, NULL, NULL);
+ pBS->ConnectController(gVgaHandle, NULL, NULL, TRUE);
+ ConnectSerialIO();
+ }
+ UnlockConsole();
}
}
@@ -1532,7 +1591,7 @@ EFI_STATUS InitializeLegacyMemory(BIOS_INFO *CoreBiosInfo)
//
bda = (BDA_DATA*)((UINTN) 0x400);
- bda->system_memory = (TopOfBaseMemory>>10)-1; // 1K is for BIOS EBDA
+ bda->system_memory = (TopOfBaseMemory>>10)-5; // 5K is for BIOS EBDA
bda->kb_buf_head_ptr = bda->kb_buf_tail_ptr = 0x1E;
bda->motor_time_count = 0xFF;
bda->kb_buff_begin = 0x1E;
@@ -1542,10 +1601,10 @@ EFI_STATUS InitializeLegacyMemory(BIOS_INFO *CoreBiosInfo)
bda->winch_number = 0;
// bda->machine_config is updated later when SIO information becomes available
- bda->ext_bios_data_seg = (TopOfBaseMemory>>4)-0x40;
+ bda->ext_bios_data_seg = (TopOfBaseMemory>>4)-0x140;
- ebda = (UINT8*)((UINTN)(TopOfBaseMemory-0x400));
- *ebda = 1; // 1K
+ ebda = (UINT8*)((UINTN)(TopOfBaseMemory-0x1400));
+ *ebda = 5; // 5K
//
// Create BBS table and initialize it with BBS_IGNORE_ENTRY values
@@ -1605,7 +1664,7 @@ InitCompatibility16(
UINT8 i;
UINTN LowPmmMemorySizeInBytes;
UINTN HiPmmMemorySizeInBytes;
- VOID *HiPmmMemory;
+ UINTN HiPmmMemory;
UINTN PciExpressBase;
struct IRQ_REDIRECTION_CODE {
@@ -1713,17 +1772,21 @@ InitCompatibility16(
ASSERT_EFI_ERROR(Status);
Csm16InitTable->LowPmmMemorySizeInBytes = (UINT32)LowPmmMemorySizeInBytes;
- Csm16InitTable->HiPmmMemorySizeInBytes = (UINT32)HiPmmMemorySizeInBytes;
- //
- // Allocate Hi memory for PMM
- //
- Status = pBS->AllocatePool(
- EfiBootServicesData,
- Csm16InitTable->HiPmmMemorySizeInBytes,
- &HiPmmMemory);
- ASSERT_EFI_ERROR(Status);
- Csm16InitTable->HiPmmMemory = (UINT32)HiPmmMemory;
+ Status = AllocateHiMemPmmBlock((HiPmmMemorySizeInBytes >> 12) + 1, &HiPmmMemory);
+ if (EFI_ERROR(Status))
+ {
+ Csm16InitTable->HiPmmMemorySizeInBytes = 0;
+ Csm16InitTable->HiPmmMemory = 0;
+ TRACE((-1, "HI PMM memory block is NOT allocated.\n"));
+ ERROR_CODE(DXE_CSM_INIT,EFI_ERROR_MINOR);
+ }
+ else
+ {
+ Csm16InitTable->HiPmmMemorySizeInBytes = (UINT32)HiPmmMemorySizeInBytes;
+ Csm16InitTable->HiPmmMemory = (UINT32)HiPmmMemory;
+ TRACE((-1, "HI PMM memory allocated at 0x%x, size 0x%x\n", HiPmmMemory, HiPmmMemorySizeInBytes));
+ }
//
// Make a call to 16 bit code to initialize itself
@@ -1732,14 +1795,24 @@ InitCompatibility16(
RegSet.X.AX = Compatibility16InitializeYourself;
RegSet.X.ES = EFI_SEGMENT (Csm16InitTable);
RegSet.X.BX = EFI_OFFSET (Csm16InitTable);
-
+ #if ACPI_TIMER_IN_LEGACY_SUPPORT
+ // ACPI timer address is passed to AmiLegacy16 binary in the following structure
+ // Width (0/1) | Signature 'TM'| base address
+ // 31 30 15 0
+ RegSet.E.ECX = (FACP_FLAG_TMR_VAL_EXT << ACPI_TMR_WIDTH_SHIFT)
+ | ( ACPI_TMR_SIGNATURE << ACPI_TMR_SIGNATURE_SHIFT)
+ | PM_TMR_BLK_ADDRESS;
+ #else
+ RegSet.E.ECX = 0;
+ #endif
+
FarCall86 (&CoreBiosInfo->iBios,
CoreBiosInfo->Csm16EntrySeg,
CoreBiosInfo->Csm16EntryOfs,
&RegSet,
NULL,
0);
- if (RegSet.X.AX) Status = (RegSet.X.AX & 0x7FFF) | EFI_ERROR_BIT;
+ Status = (RegSet.X.AX)? ((RegSet.X.AX & 0x7FFF) | EFI_ERROR_BIT) : EFI_SUCCESS;
ASSERT_EFI_ERROR(Status);
if (EFI_ERROR(Status)) return Status;
@@ -2428,36 +2501,38 @@ LegacyBoot (
Status = ShadowAllLegacyOproms(This); // Launch remaining OpROMs
ASSERT_EFI_ERROR(Status);
- // For the 1st boot store BBS table, else update the entries
- if (gOriginalBbsTable == NULL){
+ // For the 1st boot allocate BBS table backup
+ if (gBbsTableBackup == NULL){
Status = pBS->AllocatePool(EfiBootServicesData, (sizeof(BBS_TABLE))*CoreBiosInfo->BbsEntriesNo,
- &gOriginalBbsTable);
+ &gBbsTableBackup);
ASSERT_EFI_ERROR(Status);
- pBS->CopyMem(gOriginalBbsTable, CoreBiosInfo->BbsTable, (sizeof(BBS_TABLE))*CoreBiosInfo->BbsEntriesNo);
- }
- else
- {
- // find the lowest priority and update failed-to-boot entries with even lower priority values
- UINT16 LowestPriority = 0;
-
- for (i = 0; i < CoreBiosInfo->BbsEntriesNo; i++)
+
+ // If BootNext is set, TSE sets the BBS priorities to BBS_UNPRIORITIZED_ENTRY.
+ // Give unprioritized devices a priority to allow it to show up in INT13h.
{
- if (CoreBiosInfo->BbsTable[i].BootPriority > LowestPriority
- && CoreBiosInfo->BbsTable[i].BootPriority <= BBS_LOWEST_ACTIVE_PRIORITY)
- {
- LowestPriority = CoreBiosInfo->BbsTable[i].BootPriority;
+ #define BBS_LOWEST_ACTIVE_PRIORITY 0xfffb
+ UINT16 LowestPriority = 0;
+
+ // Locate the lowest priority
+ for (i = 0; i < CoreBiosInfo->BbsEntriesNo; i++) {
+ if (CoreBiosInfo->BbsTable[i].BootPriority > LowestPriority
+ && CoreBiosInfo->BbsTable[i].BootPriority <= BBS_LOWEST_ACTIVE_PRIORITY) {
+ LowestPriority = CoreBiosInfo->BbsTable[i].BootPriority;
+ }
}
- }
- // the failed entries have the priority of BBS_UNPRIORITIZED_ENTRY (set by TSE)
- for (i = 0; i < CoreBiosInfo->BbsEntriesNo; i++)
- {
- if (CoreBiosInfo->BbsTable[i].BootPriority == BBS_UNPRIORITIZED_ENTRY
- && gOriginalBbsTable[i].BootPriority != BBS_UNPRIORITIZED_ENTRY)
- {
- CoreBiosInfo->BbsTable[i].BootPriority = ++LowestPriority; // bump the entry all the way back
- ASSERT(LowestPriority < BBS_LOWEST_ACTIVE_PRIORITY);
+
+ for (i = 0; i < CoreBiosInfo->BbsEntriesNo; i++) {
+ if (CoreBiosInfo->BbsTable[i].BootPriority == BBS_UNPRIORITIZED_ENTRY) {
+ TRACE((-1, "Assigning unprioritized device %d priority %x\n", i, (LowestPriority+1)));
+ CoreBiosInfo->BbsTable[i].BootPriority = ++LowestPriority;
+ }
}
}
+ pBS->CopyMem(gBbsTableBackup, CoreBiosInfo->BbsTable, (sizeof(BBS_TABLE))*CoreBiosInfo->BbsEntriesNo);
+ }
+ else
+ {
+ pBS->CopyMem(CoreBiosInfo->BbsTable, gBbsTableBackup, (sizeof(BBS_TABLE))*CoreBiosInfo->BbsEntriesNo);
}
DumpBbsTable(0);
@@ -2471,6 +2546,8 @@ LegacyBoot (
Status = pBS->LocateProtocol(&gEfiTimerArchProtocolGuid, NULL, &Timer);
ASSERT_EFI_ERROR(Status);
+ DisconnectSerialIO();
+
//
// Signal EFI_EVENT_SIGNAL_LEGACY_BOOT event
//
@@ -2505,21 +2582,10 @@ LegacyBoot (
//
// Set NumLock state according to Setup question
//
- Size = sizeof(SETUP_DATA);
- Status = pRS->GetVariable(L"Setup",&guidSetup, NULL, &Size, &gSetup);
- if (Status==EFI_SUCCESS) {
- i = (gSetup.Numlock)? 2 : 0;
- } else {
- i = 2; // NumLock is on
- }
- //
- // Note: GetVariable call could have been done once in the entry point,
- // but in this case we will have to require reset on Setup.Numlock
- // change.
- //
+ i = (gSetup.Numlock)? 2 : 0; // On:Off
+
UpdateKeyboardLedStatus(This, (UINT8)i);
//(EIP52733+)>
- DisconnectSerialIO();
CoreBiosInfo->i8259->GetMask(CoreBiosInfo->i8259, NULL, NULL, &gProtectedIrqMask, NULL); // Save current Mask
//<(EIP52733+)
@@ -2582,6 +2648,8 @@ LegacyBoot (
}
ConnectSerialIO();
+ pBS->CopyMem(CoreBiosInfo->BbsTable, gBbsTableBackup, (sizeof(BBS_TABLE))*CoreBiosInfo->BbsEntriesNo);
+
return EFI_SUCCESS;
//<(EIP52733+)
diff --git a/Core/EM/CSM/CSM.h b/Core/EM/CSM/CSM.h
index 1016a5b..365e320 100644
--- a/Core/EM/CSM/CSM.h
+++ b/Core/EM/CSM/CSM.h
@@ -13,11 +13,11 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.h 88 8/06/14 3:20p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.h 92 9/08/15 2:46p Olegi $
//
-// $Revision: 88 $
+// $Revision: 92 $
//
-// $Date: 8/06/14 3:20p $
+// $Date: 9/08/15 2:46p $
//**********************************************************************
//**********************************************************************
@@ -142,6 +142,13 @@ typedef struct {
#define CSM_RT_CMOS_LTE_BIT 0x80
//****************************************************
+// ACPI timer
+//****************************************************
+#define ACPI_TMR_SIGNATURE 0x544D // Signature used is 'TM'
+#define ACPI_TMR_WIDTH_SHIFT 31
+#define ACPI_TMR_SIGNATURE_SHIFT 16
+
+//****************************************************
// Type values
//****************************************************
#define STANDARD_IO 0x00
@@ -543,7 +550,7 @@ typedef struct {
IN UINT16 OpromSegment;
IN UINT8 PciBus;
IN UINT8 PciDeviceFunction;
- IN OUT UINT8 NumberBbbsEntries;
+ IN OUT UINT8 NumberBbsEntries;
UINT32 BbsTable;
IN UINT16 FinalLocationSegment;
} EFI_DISPATCH_OPROM_TABLE;
@@ -1009,6 +1016,20 @@ typedef struct _LEGACY16_TO_EFI_DATA_TABLE_EXT {
UINT8 RbArrayCount;
} LEGACY16_TO_EFI_DATA_TABLE_EXT;
+typedef struct {
+ struct {
+ UINT16 Offset;
+ UINT16 Segment;
+ } FarCall;
+ EFI_IA32_REGISTER_SET Regs;
+ struct {
+ UINT32 Stack;
+ UINT32 StackSize;
+ } StackData;
+ BOOLEAN isFarCall; //if false, then INT86.
+ UINT8 BiosInt;
+} AMI_CSM_THUNK_DATA;
+
EFI_STATUS Get16BitFuncAddress (UINT16, UINT32*);
UINTN CopyLegacyTable(VOID*, UINT16, UINT16, UINT16);
EFI_STATUS GetEmbeddedRom(UINT16, UINT16, UINT16, VOID**, UINTN*);
@@ -1061,11 +1082,15 @@ EFI_STATUS GetShadowRamAddress(UINT32*, UINT32, UINT32, UINT32);
VOID DisconnectSerialIO();
VOID ConnectSerialIO();
+EFI_STATUS LockConsole();
+EFI_STATUS UnlockConsole();
BOOLEAN IsAMICSM16(EFI_COMPATIBILITY16_TABLE*);
UINT8 ChecksumCSM16Header(EFI_COMPATIBILITY16_TABLE*);
-EFI_STATUS GetSystemMemoryMap(EFI_MEMORY_DESCRIPTOR**, UINTN*,UINTN*);
-EFI_STATUS ClearFreeMemory(EFI_PHYSICAL_ADDRESS,EFI_PHYSICAL_ADDRESS);
+EFI_STATUS GetSystemMemoryMap(EFI_MEMORY_DESCRIPTOR**, UINTN*,UINTN*);
+EFI_STATUS ClearFreeMemory(EFI_PHYSICAL_ADDRESS,EFI_PHYSICAL_ADDRESS);
EFI_STATUS Csm16Configuration(CSM16_CONFIGURATION_ACTION, CSM16_FEATURE, UINT32*);
+EFI_STATUS AllocateHiMemPmmBlock(UINTN, UINTN*);
+VOID FreePmmBeforeBoot (EFI_EVENT, VOID*);
#pragma pack ()
/****** DO NOT WRITE BELOW THIS LINE *******/
diff --git a/Core/EM/CSM/CSM.mak b/Core/EM/CSM/CSM.mak
index 9e651c2..e7cb6c3 100644
--- a/Core/EM/CSM/CSM.mak
+++ b/Core/EM/CSM/CSM.mak
@@ -13,11 +13,11 @@
#**********************************************************************
#**********************************************************************
-# $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.mak 36 10/07/13 8:58a Olegi $
+# $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/csm.mak 37 9/08/15 2:25p Olegi $
#
-# $Revision: 36 $
+# $Revision: 37 $
#
-# $Date: 10/07/13 8:58a $
+# $Date: 9/08/15 2:25p $
#**********************************************************************
#**********************************************************************
@@ -74,6 +74,8 @@ CSMELINKFUNCTIONS :
)
#define CSM_INIT_LEGACY_MEMORY_FUNCTIONS $(CSM_INIT_LEGACY_MEMORY_FUNCTIONS:},=},\^
)
+#define CSM_16_CALL_COMPANION_FUNCTIONS $(CSM_16_CALL_COMPANION_FUNCTIONS:},=},\^
+)
<<
$(BUILD_DIR)\csmcore.mak : $(CSMCORE_DIR)\csmcore.cif $(CSMCORE_DIR)\csm.mak $(BUILD_RULES)
diff --git a/Core/EM/CSM/CsmBsp.c b/Core/EM/CSM/CsmBsp.c
index 9bc04c8..b3aeae6 100644
--- a/Core/EM/CSM/CsmBsp.c
+++ b/Core/EM/CSM/CsmBsp.c
@@ -13,11 +13,11 @@
//**********************************************************************
//****************************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmBsp.c 39 8/06/14 4:40p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmBsp.c 40 9/08/15 2:25p Olegi $
//
-// $Revision: 39 $
+// $Revision: 40 $
//
-// $Date: 8/06/14 4:40p $
+// $Date: 9/08/15 2:25p $
//
//****************************************************************************
@@ -94,6 +94,10 @@ typedef EFI_STATUS (CSM_ENABLE_OEM_PCI_SIBLINGS)(EFI_PCI_IO_PROTOCOL *PciIo);
extern CSM_ENABLE_OEM_PCI_SIBLINGS CSM_ENABLE_OEM_PCI_SIBLINGS_FUNCTIONS EndOfEnableOemPciSiblingsFunctions;
CSM_ENABLE_OEM_PCI_SIBLINGS *CsmEnableOemPciSiblingsFunctions[] = { CSM_ENABLE_OEM_PCI_SIBLINGS_FUNCTIONS NULL };
+typedef EFI_STATUS (AMI_CSM_16_CALL_COMPANION)(AMI_CSM_THUNK_DATA*, BOOLEAN);
+extern AMI_CSM_16_CALL_COMPANION CSM_16_CALL_COMPANION_FUNCTIONS EndOfCsm16CompanionFunctions;
+AMI_CSM_16_CALL_COMPANION *Csm16CallCompanionFunctions[] = { CSM_16_CALL_COMPANION_FUNCTIONS NULL };
+
typedef EFI_STATUS (CSM_GET_ROUTING_TABLE)(
IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
OUT VOID **RoutingTable,
@@ -782,6 +786,44 @@ EnableOemPciSiblings(
return Status;
}
+/**
+ This function is called from FarCall86() and Int86() before and after executing
+ 16-bit code. OEM code can be hooked up in SDL to the parent eLink
+ "AMI_CSM_16_CALL_COMPANION_FUNCTIONS" and execute before and after 16-bit code.
+
+ @param IsFarCall BOOLEAN to indicate the 16-bit FAR CALL (TRUE) or INT (FALSE)
+ @param TargetLocation UINT32 address of FAR CALL or INT number
+ @param Priority BOOLEAN function is called before (TRUE) or after (FALSE) 16-bit code
+
+ @retval EFI_UNSUPPORTED Function is not implemented
+ @retval EFI_SUCCESS All OEM functions have been executed
+
+ @note
+ For the function calls the address is passed in segment:offset format; upper 16 bits
+ is the segment, lower 16 bits is the offset of the function entry point.
+ @note
+ After 16-bit code execution (Priority == FALSE) TargetLocation is not relevant; value is ignored.
+
+**/
+
+EFI_STATUS
+Csm16CallCompanion(
+ AMI_CSM_THUNK_DATA *ThunkData,
+ BOOLEAN Priority
+)
+{
+ EFI_STATUS Status = EFI_UNSUPPORTED;
+ UINTN i;
+ AMI_CSM_THUNK_DATA ThunkDataCopy = *ThunkData;
+
+ for(i = 0; Csm16CallCompanionFunctions[i] != NULL; i++)
+ {
+ Status = EFI_SUCCESS;
+ Csm16CallCompanionFunctions[i](&ThunkDataCopy, Priority);
+ }
+ return Status;
+}
+
//<AMI_PHDR_START>
//----------------------------------------------------------------------------
diff --git a/Core/EM/CSM/CsmHwInfo.c b/Core/EM/CSM/CsmHwInfo.c
index ab4bce8..1007abe 100644
--- a/Core/EM/CSM/CsmHwInfo.c
+++ b/Core/EM/CSM/CsmHwInfo.c
@@ -13,20 +13,39 @@
//**********************************************************************
//****************************************************************************
-// $Header: /Alaska/Projects/Intel/Haswell/LynxPoint_SharkBay-DT_Crb_1AQQW/Core/EM/CSM/CsmHwInfo.c 1 7/31/17 4:55a Chienhsieh $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmHwInfo.c 117 8/26/15 9:49a Olegi $
//
-// $Revision: 1 $
+// $Revision: 117 $
//
-// $Date: 7/31/17 4:55a $
+// $Date: 8/26/15 9:49a $
//
//**********************************************************************
// Revision History
// ----------------
-// $Log: /Alaska/Projects/Intel/Haswell/LynxPoint_SharkBay-DT_Crb_1AQQW/Core/EM/CSM/CsmHwInfo.c $
+// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmHwInfo.c $
//
-// 1 7/31/17 4:55a Chienhsieh
-// [TAG] EIP184371
-// [Description] Filter the DiskInfo protocols while creating HddInfo
+// 117 8/26/15 9:49a Olegi
+// [TAG] EIP235407
+// [Description] Aptio4 CSM: add error handling for out-of-memory PMM
+// initialization
+//
+// 116 8/06/15 2:13a Rameshr
+// [TAG] EIP230079
+// [Category] Bug Fix
+// [Severity] Minor
+// [Symptom] Boot option will appear an unknown device "C0::PATA SM:"
+// after added the NVMe module and attached the NVMe device
+// [RootCause] CSM should handle the device that belongs to IDE
+// interface. But It handles the all the diskinfo protocol avilable
+// [Solution] Modified the code to handle only the Ide Interface
+// Diskinfo Protocol
+// [Files] Csmhwinfo.c
+//
+// 115 5/25/15 6:01a Rameshr
+// [TAG] EIP213255
+// [Category] Improvement
+// [Description] Dont add Legacy boot option for the Ata device doesnt
+// have 512 bytes per sector.
// [Files] CsmHwInfo.c
//
// 114 8/07/14 12:44p Fasihm
@@ -444,6 +463,7 @@ UINT8 gIdeController = 0;
UINT16 aInstalledPciIrq[MAX_IDE_PCI_CONTROLLER];
EFI_GUID gDiskInfoProtocol = EFI_DISK_INFO_PROTOCOL_GUID;
+EFI_GUID gEfiBlockIoProtocolGuid = EFI_BLOCK_IO_PROTOCOL_GUID;
EFI_GUID gSataControllerProtocol = SATA_CONTROLLER_PROTOCOL_GUID;
EFI_GUID gAcpiRsdtPtr = ACPI_20_TABLE_GUID;
EFI_GUID gAcpiRsdtPtr1_0 = ACPI_10_TABLE_GUID;
@@ -775,6 +795,7 @@ EFI_STATUS GetAtaAtapiInfo(
EFI_DISK_INFO_PROTOCOL *pDiskInfo;
EFI_DEVICE_PATH_PROTOCOL *pDevicePath;
EFI_PCI_IO_PROTOCOL *pPciIo;
+ EFI_BLOCK_IO_PROTOCOL *BlkIo;
EFI_HANDLE Handle;
UINTN Seg, Bus, Dev, Func;
HDD_INFO *HddInfo;
@@ -803,25 +824,32 @@ EFI_STATUS GetAtaAtapiInfo(
DiskInfoHandles);
if (EFI_ERROR(Status)) return EFI_NOT_FOUND;
-
for (i = 0; i < HandlesNo; i++) {
-// [ EIP184371 ]+>
+
// Check DiskInfo.Interface field
static EFI_GUID DiIntrfGuid = EFI_DISK_INFO_IDE_INTERFACE_GUID;
Status = pBS->HandleProtocol (
- (*DiskInfoHandles)[i],
- &gDiskInfoProtocol,
- &pDiskInfo); // Get DiskInfo protocol
+ (*DiskInfoHandles)[i],
+ &gDiskInfoProtocol,
+ &pDiskInfo); // Get DiskInfo protocol
+
ASSERT_EFI_ERROR (Status);
-
if (guidcmp(&pDiskInfo->Interface, &DiIntrfGuid)) continue;
-// [ EIP184371 ]+<
-
+
+ Status = pBS->HandleProtocol((*DiskInfoHandles)[i],
+ &gEfiBlockIoProtocolGuid,
+ &BlkIo);
+ ASSERT_EFI_ERROR(Status);
+ if (EFI_ERROR(Status)) {
+ continue;
+ }
+
Status = pBS->HandleProtocol ((*DiskInfoHandles)[i],
- &gEfiDevicePathProtocolGuid,
- (VOID*)&pDevicePath);
+ &gEfiDevicePathProtocolGuid,
+ (VOID*)&pDevicePath);
+
ASSERT_EFI_ERROR(Status);
//
@@ -846,13 +874,6 @@ EFI_STATUS GetAtaAtapiInfo(
&pPciIo); // Get PciIo protocol
ASSERT_EFI_ERROR (Status);
-// [ EIP184371 ]+>
-// Status = pBS->HandleProtocol (
-// (*DiskInfoHandles)[i],
-// &gDiskInfoProtocol,
-// &pDiskInfo); // Get DiskInfo protocol
-// ASSERT_EFI_ERROR (Status);
-// [ EIP184371 ]+<
pDiskInfo->WhichIde(pDiskInfo, &PriSec, &MasterSlave); // Device/Channel info
Status = pPciIo->GetLocation(pPciIo, &Seg, &Bus, &Dev, &Func); // Location on PCI bus
@@ -952,13 +973,24 @@ EFI_STATUS GetAtaAtapiInfo(
pAtapiIdentifyBuffer = HddInfo->IdentifyDrive;
if (MasterSlave != MASTER_DRIVE) pAtapiIdentifyBuffer++;
pDiskInfo->Identify(pDiskInfo, pAtapiIdentifyBuffer, &DataCount);
- pDriveHandle->IdentifyPtr = pAtapiIdentifyBuffer;
- pDriveHandle->DriveHandle = (*DiskInfoHandles)[i];
- pDriveHandle++;
+
//
// Check whether device is ATA or ATAPI - WORD 0 bits 14 and 15
//
IsAtapiDevice = (BOOLEAN)((*(UINT16*)pAtapiIdentifyBuffer & 0xC000) == 0x8000);
+
+ // If the device Block size is more than 512 bytes and ATA device
+ // Don't add the device as INT13 device ( Legacy supported device).
+ if( IsAtapiDevice == FALSE ) {
+ if(BlkIo->Media->BlockSize != 512) {
+ continue;
+ }
+ }
+
+
+ pDriveHandle->IdentifyPtr = pAtapiIdentifyBuffer;
+ pDriveHandle->DriveHandle = (*DiskInfoHandles)[i];
+ pDriveHandle++;
//
// Update HDD_INFO status
//
@@ -1949,6 +1981,7 @@ EFI_STATUS AllocateHiMemPmmBlock(
EFI_PHYSICAL_ADDRESS HiPmmMemory;
EFI_STATUS Status;
UINT64 NumberOfPages;
+ UINT64 BlockLength;
GetSystemMemoryMap(&MemMap, &MemDescSize, &MemEntriesCount);
@@ -1978,16 +2011,17 @@ EFI_STATUS AllocateHiMemPmmBlock(
// and use the end
Status = FindMemoryBlockForHiPmm(MemMap, MemEntriesCount, MemDescSize, BlockSize*4, &HiPmmMemory, &NumberOfPages);
if (!EFI_ERROR(Status)) {
- HiPmmMemory += Shl64(NumberOfPages, 11); // Middle of the block
+ BlockLength = Shl64(NumberOfPages, 11); // Middle of the block
} else {
Status = FindMemoryBlockForHiPmm(MemMap, MemEntriesCount, MemDescSize, BlockSize*2, &HiPmmMemory, &NumberOfPages);
- HiPmmMemory += Shl64(NumberOfPages, 12); // End of the block
+ BlockLength = Shl64(NumberOfPages, 12); // End of the block
}
- ASSERT_EFI_ERROR(Status);
-
pBS->FreePool(MemMap);
-
+
+ if (EFI_ERROR(Status)) return Status;
+
+ HiPmmMemory += BlockLength;
Status = pBS->AllocatePages(AllocateMaxAddress, EfiBootServicesData, BlockSize*2, &HiPmmMemory);
*BlockAddr = (UINTN)HiPmmMemory;
@@ -2028,24 +2062,25 @@ VOID FreePmmBeforeBoot (
UINTN Size = NumberOfPages << 12;
UINTN Address = CoreBiosInfo->Thunk->Csm16InitTable.HiPmmMemory;
- if (ClearMemoryEnabled ())
+ if (Address != 0)
{
- pBS->CopyMem((VOID*)(Address+Size), (VOID*)Address, Size);
- Status = pBS->FreePages(Address, NumberOfPages);
- ASSERT_EFI_ERROR(Status);
- pBS->CopyMem((VOID*)Address, (VOID*)(Address+Size), Size);
- Status = pBS->FreePages(Address+Size, NumberOfPages);
- ASSERT_EFI_ERROR(Status);
- }
- else
- {
- Status = pBS->FreePages(Address, NumberOfPages*2);
- ASSERT_EFI_ERROR(Status);
+ if (ClearMemoryEnabled ())
+ {
+ pBS->CopyMem((VOID*)(Address+Size), (VOID*)Address, Size);
+ Status = pBS->FreePages(Address, NumberOfPages);
+ ASSERT_EFI_ERROR(Status);
+ pBS->CopyMem((VOID*)Address, (VOID*)(Address+Size), Size);
+ Status = pBS->FreePages(Address+Size, NumberOfPages);
+ ASSERT_EFI_ERROR(Status);
+ }
+ else
+ {
+ Status = pBS->FreePages(Address, NumberOfPages*2);
+ ASSERT_EFI_ERROR(Status);
+ }
+ TRACE((-1, "Free HI PMM memory: %r\n", Status));
}
pBS->CloseEvent(Event);
-
- TRACE((-1, "Free HI PMM memory: %r\n", Status));
-
}
//**********************************************************************
diff --git a/Core/EM/CSM/CsmLib.c b/Core/EM/CSM/CsmLib.c
index d0605ae..5b20c79 100644
--- a/Core/EM/CSM/CsmLib.c
+++ b/Core/EM/CSM/CsmLib.c
@@ -13,17 +13,26 @@
//**********************************************************************
//****************************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmLib.c 69 1/10/14 12:21p Olegi $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmLib.c 71 9/09/15 9:53a Olegi $
//
-// $Revision: 69 $
+// $Revision: 71 $
//
-// $Date: 1/10/14 12:21p $
+// $Date: 9/09/15 9:53a $
//
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmLib.c $
//
+// 71 9/09/15 9:53a Olegi
+// [TAG] EIP237381
+// [Description] Aptio 4 CSM: add INT19 TRAP setup question
+//
+// 70 9/08/15 2:47p Olegi
+// [TAG] EIP237205
+// [Description] Aptio4 CSM: Add Lock/Unlock console calls during Option
+// ROMs execution
+//
// 69 1/10/14 12:21p Olegi
// EIP149769: LegacyToEfi boot management
// Changed default setting, added new token to extend the functionality
@@ -324,6 +333,7 @@
#include "pci.h"
#include <Protocol/SerialIo.h>
#include <Protocol/AmiBoardInfo.h>
+#include <Protocol/ConsoleControl.h>
extern BIOS_INFO *CoreBiosInfo;
extern UINTN gMaxOpRomAddress;
@@ -334,8 +344,12 @@ UINTN EmbeddedRomSize;
VOID UpdateEbdaMap(UINT32);
extern AMI_BOARD_INFO_PROTOCOL *gAmiBoardInfo;
+extern BOOLEAN gDoNotUpdateBbsTable;
extern BOOLEAN gBbsUpdateInProgress;
+EFI_CONSOLE_CONTROL_PROTOCOL *gConsoleControl = NULL;
+BOOLEAN gConsoleLocked = FALSE;
+
BOOLEAN
Check30ROM(
IN VOID *RomLocation,
@@ -1173,6 +1187,7 @@ AddBbsEntry (
IN BBS_TABLE *BbsEntry
)
{
+ if (gDoNotUpdateBbsTable) return EFI_ACCESS_DENIED;
if (gBbsUpdateInProgress) return EFI_NOT_READY;
gBbsUpdateInProgress = TRUE;
@@ -1216,6 +1231,7 @@ InsertBbsEntryAt (
{
UINT8 EntryNo;
+ if (gDoNotUpdateBbsTable) return EFI_ACCESS_DENIED;
if (gBbsUpdateInProgress) return EFI_NOT_READY;
if (EntryNumber == NULL) return EFI_INVALID_PARAMETER;
@@ -1282,6 +1298,7 @@ RemoveBbsEntryAt (
{
EFI_STATUS Status = EFI_SUCCESS;
+ if (gDoNotUpdateBbsTable) return EFI_ACCESS_DENIED;
if (gBbsUpdateInProgress) return EFI_NOT_READY;
gBbsUpdateInProgress = TRUE;
@@ -1367,6 +1384,39 @@ VOID ConnectSerialIO()
}
+EFI_STATUS LockConsole()
+{
+ EFI_STATUS Status;
+
+ if (gConsoleControl == NULL)
+ {
+ Status = pBS->LocateProtocol(&gEfiConsoleControlProtocolGuid, NULL, &gConsoleControl);
+ }
+ ASSERT_EFI_ERROR(Status);
+ if (EFI_ERROR(Status)) return Status;
+ if (gConsoleLocked) return EFI_NO_RESPONSE;
+
+ Status = gConsoleControl->LockStdIn(gConsoleControl, L"");
+ if (!EFI_ERROR(Status))
+ {
+ gConsoleLocked = TRUE;
+ }
+ return Status;
+}
+
+EFI_STATUS UnlockConsole()
+{
+ EFI_STATUS Status;
+
+ if (gConsoleControl == NULL) return EFI_NOT_FOUND;
+ if (gConsoleLocked == FALSE) return EFI_NO_RESPONSE;
+ Status = gConsoleControl->LockStdIn(gConsoleControl, L"");
+ if (!EFI_ERROR(Status))
+ {
+ gConsoleLocked = FALSE;
+ }
+ return Status;
+}
//<AMI_PHDR_START>
//---------------------------------------------------------------------------
diff --git a/Core/EM/CSM/CsmOpROM.c b/Core/EM/CSM/CsmOpROM.c
index 15cf5c5..b5366e7 100644
--- a/Core/EM/CSM/CsmOpROM.c
+++ b/Core/EM/CSM/CsmOpROM.c
@@ -13,17 +13,58 @@
//**********************************************************************
//****************************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmOpROM.c 171 8/06/14 4:24p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmOpROM.c 180 9/14/15 10:15a Olegi $
//
-// $Revision: 171 $
+// $Revision: 180 $
//
-// $Date: 8/06/14 4:24p $
+// $Date: 9/14/15 10:15a $
//
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Core/CsmOpROM.c $
//
+// 180 9/14/15 10:15a Olegi
+// [TAG] EIP237972
+// [Category] Bug Fix
+// [Symptom] Aptio4 CSM: default int10 installation may fail
+//
+// 179 9/09/15 11:09a Olegi
+// [TAG] EIP237387
+// [Description] Aptio4 CSM: Add PciIo check to prevent CPU exceptions
+// when executing service ROMs
+//
+// 178 9/09/15 10:54a Olegi
+// [TAG] EIP237386
+// [Description] Aptio4 CSM: ASSERT in headless mode on OptionROM
+// execution
+//
+// 177 9/09/15 10:47a Olegi
+// [TAG] EIP237385
+// [Description] Aptio4 CSM: trapped INT19 may fail
+//
+// 176 9/09/15 9:53a Olegi
+// [TAG] EIP237381
+// [Description] Aptio 4 CSM: add INT19 TRAP setup question
+//
+// 175 9/08/15 2:47p Olegi
+// [TAG] EIP237205
+// [Description] Aptio4 CSM: Add Lock/Unlock console calls during Option
+// ROMs execution
+//
+// 174 8/24/15 3:00p Olegi
+// [TAG] EIP235037
+// [Description] Aptio4 CSM: Optimize video mode switching during Option
+// ROMs execution
+//
+// 173 12/01/14 11:40a Olegi
+// correction to the previous check-in
+//
+// 172 11/06/14 11:28a Olegi
+// [TAG] EIP187681
+// [Description] Aptio4 CSM: Larger than 128KB sized OPROM support /
+// checking
+//
// 171 8/06/14 4:24p Fasihm
// [TAG] EIP180681
// [Category] Improvement
@@ -700,9 +741,15 @@ extern SAVED_PCI_ROM *gSavedOprom;
EFI_HANDLE gVgaHandle = NULL;
BOOLEAN gBbsUpdateInProgress = FALSE;
+BOOLEAN gDoNotUpdateBbsTable = FALSE;
+
+EFI_STATUS PreProcessOpRom(CSM_PLATFORM_PROTOCOL*, EFI_PCI_IO_PROTOCOL*, VOID**);
+EFI_STATUS PostProcessOpRom(CSM_PLATFORM_PROTOCOL*, EFI_PCI_IO_PROTOCOL*, VOID**);
+EFI_STATUS GetOpromVideoSwitchingMode(EFI_PCI_IO_PROTOCOL*, UINT16,UINTN*);
//
// gSetTxtMode
+// ff - initial value
// 0 - switching to text mode is needed
// 1 - switching is needed, restoration is not
// 2 - neither switching nor restoration is needed
@@ -778,7 +825,7 @@ IsValidLegacyPciOpROM (
PCI_DATA_STRUCTURE *pcir;
BOOLEAN IsLastImage = FALSE;
UINT8 *RomStart = *Image;
- UINTN RomSize = 0;
+ UINT32 RomSize = 0;
BOOLEAN FoundLegacyRom = FALSE;
UINTN RomEnd = (UINTN)*Image + *Size;
@@ -818,13 +865,28 @@ IsValidLegacyPciOpROM (
//
return TRUE;
}
-
- RomSize = ((LEGACY_OPT_ROM_HEADER*)RomStart)->Size512 << 9;
+
+ // Validate the ROM size
+ RomSize = pcir->ImageLength << 9;
+ if (RomSize <= 0x1fe00)
+ {
+ UINT32 HeaderRomSize = ((LEGACY_OPT_ROM_HEADER*)RomStart)->Size512 << 9;
+ if (HeaderRomSize > RomSize) RomSize = HeaderRomSize;
+ }
+ else
+ {
+ TRACE((-1, "CSM: Found unusually large legacy Option ROM (%d Bytes) - loading ", RomSize));
+ if (CSM_ALLOW_LARGE_OPROMS == 0)
+ {
+ TRACE((-1, "skipped.\n"));
+ RomSize = 0;
+ } else TRACE((-1, "allowed.\n"));
+ }
if (RomSize == 0) return FALSE;
*Image = RomStart;
- *Size = RomSize;
+ *Size = (UINTN)RomSize;
if (pcir->Revision == 3) return TRUE;
@@ -1033,6 +1095,8 @@ FetchBbsBootDevices(
UINT32 *ivt = (UINT32*)0;
UINT8 i, Checksum;
+ if (gDoNotUpdateBbsTable) return;
+
gBbsUpdateInProgress = TRUE;
BbsCount = BiosInfo->BbsEntriesNo;
@@ -1068,6 +1132,8 @@ TRACE((-1, "FetchBbsBootDevices: B%x/D%x/F%x, ClassCode %x\n", Bus, Dev, Fun, *(
//
PnpOfs = *((UINT16*)(Rom + 0x1A));// Offset of the 1st PnP header
for (;;PnpOfs = (UINT16)PnpHdr->NextHeaderOffset) {
+ if (gDoNotUpdateBbsTable) break;
+
PnpHdr = (PCI_PNP_EXPANSION_HEADER*) (Rom + PnpOfs);
if (*((UINT32*)PnpHdr) != 0x506E5024) break; // "$PnP"
@@ -1123,6 +1189,16 @@ TRACE((-1, "FetchBbsBootDevices: B%x/D%x/F%x, ClassCode %x\n", Bus, Dev, Fun, *(
BbsTable[BbsCount].BootHandlerOffset = PnpHdr->BEV;
}
+ if (gSetup.I19Trap == 0 && NewInt19) {
+ TRACE((-1, "CSM: trapped int19 execution postponed.\n"));
+
+ // clear up the BBS table, leave only the one entry that traps INT19
+ // block any further BBS table updates
+ for (i = 0; i < BbsCount; i++) {
+ BbsTable[i].BootPriority = BBS_IGNORE_ENTRY;
+ }
+ gDoNotUpdateBbsTable = TRUE;
+ }
BbsCount++;
}
@@ -1736,105 +1812,65 @@ CsmInstallRom (
UINT8 *RtData = NULL;
UINT32 RtDataSize;
UINT32 RtRomSize;
- UINTN SetTxtMode;
EFI_STATUS Status;
UINT32 CurrentInt10 = 0;
- UINT8 CurrentMode = 0;
- BOOLEAN VgaWasConnected = FALSE;
-// static EFI_CONSOLE_CONTROL_PROTOCOL *ConsoleControl = NULL;
UINT32 EbdaOffset;
EFI_PCI_IO_PROTOCOL *PciIo = NULL;
- EFI_PCI_IO_PROTOCOL *VgaPciIo;
- static UINT8 LegacyVgaStartCounter = 0;
- UINT64 VgaCapabilities;
-
- if (Handle != NULL) {
- Status = pBS->HandleProtocol (
- Handle,
- &gEfiPciIoProtocolGuid,
- &PciIo);
- ASSERT_EFI_ERROR (Status);
- }
-
- // Call LegacyBiosPlatform to get the VGA switching policy override
-
- Status = CoreBiosInfo->iBiosPlatform->GetPlatformInfo(CoreBiosInfo->iBiosPlatform,
- EfiGetPlatformOpromVideoMode,
- &PciIo,
- &SetTxtMode,
- 0,
- 0,
- (UINT16)gSetTxtMode,
- 0);
- if (EFI_ERROR(Status)) {
- SetTxtMode = (UINTN)gSetTxtMode;
- }
+ UINT64 Capabilities;
+ UINTN SetTxtMode;
- if (IsVga) {
- LegacyVgaStartCounter++;
- } else {
- // If it is not for VGA, than video mode might be forced to 3 for compatibility.
- // Current video mode is saved before the call and restored afterwards.
- DisconnectSerialIO();
- if (SetTxtMode != 2 && SetTxtMode != 3) {
- CurrentMode = *(UINT8*)(UINTN)0x449;
- Status = pBS->DisconnectController(gVgaHandle, NULL, NULL);
- // Note: later VgaWasConnected is checked only for SetTxtMode == 0
+ if (!IsVga) {
+ LockConsole();
+ if ((gSetTxtMode == 0) || (gSetTxtMode == 0xff)) {
+ DisconnectSerialIO();
+
+ if (gSetTxtMode == 0xff) {
+ // Call LegacyBiosPlatform to get the VGA switching policy override
+ // by default gSetTxtMode will be set to CSM_DEFAULT_VMODE_SWITCHING
+ if (Handle != NULL) {
+ Status = pBS->HandleProtocol (
+ Handle,
+ &gEfiPciIoProtocolGuid,
+ &PciIo);
+ ASSERT_EFI_ERROR (Status);
+ }
+
+ GetOpromVideoSwitchingMode(PciIo, CSM_DEFAULT_VMODE_SWITCHING, &SetTxtMode);
+ gSetTxtMode = (UINT8)SetTxtMode;
- VgaWasConnected = (BOOLEAN)(Status == EFI_SUCCESS);
+ if (gSetTxtMode == 1) {
+ // gSetTxtMode is 1: keep gVgaHandle connected, quietly change the video mode
+ RegSet.X.AX = 3;
+ Int86 (&CoreBiosInfo->iBios, 0x10, &RegSet);
+ }
+ }
- if (VgaWasConnected) {
- UINT64 Capabilities;
- //
- // VGA was successfully disconnected. Store the current attributes (to
- // be restored after executing OptionROM), and enable MEM/IO/VGA
- // decoding according to the supported attributes
- //
+ if (gSetTxtMode == 0) {
+ // gSetTxtMode is 0: disconnect controller and enable legacy VGA MEM/IO
+ Status = pBS->DisconnectController(gVgaHandle, NULL, NULL);
+ ASSERT_EFI_ERROR(Status);
+
Status = pBS->HandleProtocol (
gVgaHandle,
&gEfiPciIoProtocolGuid,
- &VgaPciIo);
+ &PciIo);
ASSERT_EFI_ERROR(Status);
- // Store the attributes set by DisconnectController
- Status = VgaPciIo->Attributes (VgaPciIo, EfiPciIoAttributeOperationGet, 0,
- &VgaCapabilities);
- ASSERT_EFI_ERROR(Status);
-
- Status = VgaPciIo->Attributes (VgaPciIo, EfiPciIoAttributeOperationSupported, 0,
+ Status = PciIo->Attributes (PciIo, EfiPciIoAttributeOperationSupported, 0,
&Capabilities);
ASSERT_EFI_ERROR(Status);
- // Enable VGA legacy MEM/IO access, do not check the status
- VgaPciIo->Attributes (VgaPciIo, EfiPciIoAttributeOperationEnable,
+ // Enable VGA legacy MEM/IO access
+ PciIo->Attributes (PciIo, EfiPciIoAttributeOperationEnable,
(Capabilities & EFI_PCI_DEVICE_ENABLE)
| EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY | EFI_PCI_IO_ATTRIBUTE_VGA_IO,
NULL);
}
-
-// if (ConsoleControl == NULL) {
-// Status = pBS->LocateProtocol(&gEfiConsoleControlProtocolGuid,NULL,&ConsoleControl);
-// if (!EFI_ERROR(Status)) {
-// Status = ConsoleControl->SetMode(ConsoleControl, EfiConsoleControlScreenText);
-// ASSERT_EFI_ERROR(Status);
-// }
-// }
}
-
-#if LEGACYSREDIR_SUPPORT
- // Enable Legacy Serial Redirection if enabled in the project
- pBS->LocateProtocol (
- &gEfiLegacySredirProtocolGuid,
- NULL,
- &gLegacySredir
- );
- if(gLegacySredir != NULL) {
- gLegacySredir->EnableLegacySredir(gLegacySredir);
- }
-#endif
-
- if (SetTxtMode == 2) {
+ // Set a dummy INT10 handler if gSetTxtMode is set to 2; note that gSetTxtMode
+ // might change after GetOpromVideoSwitchingMode
+ if (gSetTxtMode == 2) {
CurrentInt10 = *(UINT32*)(UINTN)0x40;
*(UINT32*)(UINTN)0x40 = 0xf000f065; // legacy int10
}
@@ -1847,15 +1883,12 @@ CsmInstallRom (
// Save the current EBDA location to check if OpROM modifies it
ebdaSeg1 = *(UINT16*)(UINTN)0x40e;
ebdaSizeKB = *(UINT8*)((UINTN)ebdaSeg1<<4);
- ebdaSize1 = (UINT32)ebdaSizeKB << 10;
+ ebdaSize1 = (UINTN)ebdaSizeKB << 10;
ASSERT(ebdaSizeKB); // should be initialized, can not be 0
baseMem1 = *(UINT16*)(UINTN)0x413;
// Execute OpROM
-// Status = DispatchOptionRom(CoreBiosInfo, Csm16DOT);
-// ASSERT_EFI_ERROR(Status);
-
pBS->SetMem(&RegSet, sizeof (EFI_IA32_REGISTER_SET), 0);
RegSet.X.AX = Compatibility16DispatchOprom;
RegSet.X.ES = EFI_SEGMENT (Csm16DOT);
@@ -1877,7 +1910,7 @@ CsmInstallRom (
TRACE((-1, "InstallRom...Run-time ROM Size = %x Bytes\n", RtRomSize));
// Update EBDA map
- ebdaSeg2 = *(UINT16*)(UINTN)0x40e;
+ ebdaSeg2 = *(UINT16*)(UINTN)0x40e;
ebdaSize2 = *(UINT8*)((UINTN)ebdaSeg2<<4) << 10;
RtDataSize = 0;
@@ -1895,59 +1928,32 @@ TRACE((-1, "InstallRom...Run-time ROM Size = %x Bytes\n", RtRomSize));
if (IsVga) return EFI_SUCCESS; // Done for VBIOS
- // Restore video mode
- if (SetTxtMode == 2) {
- *(UINT32*)(UINTN)0x40 = CurrentInt10;
- }
-
- // Disable Legacy console redirection
-#if LEGACYSREDIR_SUPPORT
- if(gLegacySredir == NULL) {
- pBS->LocateProtocol (
- &gEfiLegacySredirProtocolGuid,
- NULL,
- &gLegacySredir
- );
+ if (gSetTxtMode != 1) {
+ UnlockConsole();
}
- if(gLegacySredir != NULL) {
- gLegacySredir->DisableLegacySredir(gLegacySredir);
- }
-#endif
+ // Restore video mode if needed
+ // gSetTxtMode:
+ // 0: reconnect VGA controller
+ // 1: do nothing
+ // 2: restore fake INT10 vector
+ // Note that at first pass gSetTxtMode is either 0 or 2; in case of 0 it is
+ // reassigned using CSM_DEFAULT_VMODE_SWITCHING and OEM override.
- // VGA needs to be reconnected in several cases:
- // 1) SetTxtMode == 0
- // 2) SetTxtMode == 1 and VGA was started outside CSM control; this is determined
- // by the value of LegacyVgaStartCounter (greater than 1)
- if (SetTxtMode == 0 || (SetTxtMode == 1 && LegacyVgaStartCounter > 1))
- {
- if (VgaWasConnected) {
- // Restore VgaCapabilities on VgaPciIo
- VgaPciIo->Attributes (VgaPciIo, EfiPciIoAttributeOperationSet, VgaCapabilities, 0);
- } else {
- RegSet.H.AL = CurrentMode;
- RegSet.H.AH = 0;
- Status = CoreBiosInfo->iBios.Int86 (&CoreBiosInfo->iBios, 0x10, &RegSet);
- ASSERT_EFI_ERROR(Status);
- }
+ if (gSetTxtMode == 2) {
+ *(UINT32*)(UINTN)0x40 = CurrentInt10;
+ }
+ if (gSetTxtMode == 0) {
+ pBS->DisconnectController(gVgaHandle, NULL, NULL);
pBS->ConnectController(gVgaHandle, NULL, NULL, TRUE);
-
- // Reset counter so that following OpROMs will properly switch video when SetTxtMode is 1
- LegacyVgaStartCounter = 1;
-
-// if (ConsoleControl != NULL) {
-// Status = ConsoleControl->SetMode(ConsoleControl, EfiConsoleControlScreenGraphics);
-// ASSERT_EFI_ERROR(Status);
-// }
+ ConnectSerialIO();
}
- ConnectSerialIO();
-
// Update BBS device count
- if (CoreBiosInfo->BbsEntriesNo != Csm16DOT->NumberBbbsEntries) {
+ if (CoreBiosInfo->BbsEntriesNo != Csm16DOT->NumberBbsEntries) {
// CSM16 had inserted some BBS entries for non-BBS devices
- CoreBiosInfo->BbsEntriesNo = Csm16DOT->NumberBbbsEntries;
+ CoreBiosInfo->BbsEntriesNo = Csm16DOT->NumberBbsEntries;
}
// Process boot devices
@@ -2115,15 +2121,17 @@ InstallPciRom (
ASSERT_EFI_ERROR(Status);
}
+
//
// Execute platform pre-OpROM function
//
- pBS->LocateProtocol(&gCsmPlatformProtocolGuid, NULL, &CsmPlatformProtocol);
+ Status = pBS->LocateProtocol(&gCsmPlatformProtocolGuid, NULL, &CsmPlatformProtocol);
+
+ if (!EFI_ERROR(Status)) {
+ Status = PreProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
- if (CsmPlatformProtocol) {
- Status = CsmPlatformProtocol->PreProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
if (EFI_ERROR(Status)) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
return Status;
}
}
@@ -2136,7 +2144,7 @@ InstallPciRom (
// does not fail.
//
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
return EFI_SUCCESS;
}
@@ -2150,7 +2158,7 @@ InstallPciRom (
if (!EFI_ERROR(Status)) { // Platform returned VGA handle
if (PciHandle != *VgaHandlePtr) { // Not the one requested by platform
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
return EFI_UNSUPPORTED;
}
@@ -2158,6 +2166,7 @@ InstallPciRom (
}
else { // Not VGA
if (CoreBiosInfo->hVga == NULL) {
+ // NOTE: WITH THE CURRENT BDS IMPLEMENTATION CONTROL SHOULD NEVER COME HERE
EFI_PCI_IO_PROTOCOL *VgaPciIo = NULL;
//
// The control is passed to this routine to install non-VGA OpROM and VGA BIOS is
@@ -2228,7 +2237,7 @@ InstallPciRom (
Status = CheckPciRom (This, PciHandle, &RomLocation, &RomSize, Flags);
if (EFI_ERROR(Status) || (RomLocation == NULL)) {
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
return EFI_UNSUPPORTED;
}
@@ -2240,7 +2249,7 @@ InstallPciRom (
RomSize = ((LEGACY_OPT_ROM_HEADER*)RomLocation)->Size512 * 0x200;
if (RomSize == 0) {
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
return EFI_UNSUPPORTED;
}
@@ -2263,7 +2272,7 @@ InstallPciRom (
ASSERT_EFI_ERROR(Status);
if (EFI_ERROR(Status)) {
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
DEVICE_ERROR_CODE(DXE_LEGACY_OPROM_NO_SPACE, EFI_ERROR_MAJOR, PciHandle);
return EFI_OUT_OF_RESOURCES;
@@ -2271,7 +2280,7 @@ InstallPciRom (
if (Rom30Address < 0x8000) {
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
Status = EFI_OUT_OF_RESOURCES;
TRACE(((UINTN)TRACE_ALWAYS,"Can not execute PCI 3.0 OPROM: out of Base Memory.\n"));
@@ -2291,7 +2300,7 @@ InstallPciRom (
if(((UINTN)(gNextRomAddress) + SizeInShadow) > OPROM_MAX_ADDRESS){
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
TRACE(((UINTN)TRACE_ALWAYS,"Can not execute PCI OPROM: out of resources. RomAddr %x RomSize %x\n", gNextRomAddress, SizeInShadow));
Status = EFI_OUT_OF_RESOURCES;
@@ -2325,7 +2334,7 @@ InstallPciRom (
Csm16DOT->PciBus = (UINT8)PciBus;
Csm16DOT->PciDeviceFunction = (UINT8)(PciDeviceNumber << 3 | PciFunction);
- Csm16DOT->NumberBbbsEntries = CoreBiosInfo->BbsEntriesNo;
+ Csm16DOT->NumberBbsEntries = CoreBiosInfo->BbsEntriesNo;
Csm16DOT->BbsTable = (UINT32)(UINTN)(CoreBiosInfo->BbsTable);
TRACE((TRACE_ALWAYS, "OptionROM for B%x/D%x/F%x is executed from %x:0003\n",
@@ -2356,10 +2365,10 @@ InstallPciRom (
ivt[0x18] = Int18;
ivt[0x19] = Int19;
- DiskTo = DiskFrom + *(UINT8*)(UINTN)0x475;
+ DiskTo = (DiskFrom & 0xc0) + *(UINT8*)(UINTN)0x475;
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+ PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
}
if (is30ROM) {
@@ -2412,8 +2421,32 @@ TRACE((TRACE_ALWAYS, "PCI OPROM(handle %x, %x/%x/%x): addr %x, size %x\n",
PciHandle, PciBus, PciDeviceNumber, PciFunction, gNextRomAddress, NewRomSize));
gNextRomAddress += NewRomSize;
- if (Int19Trapped && !IsVga)
+ if (Int19Trapped && !IsVga && (gSetup.I19Trap == 1))
{
+ if (gSetTxtMode == 1)
+ {
+ if (gVgaHandle != NULL)
+ {
+ TRACE((-1, "Reconnecting video and serial before calling INT19 trap.\n"));
+ pBS->DisconnectController(gVgaHandle, NULL, NULL);
+ pBS->ConnectController(gVgaHandle, NULL, NULL, TRUE);
+ ConnectSerialIO();
+ }
+ UnlockConsole();
+ }
+
+ // Signal READY_TO_BOOT event
+ {
+ EFI_EVENT ReadyToBootEvent;
+ Status = CreateReadyToBootEvent(
+ TPL_CALLBACK, NULL, NULL, &ReadyToBootEvent
+ );
+ if (!EFI_ERROR(Status)) {
+ pBS->SignalEvent(ReadyToBootEvent);
+ pBS->CloseEvent(ReadyToBootEvent);
+ }
+ }
+
LegacyBoot (
&CoreBiosInfo->iBios,
&(DummyLoadOption.BbsDevicePath),
@@ -2553,12 +2586,12 @@ InstallIsaRom(
//
// Execute platform pre-OpROM function
//
- pBS->LocateProtocol(&gCsmPlatformProtocolGuid, NULL, &CsmPlatformProtocol);
+ Status = pBS->LocateProtocol(&gCsmPlatformProtocolGuid, NULL, &CsmPlatformProtocol);
- if (CsmPlatformProtocol) {
- Status = CsmPlatformProtocol->PreProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
+ if (!EFI_ERROR(Status)) {
+ Status = PreProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
if (EFI_ERROR(Status)) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
+ PostProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
return Status;
}
}
@@ -2567,7 +2600,7 @@ InstallIsaRom(
Csm16DOT = &CoreBiosInfo->Thunk->DispatchOpromTable;
Csm16DOT->OpromSegment = (UINT16)(RomAddress >> 4);
- Csm16DOT->NumberBbbsEntries = CoreBiosInfo->BbsEntriesNo;
+ Csm16DOT->NumberBbsEntries = CoreBiosInfo->BbsEntriesNo;
Csm16DOT->BbsTable = (UINT32)(UINTN)(CoreBiosInfo->BbsTable);
TRACE((TRACE_ALWAYS, "OptionROM for ISA Device is executed from %x:0003\n", Csm16DOT->OpromSegment));
@@ -2596,7 +2629,7 @@ InstallIsaRom(
ivt[0x19] = Int19;
if (CsmPlatformProtocol) {
- CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
+ PostProcessOpRom(CsmPlatformProtocol, NULL, (VOID*)&RomAddress);
}
return Status;
@@ -2631,7 +2664,6 @@ ShadowAllLegacyOproms (
UINT64 Capabilities;
UINTN Flags;
UINT8 dData[4];
- UINT8 SetTxtMode = gSetTxtMode;
//
// Locate all PciIo handles
@@ -2705,11 +2737,87 @@ ShadowAllLegacyOproms (
gServiceRomsExecuted = TRUE;
}
- gSetTxtMode = SetTxtMode;
-
return EFI_SUCCESS;
}
+EFI_STATUS
+PreProcessOpRom(
+ CSM_PLATFORM_PROTOCOL *CsmPlatformProtocol,
+ EFI_PCI_IO_PROTOCOL *PciIo,
+ VOID **RomImage
+)
+{
+ EFI_STATUS Status;
+
+ if (gVgaHandle == NULL)
+ {
+ BOOLEAN IsVga = FALSE;
+
+ if (PciIo != NULL)
+ {
+ UINT8 PciCfgData[4];
+ EFI_STATUS Status;
+
+ Status = PciIo->Pci.Read(
+ PciIo,
+ EfiPciIoWidthUint8,
+ 8, // offset
+ 4, // width
+ PciCfgData);
+ ASSERT_EFI_ERROR(Status);
+
+ if (PciCfgData[3]==PCI_CL_OLD && PciCfgData[2]==PCI_CL_OLD_SCL_VGA) {
+ IsVga = TRUE;
+ }
+ if (PciCfgData[3]==PCI_CL_DISPLAY && PciCfgData[2]==PCI_CL_DISPLAY_SCL_VGA) {
+ IsVga = TRUE;
+ }
+ }
+ if (!IsVga)
+ gSetTxtMode = 2;
+ }
+
+ Status = CsmPlatformProtocol->PreProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+
+#if LEGACYSREDIR_SUPPORT
+ if(gLegacySredir == NULL) {
+ pBS->LocateProtocol (
+ &gEfiLegacySredirProtocolGuid,
+ NULL,
+ &gLegacySredir
+ );
+ }
+ if(gLegacySredir != NULL) {
+ gLegacySredir->EnableLegacySredir(gLegacySredir);
+ }
+#endif
+ return Status;
+}
+
+EFI_STATUS
+PostProcessOpRom(
+ CSM_PLATFORM_PROTOCOL *CsmPlatformProtocol,
+ EFI_PCI_IO_PROTOCOL *PciIo,
+ VOID **RomImage
+)
+{
+ EFI_STATUS Status;
+ Status = CsmPlatformProtocol->PostProcessOpRom(CsmPlatformProtocol, PciIo, RomImage);
+
+#if LEGACYSREDIR_SUPPORT
+ if(gLegacySredir == NULL) {
+ pBS->LocateProtocol (
+ &gEfiLegacySredirProtocolGuid,
+ NULL,
+ &gLegacySredir
+ );
+ }
+ if(gLegacySredir != NULL) {
+ gLegacySredir->DisableLegacySredir(gLegacySredir);
+ }
+#endif
+ return Status;
+}
//**********************************************************************
//**********************************************************************
diff --git a/Core/EM/CSM/PciInterrupts.c b/Core/EM/CSM/PciInterrupts.c
index 95a0709..057315d 100644
--- a/Core/EM/CSM/PciInterrupts.c
+++ b/Core/EM/CSM/PciInterrupts.c
@@ -237,8 +237,7 @@ extern UINTN RbCount;
UINT8 SBGen_GetPIRQIndex (UINT8);
-//UINT8 irq_priority_map[] = {11, 10, 9, 15, 5, 3, 7, 4, 14};
-UINT8 irq_priority_map[] = {15, 7, 14, 6, 11, 10, 9, 5, 3, 4};
+UINT8 irq_priority_map[] = {11, 10, 9, 15, 5, 3, 7, 4, 14};
UINT8 irq_allocated_count[sizeof(irq_priority_map)] = {0};
UINT16 IsaIrqMask;
diff --git a/Core/EM/CSM/thunk/BlockIo/CsmBlkIoComponentName.c b/Core/EM/CSM/thunk/BlockIo/CsmBlkIoComponentName.c
index 6807d3e..2f48bf2 100644
--- a/Core/EM/CSM/thunk/BlockIo/CsmBlkIoComponentName.c
+++ b/Core/EM/CSM/thunk/BlockIo/CsmBlkIoComponentName.c
@@ -13,16 +13,19 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlkIoComponentName.c 6 12/23/13 3:38p Olegi $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlkIoComponentName.c 7 9/09/15 11:42a Olegi $
//
-// $Revision: 6 $
+// $Revision: 7 $
//
-// $Date: 12/23/13 3:38p $
+// $Date: 9/09/15 11:42a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlkIoComponentName.c $
//
+// 7 9/09/15 11:42a Olegi
+// cleanup
+//
// 6 12/23/13 3:38p Olegi
// EIP128504: implement EFI_COMPONENT2_NAME_PROTOCOL for CsmBlockIo driver
//
@@ -223,7 +226,7 @@ CsmBlockIoComponentNameGetControllerName (
Status = LegacyBiosExt->GetBbsTable(&BbsEntry, &BbsCount);
if (EFI_ERROR(Status)) return Status;
- ZeroMemory(gCsmBlockIoControllerName, sizeof(gCsmBlockIoControllerName));
+ pBS->SetMem(gCsmBlockIoControllerName, sizeof(gCsmBlockIoControllerName), 0);
for (i = 0; i < MAX_BBS_ENTRIES_NO; i++, BbsEntry++) {
Handle = *(VOID**)(&BbsEntry->IBV1);
diff --git a/Core/EM/CSM/thunk/BlockIo/CsmBlockIo.c b/Core/EM/CSM/thunk/BlockIo/CsmBlockIo.c
index 14438f5..91d5191 100644
--- a/Core/EM/CSM/thunk/BlockIo/CsmBlockIo.c
+++ b/Core/EM/CSM/thunk/BlockIo/CsmBlockIo.c
@@ -13,16 +13,23 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlockIo.c 49 8/06/14 1:20p Fasihm $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlockIo.c 51 9/09/15 11:46a Olegi $
//
-// $Revision: 49 $
+// $Revision: 51 $
//
-// $Date: 8/06/14 1:20p $
+// $Date: 9/09/15 11:46a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmBlockIo.c $
//
+// 51 9/09/15 11:46a Olegi
+// [TAG] EIP237391
+// [Description] Aptio4 CSM: CsmBlockIo drive handle is lost
+//
+// 50 9/09/15 11:26a Olegi
+// cleanup
+//
// 49 8/06/14 1:20p Fasihm
// [TAG] EIP180668
// [Category] Bug Fix
@@ -251,16 +258,23 @@ CSM_LEGACY_DRIVE *mDriveParameterBuffer;
// has gOnboardRaidGuid installed on it
//
#define ONBOARD_RAID_GUID \
- { 0x5d206dd3, 0x516a, 0x47dc, 0xa1, 0xbc, 0x6d, 0xa2, 0x4, 0xaa, 0xbe, 0x8};
+ { 0x5d206dd3, 0x516a, 0x47dc, {0xa1, 0xbc, 0x6d, 0xa2, 0x4, 0xaa, 0xbe, 0x8}};
EFI_GUID gOnboardRaidGuid = ONBOARD_RAID_GUID;
// The following GUID is used to ensure the Start function is executed after all
// individual drives in RAID are unlocked before RAID Option ROM is executed
//
#define HDD_UNLOCKED_GUID \
- { 0x1fd29be6, 0x70d0, 0x42a4, 0xa6, 0xe7, 0xe5, 0xd1, 0xe, 0x6a, 0xc3, 0x76};
+ { 0x1fd29be6, 0x70d0, 0x42a4, {0xa6, 0xe7, 0xe5, 0xd1, 0xe, 0x6a, 0xc3, 0x76}};
EFI_GUID gHddUnlockedGuid = HDD_UNLOCKED_GUID;
+#define LTEB_GUID \
+ {0xC8BCA618, 0xBFC6, 0x46B7, 0x8D, 0x19, 0x83, 0x14, 0xE2, 0xE5, 0x6E, 0xC1}
+
+EFI_GUID gLTEBGuid = LTEB_GUID;
+
+VOID CsmBlockIoComebackFromLegacyBoot(EFI_EVENT, VOID*);
+
//<AMI_PHDR_START>
//**********************************************************************
@@ -720,7 +734,7 @@ CsmBlockIoStart (
}
// Zero the private device structure
- ZeroMemory (PrivateBlockIoStruc, sizeof (CSM_BLOCK_IO_DEV));
+ pBS->SetMem (PrivateBlockIoStruc, sizeof (CSM_BLOCK_IO_DEV), 0);
// Initialize the private device structure
PrivateBlockIoStruc->ControllerHandle = Controller;
@@ -754,11 +768,17 @@ CsmBlockIoStart (
pBS->FreePool (PrivateBlockIoStruc);
}
- // Set handle to which BlockIO has been installed
+ // Set handle and BCV information to which BlockIO has been installed
if (j < NewBbsEntries)
{
*(UINTN*)(&(BbsTable[FirstNewBbsEntry + j].IBV1)) = (UINTN)(PrivateBlockIoStruc->Handle);
+ PrivateBlockIoStruc->BcvSegment = BbsTable[FirstNewBbsEntry + j].BootHandlerSegment;
+ PrivateBlockIoStruc->BcvOffset = BbsTable[FirstNewBbsEntry + j].BootHandlerOffset;
}
+
+ // For Onboard Raid controller use device path protocol
+ // and other Raid controller uses the PciIO protocol.
+
if(OnboardRaidController) {
// Open For Child Device
Status = pBS->OpenProtocol( Controller,
@@ -778,6 +798,18 @@ CsmBlockIoStart (
PrivateBlockIoStruc->Handle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER );
}
+
+ // Register callback notification on Legacy2Efi. Use PrivateBlockInfoStruc as Context
+
+ Status = pBS->CreateEventEx(
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ CsmBlockIoComebackFromLegacyBoot,
+ PrivateBlockIoStruc,
+ &gLTEBGuid,
+ &PrivateBlockIoStruc->Legacy2EfiEvent);
+ ASSERT_EFI_ERROR(Status);
+
} else {
pBS->FreePool (PrivateBlockIoStruc);
}
@@ -884,6 +916,8 @@ CsmBlockIoStop (
This->DriverBindingHandle,
ChildHandleBuffer[i] );
}
+
+ pBS->CloseEvent(PrivateBlockIoStruc->Legacy2EfiEvent);
// Release PCI I/O and Block IO Protocols on the clild handle.
Status = pBS->UninstallMultipleProtocolInterfaces( ChildHandleBuffer[i],
@@ -1048,19 +1082,60 @@ UINTN AlignAddress (UINTN Address)
}
}
-// Zero memory
-VOID ZeroMemory (
- VOID *Buffer,
- UINTN Size
+/**
+ Callback notification on legacy boot return. This function adjusts the INT13 handles
+ that might have been changed during legacy boot.
+
+ @note
+ Control flow:
+ - locate CSM_BLOCK_IO_DEV device
+ - look in IPLDT for this device using BCV Segment/Offset
+ - get the handle index from IPLDT ipld_table_entry.VectorIndex
+ - get the handle from dimVectorMap[32 max]
+ - updates BlockIoDev->Drive->Number with the new handle
+
+**/
+
+#define EFI_CSM_BLOCKIO_MAX_IPLDT_ENTRIES 32
+
+VOID
+CsmBlockIoComebackFromLegacyBoot(
+ EFI_EVENT Event,
+ VOID *Context
)
{
- UINT8 *Ptr;
- Ptr = Buffer;
- while (Size--) {
- *(Ptr++) = 0;
+ CSM_BLOCK_IO_DEV *Device = Context;
+ UINT16 EbdaSeg = *(UINT16*)0x40e;
+ UINT8 *Ebda = (UINT8*)((UINTN)EbdaSeg<<4);
+ UINT8 i;
+ UINT8 *Int13Handles = Ebda + 0x3e0;
+ UINT8 *Ipldt = Ebda + 0x440;
+ UINT8 VectorIndex;
+ UINT8 Handle;
+
+ TRACE((TRACE_ALWAYS, "CsmBlockIo L2E: BCV at %x:%x\n", Device->BcvSegment, Device->BcvOffset));
+ for (i = 0; i < EFI_CSM_BLOCKIO_MAX_IPLDT_ENTRIES; i++)
+ {
+ if (*((UINT16*)(Ipldt+0xe)) == Device->BcvOffset &&
+ (*((UINT16*)(Ipldt + 0x10)) == Device->BcvSegment)) break;
+ Ipldt += 0x40;
+ }
+ if (i == EFI_CSM_BLOCKIO_MAX_IPLDT_ENTRIES)
+ {
+ TRACE((TRACE_ALWAYS, "Entry is not found in IPLDT\n"));
+ return;
}
+
+ VectorIndex = Ipldt[2];
+ Handle = Int13Handles[VectorIndex];
+
+ TRACE((TRACE_ALWAYS, "IPLDT[%x], index %x, handle %x\n", i, VectorIndex, Handle));
+ ASSERT(Handle > 0x7f);
+
+ Device->Drive.Number = Handle;
}
+
//**********************************************************************
//**********************************************************************
//** **
diff --git a/Core/EM/CSM/thunk/BlockIo/CsmEdd.h b/Core/EM/CSM/thunk/BlockIo/CsmEdd.h
index 0c9ff4c..4743f81 100644
--- a/Core/EM/CSM/thunk/BlockIo/CsmEdd.h
+++ b/Core/EM/CSM/thunk/BlockIo/CsmEdd.h
@@ -13,16 +13,20 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmEdd.h 7 1/12/10 11:50a Olegi $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmEdd.h 8 9/09/15 11:46a Olegi $
//
-// $Revision: 7 $
+// $Revision: 8 $
//
-// $Date: 1/12/10 11:50a $
+// $Date: 9/09/15 11:46a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmEdd.h $
//
+// 8 9/09/15 11:46a Olegi
+// [TAG] EIP237391
+// [Description] Aptio4 CSM: CsmBlockIo drive handle is lost
+//
// 7 1/12/10 11:50a Olegi
// Copyright message updated.
//
@@ -388,6 +392,9 @@ typedef struct {
CSM_LEGACY_DRIVE Drive;
UINT8 HwInt;
UINT32 HwIntHandler;
+ EFI_EVENT Legacy2EfiEvent;
+ UINT16 BcvSegment;
+ UINT16 BcvOffset;
} CSM_BLOCK_IO_DEV;
#endif
diff --git a/Core/EM/CSM/thunk/BlockIo/CsmInt13.c b/Core/EM/CSM/thunk/BlockIo/CsmInt13.c
index 8e3195e..962742e 100644
--- a/Core/EM/CSM/thunk/BlockIo/CsmInt13.c
+++ b/Core/EM/CSM/thunk/BlockIo/CsmInt13.c
@@ -13,16 +13,22 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmInt13.c 17 12/23/13 3:14p Olegi $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmInt13.c 18 6/18/15 10:15a Olegi $
//
-// $Revision: 17 $
+// $Revision: 18 $
//
-// $Date: 12/23/13 3:14p $
+// $Date: 6/18/15 10:15a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/INT13/CsmInt13.c $
//
+// 18 6/18/15 10:15a Olegi
+// [TAG] EIP221923
+// [Category] Bug Fix
+// [Symptom] CsmBlockIO issue for 4K Sector size - Do the changes of
+// EIP219657 to Aptio4 CSMBlockIo.
+//
// 17 12/23/13 3:14p Olegi
// EIP148138: use AMI_BLOCKIO_WRITE_PROTECTION_PROTOCOL instead of
// EFI_MBR_WRITE_PROTECTION_PROTOCOL
@@ -205,7 +211,11 @@ InitBlockIo (
}
// TRACE((-1," BlockSize = %d LastBlock = %d\n", BlockMedia->BlockSize, BlockMedia->LastBlock));
-
+ // If the BlockSize is more than 512 bytes per sector, don't install the BlockIO Protocol
+ // for the device: Int13 function supports only 512 bytes per sector.
+ if(BlockMedia->BlockSize != 512) {
+ return FALSE;
+ }
BlockMedia->LogicalPartition = FALSE;
BlockMedia->WriteCaching = FALSE;
diff --git a/Core/EM/CSM/thunk/CsmVideo/UefiBiosVideo.c b/Core/EM/CSM/thunk/CsmVideo/UefiBiosVideo.c
index ddbe46c..eafc43e 100644
--- a/Core/EM/CSM/thunk/CsmVideo/UefiBiosVideo.c
+++ b/Core/EM/CSM/thunk/CsmVideo/UefiBiosVideo.c
@@ -1788,7 +1788,7 @@ BiosVideoCheckForVbe (
//
Status = gBS->AllocatePool (
EfiBootServicesData,
- sizeof ((VESA_BIOS_EXTENSIONS_EDID_BLOCK_SIZE * 2)),
+ VESA_BIOS_EXTENSIONS_EDID_BLOCK_SIZE * 2,
&EdidOverrideDataBlock
);
@@ -2030,7 +2030,7 @@ BiosVideoCheckForVbe (
// When EDID exist and if the timing matches with VESA add it.
// And also add three possible resolutions, i.e. 1024x768, 800x600, 640x480
//
- TRACE((TRACE_BIOS_VIDEO, "neither EDID nor MODE match is found.\n", i));
+ TRACE((TRACE_BIOS_VIDEO, "neither EDID nor MODE match is found.\n"));
continue;
}
@@ -2738,7 +2738,7 @@ Routine Description:
//
// Frame BufferSize remain unchanged
//
- This->Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) ModeData->LinearFrameBuffer;
+ This->Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS)(UINTN)ModeData->LinearFrameBuffer;
This->Mode->FrameBufferSize = ModeData->FrameBufferSize;
BiosVideoPrivate->HardwareNeedsStarting = FALSE;
diff --git a/Core/EM/CSM/thunk/x86/thunk.c b/Core/EM/CSM/thunk/x86/thunk.c
index 57233e4..44b7beb 100644
--- a/Core/EM/CSM/thunk/x86/thunk.c
+++ b/Core/EM/CSM/thunk/x86/thunk.c
@@ -13,16 +13,21 @@
//**********************************************************************
//**********************************************************************
-// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/x86/thunk.c 49 10/07/13 9:41a Olegi $
+// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/x86/thunk.c 50 9/09/15 11:13a Olegi $
//
-// $Revision: 49 $
+// $Revision: 50 $
//
-// $Date: 10/07/13 9:41a $
+// $Date: 9/09/15 11:13a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Thunk/x86/thunk.c $
//
+// 50 9/09/15 11:13a Olegi
+// [TAG] EIP237204
+// [Description] Aptio4 CSM: implement OEM eLink function for
+// FarCall86() and Int86()
+//
// 49 10/07/13 9:41a Olegi
// Undone previous checkin related to EIP125856 as it is causing assert
// during boot.
@@ -227,24 +232,6 @@
#pragma pack(1)
-typedef struct {
- UINT16 Offset;
- UINT16 Segment;
-} FAR_CALL_PTR_16;
-
-typedef struct {
- UINT32 Stack;
- UINT32 StackSize;
-} STACK;
-
-typedef struct {
- FAR_CALL_PTR_16 FarCall;
- EFI_IA32_REGISTER_SET Regs;
- STACK Stack;
- BOOLEAN isFarCall; //if false, then INT86.
- UINT8 BiosInt;
-} THUNK_DATA;
-
typedef struct _ACPI_PNPID {
UINT32 Signature :16;
UINT32 PnpID :16;
@@ -274,6 +261,8 @@ EFI_STATUS GetPs2SimpleTextInProtocolInterface(
EFI_SIMPLE_TEXT_INPUT_PROTOCOL **PS2KBDInterface
);
+EFI_STATUS Csm16CallCompanion(AMI_CSM_THUNK_DATA*, BOOLEAN);
+
//<AMI_PHDR_START>
//---------------------------------------------------------------------------
//
@@ -384,7 +373,7 @@ BOOLEAN Int86(
{
EFI_TPL OldTpl;
- THUNK_DATA *ThunkData = (THUNK_DATA*)(gThunkAsmAddr+6);
+ AMI_CSM_THUNK_DATA *ThunkData = (AMI_CSM_THUNK_DATA*)(gThunkAsmAddr+6);
//
// To avoid reentrance in Int86
//
@@ -394,12 +383,14 @@ BOOLEAN Int86(
gInsideThunk = TRUE;
ThunkData->isFarCall = FALSE;
ThunkData->BiosInt = BiosInt;
- ThunkData->Stack.StackSize = 0; //This is required
+ ThunkData->StackData.StackSize = 0; //This is required
//Copy thunk registers.
ThunkData->Regs = *Regs;
-
+
+ Csm16CallCompanion(ThunkData, TRUE);
+
#if defined(AMIUSB_SUPPORT)
{
EFI_STATUS Status;
@@ -432,6 +423,8 @@ BOOLEAN Int86(
gLegacy8259->SetMode(gLegacy8259,Efi8259ProtectedMode,NULL,NULL);
pBS->RestoreTPL(OldTpl);
+ Csm16CallCompanion(ThunkData, FALSE);
+
//Restore thunk registers.
*Regs = ThunkData->Regs;
gInsideThunk = FALSE;
@@ -473,7 +466,7 @@ BOOLEAN FarCall86(
EFI_TPL OldTpl;
UINT16 IrqMask, SaveIrqMask;
UINT16 ProtectedIrqMask, ProtectedSaveIrqMask;
- THUNK_DATA *ThunkData = (THUNK_DATA*)(gThunkAsmAddr+6);
+ AMI_CSM_THUNK_DATA *ThunkData = (AMI_CSM_THUNK_DATA*)(gThunkAsmAddr+6);
UINT16 FuncNumber;
BOOLEAN IsCsm16Call =
Segment == CoreBiosInfo->Csm16EntrySeg &&
@@ -521,13 +514,15 @@ BOOLEAN FarCall86(
//Copy address for stack
if (Stack)
{
- ThunkData->Stack.Stack = (UINT32)Stack;
- ThunkData->Stack.StackSize = (UINT32)StackSize;
- } else ThunkData->Stack.StackSize = 0;
+ ThunkData->StackData.Stack = (UINT32)Stack;
+ ThunkData->StackData.StackSize = (UINT32)StackSize;
+ } else ThunkData->StackData.StackSize = 0;
//Copy thunk registers.
ThunkData->Regs = *Regs;
-
+
+ Csm16CallCompanion(ThunkData, TRUE);
+
// Reset the PS/2 keyboard before legacy boot
if (IsCsm16LegacyBoot == TRUE) {
if (gPS2KBDInterface) gPS2KBDInterface->Reset(gPS2KBDInterface, FALSE);
@@ -548,9 +543,6 @@ BOOLEAN FarCall86(
// Mask all HW interrupts for real mode for CSM16 function #0 (InitializeYourself).
// This is needed since IVT is not installed before executing function #0.
//
- // TODO: Explore the possibility of IVT installation from CSM32; in this case the
- // code that is updating and using ProtectedIrqMask can be removed.
- //
if (IsCsm16Call && FuncNumber == 00 ) {
gLegacy8259->GetMask(gLegacy8259, NULL, NULL, &ProtectedSaveIrqMask, NULL); // Save current Mask
ProtectedIrqMask = -1;
@@ -620,7 +612,8 @@ BOOLEAN FarCall86(
pKeyCodeProtocol->SetState((EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL*)pKeyCodeProtocol,&KeyToggleState);
}
}
-
+ Csm16CallCompanion(ThunkData, FALSE);
+
*(UINT8*)(UINTN)0x417 &= 0x70; // Clear key modifiers status in BDA
gInsideThunk = FALSE;
diff --git a/Core/EM/EfiOsBootOptionNames/EfiOsBootOrder.c b/Core/EM/EfiOsBootOptionNames/EfiOsBootOrder.c
index 3501a4b..df5ef53 100644
--- a/Core/EM/EfiOsBootOptionNames/EfiOsBootOrder.c
+++ b/Core/EM/EfiOsBootOptionNames/EfiOsBootOrder.c
@@ -245,123 +245,6 @@ extern UINT16 gSATA[3][2] ;
EFI_DEVICE_PATH_PROTOCOL **NewEfiOsOptionDpList = NULL ;
UINTN NewEfiOsOptionDpListCount = 0 ;
-#define CONFIG_PORT0 0x2E
-#define INDEX_PORT0 0x2E
-#define DATA_PORT0 0x2F
-#define SEND_BYTE_DELEY 0x200
-#define SEND_BYTE_ATEMPTS 0x10
-
-#define COM_BASE_ADDR 0x03f8
-
-#define LSR_OFFSET 0x05
-#define LCR_OFFSET 0x03
-#define DIV_MSB 0x01
-#define DIV_LSB 0
-
-#define TRANSMIT_READY_BIT 0x020
-//#ifdef UART_INPUT_CLOCK
-//UINTN UartInputClock=UART_INPUT_CLOCK;
-//#else
-////
-//// Set the default value((24000000/13)MHz input clock) if the UART_INPUT_CLOCK SDL token is not present.
-////
-//UINTN UartInputClock=1843200;
-//#endif
-
-#define BAUD_RATE_DIVISOR 115200
-
-#define DATA_BITS 3 // 0 - 5 bits / 1 - 6 bits
-// 2 - 7 bits / 3 - 8 bits
-// RSP BUGBUG #define STOP_BIT 0 // 0 - 1 stop bit
-#define STOP_BIT 1 // 0 - 1 stop bit
-// 1 - mutiple bits depending on the databits
-#define PARITY_BITS 0 // 0 - None / 1 enables parity
-#define BREAK_BIT 0 // 0 - No break
-#define DLAB_BIT 1 // 0 - Divisor Latch Disabled
-
-BOOLEAN EfiOsBootOrder_SendByte(UINT8 Byte)
-{
- UINT8 Buffer8;
- UINT32 Cntr = 0;
-
- do
- {
- // Read the ready signal to see if the serial port is
- // ready for the next byte.
- Buffer8 = IoRead8(COM_BASE_ADDR + LSR_OFFSET);
- // Increment timeout counter.
- Cntr++;
- // Loop until the serial port is ready for the next byte.
- }
- while ( (Cntr < SEND_BYTE_DELEY) &&
- ((Buffer8 & TRANSMIT_READY_BIT) == FALSE) );
- if (Cntr < SEND_BYTE_DELEY){
-
- IoWrite8(COM_BASE_ADDR, Byte);
- return TRUE;
- } else return FALSE;
-
-}
-
-//<AMI_PHDR_START>
-//----------------------------------------------------------------------------
-// Procedure: EfiOsBootOrder_SerialOutput
-//
-// Description: Writes the given string to the serial port byte by byte
-// using the function EfiOsBootOrder_SendByte.
-//
-// Input:
-// IN EFI_PEI_SERVICES **PeiServices - pointer to the PEI Boot Services table
-// CHAR8 *String - String to be sent over the serial port
-//
-// Output: EFI_SUCCESS
-//
-//----------------------------------------------------------------------------
-//<AMI_PHDR_END>
-EFI_STATUS EfiOsBootOrder_SerialOutput(
- IN CHAR8 *String
-)
-{
-//#if SERIAL_STATUS_SUPPORT
- UINT8 *Buffer, i;
- UINT32 Delay;
- BOOLEAN ByteSent;
-
- if (String == NULL) return EFI_SUCCESS;
- // first make data useable
- Buffer = String;
-
- // now send data one byte at a time until the string hits the end of string
- // or we hit the max number of characters
- while (*Buffer)
- {
- // replace "\n" with "\r\n"
- for (i = 0; i <= SEND_BYTE_ATEMPTS; i++){
- ByteSent = TRUE;
-
- if (*Buffer=='\n') ByteSent = EfiOsBootOrder_SendByte('\r');
-
- if (ByteSent) ByteSent = EfiOsBootOrder_SendByte(*Buffer);
-
- if (ByteSent) break;
- else
- for (Delay = 0; Delay <= 100000; Delay++);
- }
-
- // move Data pointer to the next byte if previous was sent
- if (ByteSent) Buffer++;
- else return EFI_SUCCESS;
- }
-//#endif
- return EFI_SUCCESS;
-}
-VOID EfiOsBootOrder_SerialCheckpoint(UINT16 Checkpoint)
-{
- char s[20];
- Sprintf_s(s, sizeof(s), "=== %X\n",Checkpoint);
- EfiOsBootOrder_SerialOutput(s);
-}
-
//<AMI_PHDR_START>
//---------------------------------------------------------------------------
//
@@ -1549,8 +1432,7 @@ BOOLEAN RemoveLegacyGptHdd(BOOT_DEVICE *Device){
Status = pRS->GetVariable(L"Setup", &SetupGuid, NULL, &Size, &SetupData);
-// if( Device->BbsEntry->DeviceType != BBS_HARDDISK && SetupData.OnlyBootHDD == 1 ) return TRUE;
- if( Device->BbsEntry->Class != PCI_CL_MASS_STOR && SetupData.OnlyBootHDD == 1 ) return TRUE;
+ if( Device->BbsEntry->DeviceType != BBS_HARDDISK && SetupData.OnlyBootHDD == 1 ) return TRUE;
return FALSE;
}
#endif
diff --git a/Core/EM/PS2CTL/kbc.c b/Core/EM/PS2CTL/kbc.c
index 19518b6..1712196 100644
--- a/Core/EM/PS2CTL/kbc.c
+++ b/Core/EM/PS2CTL/kbc.c
@@ -291,35 +291,8 @@ extern UINT8 gKeyboardIrqInstall;
extern EFI_LEGACY_8259_PROTOCOL *mLegacy8259;
BOOLEAN InsidePS2DataDispatcher = FALSE;
//----------------------------------------------------------------------
-
-VOID F81866ConfigRegisterWrite(UINT8 Index, UINT8 Data)
-{
- IoWrite8(F81866_CONFIG_INDEX, Index);
- IoWrite8(F81866_CONFIG_DATA, Data);
-}
-UINT8 F81866ConfigRegisterRead(UINT8 Index)
-{
- UINT8 Data8;
- IoWrite8(F81866_CONFIG_INDEX, Index);
- Data8 = IoRead8(F81866_CONFIG_DATA);
- return Data8;
-}
-VOID F81866LDNSelect(UINT8 Ldn)
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_LDN_SEL_REGISTER);
- IoWrite8(F81866_CONFIG_DATA, Ldn);
-}
-VOID F81866EnterConfigMode()
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
-}
-VOID F81866ExitConfigMode()
-{
- // Exit config mode
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_EXIT_VALUE);
-}
+
//<AMI_PHDR_START>
//----------------------------------------------------------------------
//
@@ -459,29 +432,21 @@ VOID AutodetectKbdMousePorts()
{
UINT8 bData, Index;
-// EFI_STATUS Status;
-{
- UINT8 Data8 ;
-
- F81866EnterConfigMode() ;
- F81866LDNSelect(0x05) ;
- Data8 = F81866ConfigRegisterRead(0xFE) ;
- F81866ConfigRegisterWrite(0xFE , Data8 & ~BIT4) ;
- F81866ExitConfigMode() ;
-}
-// Status = IbFreeTimeout(IbFreeMaxTimeoutValue);
-// if (EFI_ERROR(Status)) {
-// return;
-// }
-// WriteKeyboardCommand(0x60); // Lock KBD
+ EFI_STATUS Status;
+ Status = IbFreeTimeout(IbFreeMaxTimeoutValue);
+ if (EFI_ERROR(Status)) {
+ return;
+ }
+ WriteKeyboardCommand(0x60); // Lock KBD
IoRead8(KBC_DATA_PORT); // Discard any data
Write8042CommandByte(0x74); // KBD and Aux device disabled
// Check for KBC version
IoRead8(KBC_DATA_PORT); // Discard any data
-// WriteKeyboardCommand(0xa1); //
-// if (!ObFullReadTimeout(&bData, 20, TRUE) && bData == 0x35) {
+ WriteKeyboardCommand(0xa1); //
+ if (!ObFullReadTimeout(&bData, 20, TRUE) && bData == 0x35) {
+
WriteKeyboardCommand(0x60);
WriteKeyboardData(4);
@@ -498,13 +463,12 @@ VOID AutodetectKbdMousePorts()
if (bData == rKeyboardID) goto PortSwap;
-// if (bData == KB_ACK_COM) {
+ if (bData == KB_ACK_COM) {
ObFullReadTimeout(&bData, 100, TRUE);
// When Mouse is connected to KBD port, control goes to PortSwap here
-// if (!bData) goto PortSwap;
- if (bData != 0xAB) goto PortSwap;
+ if (!bData) goto PortSwap;
ObFullReadTimeout(&bData, 100, TRUE);
-// }
+ }
bData = IoRead8(KBC_CMDSTS_PORT);
// When KBD is connected to the KBD port, control returns here
if (!(bData & KBC_TIMEOUT_ERR)) return;
@@ -524,18 +488,9 @@ VOID AutodetectKbdMousePorts()
if (bData & KBC_TIMEOUT_ERR) return;
PortSwap:
-{
- UINT8 Data8 ;
-
- F81866EnterConfigMode() ;
- F81866LDNSelect(0x05) ;
- Data8 = F81866ConfigRegisterRead(0xFE) ;
- F81866ConfigRegisterWrite(0xFE , Data8 | BIT4) ;
- F81866ExitConfigMode() ;
-}
-// WriteKeyboardCommand(0xC9);
+ WriteKeyboardCommand(0xC9);
return;
-// }
+ }
}
diff --git a/Core/EM/PS2CTL/ps2main.c b/Core/EM/PS2CTL/ps2main.c
index 78351d6..d760970 100644
--- a/Core/EM/PS2CTL/ps2main.c
+++ b/Core/EM/PS2CTL/ps2main.c
@@ -443,8 +443,7 @@ EFI_STATUS PS2CtlStart(
}
}
// Swap ports if needed
- //if (AutodetectKbdMousePortsPtr!=NULL) AutodetectKbdMousePortsPtr();
- AutodetectKbdMousePorts() ;
+ if (AutodetectKbdMousePortsPtr!=NULL) AutodetectKbdMousePortsPtr();
gDriverStartCounter++;
}
diff --git a/DW01AR11.zip b/DW01AR11.zip
deleted file mode 100644
index 2f5eb27..0000000
--- a/DW01AR11.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AR12.zip b/DW01AR12.zip
deleted file mode 100644
index 7b5514c..0000000
--- a/DW01AR12.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AR13.zip b/DW01AR13.zip
deleted file mode 100644
index f96afba..0000000
--- a/DW01AR13.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AR14.zip b/DW01AR14.zip
deleted file mode 100644
index 4262ea0..0000000
--- a/DW01AR14.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AR15.zip b/DW01AR15.zip
deleted file mode 100644
index 177ac64..0000000
--- a/DW01AR15.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AR16.zip b/DW01AR16.zip
deleted file mode 100644
index 6b952a6..0000000
--- a/DW01AR16.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AT12.zip b/DW01AT12.zip
deleted file mode 100644
index 640bfee..0000000
--- a/DW01AT12.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AT13.zip b/DW01AT13.zip
deleted file mode 100644
index bf53a96..0000000
--- a/DW01AT13.zip
+++ /dev/null
Binary files differ
diff --git a/DW01AT11.zip b/DW01VR10.zip
index 05c608c..047777d 100644
--- a/DW01AT11.zip
+++ b/DW01VR10.zip
Binary files differ
diff --git a/DW03AR00.zip b/DW03AR00.zip
new file mode 100644
index 0000000..2d478ce
--- /dev/null
+++ b/DW03AR00.zip
Binary files differ
diff --git a/DW03AR01.zip b/DW03AR01.zip
new file mode 100644
index 0000000..51f21a8
--- /dev/null
+++ b/DW03AR01.zip
Binary files differ
diff --git a/DW03AR02.zip b/DW03AR02.zip
new file mode 100644
index 0000000..8462526
--- /dev/null
+++ b/DW03AR02.zip
Binary files differ
diff --git a/DWF-B850-R10测试问题汇总.xlsx b/DWF-B850-R10测试问题汇总.xlsx
new file mode 100644
index 0000000..09cbb17
--- /dev/null
+++ b/DWF-B850-R10测试问题汇总.xlsx
Binary files differ
diff --git a/DWI-AH810-R10测试问题汇总.xlsx b/DWI-AH810-R10测试问题汇总.xlsx
deleted file mode 100644
index 373d44b..0000000
--- a/DWI-AH810-R10测试问题汇总.xlsx
+++ /dev/null
Binary files differ
diff --git a/HDACfg-0662-10EC0000.txt b/HDACfg-0662-10EC0000.txt
index a630a7f..bd91b0f 100644
--- a/HDACfg-0662-10EC0000.txt
+++ b/HDACfg-0662-10EC0000.txt
@@ -10,12 +10,12 @@
;HDA Codec PnP ID : HDAUDIO\FUNC_01&VEN_10EC&DEV_0662&SUBSYS_10EC0000
;The number of verb command block : 13
-; NID 0x14 : 0x02014110
+; NID 0x14 : 0x02014010
; NID 0x15 : 0x4000C000
; NID 0x16 : 0x411111F0
-; NID 0x18 : 0x01A19120
+; NID 0x18 : 0x01A19020
; NID 0x19 : 0x411111F0
-; NID 0x1A : 0x0181312F
+; NID 0x1A : 0x0181302F
; NID 0x1B : 0x411111F0
; NID 0x1C : 0x411111F0
; NID 0x1D : 0x40B00001
@@ -38,7 +38,7 @@ dd 0017FF00h
dd 0017FF00h
;Pin widget 0x14 - FRONT (Port-D)
dd 01471C10h
-dd 01471D41h
+dd 01471D40h
dd 01471E01h
dd 01471F02h
;Pin widget 0x15 - SURR (Port-A)
@@ -53,7 +53,7 @@ dd 01671E11h
dd 01671F41h
;Pin widget 0x18 - MIC1 (Port-B)
dd 01871C20h
-dd 01871D91h
+dd 01871D90h
dd 01871EA1h
dd 01871F01h
;Pin widget 0x19 - MIC2 (Port-F)
@@ -63,7 +63,7 @@ dd 01971E11h
dd 01971F41h
;Pin widget 0x1A - LINE1 (Port-C)
dd 01A71C2Fh
-dd 01A71D31h
+dd 01A71D30h
dd 01A71E81h
dd 01A71F01h
;Pin widget 0x1B - LINE2 (Port-E)
diff --git a/New_Project_01/HDACfg.bak b/New_Project_01/HDACfg.bak
deleted file mode 100644
index 19760fc..0000000
--- a/New_Project_01/HDACfg.bak
+++ /dev/null
Binary files differ
diff --git a/New_Project_01/HDACfg.dat b/New_Project_01/HDACfg.dat
index 68f316f..19760fc 100644
--- a/New_Project_01/HDACfg.dat
+++ b/New_Project_01/HDACfg.dat
Binary files differ
diff --git a/ReferenceCode/AcpiTables/Dsdt/GloblNvs.asl b/ReferenceCode/AcpiTables/Dsdt/GloblNvs.asl
index 1c18c04..c8b1525 100644
--- a/ReferenceCode/AcpiTables/Dsdt/GloblNvs.asl
+++ b/ReferenceCode/AcpiTables/Dsdt/GloblNvs.asl
@@ -424,7 +424,7 @@
SPST, 8, // (688) SATA port state, Bit0 - Port0, Bit1 - Port1, Bit2 - Port2, Bit3 - Port3
ECLP, 8, // (689) EC Low Power Mode: 1 - Enabled, 0 - Disabled
INSC, 8, // (690) Intel RMT Configuration
- CISM, 8,
+// CISM, 8,
}
#if defined(ASL_Remove_SaSsdt_Data_To_Dsdt) && (ASL_Remove_SaSsdt_Data_To_Dsdt == 1)
diff --git a/RomImage/FitcBuild.bat b/RomImage/FitcBuild.bat
index f3dc295..9f04e39 100644
--- a/RomImage/FitcBuild.bat
+++ b/RomImage/FitcBuild.bat
@@ -103,7 +103,7 @@ GOTO ImageOutput
:ImageOutput
IF EXIST %DestDir%\OutImage.bin ECHO Rom_%RomSize%%RomSkue%.bin && move /Y %DestDir%\OutImage.bin Rom_%RomSize%%RomSkue%.bin
-IF EXIST Rom_%RomSize%%RomSkue%.bin move /Y Rom_%RomSize%%RomSkue%.bin DW01AR16.bin
+IF EXIST Rom_%RomSize%%RomSkue%.bin move /Y Rom_%RomSize%%RomSkue%.bin DW03AR02.bin
IF EXIST %DestDir%\OutImage_1.bin ECHO Rom00%RomSkue%.bin && move /Y %DestDir%\OutImage_1.bin Rom00%RomSkue%.bin
IF EXIST %DestDir%\OutImage_2.bin ECHO Rom01%RomSkue%.bin && move /Y %DestDir%\OutImage_2.bin Rom01%RomSkue%.bin
echo Rom_%RomSize%%RomSkue%.bin>ForPfatName.txt
diff --git a/RomImage/XmlFiles/Q87_8Mx2.xml b/RomImage/XmlFiles/Q87_8Mx2.xml
index e62863b..48a9cb4 100644
--- a/RomImage/XmlFiles/Q87_8Mx2.xml
+++ b/RomImage/XmlFiles/Q87_8Mx2.xml
@@ -179,8 +179,8 @@
<RegionLength value="0x00000000" edit="true" visible="true" name="GbE LAN region length" help_text="This is the size of the GbE LAN region in bytes. Set this to 0 to make the region length equal to the binary file length (rounded up to 4k). Extra space will be filled with 0xFF."/>
<InputFile value="$SourceDir\gbe\nahum6_clarksville_desktop_1_3.bin" edit="true" visible="true" name="GbE binary input file" help_text="This is the Gbe image binary that will be copied into this region."/>
<MajorVersion value="0" edit="false" visible="true" name="Major Version" help_text=""/>
- <MinorVersion value="13" edit="false" visible="true" name="Minor Version" help_text=""/>
- <ImageId value="4" edit="false" visible="true" name="Image ID" help_text=""/>
+ <MinorVersion value="0" edit="false" visible="true" name="Minor Version" help_text=""/>
+ <ImageId value="0" edit="false" visible="true" name="Image ID" help_text=""/>
<LANEn value="false" edit="false" visible="true" name="Intel (R) Integrated LAN Enable" help_text="Intel (R) Integrated LAN related PCH Straps are set up automatically according to this setting."/>
</Region3>
<Region4 name="PDR Region">
@@ -192,8 +192,8 @@
<Enabled value="true" edit="false" visible="false" name="ME region enabled" help_text=""/>
<RegionLength value="0x00000000" edit="true" visible="false" name="ME region length" help_text="This is the size of the ME region in bytes. Set this to 0 to make the region length equal to the binary file length (rounded up to 4k). Extra space will be filled with 0xFF."/>
<InputFile value="$SourceDir\me\me9.1_1.5m_production.bin" edit="true" visible="true" name="ME Binary Input File" help_text="This is the path to a binary file that will be used for the ME region."/>
- <WcodChosen value="0x0082 TAYLOR" value_list="0x088E JACKSON,,0x0087 KILMER,,0x422B PUMA,,0x08B1 WILKINS,,0x0082 TAYLOR" edit="true" visible="true" name="WCOD Id" help_text="Determines which wireless LAN micro code will be supported in the firmware image"/>
- <LoclChosen value="0x01 EN" value_list="0x02 FR,,0x03 GER,,0x04 CH,,0x05 JPN,,0x06 RUS,,0x07 ITA,,0x08 ESP,,0x09 PTB,,0x0A KOR,,0x0B CHS,,0x0C ARA,,0x0D CZE,,0x0E DAN,,0x0F GRE,,0x10 FIN,,0x11 HEB,,0x12 HUN,,0x13 DUT,,0x14 NOR,,0x15 POL,,0x16 POR,,0x17 SLK,,0x18 SLV,,0x19 SWE,,0x1A THA,,0x1B TUR,,0x01 EN" edit="true" visible="true" name="LOCL Id" help_text="Determines which localized language data will be used by the firmware for the secure output screens (Examples: SOL / KVM)"/>
+ <WcodChosen value="None" value_list="" edit="false" visible="false" name="WCOD Id" help_text="Determines which wireless LAN micro code will be supported in the firmware image"/>
+ <LoclChosen value="None" value_list="" edit="false" visible="false" name="LOCL Id" help_text="Determines which localized language data will be used by the firmware for the secure output screens (Examples: SOL / KVM)"/>
<Configuration name="Configuration">
<ME name="ME">
<FwuOemId value="00000000-0000-0000-0000-000000000000" edit="true" visible="true" name="FW Update OEM ID" help_text="Enter UUID or file containing the UUID. This UUID will make sure that customers can only update a platform with an image coming from the OEM of the platform. If set to zero than any input is valid (including none) when doing a FW update."/>
@@ -759,10 +759,13 @@
<Custom>
<Profile name="UserProfile" base="Standard" selected="TRUE">
<HwRegisters>
+ <SSCCTL_DMI100 value="0x00000000"/>
<SSCCTL_PCHPCIE100 value="0x00000008"/>
- <OCKEN value="0x700F0F8C"/>
+ <OCKEN value="0x74FF0A88"/>
<SECOSS value="0x00002216"/>
</HwRegisters>
+ <ClkRangeDefRecord clock="2" value="0x0000070001B00D80"/>
+ <ClkRangeDefRecord clock="3" value="0x0000D832A5B00D80"/>
</Profile>
</Custom>
<LockMask value="0:Default"/>
diff --git a/SharkBayDT.veb b/SharkBayDT.veb
index 648abc8..a56672a 100644
--- a/SharkBayDT.veb
+++ b/SharkBayDT.veb
@@ -63,9 +63,6 @@
"Core\EM\EdkIILib\EdkIILib.cif"= "SS: Alaska;$/Alaska/SOURCE/Core\EdkIICompLib;4.6.5.4"
"Include\EdkII_headers.cif"= "SS: Alaska;$/Alaska/SOURCE/Core\EdkIICompLib;4.6.5.4"
"Core\EM\Capsule2_0\Capsule2_0.cif"= "SS: Alaska;$/Alaska/SOURCE/Core\Modules/Capsule2_0;4.6.5.4"
-"Board\IO\F81216\F81216.CIF"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81216_Sec;4.6.3_SIO_F81216_Sec_A9"
-"Board\IO\F81216\ACPI\DeviceASL.cif"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81216_Sec\F81216 Device ASL Files;4.6.3_SIO_F81216_Sec_A9"
-"Board\IO\F81216\BSP\BSP.cif"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81216_Sec\F81216 Board;4.6.3_SIO_F81216_Sec_A9"
"Board\IO\F81866\F81866.CIF"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81866;4.6.3.5_SIO_F81866_A5"
"Board\IO\F81866\ACPI\DeviceASL.cif"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81866\F81866 Device ASL Files;4.6.3.5_SIO_F81866_A5"
"Board\IO\F81866\BSP\BSP.cif"= "SS: ALASKA;$/Alaska/BIN/IO/Fintek/F81866\F81866 Board;4.6.3.5_SIO_F81866_A5"
@@ -330,20 +327,19 @@
"core\em\KbcEmul\KbcUhci.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/KbcEmulation/ALASKA/KBCEMUL;4.6.3-KbcEmulation-020"
"core\em\KbcEmul\KbcEmulIrq.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/KbcEmulation/ALASKA/KBCEMUL;4.6.3-KbcEmulation-020"
"core\em\KbcEmul\KbcOhci.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/KbcEmulation/ALASKA/KBCEMUL;4.6.3-KbcEmulation-020"
-"Board\em\KbcSbBoard\KbcSbBoard.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/KbcEmulation/SouthBridge/Intel/LynxPoint;4.6.3-KbcEmulation-LynxPnt-001"
-"Board\eM\Csm\csm.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.76_81"
-"Core\EM\CSM\csmcore.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Core;4.6.5.3_CSM.7.76_81"
-"core\em\csm\thunk\thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk;4.6.5.3_CSM.7.76_81"
-"core\em\csm\thunk\x86\x86thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/x86;4.6.5.3_CSM.7.76_81"
-"core\em\csm\thunk\BlockIo\int13thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/INT13;4.6.5.3_CSM.7.76_81"
-"core\em\csm\thunk\Snp16\snp16.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/SNP16;4.6.5.3_CSM.7.76_81"
-"Core\EM\CSM\Thunk\CsmVideo\CsmVideo.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/CsmVideo;4.6.5.3_CSM.7.76_81"
-"Board\eM\Csm\csmoem.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\OEM Hooks;4.6.5.3_CSM.7.76_81"
-"Addon\csm16.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\CSM16;4.6.5.3_CSM.7.76_81"
-"Chipset\SB\CSM\csmsb.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Chipset/SouthBridge;4.6.5.3_CSM.7.76_81"
-"Chipset\SB\CSM\LegacyInterrupt\LegacyInterrupt.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Chipset/SouthBridge;4.6.5.3_CSM.7.76_81"
-"include\CsmProtocols.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.76_81"
-"board\em\csm\csmsetup.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.76_81"
+"Board\eM\Csm\csm.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.79_82"
+"Core\EM\CSM\csmcore.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Core;4.6.5.3_CSM.7.79_82"
+"core\em\csm\thunk\thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk;4.6.5.3_CSM.7.79_82"
+"core\em\csm\thunk\x86\x86thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/x86;4.6.5.3_CSM.7.79_82"
+"core\em\csm\thunk\BlockIo\int13thunk.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/INT13;4.6.5.3_CSM.7.79_82"
+"core\em\csm\thunk\Snp16\snp16.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/SNP16;4.6.5.3_CSM.7.79_82"
+"Core\EM\CSM\Thunk\CsmVideo\CsmVideo.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Thunk/CsmVideo;4.6.5.3_CSM.7.79_82"
+"Board\eM\Csm\csmoem.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\OEM Hooks;4.6.5.3_CSM.7.79_82"
+"Addon\csm16.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\CSM16;4.6.5.3_CSM.7.79_82"
+"Chipset\SB\CSM\csmsb.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Chipset/SouthBridge;4.6.5.3_CSM.7.79_82"
+"Chipset\SB\CSM\LegacyInterrupt\LegacyInterrupt.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic\Chipset/SouthBridge;4.6.5.3_CSM.7.79_82"
+"include\CsmProtocols.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.79_82"
+"board\em\csm\csmsetup.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CSM/Generic;4.6.5.3_CSM.7.79_82"
"Core\EM\CsmOptOut\CsmOptOut.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/CsmOptOut;4.6.5.4_Csm_OptOut_05"
"ReferenceCode\ME\ME.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/SharkBayRefCodes/ME;4.6.4.1_Intel_ME_RC_1.90_052"
"ReferenceCode\ME\Heci\MeHeci.cif"= "SS: ALASKA;$/Alaska/SOURCE/Modules/SharkBayRefCodes/ME\MeHeci;4.6.4.1_Intel_ME_RC_1.90_052"
@@ -799,9 +795,7 @@
"Core\EM\AMIDebugRx\binaries\LIBS\DbgrUsbCableSelectLib.cif"= "SS: Alaska;$/Alaska/BIN/Modules/AMIDebugRx\binaries/LIBS;4.6.2_AMIDebugRx_2.04.0074"
"Core\EM\AMIDebugRx\binaries\LIBS\DbgrX64Lib\DbgrX64Lib.cif"= "SS: Alaska;$/Alaska/BIN/Modules/AMIDebugRx\binaries/LIBS/DbgrX64Lib;4.6.2_AMIDebugRx_2.04.0074"
"Core\EM\AMIDebugRx\binaries\LIBS\DebuggerLib\DebuggerLib.cif"= "SS: Alaska;$/Alaska/BIN/Modules/AMIDebugRx\binaries/LIBS/DebuggerLib;4.6.2_AMIDebugRx_2.04.0074"
-"FixedBootOrder.cif"= "SS: ALASKA;$/Alaska/BIN/Modules/Template/FixedBootOrder Demo;4.6.5.1_FixedBootOrder_17"
-"Board\EM\FixedBootOrder\DefaultFixedBootOrder\DefaultFixedBootOrder.cif"= "SS: ALASKA;$/Alaska/BIN/Modules/Template/FixedBootOrder Demo\Board/em/FixedBootOrder;4.6.5.1_FixedBootOrder_17"
-"Board\EM\FixedBootOrder\FixedBootOrderStyle\FixedBootOrderStyle.cif"= "SS: ALASKA;$/Alaska/BIN/Modules/Template/FixedBootOrder Demo\Board/em/FixedBootOrder;4.6.5.1_FixedBootOrder_17"
+
"Board\Board.cif"= "SS: Alaska;$/Alaska/BIN/Board;4.6.5.4_Board_31"
"Board\em\Setup\Setup.cif"= "SS: Alaska;$/Alaska/BIN/Board\Setup;4.6.5.4_Board_31"
"Include\Protocol\AmiSetupProtocol.cif"= "SS: ALASKA;$/Alaska/BIN/Board\Setup;4.6.5.4_Board_31"