]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CorebootModulePkg/CbSupportDxe/CbSupportDxe.c
CorebootModulePkg/CbSupportDxe: Remove SCI_EN setting
[mirror_edk2.git] / CorebootModulePkg / CbSupportDxe / CbSupportDxe.c
old mode 100644 (file)
new mode 100755 (executable)
index 1b3e74a..ec42f7f
@@ -1,7 +1,7 @@
 /** @file\r
-  This driver will report some MMIO/IO resources to dxe core, extract smbios and acpi \r
+  This driver will report some MMIO/IO resources to dxe core, extract smbios and acpi\r
   tables from coreboot and install.\r
-  \r
+\r
   Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -14,7 +14,6 @@
 **/\r
 #include "CbSupportDxe.h"\r
 \r
-UINTN mPmCtrlReg = 0;\r
 /**\r
   Reserve MMIO/IO resource in GCD\r
 \r
@@ -37,7 +36,7 @@ CbReserveResourceInGcd (
   IN EFI_HANDLE            ImageHandle\r
   )\r
 {\r
-       EFI_STATUS               Status;\r
+  EFI_STATUS               Status;\r
 \r
   if (IsMMIO) {\r
     Status = gDS->AddMemorySpace (\r
@@ -49,7 +48,7 @@ CbReserveResourceInGcd (
     if (EFI_ERROR (Status)) {\r
       DEBUG ((\r
         EFI_D_ERROR,\r
-        "Failed to add memory space :0x%x 0x%x\n",\r
+        "Failed to add memory space :0x%lx 0x%lx\n",\r
         BaseAddress,\r
         Length\r
         ));\r
@@ -86,114 +85,80 @@ CbReserveResourceInGcd (
   return Status;\r
 }\r
 \r
-/**\r
-  Notification function of EVT_GROUP_READY_TO_BOOT event group.\r
-\r
-  This is a notification function registered on EVT_GROUP_READY_TO_BOOT event group.\r
-  When the Boot Manager is about to load and execute a boot option, it reclaims variable\r
-  storage if free size is below the threshold.\r
-\r
-  @param  Event        Event whose notification function is being invoked.\r
-  @param  Context      Pointer to the notification function's context.\r
-\r
-**/\r
-VOID\r
-OnReadyToBoot (\r
-  EFI_EVENT  Event,\r
-  VOID       *Context\r
-  )\r
-{      \r
-       //\r
-       // Enable SCI\r
-       //\r
-       IoOr16 (mPmCtrlReg, BIT0);\r
-       \r
-       DEBUG ((EFI_D_ERROR, "Enable SCI bit at 0x%x before boot\n", mPmCtrlReg));      \r
-}\r
 \r
 /**\r
   Main entry for the Coreboot Support DXE module.\r
-  \r
+\r
   @param[in] ImageHandle    The firmware allocated handle for the EFI image.\r
   @param[in] SystemTable    A pointer to the EFI System Table.\r
-  \r
+\r
   @retval EFI_SUCCESS       The entry point is executed successfully.\r
   @retval other             Some error occurs when executing this entry point.\r
 \r
 **/\r
 EFI_STATUS\r
+EFIAPI\r
 CbDxeEntryPoint (\r
   IN EFI_HANDLE         ImageHandle,\r
   IN EFI_SYSTEM_TABLE   *SystemTable\r
   )\r
-{  \r
-       EFI_STATUS Status;\r
-       EFI_EVENT  ReadyToBootEvent;\r
-       EFI_HOB_GUID_TYPE  *GuidHob;\r
-       SYSTEM_TABLE_INFO  *pSystemTableInfo;\r
-       ACPI_BOARD_INFO    *pAcpiBoardInfo;\r
-       \r
-       Status = EFI_SUCCESS;\r
-       //\r
-       // Report MMIO/IO Resources\r
-       //\r
-       Status = CbReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFEE00000, SIZE_1MB, 0, SystemTable); // LAPIC \r
-       ASSERT_EFI_ERROR (Status);\r
-       \r
-       Status = CbReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFEC00000, SIZE_4KB, 0, SystemTable); // IOAPIC \r
-       ASSERT_EFI_ERROR (Status);\r
-       \r
-       Status = CbReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFED00000, SIZE_1KB, 0, SystemTable); // HPET \r
-       ASSERT_EFI_ERROR (Status);\r
-       \r
-       //\r
-       // Find the system table information guid hob\r
-       //\r
-       GuidHob = GetFirstGuidHob (&gUefiSystemTableInfoGuid);\r
-       ASSERT (GuidHob != NULL);\r
-  pSystemTableInfo = (SYSTEM_TABLE_INFO *)GET_GUID_HOB_DATA (GuidHob);\r
-       \r
-       //\r
-       // Install Acpi Table\r
-       //\r
-       if (pSystemTableInfo->AcpiTableBase != 0 && pSystemTableInfo->AcpiTableSize != 0) {             \r
-               DEBUG ((EFI_D_ERROR, "Install Acpi Table at 0x%x, length 0x%x\n", (UINTN)pSystemTableInfo->AcpiTableBase, pSystemTableInfo->AcpiTableSize));    \r
-               Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, (VOID *)(UINTN)pSystemTableInfo->AcpiTableBase);\r
-               ASSERT_EFI_ERROR (Status);\r
-       }\r
-       \r
-       //\r
-       // Install Smbios Table\r
-       //\r
-       if (pSystemTableInfo->SmbiosTableBase != 0 && pSystemTableInfo->SmbiosTableSize != 0) {                 \r
-               DEBUG ((EFI_D_ERROR, "Install Smbios Table at 0x%x, length 0x%x\n", (UINTN)pSystemTableInfo->SmbiosTableBase, pSystemTableInfo->SmbiosTableSize));      \r
-               Status = gBS->InstallConfigurationTable (&gEfiSmbiosTableGuid, (VOID *)(UINTN)pSystemTableInfo->SmbiosTableBase);\r
-               ASSERT_EFI_ERROR (Status);\r
-       }\r
-       \r
-       //\r
-       // Find the acpi board information guid hob\r
-       //\r
-       GuidHob = GetFirstGuidHob (&gUefiAcpiBoardInfoGuid);\r
-       ASSERT (GuidHob != NULL);\r
-  pAcpiBoardInfo = (ACPI_BOARD_INFO *)GET_GUID_HOB_DATA (GuidHob); \r
-  \r
-  mPmCtrlReg = (UINTN)pAcpiBoardInfo->PmCtrlRegBase;\r
-       DEBUG ((EFI_D_ERROR, "PmCtrlReg at 0x%x\n", mPmCtrlReg));       \r
-        \r
-       //\r
-       // Register callback on the ready to boot event \r
-       // in order to enable SCI\r
-       //      \r
-       ReadyToBootEvent = NULL;\r
-  Status = EfiCreateEventReadyToBootEx (\r
-                    TPL_CALLBACK,\r
-                    OnReadyToBoot,\r
-                    NULL,\r
-                    &ReadyToBootEvent\r
-                    );\r
+{\r
+  EFI_STATUS Status;\r
+  EFI_HOB_GUID_TYPE  *GuidHob;\r
+  SYSTEM_TABLE_INFO  *pSystemTableInfo;\r
+  FRAME_BUFFER_INFO  *FbInfo;\r
+\r
+  Status = EFI_SUCCESS;\r
+  //\r
+  // Report MMIO/IO Resources\r
+  //\r
+  Status = CbReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFEC00000, SIZE_4KB, 0, SystemTable); // IOAPIC\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  Status = CbReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFED00000, SIZE_1KB, 0, SystemTable); // HPET\r
   ASSERT_EFI_ERROR (Status);\r
-  \r
+\r
+  //\r
+  // Find the system table information guid hob\r
+  //\r
+  GuidHob = GetFirstGuidHob (&gUefiSystemTableInfoGuid);\r
+  ASSERT (GuidHob != NULL);\r
+  pSystemTableInfo = (SYSTEM_TABLE_INFO *)GET_GUID_HOB_DATA (GuidHob);\r
+\r
+  //\r
+  // Install Acpi Table\r
+  //\r
+  if (pSystemTableInfo->AcpiTableBase != 0 && pSystemTableInfo->AcpiTableSize != 0) {\r
+    DEBUG ((EFI_D_ERROR, "Install Acpi Table at 0x%lx, length 0x%x\n", pSystemTableInfo->AcpiTableBase, pSystemTableInfo->AcpiTableSize));\r
+    Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, (VOID *)(UINTN)pSystemTableInfo->AcpiTableBase);\r
+    ASSERT_EFI_ERROR (Status);\r
+  }\r
+\r
+  //\r
+  // Install Smbios Table\r
+  //\r
+  if (pSystemTableInfo->SmbiosTableBase != 0 && pSystemTableInfo->SmbiosTableSize != 0) {\r
+    DEBUG ((EFI_D_ERROR, "Install Smbios Table at 0x%lx, length 0x%x\n", pSystemTableInfo->SmbiosTableBase, pSystemTableInfo->SmbiosTableSize));\r
+    Status = gBS->InstallConfigurationTable (&gEfiSmbiosTableGuid, (VOID *)(UINTN)pSystemTableInfo->SmbiosTableBase);\r
+    ASSERT_EFI_ERROR (Status);\r
+  }\r
+\r
+  //\r
+  // Find the frame buffer information and update PCDs\r
+  //\r
+  GuidHob = GetFirstGuidHob (&gUefiFrameBufferInfoGuid);\r
+  if (GuidHob != NULL) {\r
+    FbInfo  = (FRAME_BUFFER_INFO *)GET_GUID_HOB_DATA (GuidHob);\r
+    Status = PcdSet32S (PcdVideoHorizontalResolution, FbInfo->HorizontalResolution);\r
+    ASSERT_EFI_ERROR (Status);\r
+    Status = PcdSet32S (PcdVideoVerticalResolution, FbInfo->VerticalResolution);\r
+    ASSERT_EFI_ERROR (Status);\r
+    Status = PcdSet32S (PcdSetupVideoHorizontalResolution, FbInfo->HorizontalResolution);\r
+    ASSERT_EFI_ERROR (Status);\r
+    Status = PcdSet32S (PcdSetupVideoVerticalResolution, FbInfo->VerticalResolution);\r
+    ASSERT_EFI_ERROR (Status);\r
+  }\r
+\r
   return EFI_SUCCESS;\r
 }\r
 \r