AcpiNfit.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /** @file
  2. Copyright (c) 2021, Ampere Computing LLC. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. **/
  5. #ifndef ACPI_NFIT_H_
  6. #define ACPI_NFIT_H_
  7. #include <Platform/Ac01.h>
  8. #define NVDIMM_SK0 0
  9. #define NVDIMM_SK1 1
  10. #define NVDIMM_NUM_PER_SK (AC01_NVDIMM_MAX_MCU_PER_SOCKET * AC01_NVDIMM_MAX_DIMM_PER_MCU)
  11. #define ONE_GB (1024 * 1024 * 1024)
  12. typedef enum {
  13. NvdimmDisabled = 0,
  14. NvdimmNonHashed,
  15. NvdimmHashed,
  16. NvdimmModeMax
  17. } NVDIMM_MODE;
  18. typedef struct {
  19. BOOLEAN Enabled;
  20. UINT64 NvdSize;
  21. UINT32 DeviceHandle;
  22. UINT16 PhysId;
  23. UINT8 InterleaveWays;
  24. UINT64 RegionOffset;
  25. UINT16 VendorId;
  26. UINT16 DeviceId;
  27. UINT16 RevisionId;
  28. UINT16 SubVendorId;
  29. UINT16 SubDeviceId;
  30. UINT16 SubRevisionId;
  31. UINT32 SerialNumber;
  32. } NVDIMM_INFO;
  33. typedef struct {
  34. UINT8 NvdRegionNum;
  35. UINT8 NvdRegionId[AC01_NVDIMM_MAX_REGION_PER_SOCKET];
  36. UINT8 NvdMode;
  37. UINT8 NvdNum;
  38. NVDIMM_INFO NvdInfo[NVDIMM_NUM_PER_SK];
  39. } NVDIMM_DATA;
  40. #endif