Hi I am new to EDK2 and Apollo lake Leaf Hill board. Booting OS from USB is OK. But Booting OS from SPI flash is not work. I want to boot small OS from SPI flash.(MT25QU128ABA) What am I have to do to booting OS from SPI flash? ==============Debug message======================= [Bds]OsIndication: 0000000000000000 [Bds]=============Begin Load Options Dumping ...============= Driver Options: SysPrep Options: Boot Options: Boot0001: Internal UEFI Shell 2.0 0x0001 Boot0000: BootManagerMenuApp 0x0109 Boot0002: Enter Setup 0x0109 PlatformRecovery Options: PlatformRecovery0000: Default PlatformRecovery 0x0001 [Bds]=============End Load Options Dumping============= [Bds]BdsWait ...Zzzzzzzzzzzz... [Bds]BdsWait(1)..Zzzz... [Bds]Exit the waiting! PROGRESS CODE: V3051007 I0 [Bds]Stop Hotkey Service! [Bds]UnregisterKeyNotify: 0011/0000 Success [Bds]UnregisterKeyNotify: 000C/0000 Success [Bds]UnregisterKeyNotify: 0000/000D Success OnReadyToBootCallBack SetGOPVersionCallback VbtAddress =0x7AB7CF0C VbtSize = 0x1600. VBT data found VbtFileBuffer->HeaderVbtSize = 0x1506 Executing SMBIOS T14 callback. BoardInitDxe: GetBoardName - Leaf Hill B2 Stepping Detected SmbiosAdd: Smbios type 1 with size 0x85 is added to 32-bit table SmbiosAdd: Smbios type 1 with size 0x85 is added to 64-bit table ReadyToBootFunction(#376) - Programming SD Card detect pin as GPI... UART2 Device Not Found Or OsDbgEnable is Disabled  - DBG2 UART2 Base Address Not Updated S3Ready! Publish WDAT... Installing WDAT... Install WDAT Success RTD3 SSDT Table found.Uninstalling it DPTF OnReadyToBoot bDptfEnabled = 0x0 DPTF SSDT Table found.Uninstalling it SmmInstallProtocolInterface: 6E057ECF-FA99-4F39-95BC-59F9921D17E4 0 SeCReadyToBootEvent ++ BIOS Start Send HECI Message: EndOfPost HECI SeCMode 0 GetSeCMode successful GEN_END_OF_POST size is 4 HeciSendwAck () - Start Start HeciSend CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Wait for CSE ready, SecControlReg 80161609 CSE ready SecControlReg 80161609 Heci Message Header: 80040007 Message[0] = 00000CFF Prepare Send Interrupt to CSE: 80848208 Send Interrupt to CSE: 80848209 No More Data Need be sent.End HeciSend Start HeciReceive CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Waiting for CSE notify, HostControlReg: 8084840B SecControlReg: 80191609 Waiting for CSE notify, HostControlReg: 8084840B Get CSE notify, HostControlReg: 8084840B Disable Interrupt, HostControlReg: 80848408 Check SecControlReg: 80191609 Get Message Header: 80080007 MessageBody[0] = 00008CFF MessageBody[1] = 00000000 Enable Host to get CSE interrupt: 80848408 get CSE interrupt Enabled: 80848409 Not more data need be receive, end End HeciReceive Group    =000000FF Command  =0000000C IsRespone=00000001 Result   =00000000 RequestedActions   =00000000 InstallProtocolInterface: 16B6109E-194C-440F-94F8-C7CCCCC32DEB 0 HeciSmmReady gEfiHeciProtocol Has Installed return HeciSmmHandler SMM_HECI_MESSAGE_END_OF_POST SmmInstallProtocolInterface: 16B6109E-194C-440F-94F8-C7CCCCC32DEB 0 Begin - End of Post HECI Event HECI Protocol 0 End - End of Post HECI Event LockConfig () - Start HECI SeCStatus 80000255 SecFirmwareStatus.ul: 0x80000255 FATAL ERROR: Set boot script outside SMM after SmmReadyToLock!!! SeCReadyToBootEvent -- ScOnReadyToBoot() Start ScOnReadyToBoot() End Failed to locate DxeCpuInfo Protocol UpdatePlatformInformation(): calling GetBoardName() BoardInitDxe: GetBoardName - Leaf Hill Executing GetImageFwVersion(). BIOS Start Send HECI Message: HeciGetImageFwVerMsg HECI SeCMode 0 GetSeCMode successful FW_VER_CMD_REQ size is 0x4, FW_VERSION_CMD_RESP_DATA size is: 0x80 HeciSendwAck () - Start Start HeciSend CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Wait for CSE ready, SecControlReg 80191909 CSE ready SecControlReg 80191909 Heci Message Header: 80040007 Message[0] = 00001CFF Prepare Send Interrupt to CSE: 80868408 Send Interrupt to CSE: 80868409 No More Data Need be sent.End HeciSend Start HeciReceive CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Waiting for CSE notify, HostControlReg: 8086860B SecControlReg: 80301909 Waiting for CSE notify, HostControlReg: 8086860B Get CSE notify, HostControlReg: 8086860B Disable Interrupt, HostControlReg: 80868608 Check SecControlReg: 80301909 Get Message Header: 80580007 MessageBody[0] = 00009CFF MessageBody[1] = 00000004 MessageBody[2] = 52505446 MessageBody[3] = 6E616D2E MessageBody[4] = 00000000 MessageBody[5] = 00010003 MessageBody[6] = 091E0046 MessageBody[7] = 50434D50 MessageBody[8] = 6E616D2E MessageBody[9] = 00000000 MessageBody[A] = 00010000 MessageBody[B] = 00000000 MessageBody[C] = 50494D53 MessageBody[D] = 6E616D2E MessageBody[E] = 00000000 MessageBody[F] = 00010003 MessageBody[10] = 08E8003C MessageBody[11] = 504E5549 MessageBody[12] = 6E616D2E MessageBody[13] = 00000000 MessageBody[14] = 00000000 MessageBody[15] = 00000000 Enable Host to get CSE interrupt: 80868608 get CSE interrupt Enabled: 80868609 Not more data need be receive, end End HeciReceive DumpBuffer 0x7A1AD650 FF 9C 00 00 04 00 00 00 46 54 50 52 2E 6D 61 6E 00 00 00 00 03 00 01 00 46 00 1E 09 50 4D 43 50 2E 6D 61 6E 00 00 00 00 00 00 01 00 00 00 00 00 53 4D 49 50 2E 6D 61 6E 00 00 00 00 03 00 01 00 3C 00 E8 08 49 55 4E 50 2E 6D 61 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Group      =000000FF Command    =0000001C IsRespone  =00000001 Result     =00000000 NumModules =00000004 UpdateSeCInformation ++ HECI SeCMode 0 Start HeciSend CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Wait for CSE ready, SecControlReg 80303009 CSE ready SecControlReg 80303009 Heci Message Header: 80080007 Message[0] = 00000203 Message[1] = 00000000 Prepare Send Interrupt to CSE: 80898608 Send Interrupt to CSE: 80898609 No More Data Need be sent.End HeciSend Start HeciReceive CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Waiting for CSE notify, HostControlReg: 8089890B SecControlReg: 80353009 Waiting for CSE notify, HostControlReg: 8089890B Get CSE notify, HostControlReg: 8089890B Disable Interrupt, HostControlReg: 80898908 Check SecControlReg: 80353009 Get Message Header: 800D0007 MessageBody[0] = 00008203 MessageBody[1] = 00000000 MessageBody[2] = 10104004 MessageBody[3] = 00000011 Enable Host to get CSE interrupt: 80898908 get CSE interrupt Enabled: 80898909 Not more data need be receive, end End HeciReceive HeciGetFwFeatureStateMsg ++ HECI SeCMode 0 Start HeciSend CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Wait for CSE ready, SecControlReg 80353509 CSE ready SecControlReg 80353509 Heci Message Header: 80080007 Message[0] = 00000203 Message[1] = 00000020 Prepare Send Interrupt to CSE: 808C8908 Send Interrupt to CSE: 808C8909 No More Data Need be sent.End HeciSend Start HeciReceive CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Waiting for CSE notify, HostControlReg: 808C8C0B SecControlReg: 803A3509 Waiting for CSE notify, HostControlReg: 808C8C0B Get CSE notify, HostControlReg: 808C8C0B Disable Interrupt, HostControlReg: 808C8C08 Check SecControlReg: 803A3509 Get Message Header: 800D0007 MessageBody[0] = 00008203 MessageBody[1] = 00000020 MessageBody[2] = 10104004 MessageBody[3] = 00000011 Enable Host to get CSE interrupt: 808C8C08 get CSE interrupt Enabled: 808C8C09 Not more data need be receive, end End HeciReceive HeciGetFwFeatureStateMsg -- HECI SeCMode 0 Start HeciSend CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Wait for CSE ready, SecControlReg 803A3A09 CSE ready SecControlReg 803A3A09 Heci Message Header: 80080007 Message[0] = 00000203 Message[1] = 0000002B Prepare Send Interrupt to CSE: 808F8C08 Send Interrupt to CSE: 808F8C09 No More Data Need be sent.End HeciSend Start HeciReceive CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR CheckAndFixHeciForAccess Entry, For HECI Dev-0 HECI Device's R_HECIMBAR0 = 0x9361D000, R_HECIMBAR1 = 0x0 CheckAndFixHeciForAccess Exit with MBAR Waiting for CSE notify, HostControlReg: 808F8F0B SecControlReg: 803F3A09 Waiting for CSE notify, HostControlReg: 808F8F0B Get CSE notify, HostControlReg: 808F8F0B Disable Interrupt, HostControlReg: 808F8F08 Check SecControlReg: 803F3A09 Get Message Header: 800D0007 MessageBody[0] = 00008203 MessageBody[1] = 0000002B MessageBody[2] = 00000004 MessageBody[3] = 00000000 Enable Host to get CSE interrupt: 808F8F08 get CSE interrupt Enabled: 808F8F09 Not more data need be receive, end End HeciReceive UpdateSeCInformation -- SeCPolicyReadyToBootEvent ++ HECI SeCMode 0 HECI SeCStatus 80000255 SeCPolicyReadyToBootEvent -- FspFindFspHeader FSP NotifyPhase ReadyToBoot failed, status: 0x80000003 gAddPerfRecordProtocolGuid - Locate protocol failed POSTCODE= POSTCODE=<000000AD> PROGRESS CODE: V3051001 I0 00: - Healthy Memory  Previous  Current    Next Type    Pages     Pages     Pages ======  ========  ========  ======== 09    00000040  00000023  00000040 0A    00000060  0000002D  00000060 00    00001A80  0000184B  00001A80 05    000000F0  0000008A  000000F0 06    00000240  000000F6  00000240 [Bds]Booting Internal UEFI Shell 2.0 [Bds] Expand Fv(5968B09B-6C7E-4356-8720-AC897E800270)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1) -> Fv(5968B09B-6C7E-4356-8720-AC897E800270)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1) PROGRESS CODE: V3058000 I0 InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 77132040 Loading driver at 0x00076459000 EntryPoint=0x00076459280 InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 768AA098 ProtectUefiImageCommon - 0x77132040 - 0x0000000076459000 - 0x00000000000E85C0 PROGRESS CODE: V3058001 I0 InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 77108CA0 InstallProtocolInterface: 752F3136-4E16-4FDC-A22A-E5F46812F4CA 77108A18 InstallProtocolInterface: 6302D008-7F9B-4F30-87AC-60C9FEF5DA4E 764C1C70 UEFI Interactive Shell v2.2 EDK II UEFI v2.70 (EDK II, 0x00010000) Mapping table map: No mapping found. Press ESC in 5 seconds to skip startup.nsh or any other key to continue.Press ESC in 4 seconds to skip startup.nsh or any other key to continue.Press ESC in 3 seconds to skip startup.nsh or any other key to continue.Press ESC in 2 seconds to skip startup.nsh or any other key to continue.Press ESC in 1 seconds to skip startup.nsh or any other key to continue. Shell>