123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /** @file
- @copyright
- Copyright 2014 - 2021 Intel Corporation. <BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <PiDxe.h>
- #include "PciPlatform.h"
- #include <Guid/SetupVariable.h>
- #ifdef EFI_PCI_IOV_SUPPORT
- /**
- The GetSystemLowestPageSize() function retrieves the system lowest page size.
- @param This - Pointer to the EFI_PCI_IOV_PLATFORM_PROTOCOL instance.
- @param SystemLowestPageSize - The system lowest page size. (This system supports a
- page size of 2^(n+12) if bit n is set.)
- @retval EFI_SUCCESS - The function completed successfully.
- @retval EFI_INVALID_PARAMETER - SystemLowestPageSize is NULL.
- **/
- EFI_STATUS
- EFIAPI
- GetSystemLowestPageSize (
- IN EFI_PCI_IOV_PLATFORM_PROTOCOL *This,
- OUT UINT32 *SystemLowestPageSize
- )
- {
- UINT8 SystemPageSizeOption;
- CopyMem (&SystemPageSizeOption, (((UINT8*) PcdGetPtr (PcdSetup)) + OFFSET_OF (SYSTEM_CONFIGURATION, SystemPageSize)), sizeof (UINT8));
- if (SystemLowestPageSize != NULL) {
- //
- // Convert page size option to page size
- // Option is n in 2^n
- // Page size is number of 4KiB pages
- //
- *SystemLowestPageSize = (UINT32) (1 << SystemPageSizeOption);
- }
- return EFI_SUCCESS;
- }
- /**
- The GetIovPlatformPolicy() function retrieves the platform policy regarding PCI IOV.
- @param This - Pointer to the EFI_PCI_IOV_PLATFORM_PROTOCOL instance.
- @param PciIovPolicy - The platform policy for PCI IOV configuration.
- @retval EFI_SUCCESS - The function completed successfully.
- @retval EFI_INVALID_PARAMETER - PciPolicy is NULL.
- **/
- EFI_STATUS
- EFIAPI
- GetIovPlatformPolicy (
- IN EFI_PCI_IOV_PLATFORM_PROTOCOL *This,
- OUT EFI_PCI_IOV_PLATFORM_POLICY *PciIovPolicy
- )
- {
- UINT8 PolicyEnable;
- UINT8 ARIEnable;
- UINT8 SRIOVEnable;
- UINT8 MRIOVEnable;
- PolicyEnable = 0;
- CopyMem (&ARIEnable, (((UINT8*) PcdGetPtr (PcdSetup)) + OFFSET_OF (SYSTEM_CONFIGURATION, ARIEnable)), sizeof (UINT8));
- CopyMem (&SRIOVEnable, (((UINT8*) PcdGetPtr (PcdSetup)) + OFFSET_OF (SYSTEM_CONFIGURATION, SRIOVEnable)), sizeof (UINT8));
- CopyMem (&MRIOVEnable, (((UINT8*) PcdGetPtr (PcdSetup)) + OFFSET_OF (SYSTEM_CONFIGURATION, MRIOVEnable)), sizeof (UINT8));
- if (ARIEnable == TRUE) {
- PolicyEnable = PolicyEnable | EFI_PCI_IOV_POLICY_ARI;
- }
- if (SRIOVEnable == TRUE) {
- PolicyEnable = PolicyEnable | EFI_PCI_IOV_POLICY_SRIOV;
- }
- if (MRIOVEnable == TRUE) {
- PolicyEnable = PolicyEnable | EFI_PCI_IOV_POLICY_MRIOV;
- }
- if (PciIovPolicy != NULL) {
- //*PciIovPolicy = EFI_PCI_IOV_POLICY_ARI | EFI_PCI_IOV_POLICY_SRIOV;
- *PciIovPolicy = PolicyEnable;
- }
- return EFI_SUCCESS;
- }
- #endif
|