SioPlatformPolicy.c 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /** @file
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. SioPlatformPolicy.c
  6. Abstract:
  7. Sio Platform Policy Setting.
  8. --*/
  9. #include "PlatformDxe.h"
  10. #include <Protocol/LpcWpc83627Policy.h>
  11. EFI_WPC83627_POLICY_PROTOCOL mSio83627PolicyData = {
  12. { EFI_WPC83627_COM1_ENABLE, // Com1
  13. EFI_WPC83627_LPT1_ENABLE, // Lpt1
  14. EFI_WPC83627_FDD_DISABLE, // Floppy
  15. EFI_WPC83627_FDD_WRITE_ENABLE, // FloppyWriteProtect
  16. EFI_WPC83627_RESERVED_DEFAULT, // Port80
  17. EFI_WPC83627_ECIR_DISABLE, // CIR
  18. EFI_WPC83627_PS2_KBC_ENABLE, // Ps2Keyboard
  19. EFI_WPC83627_RESERVED_DEFAULT, // Ps2Mouse
  20. EFI_WPC83627_COM2_ENABLE, // Com2
  21. EFI_WPC83627_COM3_ENABLE, // Com3
  22. EFI_WPC83627_COM4_ENABLE, // Com4
  23. EFI_WPC83627_RESERVED_DEFAULT, // Dac
  24. 0x00 // Rsvd
  25. },
  26. LptModeEcp, // LptMode
  27. };
  28. /**
  29. Publish the platform SIO policy setting.
  30. @retval EFI_SUCCESS
  31. **/
  32. VOID
  33. InitSioPlatformPolicy(
  34. )
  35. {
  36. EFI_HANDLE Handle;
  37. EFI_STATUS Status;
  38. Handle = NULL;
  39. if((mSystemConfiguration.Serial) || (mBoardFeatures & B_BOARD_FEATURES_SIO_NO_COM1)) {
  40. mSio83627PolicyData.DeviceEnables.Com1 = EFI_WPC83627_COM1_DISABLE;
  41. }
  42. if((mSystemConfiguration.Serial2) || ((mBoardFeatures & B_BOARD_FEATURES_SIO_COM2)==0)) {
  43. mSio83627PolicyData.DeviceEnables.Com2 = EFI_WPC83627_COM2_DISABLE;
  44. }
  45. mSio83627PolicyData.LptMode = mSystemConfiguration.ParallelMode;
  46. if((!mSystemConfiguration.Parallel) || (mBoardFeatures & B_BOARD_FEATURES_SIO_NO_PARALLEL)) {
  47. mSio83627PolicyData.DeviceEnables.Lpt1 = EFI_WPC83627_LPT1_DISABLE;
  48. }
  49. Status = gBS->InstallProtocolInterface (
  50. &Handle,
  51. &gEfiLpcWpc83627PolicyProtocolGuid,
  52. EFI_NATIVE_INTERFACE,
  53. &mSio83627PolicyData
  54. );
  55. ASSERT_EFI_ERROR(Status);
  56. }