DxeAspireVn7Dash572GAcpiTableLib.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /** @file
  2. Aspire VN7-572G Board ACPI Library
  3. Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include <Base.h>
  7. #include <PiDxe.h>
  8. #include <Library/BoardAcpiTableLib.h>
  9. #include <Library/EcLib.h>
  10. #include <Library/PcdLib.h>
  11. #include <Protocol/GlobalNvsArea.h>
  12. GLOBAL_REMOVE_IF_UNREFERENCED EFI_GLOBAL_NVS_AREA_PROTOCOL mGlobalNvsArea;
  13. VOID
  14. AspireVn7Dash572GUpdateGlobalNvs (
  15. VOID
  16. )
  17. {
  18. EFI_STATUS Status;
  19. UINT8 PowerRegister;
  20. //
  21. // Allocate and initialize the NVS area for SMM and ASL communication.
  22. //
  23. mGlobalNvsArea.Area = (VOID *)(UINTN)PcdGet64 (PcdAcpiGnvsAddress);
  24. //
  25. // Update global NVS area for ASL and SMM init code to use
  26. //
  27. //
  28. // Enable PowerState
  29. //
  30. Status = EcRead (0x70, &PowerRegister);
  31. if (EFI_ERROR (Status)) {
  32. PowerRegister = 0;
  33. }
  34. mGlobalNvsArea.Area->PowerState = (PowerRegister & BIT5) == BIT5;
  35. mGlobalNvsArea.Area->NativePCIESupport = PcdGet8 (PcdPciExpNative);
  36. //
  37. // Enable APIC
  38. //
  39. mGlobalNvsArea.Area->ApicEnable = GLOBAL_NVS_DEVICE_ENABLE;
  40. //
  41. // Low Power S0 Idle - Enabled/Disabled
  42. //
  43. mGlobalNvsArea.Area->LowPowerS0Idle = PcdGet8 (PcdLowPowerS0Idle);
  44. mGlobalNvsArea.Area->Ps2MouseEnable = PcdGet8 (PcdPs2KbMsEnable);
  45. mGlobalNvsArea.Area->Ps2KbMsEnable = PcdGet8 (PcdPs2KbMsEnable);
  46. mGlobalNvsArea.Area->BoardId = (UINT8) LibPcdGetSku ();
  47. }
  48. EFI_STATUS
  49. EFIAPI
  50. AspireVn7Dash572GBoardUpdateAcpiTable (
  51. IN OUT EFI_ACPI_COMMON_HEADER *Table,
  52. IN OUT EFI_ACPI_TABLE_VERSION *Version
  53. )
  54. {
  55. if (Table->Signature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) {
  56. AspireVn7Dash572GUpdateGlobalNvs ();
  57. }
  58. return EFI_SUCCESS;
  59. }