diff --git a/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.mbd b/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.mbd
deleted file mode 100644
index 0fc959a5c8..0000000000
--- a/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.mbd
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2006, Intel Corporation
-All rights reserved. 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.
--->
-<LibraryModuleBuildDescription xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0  http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
-  <MbdLibHeader>
-    <BaseName>BaseDebugLibReportStatusCode</BaseName>
-    <Guid>bda39d3a-451b-4350-8266-81ab10fa0523</Guid>
-    <Version>0</Version>
-    <Description>FIX ME!</Description>
-    <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
-    <License>
-      All rights reserved. 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.
-    </License>
-    <Created>2006-03-09 23:16</Created>
-    <Modified>2006-03-19 15:17</Modified>
-  </MbdLibHeader>
-</LibraryModuleBuildDescription>
diff --git a/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.msa b/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.msa
deleted file mode 100644
index 77eae42881..0000000000
--- a/MdePkg/Library/BaseDebugLibReportStatusCode/BaseDebugLibReportStatusCode.msa
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2006, Intel Corporation
-All rights reserved. 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.
--->
-<LibraryModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0  http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
-  <MsaLibHeader>
-    <BaseName>BaseDebugLibReportStatusCode</BaseName>
-    <ModuleType>PEIM</ModuleType>
-    <ComponentType>LIBRARY</ComponentType>
-    <Guid>bda39d3a-451b-4350-8266-81ab10fa0523</Guid>
-    <Version>0</Version>
-    <Abstract>Debug Library for PEIMs that send debug messages to ReportStatusCode</Abstract>
-    <Description>FIX ME!</Description>
-    <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
-    <License>
-      All rights reserved. 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.
-    </License>
-    <Created>2006-03-09 23:16</Created>
-    <Updated>2006-03-19 15:17</Updated>
-    <Specification>0</Specification>
-  </MsaLibHeader>
-  <LibraryClassDefinitions>
-    <LibraryClass Usage="ALWAYS_PRODUCED">DebugLib</LibraryClass>
-    <LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>
-    <LibraryClass Usage="ALWAYS_CONSUMED">BaseMemoryLib</LibraryClass>
-    <LibraryClass Usage="ALWAYS_CONSUMED">ReportStatusCodeLib</LibraryClass>
-    <LibraryClass Usage="ALWAYS_CONSUMED">PcdLib</LibraryClass>
-  </LibraryClassDefinitions>
-  <SourceFiles>
-    <Filename>DebugLib.c</Filename>
-  </SourceFiles>
-  <Includes>
-    <PackageName>MdePkg</PackageName>
-  </Includes>
-  <PcdCoded>
-    <PcdEntry PcdItemType="FIXED_AT_BUILD">
-      <C_Name>PcdDebugPropertyMask</C_Name>
-    </PcdEntry>
-    <PcdEntry PcdItemType="FIXED_AT_BUILD">
-      <C_Name>PcdDebugClearMemoryValue</C_Name>
-    </PcdEntry>
-    <PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
-      <C_Name>PcdDebugPrintErrorLevel</C_Name>
-    </PcdEntry>
-  </PcdCoded>
-</LibraryModuleSurfaceArea>
diff --git a/MdePkg/Library/BaseDebugLibReportStatusCode/DebugLib.c b/MdePkg/Library/BaseDebugLibReportStatusCode/DebugLib.c
deleted file mode 100644
index b06a75660f..0000000000
--- a/MdePkg/Library/BaseDebugLibReportStatusCode/DebugLib.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/** @file
-  Debug Library that fowards all messages to ReportStatusCode()
-
-  Copyright (c) 2006, Intel Corporation<BR>
-  All rights reserved. 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.
-
-**/
-
-
-/**
-
-  Prints a debug message to the debug output device if the specified error level is enabled.
-
-  If any bit in ErrorLevel is also set in PcdDebugPrintErrorLevel, then print 
-  the message specified by Format and the associated variable argument list to 
-  the debug output device.
-
-  If Format is NULL, then ASSERT().
-
-  @param  ErrorLevel  The error level of the debug message.
-  @param  Format      Format string for the debug message to print.
-
-**/
-VOID
-EFIAPI
-DebugPrint (
-  IN  UINTN        ErrorLevel,
-  IN  CONST CHAR8  *Format,
-  ...
-  )
-{
-  UINT64          Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof (UINT64)];
-  EFI_DEBUG_INFO  *DebugInfo;
-  UINTN           TotalSize;
-  UINTN           Index;
-  VA_LIST         Marker;
-  UINT64          *ArgumentPointer;
-
-  //
-  // If Format is NULL, then ASSERT().
-  //
-  ASSERT (Format != NULL);
-
-  //
-  // Check driver Debug Level value and global debug level
-  //
-  if ((ErrorLevel & PcdGet32(PcdDebugPrintErrorLevel)) == 0) {
-    return;
-  }
-
-  TotalSize = sizeof (EFI_DEBUG_INFO) + 12 * sizeof (UINT64) + AsciiStrLen (Format) + 1;
-  if (TotalSize > EFI_STATUS_CODE_DATA_MAX_SIZE) {
-    return;
-  }
-
-  //
-  // Then EFI_DEBUG_INFO
-  //
-  DebugInfo = (EFI_DEBUG_INFO *)Buffer;
-  DebugInfo->ErrorLevel = (UINT32)ErrorLevel;
-
-  //
-  // 256 byte mini Var Arg stack. That is followed by the format string.
-  //
-  VA_START (Marker, Format);
-  for (Index = 0, ArgumentPointer = (UINT64 *)(DebugInfo + 1); Index < 12; Index++, ArgumentPointer++) {
-    *ArgumentPointer = VA_ARG (Marker, UINT64);
-  }
-  VA_END (Marker);
-  AsciiStrCpy ((CHAR8 *)ArgumentPointer, Format);
-
-  //
-  //
-  //
-  REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
-    EFI_DEBUG_CODE,
-    (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_DC_UNSPECIFIED),
-    DebugInfo,
-    TotalSize
-    );
-}
-
-
-/**
-
-  Prints an assert message containing a filename, line number, and description.  
-  This may be followed by a breakpoint or a dead loop.
-
-  Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n" 
-  to the debug output device.  If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of 
-  PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if 
-  DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then 
-  CpuDeadLoop() is called.  If neither of these bits are set, then this function 
-  returns immediately after the message is printed to the debug output device.
-  DebugAssert() must actively prevent recusrsion.  If DebugAssert() is called while
-  processing another DebugAssert(), then DebugAssert() must return immediately.
-
-  If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.
-
-  If Description is NULL, then a <Description> string of "(NULL) Description" is printed.
-
-  @param  FileName     Pointer to the name of the source file that generated the assert condition.
-  @param  LineNumber   The line number in the source file that generated the assert condition
-  @param  Description  Pointer to the description of the assert condition.
-
-**/
-VOID
-EFIAPI
-DebugAssert (
-  IN CONST CHAR8  *FileName,
-  IN UINTN        LineNumber,
-  IN CONST CHAR8  *Description
-  )
-{
-  UINT64                 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof(UINT64)];
-  EFI_DEBUG_ASSERT_DATA  *AssertData;
-  UINTN                  TotalSize;
-  CHAR8                  *Temp;
-
-  //
-  // Make sure it will all fit in the passed in buffer
-  //
-  TotalSize = sizeof (EFI_DEBUG_ASSERT_DATA) + AsciiStrLen (FileName) + 1 + AsciiStrLen (Description) + 1;
-  if (TotalSize <= EFI_STATUS_CODE_DATA_MAX_SIZE) {
-    //
-    // Fill in EFI_DEBUG_ASSERT_DATA
-    //
-    AssertData = (EFI_DEBUG_ASSERT_DATA *)Buffer;
-    AssertData->LineNumber = (UINT32)LineNumber;
-
-    //
-    // Copy Ascii FileName including NULL.
-    //
-    Temp = AsciiStrCpy ((CHAR8 *)(AssertData + 1), FileName);
-
-    //
-    // Copy Ascii Description 
-    //
-    AsciiStrCpy (Temp + AsciiStrLen(FileName) + 1, Description);
-
-    REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
-      (EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
-      (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_EC_ILLEGAL_SOFTWARE_STATE),
-      AssertData,
-      TotalSize
-      );
-  }
-
-  //
-  // Generate a Breakpoint, DeadLoop, or NOP based on PCD settings
-  //
-  if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED) != 0) {
-    CpuBreakpoint ();
-  } else if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED) != 0) {
-    CpuDeadLoop ();
-  }
-}
-
-
-/**
-
-  Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
-
-  This function fills Length bytes of Buffer with the value specified by 
-  PcdDebugClearMemoryValue, and returns Buffer.
-
-  If Buffer is NULL, then ASSERT().
-
-  If Length is greater than (MAX_ADDRESS � Buffer + 1), then ASSERT(). 
-
-  @param   Buffer  Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
-  @param   Length  Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue. 
-
-  @return  Buffer
-
-**/
-VOID *
-EFIAPI
-DebugClearMemory (
-  OUT VOID  *Buffer,
-  IN UINTN  Length
-  )
-{
-  //
-  // If Buffer is NULL, then ASSERT().
-  //
-  ASSERT (Buffer != NULL);
-
-  //
-  // SetMem() checks for the the ASSERT() condition on Length and returns Buffer
-  //
-  return SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
-}
-
-
-/**
-  
-  Returns TRUE if ASSERT() macros are enabled.
-
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of 
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.
-
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.
-
-**/
-BOOLEAN
-EFIAPI
-DebugAssertEnabled (
-  VOID
-  )
-{
-  return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
-}
-
-
-/**
-  
-  Returns TRUE if DEBUG()macros are enabled.
-
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of 
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.
-
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.
-
-**/
-BOOLEAN
-EFIAPI
-DebugPrintEnabled (
-  VOID
-  )
-{
-  return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
-}
-
-
-/**
-  
-  Returns TRUE if DEBUG_CODE()macros are enabled.
-
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of 
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.
-
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.
-
-**/
-BOOLEAN
-EFIAPI
-DebugCodeEnabled (
-  VOID
-  )
-{
-  return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
-}
-
-
-/**
-  
-  Returns TRUE if DEBUG_CLEAR_MEMORY()macro is enabled.
-
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of 
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.
-
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.
-
-**/
-BOOLEAN
-EFIAPI
-DebugClearMemoryEnabled (
-  VOID
-  )
-{
-  return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED) != 0);
-}
diff --git a/MdePkg/Library/BaseDebugLibReportStatusCode/build.xml b/MdePkg/Library/BaseDebugLibReportStatusCode/build.xml
deleted file mode 100644
index cd85f3567c..0000000000
--- a/MdePkg/Library/BaseDebugLibReportStatusCode/build.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!-- Copyright (c) 2006, Intel Corporation 
-All rights reserved. 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.-->
-<project basedir="." default="BaseDebugLibReportStatusCode"><!--Apply external ANT tasks-->
-   <taskdef resource="GenBuild.tasks"/>
-   <taskdef resource="net/sf/antcontrib/antlib.xml"/>
-   <property environment="env"/>
-   <property name="WORKSPACE_DIR" value="${env.WORKSPACE}"/>
-   <import file="${WORKSPACE_DIR}/Tools/Conf/BuildMacro.xml"/><!--MODULE_RELATIVE PATH is relative to PACKAGE_DIR-->
-   <property name="MODULE_RELATIVE_PATH" value="Library/BaseDebugLibReportStatusCode"/>
-   <property name="MODULE_DIR" value="${PACKAGE_DIR}/${MODULE_RELATIVE_PATH}"/>
-   <property name="COMMON_FILE" value="${WORKSPACE_DIR}/Tools/Conf/Common.xml"/>
-   <target name="BaseDebugLibReportStatusCode">
-      <GenBuild baseName="BaseDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.msa"/>
-   </target>
-   <target depends="BaseDebugLibReportStatusCode_clean" name="clean"/>
-   <target depends="BaseDebugLibReportStatusCode_cleanall" name="cleanall"/>
-   <target name="BaseDebugLibReportStatusCode_clean">
-      <OutputDirSetup baseName="BaseDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.msa"/>
-      <if>
-         <available file="${DEST_DIR_OUTPUT}/BaseDebugLibReportStatusCode_build.xml"/>
-         <then>
-            <ant antfile="${DEST_DIR_OUTPUT}/BaseDebugLibReportStatusCode_build.xml" target="clean"/>
-         </then>
-      </if>
-      <delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
-   </target>
-   <target name="BaseDebugLibReportStatusCode_cleanall">
-      <OutputDirSetup baseName="BaseDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/BaseDebugLibReportStatusCode.msa"/>
-      <if>
-         <available file="${DEST_DIR_OUTPUT}/BaseDebugLibReportStatusCode_build.xml"/>
-         <then>
-            <ant antfile="${DEST_DIR_OUTPUT}/BaseDebugLibReportStatusCode_build.xml" target="cleanall"/>
-         </then>
-      </if>
-      <delete dir="${DEST_DIR_OUTPUT}"/>
-      <delete dir="${DEST_DIR_DEBUG}"/>
-      <delete>
-         <fileset dir="${BIN_DIR}" includes="**BaseDebugLibReportStatusCode*"/>
-      </delete>
-   </target>
-</project>
\ No newline at end of file