Hi, all
Please help review this patch.
MdeModulePkg: new PlatformHookLib library with depex of SerialPortPpi.
This library has one depex of SerialPortPpi. Then, the PEIM linked it has this
depex so that it is dispatched after SerialPortPpi is installed. SerialPortPpi
notifies the platform initialization done, then serial port will work.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <[email protected]<mailto:[email protected]>>
Reviewed-by: Kinney, Michael D
<[email protected]<mailto:[email protected]>>
--------------
Index: Include/Ppi/SerialPortPei.h
===================================================================
--- Include/Ppi/SerialPortPei.h (revision 0)
+++ Include/Ppi/SerialPortPei.h (working copy)
@@ -0,0 +1,26 @@
+/** @file
+ PPI that is installed after the initialization of a serial stream device
+ is complete.
+
+ Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD
License
+ which accompanies this distribution. The full text of the license may be
found at
+ http://opensource.org/licenses/bsd-license.php.
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _PEI_SERIAL_PORT_PPI_H
+#define _PEI_SERIAL_PORT_PPI_H
+
+#define PEI_SERIAL_PORT_PPI \
+ { \
+ 0x490e9d85, 0x8aef, 0x4193, { 0x8e, 0x56, 0xf7, 0x34, 0xa9, 0xff, 0xac,
0x8b } \
+ }
+
+extern EFI_GUID gPeiSerialPortPpiGuid;
+
+#endif
Index: Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.c
===================================================================
--- Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.c
(revision 0)
+++ Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.c
(working copy)
@@ -0,0 +1,36 @@
+/** @file
+ Null Platform Hook Library instance with dependency on gPeiSerialPortPpiGuid
+
+ Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD
License
+ which accompanies this distribution. The full text of the license may be
found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include <Base.h>
+#include <Library/PlatformHookLib.h>
+
+/**
+ Performs platform specific initialization required for the CPU to access
+ the hardware associated with a SerialPortLib instance. This function does
+ not initialize the serial port hardware itself. Instead, it initializes
+ hardware devices that are required for the CPU to access the serial port
+ hardware. This function may be called more than once.
+
+ @retval RETURN_SUCCESS The platform specific initialization succeeded.
+ @retval RETURN_DEVICE_ERROR The platform specific initialization could not
be completed.
+
+**/
+RETURN_STATUS
+EFIAPI
+PlatformHookSerialPortInitialize (
+ VOID
+ )
+{
+ return RETURN_SUCCESS;
+}
Index: Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.inf
===================================================================
--- Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.inf
(revision 0)
+++ Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.inf
(working copy)
@@ -0,0 +1,38 @@
+## @file
+# Null Platform Hook Library instance with dependency on gPeiSerialPortPpiGuid
+#
+# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+#
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD
License
+# which accompanies this distribution. The full text of the license may be
found at
+# http://opensource.org/licenses/bsd-license.php
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED.
+#
+##
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = PlatformHookLibSerialPortPpi
+ FILE_GUID = 621734D8-8B5E-4c01-B330-9F89A1081710
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = PlatformHookLibSerialPortPpi
+ MODULE_UNI_FILE = PlatformHookLibSerialPortPpi.uni
+
+#
+# The following information is for reference only and not required by the
build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+#
+
+[Sources]
+ PlatformHookLibSerialPortPpi.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+
+[Depex.common.PEIM]
+ gPeiSerialPortPpiGuid
Index: MdeModulePkg.dec
===================================================================
--- MdeModulePkg.dec (revision 15745)
+++ MdeModulePkg.dec (working copy)
@@ -307,6 +307,9 @@
## Include/Ppi/PostBootScriptTable.h
gPeiPostScriptTablePpiGuid = { 0x88c9d306, 0x900, 0x4eb5, { 0x82, 0x60,
0x3e, 0x2d, 0xbe, 0xda, 0x1f, 0x89}}
+ ## Include/Ppi/SerialPortPei.h
+ gPeiSerialPortPpiGuid = { 0x490e9d85, 0x8aef, 0x4193, { 0x8e, 0x56,
0xf7, 0x34, 0xa9, 0xff, 0xac, 0x8b}}
+
[Protocols]
## Load File protocol provides capability to load and unload EFI image into
memory and execute it.
# Include/Protocol/LoadPe32Image.h
Index: MdeModulePkg.dsc
===================================================================
--- MdeModulePkg.dsc (revision 15745)
+++ MdeModulePkg.dsc (working copy)
@@ -253,6 +253,7 @@
MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
MdeModulePkg/Library/PeiDebugPrintHobLib/PeiDebugPrintHobLib.inf
MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
+
MdeModulePkg/Library/PlatformHookLibSerialPortPpi/PlatformHookLibSerialPortPpi.inf
MdeModulePkg/Universal/CapsulePei/CapsulePei.inf
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
Thanks
Liming
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel