mirror of
https://github.com/linuxboot/heads.git
synced 2024-12-24 07:06:42 +00:00
remove old patches
This commit is contained in:
parent
c79e407872
commit
c46c078157
@ -1,473 +0,0 @@
|
|||||||
diff --git a/MdeModulePkg/Core/Dxe/Dispatcher/Dependency.c b/MdeModulePkg/Core/Dxe/Dispatcher/Dependency.c
|
|
||||||
index 1d8a57b..29bd38a 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/Dispatcher/Dependency.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/Dispatcher/Dependency.c
|
|
||||||
@@ -208,6 +208,8 @@ CorePreProcessDepex (
|
|
||||||
was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
+BOOLEAN mDebugDepex;
|
|
||||||
+
|
|
||||||
BOOLEAN
|
|
||||||
CoreIsSchedulable (
|
|
||||||
IN EFI_CORE_DRIVER_ENTRY *DriverEntry
|
|
||||||
@@ -231,19 +233,18 @@ CoreIsSchedulable (
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, "Evaluate DXE DEPEX for FFS(%g)\n", &DriverEntry->FileName));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, "Evaluate DXE DEPEX for FFS(%g)\n", &DriverEntry->FileName));
|
|
||||||
|
|
||||||
if (DriverEntry->Depex == NULL) {
|
|
||||||
//
|
|
||||||
// A NULL Depex means treat the driver like an UEFI 2.0 thing.
|
|
||||||
//
|
|
||||||
Status = CoreAllEfiServicesAvailable ();
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " All UEFI Services Available = "));
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, "FALSE\n RESULT = FALSE\n"));
|
|
||||||
+ if (mDebugDepex) DEBUG ((DEBUG_DISPATCH, " All UEFI Services Available = FALSE\n"));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, "TRUE\n RESULT = TRUE\n"));
|
|
||||||
+ if (mDebugDepex) DEBUG ((DEBUG_DISPATCH, " All UEFI Services Available = TRUE\n"));
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -306,10 +307,10 @@ CoreIsSchedulable (
|
|
||||||
Status = CoreLocateProtocol (&DriverGuid, NULL, &Interface);
|
|
||||||
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = FALSE\n", &DriverGuid));
|
|
||||||
+ if (mDebugDepex) DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = FALSE\n", &DriverGuid));
|
|
||||||
Status = PushBool (FALSE);
|
|
||||||
} else {
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = TRUE\n", &DriverGuid));
|
|
||||||
+ if (mDebugDepex) DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = TRUE\n", &DriverGuid));
|
|
||||||
*Iterator = EFI_DEP_REPLACE_TRUE;
|
|
||||||
Status = PushBool (TRUE);
|
|
||||||
}
|
|
||||||
@@ -322,7 +323,7 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_AND:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " AND\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " AND\n"));
|
|
||||||
Status = PopBool (&Operator);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
@@ -343,7 +344,7 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_OR:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " OR\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " OR\n"));
|
|
||||||
Status = PopBool (&Operator);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
@@ -364,7 +365,7 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_NOT:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " NOT\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " NOT\n"));
|
|
||||||
Status = PopBool (&Operator);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
@@ -379,7 +380,7 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_TRUE:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " TRUE\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " TRUE\n"));
|
|
||||||
Status = PushBool (TRUE);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
@@ -388,7 +389,7 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_FALSE:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " FALSE\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " FALSE\n"));
|
|
||||||
Status = PushBool (FALSE);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
@@ -397,18 +398,18 @@ CoreIsSchedulable (
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EFI_DEP_END:
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " END\n"));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " END\n"));
|
|
||||||
Status = PopBool (&Operator);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
DEBUG ((DEBUG_DISPATCH, " RESULT = FALSE (Unexpected error)\n"));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " RESULT = %a\n", Operator ? "TRUE" : "FALSE"));
|
|
||||||
+ if (mDebugDepex) DEBUG ((DEBUG_DISPATCH, " RESULT = %a\n", Operator ? "TRUE" : "FALSE"));
|
|
||||||
return Operator;
|
|
||||||
|
|
||||||
case EFI_DEP_REPLACE_TRUE:
|
|
||||||
CopyMem (&DriverGuid, Iterator + 1, sizeof (EFI_GUID));
|
|
||||||
- DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = TRUE\n", &DriverGuid));
|
|
||||||
+ //DEBUG ((DEBUG_DISPATCH, " PUSH GUID(%g) = TRUE\n", &DriverGuid));
|
|
||||||
|
|
||||||
Status = PushBool (TRUE);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
diff --git a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
|
|
||||||
index 5eee71b..0bf24c6 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
|
|
||||||
@@ -392,6 +392,9 @@ CoreTrust (
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
+
|
|
||||||
+EFI_GUID * gLastGuid;
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
This is the main Dispatcher for DXE and it exits when there are no more
|
|
||||||
drivers to run. Drain the mScheduledQueue and load and start a PE
|
|
||||||
@@ -460,7 +469,8 @@ CoreDispatcher (
|
|
||||||
// skip the LoadImage
|
|
||||||
//
|
|
||||||
if (DriverEntry->ImageHandle == NULL && !DriverEntry->IsFvImage) {
|
|
||||||
- DEBUG ((DEBUG_INFO, "Loading driver %g\n", &DriverEntry->FileName));
|
|
||||||
+ //DEBUG ((DEBUG_INFO, "Loading driver %g\n", &DriverEntry->FileName));
|
|
||||||
+ gLastGuid = &DriverEntry->FileName;
|
|
||||||
Status = CoreLoadImage (
|
|
||||||
FALSE,
|
|
||||||
gDxeCoreImageHandle,
|
|
||||||
@@ -884,6 +909,7 @@ CoreAddToDriverList (
|
|
||||||
DriverEntry->IsFvImage = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+//DEBUG((DEBUG_INFO, "CoreAddToDriverList %g\n", DriverName));
|
|
||||||
DriverEntry->Signature = EFI_CORE_DRIVER_ENTRY_SIGNATURE;
|
|
||||||
CopyGuid (&DriverEntry->FileName, DriverName);
|
|
||||||
DriverEntry->FvHandle = FvHandle;
|
|
||||||
@@ -1375,10 +1416,15 @@ CoreDisplayDiscoveredNotDispatched (
|
|
||||||
LIST_ENTRY *Link;
|
|
||||||
EFI_CORE_DRIVER_ENTRY *DriverEntry;
|
|
||||||
|
|
||||||
+extern BOOLEAN mDebugDepex;
|
|
||||||
+//mDebugDepex = 1;
|
|
||||||
for (Link = mDiscoveredList.ForwardLink;Link !=&mDiscoveredList; Link = Link->ForwardLink) {
|
|
||||||
DriverEntry = CR(Link, EFI_CORE_DRIVER_ENTRY, Link, EFI_CORE_DRIVER_ENTRY_SIGNATURE);
|
|
||||||
if (DriverEntry->Dependent) {
|
|
||||||
DEBUG ((DEBUG_LOAD, "Driver %g was discovered but not loaded!!\n", &DriverEntry->FileName));
|
|
||||||
+ CoreIsSchedulable(DriverEntry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+mDebugDepex = 0;
|
|
||||||
+
|
|
||||||
}
|
|
||||||
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
|
|
||||||
index 91e94a7..3ab72c0 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
|
|
||||||
@@ -266,6 +300,8 @@ DxeMain (
|
|
||||||
//
|
|
||||||
InitializeDebugAgent (DEBUG_AGENT_INIT_DXE_CORE, HobStart, NULL);
|
|
||||||
|
|
||||||
+ DEBUG ((DEBUG_INFO, "DxeMain %a %d\n", __FILE__, __LINE__));
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Initialize Memory Services
|
|
||||||
//
|
|
||||||
@@ -283,7 +319,12 @@ DxeMain (
|
|
||||||
gDxeCoreRT = AllocateRuntimeCopyPool (sizeof (EFI_RUNTIME_SERVICES), &mEfiRuntimeServicesTableTemplate);
|
|
||||||
ASSERT (gDxeCoreRT != NULL);
|
|
||||||
|
|
||||||
+
|
|
||||||
+ // Set our vendor string and make sure there is at least a few pages
|
|
||||||
+ // available in low memory for the SMP trampoline.
|
|
||||||
gDxeCoreST->RuntimeServices = gDxeCoreRT;
|
|
||||||
+ gDxeCoreST->FirmwareVendor = L"Heads/NERF";
|
|
||||||
+ gDxeCoreST->FirmwareRevision = 1337;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Start the Image Services.
|
|
||||||
@@ -373,10 +414,11 @@ DxeMain (
|
|
||||||
|
|
||||||
for (Hob.Raw = HobStart; !END_OF_HOB_LIST(Hob); Hob.Raw = GET_NEXT_HOB(Hob)) {
|
|
||||||
if (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_MEMORY_ALLOCATION) {
|
|
||||||
- DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Memory Allocation 0x%08x 0x%0lx - 0x%0lx\n", \
|
|
||||||
+ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Memory Allocation 0x%02x 0x%0lx - 0x%0lx 0x%08x\n", \
|
|
||||||
Hob.MemoryAllocation->AllocDescriptor.MemoryType, \
|
|
||||||
Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress, \
|
|
||||||
- Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress + Hob.MemoryAllocation->AllocDescriptor.MemoryLength - 1));
|
|
||||||
+ Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress + Hob.MemoryAllocation->AllocDescriptor.MemoryLength - 1,
|
|
||||||
+ Hob.MemoryAllocation->AllocDescriptor.MemoryLength));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (Hob.Raw = HobStart; !END_OF_HOB_LIST(Hob); Hob.Raw = GET_NEXT_HOB(Hob)) {
|
|
||||||
@@ -454,15 +507,53 @@ DxeMain (
|
|
||||||
Status = FwVolBlockDriverInit (gDxeCoreImageHandle, gDxeCoreST);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
+ // NERF hack for s2600wf to include the second firmware volume,
|
|
||||||
+ // which has the Linux kernel and initrd. Depending on
|
|
||||||
+ // how we're booting we have either 4 or 7 MB avialable
|
|
||||||
+#if 0
|
|
||||||
+ DEBUG((DEBUG_INFO, "Adding LinuxBoot FV at 0xFF200000\n"));
|
|
||||||
+ ProduceFVBProtocolOnBuffer (0xFF200000, 0x700000, NULL, 0, NULL);
|
|
||||||
+#else
|
|
||||||
+ DEBUG((DEBUG_INFO, "Adding LinuxBoot FV at 0xFF500000\n"));
|
|
||||||
+ ProduceFVBProtocolOnBuffer (0xFF500000, 0x400000, NULL, 0, NULL);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
Status = FwVolDriverInit (gDxeCoreImageHandle, gDxeCoreST);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Produce the Section Extraction Protocol
|
|
||||||
//
|
|
||||||
Status = InitializeSectionExtraction (gDxeCoreImageHandle, gDxeCoreST);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
+ // free up the low memory for Linux's SMP trampoline in the e820 map
|
|
||||||
+ // otherwise bad things happen...
|
|
||||||
+ // TODO: find out how to do this the right way, can't kexec until it works
|
|
||||||
+ EFI_PHYSICAL_ADDRESS trampoline = 0x100000;
|
|
||||||
+ Status = gBS->AllocatePages(
|
|
||||||
+ AllocateAnyPages, // ideally AllocateMaxAddress
|
|
||||||
+ EfiBootServicesData,
|
|
||||||
+ 0x10,
|
|
||||||
+ &trampoline);
|
|
||||||
+ if (Status != EFI_SUCCESS)
|
|
||||||
+ {
|
|
||||||
+ DEBUG((EFI_D_ERROR, "e820 trampoline unable to allocate memory rc=%d\n", Status));
|
|
||||||
+ CoreRemoveMemorySpace (0x10000, 0x10000);
|
|
||||||
+ CoreAddMemorySpace(
|
|
||||||
+ EfiGcdMemoryTypeSystemMemory,
|
|
||||||
+ 0x10000,
|
|
||||||
+ 0x10000,
|
|
||||||
+ 0
|
|
||||||
+ );
|
|
||||||
+ } else {
|
|
||||||
+ //DEBUG((EFI_D_INFO, "e820 trampoline at %p\n", (const void*) trampoline));
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Initialize the DXE Dispatcher
|
|
||||||
//
|
|
||||||
@@ -518,6 +609,8 @@ DxeMain (
|
|
||||||
//
|
|
||||||
// Transfer control to the BDS Architectural Protocol
|
|
||||||
//
|
|
||||||
+DEBUG((DEBUG_INFO, "\n--------\nTransfering control to BDS %p\n", gBds));
|
|
||||||
+DEBUG((DEBUG_INFO, "Entry Point %p (%p)\n--------\n", gBds->Entry, *(void**) gBds));
|
|
||||||
gBds->Entry (gBds);
|
|
||||||
|
|
||||||
//
|
|
||||||
@@ -740,9 +833,12 @@ CoreExitBootServices (
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
+DEBUG((DEBUG_INFO, "ExitBootServices time\n"));
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Disable Timer
|
|
||||||
//
|
|
||||||
+ if(gTimer)
|
|
||||||
gTimer->SetTimerPeriod (gTimer, 0);
|
|
||||||
|
|
||||||
//
|
|
||||||
@@ -780,6 +876,7 @@ CoreExitBootServices (
|
|
||||||
//
|
|
||||||
// Disable CPU Interrupts
|
|
||||||
//
|
|
||||||
+ if(gCpu)
|
|
||||||
gCpu->DisableInterrupt (gCpu);
|
|
||||||
|
|
||||||
MemoryProtectionExitBootServicesCallback();
|
|
||||||
diff --git a/MdeModulePkg/Core/Dxe/FwVol/FwVol.c b/MdeModulePkg/Core/Dxe/FwVol/FwVol.c
|
|
||||||
index fe12d6e..0027e87 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/FwVol/FwVol.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/FwVol/FwVol.c
|
|
||||||
@@ -198,9 +198,19 @@ GetFwVolHeader (
|
|
||||||
FvhLength = sizeof (EFI_FIRMWARE_VOLUME_HEADER);
|
|
||||||
Status = ReadFvbData (Fvb, &StartLba, &Offset, FvhLength, (UINT8 *)&TempFvh);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
+DEBUG((DEBUG_INFO, "GetFwVolHeader: ReadFvbData failed %d\n", Status));
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ EFI_GUID NameGuid;
|
|
||||||
+ UINTN NameOffset = 0x60;
|
|
||||||
+ UINTN NameStartLba = 0;
|
|
||||||
+ ReadFvbData (Fvb, &NameStartLba, &NameOffset, sizeof(NameGuid), (UINT8 *)&NameGuid);
|
|
||||||
+
|
|
||||||
+ EFI_PHYSICAL_ADDRESS phys_address;
|
|
||||||
+ Fvb->GetPhysicalAddress(Fvb, &phys_address);
|
|
||||||
+DEBUG((DEBUG_INFO, "GetFwVolHeader %g %g %p\n", &TempFvh.FileSystemGuid, &NameGuid, phys_address));
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Validate FV Header signature, if not as expected, continue.
|
|
||||||
//
|
|
||||||
diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c b/MdeModulePkg/Core/Dxe/Image/Image.c
|
|
||||||
index 03e979a..e4a82a4 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/Image/Image.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/Image/Image.c
|
|
||||||
@@ -733,8 +733,11 @@ CoreLoadPeImage (
|
|
||||||
CHAR8 EfiFileName[256];
|
|
||||||
|
|
||||||
|
|
||||||
+extern EFI_GUID * gLastGuid;
|
|
||||||
+
|
|
||||||
DEBUG ((DEBUG_INFO | DEBUG_LOAD,
|
|
||||||
- "Loading driver at 0x%11p EntryPoint=0x%11p ",
|
|
||||||
+ "Loading driver %g at 0x%11p EntryPoint=0x%11p ",
|
|
||||||
+ gLastGuid,
|
|
||||||
(VOID *)(UINTN) Image->ImageContext.ImageAddress,
|
|
||||||
FUNCTION_ENTRY_POINT (Image->ImageContext.EntryPoint)));
|
|
||||||
|
|
||||||
diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
|
|
||||||
index a73c4cc..a488e75 100644
|
|
||||||
--- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
|
|
||||||
+++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
|
|
||||||
@@ -232,7 +232,7 @@ SetUefiImageMemoryAttributes (
|
|
||||||
|
|
||||||
DEBUG ((DEBUG_INFO, "SetUefiImageMemoryAttributes - 0x%016lx - 0x%016lx (0x%016lx)\n", BaseAddress, Length, FinalAttributes));
|
|
||||||
|
|
||||||
- ASSERT(gCpu != NULL);
|
|
||||||
+ if(gCpu)
|
|
||||||
gCpu->SetMemoryAttributes (gCpu, BaseAddress, Length, FinalAttributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -410,8 +410,8 @@ ProtectUefiImage (
|
|
||||||
BOOLEAN IsAligned;
|
|
||||||
UINT32 ProtectionPolicy;
|
|
||||||
|
|
||||||
- DEBUG ((DEBUG_INFO, "ProtectUefiImageCommon - 0x%x\n", LoadedImage));
|
|
||||||
- DEBUG ((DEBUG_INFO, " - 0x%016lx - 0x%016lx\n", (EFI_PHYSICAL_ADDRESS)(UINTN)LoadedImage->ImageBase, LoadedImage->ImageSize));
|
|
||||||
+ //DEBUG ((DEBUG_INFO, "ProtectUefiImageCommon - 0x%x\n", LoadedImage));
|
|
||||||
+ //DEBUG ((DEBUG_INFO, " - 0x%016lx - 0x%016lx\n", (EFI_PHYSICAL_ADDRESS)(UINTN)LoadedImage->ImageBase, LoadedImage->ImageSize));
|
|
||||||
|
|
||||||
if (gCpu == NULL) {
|
|
||||||
return ;
|
|
||||||
diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
|
|
||||||
index ad85776..5b68318 100644
|
|
||||||
--- a/MdeModulePkg/MdeModulePkg.dsc
|
|
||||||
+++ b/MdeModulePkg/MdeModulePkg.dsc
|
|
||||||
@@ -76,7 +76,7 @@
|
|
||||||
DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
|
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
|
||||||
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
|
||||||
- SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
|
|
||||||
+ SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
|
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
PalLib|MdePkg/Library/BasePalLibNull/BasePalLibNull.inf
|
|
||||||
@@ -85,7 +85,7 @@
|
|
||||||
#
|
|
||||||
# Misc
|
|
||||||
#
|
|
||||||
- DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
|
||||||
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
|
||||||
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
|
|
||||||
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
|
||||||
@@ -135,7 +135,7 @@
|
|
||||||
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
- DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
|
|
||||||
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
|
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf
|
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_SMM_DRIVER]
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
- DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
|
|
||||||
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
|
|
||||||
SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
|
|
||||||
LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
|
|
||||||
@@ -157,13 +157,13 @@
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
- DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
|
|
||||||
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_APPLICATION]
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
- DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf
|
|
||||||
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
|
|
||||||
[LibraryClasses.ARM, LibraryClasses.AARCH64]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
|
||||||
@@ -193,7 +193,8 @@
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathToText|FALSE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild]
|
|
||||||
- gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
|
|
||||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xff
|
|
||||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800800cf
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0x0
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0
|
|
||||||
diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc
|
|
||||||
index 8648dfa..9905200 100644
|
|
||||||
--- a/MdePkg/MdePkg.dsc
|
|
||||||
+++ b/MdePkg/MdePkg.dsc
|
|
||||||
@@ -29,7 +29,7 @@
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild]
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
|
|
||||||
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
|
|
||||||
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800800cf
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.IPF]
|
|
||||||
--- /dev/null 2017-11-25 22:22:20.266607670 -0500
|
|
||||||
+++ b/Makefile 2017-10-20 17:30:30.300473143 -0400
|
|
||||||
@@ -0,0 +1,38 @@
|
|
||||||
+# Wrapper around the edk2 "build" script to generate
|
|
||||||
+# the few files that we actually want and avoid rebuilding
|
|
||||||
+# if we don't have to.
|
|
||||||
+
|
|
||||||
+PWD := $(shell pwd)
|
|
||||||
+EDK2_OUTPUT_DIR := $(PWD)/Build/MdeModule/DEBUG_GCC5/X64/MdeModulePkg/Core
|
|
||||||
+EDK2_BIN_DIR := $(PWD)/BaseTools/BinWrappers/PosixLike
|
|
||||||
+
|
|
||||||
+export PATH := $(EDK2_BIN_DIR):$(PATH)
|
|
||||||
+export CONFIG_PATH := $(PWD)/Conf
|
|
||||||
+export EDK_TOOLS_PATH := $(PWD)/BaseTools
|
|
||||||
+export WORKSPACE := $(PWD)
|
|
||||||
+
|
|
||||||
+EDK2_BINS += Dxe/DxeMain/DEBUG/DxeCore.efi
|
|
||||||
+EDK2_BINS += RuntimeDxe/RuntimeDxe/DEBUG/RuntimeDxe.efi
|
|
||||||
+
|
|
||||||
+EDK2_OUTPUTS = $(addprefix $(EDK2_OUTPUT_DIR)/,$(EDK2_BINS))
|
|
||||||
+
|
|
||||||
+# build takes too long, so we check to see if our executables exist
|
|
||||||
+# before we start a build. run the clean target if they must be rebuilt
|
|
||||||
+all: $(EDK2_OUTPUTS)
|
|
||||||
+ ls -Fla $(EDK2_OUTPUTS)
|
|
||||||
+ cp -a $(EDK2_OUTPUTS) .
|
|
||||||
+
|
|
||||||
+$(EDK2_OUTPUTS):
|
|
||||||
+ build
|
|
||||||
+
|
|
||||||
+ia32:
|
|
||||||
+ build -a IA32
|
|
||||||
+
|
|
||||||
+build:
|
|
||||||
+ build
|
|
||||||
+
|
|
||||||
+clean:
|
|
||||||
+ $(RM) $(EDK2_OUTPUTS)
|
|
||||||
+
|
|
||||||
+real-clean: clean
|
|
||||||
+ build clean
|
|
@ -1,19 +0,0 @@
|
|||||||
diff -u --recursive /home/hudson/build/clean/linux-4.7/arch/x86/boot/compressed/head_64.S ./linux-4.7/arch/x86/boot/compressed/head_64.S
|
|
||||||
--- /home/hudson/build/clean/linux-4.7/arch/x86/boot/compressed/head_64.S 2016-07-24 15:23:50.000000000 -0400
|
|
||||||
+++ linux-4.7/arch/x86/boot/compressed/head_64.S 2016-08-05 12:07:11.399854225 -0400
|
|
||||||
@@ -340,9 +357,15 @@
|
|
||||||
1:
|
|
||||||
|
|
||||||
/* Target address to relocate to for decompression */
|
|
||||||
+#if 0
|
|
||||||
movl BP_init_size(%rsi), %ebx
|
|
||||||
subl $_end, %ebx
|
|
||||||
addq %rbp, %rbx
|
|
||||||
+#else
|
|
||||||
+ // coreboot does not populate the init_size boot param,
|
|
||||||
+ // so we have to fake it with a hard coded value
|
|
||||||
+ movl $0x97b000, %ebx
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Set up the stack */
|
|
||||||
leaq boot_stack_end(%rbx), %rsp
|
|
@ -1,18 +0,0 @@
|
|||||||
--- a/arch/x86/kernel/nmi.c 2017-03-28 16:19:30.830924335 -0400
|
|
||||||
+++ b/arch/x86/kernel/nmi.c 2017-03-28 16:19:32.798935626 -0400
|
|
||||||
@@ -303,6 +303,7 @@
|
|
||||||
|
|
||||||
__this_cpu_add(nmi_stats.unknown, 1);
|
|
||||||
|
|
||||||
+/*
|
|
||||||
pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
|
|
||||||
reason, smp_processor_id());
|
|
||||||
|
|
||||||
@@ -311,6 +312,7 @@
|
|
||||||
nmi_panic(regs, "NMI: Not continuing");
|
|
||||||
|
|
||||||
pr_emerg("Dazed and confused, but trying to continue\n");
|
|
||||||
+*/
|
|
||||||
}
|
|
||||||
NOKPROBE_SYMBOL(unknown_nmi_error);
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user