1 /** @file 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 6 This program and the accompanying materials are licensed and made available under 7 8 the terms and conditions of the BSD License that accompanies this distribution. 9 10 The full text of the license may be found at 11 12 http://opensource.org/licenses/bsd-license.php. 13 14 15 16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 18 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 20 21 22 23 Module Name: 24 25 26 SioPlatformPolicy.c 27 28 Abstract: 29 30 Sio Platform Policy Setting. 31 32 33 --*/ 34 35 #include "PlatformDxe.h" 36 #include <Protocol/LpcWpc83627Policy.h> 37 38 39 EFI_WPC83627_POLICY_PROTOCOL mSio83627PolicyData = { 40 { EFI_WPC83627_COM1_ENABLE, // Com1 41 EFI_WPC83627_LPT1_ENABLE, // Lpt1 42 EFI_WPC83627_FDD_DISABLE, // Floppy 43 EFI_WPC83627_FDD_WRITE_ENABLE, // FloppyWriteProtect 44 EFI_WPC83627_RESERVED_DEFAULT, // Port80 45 EFI_WPC83627_ECIR_DISABLE, // CIR 46 EFI_WPC83627_PS2_KBC_ENABLE, // Ps2Keyboard 47 EFI_WPC83627_RESERVED_DEFAULT, // Ps2Mouse 48 EFI_WPC83627_COM2_ENABLE, // Com2 49 EFI_WPC83627_COM3_ENABLE, // Com3 50 EFI_WPC83627_COM4_ENABLE, // Com4 51 EFI_WPC83627_RESERVED_DEFAULT, // Dac 52 0x00 // Rsvd 53 }, 54 LptModeEcp, // LptMode 55 }; InitSioPlatformPolicy()56 57 /** 58 59 Publish the platform SIO policy setting. 60 61 @retval EFI_SUCCESS 62 63 **/ 64 VOID 65 InitSioPlatformPolicy( 66 ) 67 { 68 69 EFI_HANDLE Handle; 70 EFI_STATUS Status; 71 72 Handle = NULL; 73 74 if((mSystemConfiguration.Serial) || (mBoardFeatures & B_BOARD_FEATURES_SIO_NO_COM1)) { 75 mSio83627PolicyData.DeviceEnables.Com1 = EFI_WPC83627_COM1_DISABLE; 76 } 77 78 if((mSystemConfiguration.Serial2) || ((mBoardFeatures & B_BOARD_FEATURES_SIO_COM2)==0)) { 79 mSio83627PolicyData.DeviceEnables.Com2 = EFI_WPC83627_COM2_DISABLE; 80 } 81 82 mSio83627PolicyData.LptMode = mSystemConfiguration.ParallelMode; 83 if((!mSystemConfiguration.Parallel) || (mBoardFeatures & B_BOARD_FEATURES_SIO_NO_PARALLEL)) { 84 mSio83627PolicyData.DeviceEnables.Lpt1 = EFI_WPC83627_LPT1_DISABLE; 85 } 86 87 Status = gBS->InstallProtocolInterface ( 88 &Handle, 89 &gEfiLpcWpc83627PolicyProtocolGuid, 90 EFI_NATIVE_INTERFACE, 91 &mSio83627PolicyData 92 ); 93 ASSERT_EFI_ERROR(Status); 94 95 } 96 97