##########################################################################################
!!!!!!!!!!!!!!!!!               Notes for this ChangeLog.txt             !!!!!!!!!!!!!!!!!

This log file is used to record two kinds of important information:
 a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info
    will help the package user to merge this package; and some non-compatible changes
    can also be added into release notes as news features when we release this package.
    Normally Non-Compatible Changes contains the following types:
      1) Package's external services were changed/updated
      2) Package's common .h file is renamed, deleted, or the file path is changed.
      3) The definition of package's common data structure is changed
      ...

 b) "Important Compatible Changes": some important compatible changes can aslo be recorded
    in this file, and we can add these updating into release notes when we release this
    package.

Non-Compatible and Compatible example format:
==========================================================================================
EDK_0010: Non-Compatible: owner

	  Class_HFile: PPI A of MdePkg has been removed.

		Code Change :
		1) Removed the .h file: MdePkg\Include\Ppi\A.h

		Possible Impacts:
		1) All modules that used this PPI A should be updated.

==========================================================================================
EDK_0000: Compatible: owner

	  Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.

		Code Change :
		1) BaseTools\Bin\Win32\build.exe

!!!!!!!!!!!!!!!!!!                     End of Notes                     !!!!!!!!!!!!!!!!!!
##########################################################################################
==========================================================================================
EDK_r5418-5419: Non-Compatible: qhuang8
	Class_Library: Update EfiDriverLib in ECP to make it compatible with EDK1.01(EDK1117),
				   but the change itself is incompatible.
    With this change, EFI1.10 drivers can be directly dropped
    in and built in UEFI build mode. EfiLibInstallAllDriverProtocols2() and
    INSTALL_ALL_DRIVER_PROTOCOLS_OR_PROTOCOLS2() are added to support UEFI driver
    model protocols. Please replace all the occurrences of EfiLibInstallAllDriverProtocols
    and INSTALL_ALL_DRIVER_PROTOCOLS with INSTALL_ALL_DRIVER_PROTOCOLS_OR_PROTOCOLS2
    in Edk 1.04 based source tree.
    
    Code Change:
    1) Edk\Foundation\Include\EfiCompNameSupport.h:
	   Add macro INSTALL_ALL_DRIVER_PROTOCOLS_OR_PROTOCOLS2().
    2) Edk\Foundation\Library\Dxe\EfiDriverLib\EfiDriverModelLib.c
       Edk\Foundation\Library\Dxe\Include\EfiDriverLib.h
       Update EfiLibInstallAllDriverProtocols() and add EfiLibInstallAllDriverProtocols2()

	Possible impact:
	1) If your "EDK style" code base is based on ECP r5417 or below, please replace all the
	   occurrences of EfiLibInstallAllDriverProtocols and INSTALL_ALL_DRIVER_PROTOCOLS with
	   INSTALL_ALL_DRIVER_PROTOCOLS_OR_PROTOCOLS2


==========================================================================================
EDK_r4955: Non-Compatible: qhuang8
	
	Class_HFile: Update the Device Type Value of MEDIA_FV_DP & MEDIA_FV_FILEPATH_DP.
	The definitions in MdePkg have already been updated in r4632. This will remove the
        potential compatibility issues when native EDK II modules & EDK modules built with
        ECP and run with EDK II core.  

	Code Change:
	1) Reverse the value of MEDIA_FV_DP & MEDIA_FV_FILEPATH_DP to fix a UEFI errata. 


	Possible impact:
	1) EDK I modules built with this update might not work with old EDK environment. 	


==========================================================================================
EDK_r4960: Non-Compatible: qhuang8
	
	Class_HFile: Remove the default value 0xE0000000 of EDKII_GLUE_PciExpressBaseAddress.
	It now requires platform DSC file to specify it explicitly to avoid runtime issue
        if they ever uses PciExpressLib in EDK GlueLib.
        Unlike other default value in GlueLib, this value might not function for all real
        platforms.   

	Code Change:
	1) Replace 0xE0000000 to be PCD_EDKII_GLUE_PciExpressBaseAddress. 

	Possible impact:
	1) If a platform ever uses PciExpressLib in Glue Lib. It needs to explictly specify
	the value of PCD_EDKII_GLUE_PciExpressBaseAddress for their platform to function.
	e.g. in EDK II DSC file to build EDK modules: 
       	[BuildOptions]
          *_*_*_CC_FLAGS = /D PCD_EDKII_GLUE_PciExpressBaseAddress=0xC0000000
 

EDK_r7286: Compatible: qhuang8
	
	Class_HFile: Add several new UEFI definition to build with newest EFI shell source.

	Code Change:
	1) Add new UEFI Load File 2 protocol defininition.
	2) Add MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH device path type. 

	Possible impact:
  None.

EDK_r7342: No-Compatible: qwang12
  Rename module names in EdkCompatibility/Compatibility directory from ***To*** to ***On***.
  For example, Fv2ToFvThunk is renamed to Fv2OnFvThunk.
  AAAOnBBB means this module produce AAA Protocol/PPI based on BBB. This change improves the readability and 
  help developers to select correct thunk module to use.

  Code Changes:
  These module directory and module INF file name is updated:
   DeviceIoToPciRootBridgeIoThunk -> DeviceIoToPciRootBridgeIoThunk
   FrameworkHiiToUefiHiiThunk  ->  FrameworkHiiToUefiHiiThunk
   Fv2ToFvThunk  -> Fv2ToFvThunk
   FvFileLoaderToLoadFileThunk  -> FvFileLoaderToLoadFileThunk
   FvToFv2Thunk  -> FvToFv2Thunk
   PciCfg2ToPciCfgThunk  -> PciCfg2ToPciCfgThunk
   PciCfgToPciCfg2Thunk  -> PciCfgToPciCfg2Thunk
   ReadOnlyVariable2ToReadOnlyVariableThunk  -> ReadOnlyVariable2ToReadOnlyVariableThunk
   ReadOnlyVariableToReadOnlyVariable2Thunk  -> ReadOnlyVariableToReadOnlyVariable2Thunk
   Uc2ToUcThunk  -> Uc2ToUcThunk
   UcToUc2Thunk  -> UcToUc2Thunk
   
  Possible Impact:
  All DSC and FDF files that reference these module should be updated to use the new module directory
  and file names.