summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ArmPkg/ArmPkg.dec4
-rw-r--r--ArmPkg/ArmPkg.dsc4
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf71
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Apic.aslc216
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Bert.aslc84
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Dsdt.asl255
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ecdt.aslc70
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Einj.aslc202
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Erst.aslc319
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facp.aslc175
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facs.aslc86
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Gtdt.aslc51
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Hest.aslc84
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mcfg.aslc62
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mpst.aslc141
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Msct.aslc106
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Oem0.aslc48
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Platform.h75
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Pmtt.aslc216
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Slit.aslc87
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Spmi.aslc86
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Srat.aslc106
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ssdt0.asl17
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Uefi.aslc57
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/apic.asl153
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/bert.asl48
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/cpep.asl53
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/dsdt.asl758
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ecdt.asl64
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/einj.asl178
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/erst.asl305
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facp.asl194
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facs.asl48
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/fpdt.asl62
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/gtdt.asl80
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/hest.asl76
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mcfg.asl53
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mchi.asl65
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mpst.asl114
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/msct.asl78
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/oem0.asl45
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/pmtt.asl132
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/rsdp.asl44
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/slit.asl87
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/spmi.asl67
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/srat.asl84
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ssdt0.asl44
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/tpm2.asl22
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/uefi.asl48
-rw-r--r--ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/xsdt.asl66
-rw-r--r--ArmPkg/Drivers/ArmGic/ArmGicDxe.c3
-rw-r--r--ArmPkg/Drivers/ArmGic/ArmGicDxe.inf1
-rw-r--r--ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h42
-rw-r--r--ArmPkg/Include/Chipset/AArch64Mmu.h12
-rw-r--r--ArmPkg/Include/Library/ArmLib.h2
-rw-r--r--ArmPkg/Include/Ppi/ArmMpCoreInfo.h2
-rw-r--r--ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c12
-rw-r--r--ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c2
-rw-r--r--ArmPkg/Library/BdsLib/BdsLinuxFdt.c2
-rw-r--r--ArmPkg/Library/BdsLib/BdsLinuxLoader.h8
-rw-r--r--ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.S20
-rw-r--r--ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.asm23
-rw-r--r--ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc2
-rw-r--r--ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc2
-rw-r--r--ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c6
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c148
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf70
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc11
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf10
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc13
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf21
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc13
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf21
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc6
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc10
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf8
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc26
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf12
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc20
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf12
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc17
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf8
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc18
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf21
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc13
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf20
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15x2/ArmPlatform.h4
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA5s/ArmPlatform.h4
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h4
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM/ArmPlatform.h4
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S21
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm23
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Mem.c16
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S3
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm2
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/AArch64/RTSMHelper.S10
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S2
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm2
-rw-r--r--ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c10
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c10
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S2
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm2
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.S35
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.asm37
-rw-r--r--ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf8
-rw-r--r--ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c20
-rwxr-xr-xArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c10
-rwxr-xr-xArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c6
-rw-r--r--ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.c (renamed from ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c)211
-rw-r--r--ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf (renamed from ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf)19
-rw-r--r--ArmPlatformPkg/PrePi/AArch64/ModuleEntryPoint.S4
-rw-r--r--ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.S38
-rw-r--r--ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.asm38
-rwxr-xr-xArmPlatformPkg/PrePi/PrePi.c8
-rw-r--r--BaseTools/Bin/Win32/BPDG.exebin1042294 -> 1042286 bytes
-rwxr-xr-xBaseTools/Bin/Win32/BootSectImage.exebin434176 -> 434176 bytes
-rwxr-xr-xBaseTools/Bin/Win32/EfiLdrImage.exebin421888 -> 421888 bytes
-rwxr-xr-xBaseTools/Bin/Win32/EfiRom.exebin446464 -> 446464 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenBootSector.exebin425984 -> 425984 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenCrc32.exebin425984 -> 425984 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenDepex.exebin1081253 -> 1081412 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenFds.exebin1401050 -> 1402636 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenFfs.exebin430080 -> 430080 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenFv.exebin479232 -> 479232 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenFw.exebin499712 -> 499712 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenPage.exebin425984 -> 425984 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenPatchPcdTable.exebin1078875 -> 1079036 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenSec.exebin446464 -> 446464 bytes
-rwxr-xr-xBaseTools/Bin/Win32/GenVtf.exebin446464 -> 446464 bytes
-rwxr-xr-xBaseTools/Bin/Win32/LzmaCompress.exebin397312 -> 397312 bytes
-rwxr-xr-xBaseTools/Bin/Win32/PatchPcdValue.exebin1036120 -> 1036118 bytes
-rwxr-xr-xBaseTools/Bin/Win32/Split.exebin425984 -> 425984 bytes
-rwxr-xr-xBaseTools/Bin/Win32/TargetTool.exebin1044383 -> 1044398 bytes
-rwxr-xr-xBaseTools/Bin/Win32/TianoCompress.exebin434176 -> 434176 bytes
-rwxr-xr-xBaseTools/Bin/Win32/Trim.exebin1118098 -> 1118260 bytes
-rw-r--r--BaseTools/Bin/Win32/UPT.exebin1680092 -> 1681037 bytes
-rwxr-xr-xBaseTools/Bin/Win32/VfrCompile.exebin1286144 -> 1286144 bytes
-rwxr-xr-xBaseTools/Bin/Win32/VolInfo.exebin471040 -> 471040 bytes
-rwxr-xr-xBaseTools/Bin/Win32/build.exebin1803489 -> 1806156 bytes
-rw-r--r--BaseTools/Conf/XMLSchema/DistributionPackage.xsd56
-rw-r--r--BaseTools/Conf/build_rule.template2
-rw-r--r--BaseTools/Conf/tools_def.template175
-rw-r--r--BaseTools/Source/C/EfiRom/EfiRom.c57
-rw-r--r--BaseTools/Source/C/GenFv/GenFvInternalLib.c7
-rw-r--r--BaseTools/Source/C/GenFv/GenFvInternalLib.h2
-rw-r--r--BaseTools/Source/C/Include/Common/BuildVersion.h2
-rw-r--r--BaseTools/Source/C/Include/Common/PiFirmwareVolume.h2
-rw-r--r--BaseTools/Source/C/Include/Common/UefiBaseTypes.h10
-rw-r--r--BaseTools/Source/C/Include/IndustryStandard/PeImage.h4
-rw-r--r--BaseTools/Source/C/Include/IndustryStandard/pci22.h4
-rw-r--r--BaseTools/Source/C/VfrCompile/VfrCompiler.cpp6
-rw-r--r--BaseTools/Source/C/VfrCompile/VfrCompiler.h3
-rw-r--r--BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp11
-rw-r--r--BaseTools/Source/Python/AutoGen/AutoGen.py67
-rw-r--r--BaseTools/Source/Python/AutoGen/GenC.py7
-rw-r--r--BaseTools/Source/Python/AutoGen/GenPcdDb.py150
-rw-r--r--BaseTools/Source/Python/Common/BuildVersion.py2
-rw-r--r--BaseTools/Source/Python/Common/DataType.py2
-rw-r--r--BaseTools/Source/Python/Common/Misc.py18
-rw-r--r--BaseTools/Source/Python/Common/String.py30
-rw-r--r--BaseTools/Source/Python/CommonDataClass/DataClass.py1
-rw-r--r--BaseTools/Source/Python/GenFds/CapsuleData.py22
-rw-r--r--BaseTools/Source/Python/GenFds/FdfParser.py128
-rw-r--r--BaseTools/Source/Python/GenFds/FfsInfStatement.py18
-rw-r--r--BaseTools/Source/Python/GenFds/Fv.py13
-rw-r--r--BaseTools/Source/Python/GenFds/GenFds.py4
-rw-r--r--BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py27
-rw-r--r--BaseTools/Source/Python/UPT/BuildVersion.py2
-rw-r--r--BaseTools/Source/Python/UPT/Library/DataType.py19
-rw-r--r--BaseTools/Source/Python/UPT/Logger/StringTable.py10
-rw-r--r--BaseTools/Source/Python/UPT/Parser/DecParser.py56
-rw-r--r--BaseTools/Source/Python/UPT/Parser/InfParser.py112
-rw-r--r--BaseTools/Source/Python/UPT/Xml/CommonXml.py10
-rw-r--r--BaseTools/Source/Python/Workspace/MetaFileParser.py21
-rw-r--r--BaseTools/Source/Python/Workspace/WorkspaceDatabase.py117
-rw-r--r--BaseTools/Source/Python/build/BuildReport.py2
-rw-r--r--BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.S12
-rw-r--r--BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.asm13
-rwxr-xr-xBeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardMem.c6
-rw-r--r--CryptoPkg/CryptoPkg.dec4
-rw-r--r--CryptoPkg/CryptoPkg.dsc4
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Dblk.efibin33760 -> 33760 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Devices.efibin23968 -> 23968 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Devtree.efibin23840 -> 23840 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Guid.efibin20736 -> 20736 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/IfConfig.efibin29184 -> 29184 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/IpConfig.efibin23584 -> 23584 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/LoadPciRom.efibin21952 -> 21952 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Mount.efibin21024 -> 21024 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Openinfo.efibin22912 -> 22912 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/Ping.efibin23680 -> 23680 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/SmbiosView.efibin113184 -> 113184 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/TelnetMgmt.efibin19584 -> 19584 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/comp.efibin23712 -> 23712 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/dmem.efibin32416 -> 32416 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/dmpstore.efibin26112 -> 26112 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/edit.efibin38496 -> 38496 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/eficompress.efibin35648 -> 35648 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/efidecompress.efibin20800 -> 20800 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/err.efibin28928 -> 28928 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/hexedit.efibin46048 -> 46048 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/mem.efibin32416 -> 32416 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/memmap.efibin22336 -> 22336 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/mm.efibin34240 -> 34240 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/mode.efibin20640 -> 20640 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/pci.efibin79456 -> 79456 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/sermode.efibin24288 -> 24288 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/stall.efibin19872 -> 19872 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ia32/Apps/timezone.efibin27360 -> 27360 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Dblk.efibin83552 -> 83552 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Devices.efibin74720 -> 74720 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Devtree.efibin76768 -> 76768 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Guid.efibin64032 -> 64032 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/IfConfig.efibin86176 -> 86176 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/IpConfig.efibin71456 -> 71456 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/LoadPciRom.efibin71456 -> 71456 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Mount.efibin65888 -> 65888 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Openinfo.efibin70464 -> 70464 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/Ping.efibin76448 -> 76448 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/SmbiosView.efibin215264 -> 215264 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/TelnetMgmt.efibin63232 -> 63232 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/comp.efibin68320 -> 68320 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/dmem.efibin80704 -> 80704 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/dmpstore.efibin77344 -> 77344 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/edit.efibin124384 -> 124384 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/eficompress.efibin93344 -> 93344 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/efidecompress.efibin66976 -> 66976 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/err.efibin81536 -> 81536 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/hexedit.efibin139552 -> 139552 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/mem.efibin80768 -> 80768 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/memmap.efibin66272 -> 66272 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/mm.efibin87040 -> 87040 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/mode.efibin64704 -> 64704 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/pci.efibin141568 -> 141568 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/sermode.efibin70496 -> 70496 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/stall.efibin65696 -> 65696 bytes
-rw-r--r--EdkShellBinPkg/Bin/Ipf/Apps/timezone.efibin73216 -> 73216 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Dblk.efibin39808 -> 39808 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Devices.efibin30368 -> 30368 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Devtree.efibin30240 -> 30240 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Guid.efibin26016 -> 25984 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/IfConfig.efibin36896 -> 36864 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/IpConfig.efibin29120 -> 29120 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/LoadPciRom.efibin28000 -> 28000 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Mount.efibin26240 -> 26240 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Openinfo.efibin28544 -> 28544 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/Ping.efibin30112 -> 30112 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/SmbiosView.efibin126720 -> 126688 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/TelnetMgmt.efibin24608 -> 24576 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/comp.efibin29056 -> 29056 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/dmem.efibin38656 -> 38656 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/dmpstore.efibin32704 -> 32704 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/edit.efibin48416 -> 48416 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/eficompress.efibin41984 -> 41984 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/efidecompress.efibin26112 -> 26112 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/err.efibin35424 -> 35424 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/hexedit.efibin57600 -> 57600 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/mem.efibin38624 -> 38624 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/memmap.efibin27392 -> 27392 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/mm.efibin40768 -> 40768 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/mode.efibin25760 -> 25760 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/pci.efibin90848 -> 90848 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/sermode.efibin29824 -> 29824 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/stall.efibin25216 -> 25216 bytes
-rw-r--r--EdkShellBinPkg/Bin/X64/Apps/timezone.efibin32928 -> 32896 bytes
-rw-r--r--EdkShellBinPkg/EdkShellBinPkg.dec4
-rw-r--r--EdkShellBinPkg/FullShell/Ia32/Shell_Full.efibin683968 -> 683936 bytes
-rw-r--r--EdkShellBinPkg/FullShell/Ipf/Shell_Full.efibin1331776 -> 1331776 bytes
-rw-r--r--EdkShellBinPkg/FullShell/X64/Shell_Full.efibin771136 -> 771136 bytes
-rw-r--r--EdkShellBinPkg/MinimumShell/Ia32/Shell.efibin312832 -> 313120 bytes
-rw-r--r--EdkShellBinPkg/MinimumShell/Ipf/Shell.efibin680992 -> 681472 bytes
-rw-r--r--EdkShellBinPkg/MinimumShell/X64/Shell.efibin362592 -> 362720 bytes
-rw-r--r--EdkShellBinPkg/ReadMe.txt6
-rw-r--r--EdkShellPkg/ShellR64.patch13106
-rw-r--r--EmbeddedPkg/Include/Protocol/MmcHost.h6
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/Diagnostics.c51
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/Mmc.h14
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c2
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf5
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c456
-rw-r--r--FatBinPkg/EnhancedFatDxe/Ebc/Fat.efibin62784 -> 63296 bytes
-rw-r--r--FatBinPkg/EnhancedFatDxe/Ia32/Fat.efibin18048 -> 18304 bytes
-rw-r--r--FatBinPkg/EnhancedFatDxe/Ipf/Fat.efibin141568 -> 142976 bytes
-rw-r--r--FatBinPkg/EnhancedFatDxe/X64/Fat.efibin27136 -> 27552 bytes
-rw-r--r--FatBinPkg/FatBinPkg.dec4
-rw-r--r--FatBinPkg/ReadMe.txt2
-rw-r--r--IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBios.c125
-rw-r--r--IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf3
-rw-r--r--IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h1
-rw-r--r--IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBootSupport.c78
-rw-r--r--IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec4
-rw-r--r--IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc4
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.h5
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/FileExplorer.c16
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/Hotkey.c20
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/Hotkey.h79
-rw-r--r--IntelFrameworkPkg/IntelFrameworkPkg.dec4
-rw-r--r--IntelFrameworkPkg/IntelFrameworkPkg.dsc4
-rw-r--r--MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c95
-rw-r--r--MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c75
-rw-r--r--MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c97
-rw-r--r--MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c14
-rw-r--r--MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c125
-rw-r--r--MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c6
-rw-r--r--MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf1
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c17
-rw-r--r--MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c27
-rw-r--r--MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c12
-rw-r--r--MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.h15
-rw-r--r--MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c81
-rw-r--r--MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c32
-rw-r--r--MdeModulePkg/Core/Pei/Memory/MemoryServices.c4
-rw-r--r--MdeModulePkg/Include/Library/CpuExceptionHandlerLib.h2
-rw-r--r--MdeModulePkg/Include/Protocol/FormBrowserEx.h2
-rw-r--r--MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c2
-rw-r--r--MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLibInternal.c11
-rw-r--r--MdeModulePkg/Library/DxeCoreMemoryAllocationLib/MemoryAllocationLib.c6
-rw-r--r--MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c6
-rw-r--r--MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/MemoryAllocationLib.c6
-rw-r--r--MdeModulePkg/MdeModulePkg.dec20
-rw-r--r--MdeModulePkg/MdeModulePkg.dsc4
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c12
-rw-r--r--MdeModulePkg/Universal/DebugPortDxe/DebugPort.c177
-rw-r--r--MdeModulePkg/Universal/DebugPortDxe/DebugPort.h3
-rw-r--r--MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c8
-rw-r--r--MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h3
-rw-r--r--MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c1
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf3
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c45
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf10
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf10
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c4
-rw-r--r--MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf3
-rw-r--r--MdeModulePkg/Universal/Network/IScsiDxe/IScsiDriver.c95
-rw-r--r--MdeModulePkg/Universal/Network/IScsiDxe/IScsiIbft.c13
-rw-r--r--MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.c69
-rw-r--r--MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.h31
-rw-r--r--MdeModulePkg/Universal/Network/MnpDxe/MnpIo.c40
-rw-r--r--MdeModulePkg/Universal/Network/MnpDxe/MnpVlan.c9
-rw-r--r--MdeModulePkg/Universal/Network/MnpDxe/MnpVlan.h4
-rw-r--r--MdeModulePkg/Universal/Network/Tcp4Dxe/ComponentName.c4
-rw-r--r--MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.c68
-rw-r--r--MdeModulePkg/Universal/PCD/Dxe/Pcd.c4
-rw-r--r--MdeModulePkg/Universal/PCD/Dxe/Service.c45
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c140
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c23
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Setup.c77
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Setup.h10
-rw-r--r--MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c8
-rw-r--r--MdePkg/Include/IndustryStandard/IScsiBootFirmwareTable.h6
-rw-r--r--MdePkg/Include/IndustryStandard/Pci.h3
-rw-r--r--MdePkg/Include/IndustryStandard/PciExpress21.h220
-rw-r--r--MdePkg/Include/IndustryStandard/PciExpress30.h32
-rw-r--r--MdePkg/Include/IndustryStandard/SmBios.h18
-rw-r--r--MdePkg/Include/Library/MemoryAllocationLib.h5
-rw-r--r--MdePkg/Include/Library/PcdLib.h68
-rw-r--r--MdePkg/Include/Library/PeiServicesTablePointerLib.h21
-rw-r--r--MdePkg/Include/Library/S3BootScriptLib.h6
-rw-r--r--MdePkg/Include/Protocol/AdapterInformation.h224
-rw-r--r--MdePkg/Include/Protocol/DiskIo2.h7
-rw-r--r--MdePkg/Include/Protocol/FirmwareManagement.h6
-rw-r--r--MdePkg/Include/Protocol/FormBrowser2.h4
-rw-r--r--MdePkg/Include/Protocol/Hash.h12
-rw-r--r--MdePkg/Include/Protocol/SimpleFileSystem.h12
-rw-r--r--MdePkg/Include/Uefi/UefiSpec.h75
-rw-r--r--MdePkg/Library/BaseLib/Ia32/Thunk16.S129
-rw-r--r--MdePkg/Library/BaseLib/Ia32/Thunk16.asm40
-rw-r--r--MdePkg/Library/BasePcdLibNull/PcdLib.c51
-rw-r--r--MdePkg/Library/BaseS3BootScriptLibNull/BootScriptLib.c6
-rw-r--r--MdePkg/Library/DxePcdLib/DxePcdLib.c64
-rw-r--r--MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c4
-rw-r--r--MdePkg/Library/PeiPcdLib/PeiPcdLib.c72
-rw-r--r--MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c26
-rw-r--r--MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointer.c89
-rw-r--r--MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf5
-rw-r--r--MdePkg/Library/PeiServicesTablePointerLibKr7/PeiServicesTablePointer.c21
-rw-r--r--MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c6
-rw-r--r--MdePkg/Library/UefiDevicePathLib/DevicePathFromText.c151
-rw-r--r--MdePkg/Library/UefiDevicePathLib/DevicePathToText.c68
-rw-r--r--MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.h7
-rw-r--r--MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c6
-rw-r--r--MdePkg/MdePkg.dec14
-rw-r--r--MdePkg/MdePkg.dsc4
-rw-r--r--NetworkPkg/IScsiDxe/IScsiDriver.c216
-rw-r--r--NetworkPkg/IScsiDxe/IScsiIbft.c12
-rw-r--r--NetworkPkg/IScsiDxe/IScsiMisc.c69
-rw-r--r--NetworkPkg/IScsiDxe/IScsiMisc.h32
-rw-r--r--NetworkPkg/IpSecDxe/Ikev2/Exchange.c5
-rw-r--r--NetworkPkg/NetworkPkg.dec6
-rw-r--r--NetworkPkg/NetworkPkg.dsc6
-rw-r--r--NetworkPkg/TcpDxe/ComponentName.c4
-rw-r--r--NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c46
-rw-r--r--NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c59
-rw-r--r--NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c6
-rw-r--r--OvmfPkg/Include/IndustryStandard/E820.h46
-rw-r--r--OvmfPkg/Include/IndustryStandard/VirtioBlk.h40
-rw-r--r--OvmfPkg/Include/IndustryStandard/VirtioNet.h12
-rw-r--r--OvmfPkg/Include/IndustryStandard/VirtioScsi.h26
-rw-r--r--OvmfPkg/Include/Library/QemuFwCfgLib.h21
-rw-r--r--OvmfPkg/Include/Library/VirtioLib.h16
-rw-r--r--OvmfPkg/Include/Library/VirtioMmioDeviceLib.h131
-rw-r--r--OvmfPkg/Include/Protocol/VirtioDevice.h758
-rw-r--r--OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c60
-rw-r--r--OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf7
-rw-r--r--OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiDxe.c92
-rw-r--r--OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSec.c81
-rw-r--r--OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf54
-rw-r--r--OvmfPkg/Library/VirtioLib/VirtioLib.c16
-rw-r--r--OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c428
-rw-r--r--OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h294
-rw-r--r--OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c614
-rw-r--r--OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf85
-rw-r--r--OvmfPkg/OvmfPkg.dec2
-rw-r--r--OvmfPkg/OvmfPkgIa32.dsc9
-rw-r--r--OvmfPkg/OvmfPkgIa32.fdf2
-rw-r--r--OvmfPkg/OvmfPkgIa32X64.dsc9
-rw-r--r--OvmfPkg/OvmfPkgIa32X64.fdf2
-rw-r--r--OvmfPkg/OvmfPkgX64.dsc9
-rw-r--r--OvmfPkg/OvmfPkgX64.fdf2
-rw-r--r--OvmfPkg/PlatformPei/MemDetect.c49
-rw-r--r--OvmfPkg/PlatformPei/Platform.c95
-rw-r--r--OvmfPkg/PlatformPei/Platform.h18
-rw-r--r--OvmfPkg/PlatformPei/PlatformPei.inf1
-rw-r--r--OvmfPkg/PlatformPei/Xen.c42
-rw-r--r--OvmfPkg/PlatformPei/Xen.h45
-rw-r--r--OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c2
-rw-r--r--OvmfPkg/QemuVideoDxe/Driver.c33
-rw-r--r--OvmfPkg/README22
-rw-r--r--OvmfPkg/VirtioBlkDxe/VirtioBlk.c214
-rw-r--r--OvmfPkg/VirtioBlkDxe/VirtioBlk.h24
-rw-r--r--OvmfPkg/VirtioBlkDxe/VirtioBlk.inf4
-rw-r--r--OvmfPkg/VirtioNetDxe/ComponentName.c6
-rw-r--r--OvmfPkg/VirtioNetDxe/DriverBinding.c121
-rw-r--r--OvmfPkg/VirtioNetDxe/Events.c2
-rw-r--r--OvmfPkg/VirtioNetDxe/SnpGetStatus.c2
-rw-r--r--OvmfPkg/VirtioNetDxe/SnpInitialize.c68
-rw-r--r--OvmfPkg/VirtioNetDxe/SnpReceive.c10
-rw-r--r--OvmfPkg/VirtioNetDxe/SnpShutdown.c2
-rw-r--r--OvmfPkg/VirtioNetDxe/SnpTransmit.c12
-rw-r--r--OvmfPkg/VirtioNetDxe/VirtioNet.h24
-rw-r--r--OvmfPkg/VirtioNetDxe/VirtioNet.inf2
-rw-r--r--OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.c1347
-rw-r--r--OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h332
-rw-r--r--OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf86
-rw-r--r--OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c568
-rw-r--r--OvmfPkg/VirtioScsiDxe/VirtioScsi.c143
-rw-r--r--OvmfPkg/VirtioScsiDxe/VirtioScsi.h22
-rw-r--r--OvmfPkg/VirtioScsiDxe/VirtioScsi.inf2
-rwxr-xr-xOvmfPkg/create-release.py151
-rw-r--r--PandaBoardPkg/Library/PandaBoardLib/PandaBoardHelper.S10
-rwxr-xr-xPandaBoardPkg/Library/PandaBoardLib/PandaBoardMem.c6
-rw-r--r--PandaBoardPkg/PandaBoardPkg.dsc5
-rw-r--r--PandaBoardPkg/PandaBoardPkg.fdf2
-rw-r--r--PcAtChipsetPkg/PcAtChipsetPkg.dec4
-rw-r--r--PcAtChipsetPkg/PcAtChipsetPkg.dsc4
-rwxr-xr-xSamsungPlatformPkg/ArndaleBoardPkg/Library/ArndaleBoardLib/Exynos5250/BoardMem.c4
-rw-r--r--SamsungPlatformPkg/ExynosPkg/Exynos5250/MemoryInitPei/MemoryInitPeiLib.c8
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/ExynosPkg.dec55
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/ExynosPkg.dsc120
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Gpio/Gpio.c175
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Gpio/Gpio.inf46
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/ComponentName.c182
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/ExynosGop.c575
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/ExynosGop.h274
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/GraphicsConsole.c2011
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/GraphicsConsole.h615
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/GraphicsConsoleDxe.inf73
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/GraphicsConsoleDxe/LaffStd.c276
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Include/Library/ExynosLib.h24
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Include/Library/ExynosTimerLib.h65
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Include/Platform/ArmPlatform.h693
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Include/Protocol/ExynosGpio.h199
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/ExynosLib/ExynosLib.c36
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/ExynosLib/ExynosLib.inf40
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/GdbSerialLib/GdbSerialLib.c118
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/GdbSerialLib/GdbSerialLib.inf40
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/ResetSystemLib/ResetSystemLib.c167
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/ResetSystemLib/ResetSystemLib.inf44
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/SerialPortLib/SerialPortLib.c150
-rw-r--r--SamsungPlatformPkgOrigen/ExynosPkg/Library/SerialPortLib/SerialPortLib.inf38
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/Library/TimerLib/TimerLib.c234
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/Library/TimerLib/TimerLib.inf41
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/SDHCDxe/SDHCDxe.c1327
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/SDHCDxe/SDHCDxe.h293
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/SDHCDxe/SDHCDxe.inf49
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/TimerDxe/TimerDxe.c432
-rwxr-xr-xSamsungPlatformPkgOrigen/ExynosPkg/TimerDxe/TimerDxe.inf54
-rw-r--r--SamsungPlatformPkgOrigen/OrigenBoardPkg/OrigenBoardPkg-Exynos.dsc480
-rw-r--r--SamsungPlatformPkgOrigen/OrigenBoardPkg/OrigenBoardPkg-Exynos.fdf363
-rw-r--r--SamsungPlatformPkgOrigen/README67
-rw-r--r--SamsungPlatformPkgOrigen/SamsungPlatformPkg.dec40
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/AcpiTables.inf37
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/Dsdt.asl446
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/Facp.aslc79
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/Facs.aslc81
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/Madt.aslc158
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/AcpiTables/Platform.h66
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/EBLoadSecSyms.inc15
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/EfiFuncs.inc463
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_boot_from_ram.inc20
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_convert_symbols.sh22
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_hw_setup.inc67
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_load_symbols.inc21
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_symbols_macros.inc193
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Debugger_scripts/rvi_unload_symbols.inc118
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/FvbDxe/FvbDxe.c414
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/FvbDxe/FvbDxe.inf53
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c78
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf37
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoard.c210
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardHelper.S635
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardHelper.asm609
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardLib.inf49
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardMem.c210
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardSec.c57
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/Library/SmdkBoardLib/SmdkBoardSecLib.inf50
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/SmdkBoardPkg-Exynos.dsc474
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/SmdkBoardPkg-Exynos.fdf316
-rw-r--r--SamsungPlatformPkgOrigen/SmdkBoardPkg/SmdkBoardPkg.dec43
-rw-r--r--SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf4
-rw-r--r--SecurityPkg/SecurityPkg.dec12
-rw-r--r--SecurityPkg/SecurityPkg.dsc4
-rw-r--r--SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigFileExplorer.c4
-rw-r--r--SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c13
-rw-r--r--SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h6
-rw-r--r--ShellPkg/Application/Shell/ConsoleLogger.c41
-rw-r--r--ShellPkg/Application/Shell/ConsoleWrappers.c4
-rw-r--r--ShellPkg/Application/Shell/FileHandleWrappers.c4
-rw-r--r--ShellPkg/Application/Shell/Shell.c1123
-rw-r--r--ShellPkg/Application/Shell/Shell.h44
-rw-r--r--ShellPkg/Application/Shell/ShellManParser.c13
-rw-r--r--ShellPkg/Application/Shell/ShellParametersProtocol.c43
-rw-r--r--ShellPkg/Application/Shell/ShellProtocol.c46
-rw-r--r--ShellPkg/Application/Shell/ShellProtocol.h4
-rw-r--r--ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c35
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/Bcfg.c18
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/DmpStore.c722
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c849
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.unibin152966 -> 171002 bytes
-rw-r--r--ShellPkg/Library/UefiShellInstall1CommandsLib/Bcfg.c18
-rw-r--r--ShellPkg/Library/UefiShellLevel1CommandsLib/For.c8
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c1
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c7
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c1
-rw-r--r--ShellPkg/Library/UefiShellLib/UefiShellLib.c24
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgent.c24
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf4
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c58
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.h1
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf4
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf4
-rw-r--r--SourceLevelDebugPkg/Library/DebugCommunicationLibUsb/DebugCommunicationLibUsb.c29
-rw-r--r--SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf4
-rw-r--r--SourceLevelDebugPkg/SourceLevelDebugPkg.dec4
-rw-r--r--SourceLevelDebugPkg/SourceLevelDebugPkg.dsc4
-rw-r--r--StdLib/EfiSocketLib/Socket.c12
-rw-r--r--StdLib/EfiSocketLib/Tcp4.c8
-rw-r--r--StdLib/EfiSocketLib/Tcp6.c8
-rw-r--r--StdLib/LibC/Wchar/ConsDecons.c7
-rw-r--r--StdLib/LibC/Wchar/Wchar.inf5
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h4
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf4
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c2
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeSmmCpuException.c6
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c2
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c2
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf6
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf4
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmException.c2
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c2
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.S8
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.asm8
-rw-r--r--UefiCpuPkg/Library/MtrrLib/MtrrLib.c18
-rw-r--r--UefiCpuPkg/Library/MtrrLib/MtrrLib.inf3
-rw-r--r--UefiCpuPkg/UefiCpuPkg.dec4
-rw-r--r--UefiCpuPkg/UefiCpuPkg.dsc4
-rw-r--r--UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c14
-rw-r--r--UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf4
578 files changed, 20994 insertions, 28571 deletions
diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec
index 1d6231c..f11243f 100644
--- a/ArmPkg/ArmPkg.dec
+++ b/ArmPkg/ArmPkg.dec
@@ -114,8 +114,8 @@
# System Memory (DRAM): These PCDs define the region of in-built system memory
# Some platforms can get DRAM extensions, these additional regions will be declared
# to UEFI by ArmPLatformPlib
- gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT32|0x00000029
- gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT32|0x0000002A
+ gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT64|0x00000029
+ gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT64|0x0000002A
# Use ClusterId + CoreId to identify the PrimaryCore
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask|0xF03|UINT32|0x00000031
diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 661453c..ea68fa5 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -2,7 +2,7 @@
# ARM processor package.
#
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
-# Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
+# Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -33,7 +33,7 @@
XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
- GCC:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -mfpu=neon
+ GCC:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A8
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf
index ae3a66b..46dc925 100644
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf
@@ -1,9 +1,10 @@
-## @file
+##
# Component description file for PlatformAcpiTables module.
#
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2013, Linaro Ltd.
+#
# 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
@@ -14,57 +15,37 @@
#
##
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = PlatformAcpiTables
FILE_GUID = 7E374E25-8E01-4FEE-87F2-390C23C606CD
MODULE_TYPE = USER_DEFINED
VERSION_STRING = 1.0
- FFS_EXT = SEC
- COMPILE_SELECT = .c=acpi_c
[Sources]
- Platform.h
- Apic.aslc
- Bert.aslc
- Dsdt.asl
- Ecdt.aslc
- Einj.aslc
- Erst.aslc
- Facp.aslc
- Facs.aslc
- Gtdt.aslc
- Hest.aslc
- Mcfg.aslc
- Mpst.aslc
- Msct.aslc
- Oem0.aslc
- Pmtt.aslc
- Slit.aslc
- Spmi.aslc
- Srat.aslc
- Ssdt0.asl
- Uefi.aslc
-
- ###rsdp/xsdt created by building the acpi table
- ###tables need to change format
- #asf!.asl
- #bgrt.asl
- #boot.asl
- #cpep.asl
- #fpdt.asl
- #tpm2.asl
+ facp.asl
+ dsdt.asl
+ ssdt0.asl
+ bert.asl
+ ecdt.asl
+ facs.asl
+ gtdt.asl
+ hest.asl
+ apic.asl
+ mcfg.asl
+ mpst.asl
+ oem0.asl
+ slit.asl
+ spmi.asl
+ srat.asl
+ uefi.asl
+ cpep.asl
+ einj.asl
+ erst.asl
+ fpdt.asl
+ mchi.asl
+ msct.asl
+ pmtt.asl
[Packages]
MdePkg/MdePkg.dec
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Apic.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Apic.aslc
deleted file mode 100644
index e18c1a5..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Apic.aslc
+++ /dev/null
@@ -1,216 +0,0 @@
-/** @file
- MADT Table
-
- This file contains a structure definition for the ACPI 1.0 Multiple APIC
- Description Table (MADT).
-
- Copyright (c) 2008 - 2012, 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.
-
-**/
-
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-//
-// Local APIC address
-//
-#define EFI_ACPI_LOCAL_APIC_ADDRESS 0x2C002000 // TBD
-
-
-#define ACPI_PROCESSOR_LOCAL_GIC 0xb
-#define ACPI_GIC_DISTRIBUTOR 0xc
-
-//These addresses are defined by the MP shared region defined in the UEFI memory map.
-#define MP_REGISTER_ADDRESS_GIC0 0x80301000
-#define DISTRIBUTOR_PHYSICAL_ADDRESS 0x02000000
-
-#define ACPI_GICC_NUM 0x8
-
-//
-// Ensure proper structure formats
-//
-#pragma pack (1)
-//
-// ACPI 5.0 MADT structure
-//
-typedef struct {
- EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header;
- EFI_ACPI_5_0_GIC_STRUCTURE Gic[ACPI_GICC_NUM];
- EFI_ACPI_5_0_GIC_DISTRIBUTOR_STRUCTURE Distributor;
-
-} EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE;
-
-#pragma pack ()
-
-//
-// Multiple APIC Description Table
-//
-EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {
- {
- {
- EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE),
- EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
-
- //
- // MADT specific fields
- //
- EFI_ACPI_LOCAL_APIC_ADDRESS,
- 0x00000000
- },
- {
- //LocalGic0
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x00, //GicId
- 0x00, //AcpiProcessorUid
- 0x00000001, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- //LocalGic1
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x01, //GicId
- 0x01, //AcpiProcessorUid
- EFI_ACPI_5_0_GIC_ENABLED, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000 //PhysicalBaseAddress
- },
- //LocalGic2
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type:
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x02, //GicId
- 0x02, //AcpiProcessorUid
- EFI_ACPI_5_0_GIC_ENABLED, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- //LocalGic3
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x03, //GicId
- 0x03, //AcpiProcessorUid
- EFI_ACPI_5_0_GIC_ENABLED, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- //LocalGic4
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x04, //GicId
- 0x04, //AcpiProcessorUid
- 0, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- //LocalGic5
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x05, //GicId
- 0x05, //AcpiProcessorUid
- 0x0, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- //LocalGic6
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x06, //GicId
- 0x06, //AcpiProcessorUid
- 0x0, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000 , //PhysicalBaseAddress
- },
- //LocalGic7
- {
- ACPI_PROCESSOR_LOCAL_GIC, //Type
- sizeof (EFI_ACPI_5_0_GIC_STRUCTURE), //Length
- 0x00, //Reserved
- 0x07, //GicId
- 0x07, //AcpiProcessorUid
- 0x0, //Flags
- 0x00000000, //ParkingProtocolVersion
- 0x00000000, //PerformanceInterruptGsiv
- 0x0000000000000000, //ParkedAddress
- 0x000000002C002000, //PhysicalBaseAddress
- },
- },
- //Distributor
- {
- ACPI_GIC_DISTRIBUTOR, //Type
- sizeof (EFI_ACPI_5_0_GIC_DISTRIBUTOR_STRUCTURE), //Length
- 0, //Reserved1
- 0, //GicId
- 0x000000002C001000, //PhysicalBaseAddress
- 0, //SystemVectorBase
- 0 //Reserved2
- }
-
-};
-
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Madt;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Bert.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Bert.aslc
deleted file mode 100644
index 0fe2bc4..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Bert.aslc
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-// Generic error severity in data entry
-#define BOOT_ERROR_SEVERITY_RECOVERABLE 0
-#define BOOT_ERROR_SEVERITY_FATAL 1
-#define BOOT_ERROR_SEVERITY_CORRECTED 2
-#define BOOT_ERROR_SEVERITY_NONE 3
-
-#pragma pack(1)
-
-// ErrorStatus block record definitions for various errors
-typedef struct {
- UINT32 UeValid:1;
- UINT32 CeValid:1;
- UINT32 MultipleUeValid:1;
- UINT32 MultipleCeValid:1;
- UINT32 NumErrorDataEntry:10;
- UINT32 Resv1:18;
-} BOOT_ERROR_BLOCK_STATUS;
-
-
-typedef struct {
- // Error Status block
- BOOT_ERROR_BLOCK_STATUS BlockStatus;
- UINT32 RawDataOffset;
- UINT32 RawDataSize;
- UINT32 ErrDataSize;
- UINT32 Severity;
- // Error Status data...
-} EFI_ACPI_5_0_BOOT_ERROR_REGION;
-
-
-typedef struct {
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT32 BootErrorRegionLen;
- UINT64 BootErrorRegion;
-} EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE;
-
-#pragma pack()
-
-
-
-EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE Bert = {
- {
- EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE),
- EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x02,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x9D, //BootErrorRegionLen
- 0xFFFF0008 //BootErrorRegion
-
-};
-
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Bert;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Dsdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Dsdt.asl
deleted file mode 100644
index c4185fe..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Dsdt.asl
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
- *
- * [DSDT] Description of the armv8 VE Model
- *
- * This source is released under the terms of the GPLv2.
- */
-
-DefinitionBlock (
- "dsdt.aml", // output filename
- "DSDT", // table signature
- 2, // DSDT compliance revision
- "LINARO", // OEM ID
- "RTSMVEV8", // table ID
- 0x00000003) // OEM revision
-{
- Scope (\_SB)
- {
- Method (_OSC, 4, NotSerialized)
- {
- /* Platform-Wide OSPM Capabilities */
- If(LEqual(Arg0,ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48")))
- {
- /* APEI support unconditionally */
- Return (Arg3)
- } Else {
- CreateDWordField (Arg3, Zero, CDW1)
- /* Set invalid UUID error bit */
- Or (CDW1, 0x04, CDW1)
- Return (Arg3)
- }
- }
-
- Device (HED)
- {
- Name (_HID, EisaId ("PNP0C33"))
- Name (_UID, 0x00)
- }
-
- Device (SCK0)
- {
- Name (_HID, "ACPI0004")
- Name (_UID, 0x00)
- Method (_STA, 0, NotSerialized)
- {
- Return (0x0F)
- }
-
- Device (PRC0)
- {
- Name (_HID, "ACPI0007")
- Name (_UID, 0x00)
-
- /* CPU0 will be always present */
- Method (_STA, 0, NotSerialized)
- {
- Return (0x0F)
- }
-
- Name (MAT0, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* type, len, reserved, gic_id */
- /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* uid, flags */
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */
- })
-
- Name (MAT1, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Method (_MAT, 0, NotSerialized)
- {
- If (_STA())
- {
- Return (MAT0)
- }
- Else
- {
- Return (MAT1)
- }
- }
- }
-
- Device (PRC1)
- {
- Name (_HID, "ACPI0007")
- Name (_UID, 0x01)
-
- Name (STA1, 0x0F)
- Method (_STA, 0, NotSerialized)
- {
- Return (STA1)
- }
-
- Method (_EJ0, 1, NotSerialized)
- {
- If (LEqual (STA1, 0x0F))
- {
- Store (0x00, STA1)
- }
- }
-
- Name (MAT0, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Name (MAT1, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Method (_MAT, 0, NotSerialized)
- {
- If (_STA())
- {
- Return (MAT0)
- }
- Else
- {
- Return (MAT1)
- }
- }
- }
-
- Device (PRC2)
- {
- Name (_HID, "ACPI0007")
- Name (_UID, 0x02)
-
- Name (STA2, 0x0F)
- Method (_STA, 0, NotSerialized)
- {
- Return (STA2)
- }
-
- Method (_EJ0, 1, NotSerialized)
- {
- If (LEqual (STA2, 0x0F))
- {
- Store (0x00, STA2)
- }
- }
-
- Name (MAT0, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- /* 0008 */ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Name (MAT1, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- /* 0008 */ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Method (_MAT, 0, NotSerialized)
- {
- If (_STA())
- {
- Return (MAT0)
- }
- Else
- {
- Return (MAT1)
- }
- }
- }
-
- Device (PRC3)
- {
- Name (_HID, "ACPI0007")
- Name (_UID, 0x03)
-
- Name (STA3, 0x0F)
- Method (_STA, 0, NotSerialized)
- {
- Return (STA3)
- }
-
- Method (_EJ0, 1, NotSerialized)
- {
- If (LEqual (STA3, 0x0F))
- {
- Store (0x00, STA3)
- }
- }
-
- Name (MAT0, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- /* 0008 */ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Name (MAT1, Buffer (0x28)
- {
- /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- /* 0008 */ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
- /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- })
-
- Method (_MAT, 0, NotSerialized)
- {
- If (_STA())
- {
- Return (MAT0)
- }
- Else
- {
- Return (MAT1)
- }
- }
- }
- }
-
- Device (NET0) {
- Name (_HID, "LINA0003")
- Name (_UID, 0)
-
- Method (_CRS, 0x0, Serialized) {
- Name (RBUF, ResourceTemplate () {
- Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
- Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x2F}
- })
- Return (RBUF)
- }
- }
- }
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ecdt.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ecdt.aslc
deleted file mode 100644
index d817d59..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ecdt.aslc
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-typedef struct
-{
- EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE table;
- UINT8 ucNamepath;
-}EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_EX;
-
-
-EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_EX Ecdt= {
- {
- {
- EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_EX),
- EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- /*Command/Status Register Generic Address Structure*/
- {
- 0x01, //Space ID:SystemIO
- 0x08, //Bit Width
- 0x00, //Bit Offset
- 0x00, //Encoded Access Width
- 0x0000000000000066, //Address
- },
- /*Data Register Generic Address Structure*/
- {
- 0x01, //Space ID:SystemIO
- 0x08, //Bit Width
- 0x00, //Bit Offset
- 0x00, //Encoded Access Width
- 0x0000000000000062, //Address
- },
- 0x00000000, //UID
- 0x9, //GPE Number
- },
- 0x0 //Namepath
-};
-
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Ecdt;
-}
-
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Einj.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Einj.aslc
deleted file mode 100644
index 7392cc2..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Einj.aslc
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#pragma pack (1)
-typedef struct {
- UINT8 Operation;
- UINT8 Instruction;
- UINT8 Flags;
- UINT8 Reserved8;
- EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE Register;
- UINT64 Value;
- UINT64 Mask;
-} EFI_ACPI_WHEA_SERIALIZATION_ACTION;
-
-typedef struct {
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT32 InjectionHeaderSize;
- UINT32 Resv1;
- UINT32 InstructionEntryCount;
-} EFI_ACPI_WHEA_ERROR_INJECTION_HEADER;
-
-typedef struct {
- EFI_ACPI_WHEA_ERROR_INJECTION_HEADER header;
- EFI_ACPI_WHEA_SERIALIZATION_ACTION InstructionEntry[8];
-} EFI_ACPI_5_0_ERROR_INJECTION_TABLE;
-
-#pragma pack ()
-
-
-EFI_ACPI_5_0_ERROR_INJECTION_TABLE Einj = {
- {
- {
- EFI_ACPI_5_0_ERROR_INJECTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_ERROR_INJECTION_TABLE),
- EFI_ACPI_5_0_ERROR_INJECTION_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x00000002,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- sizeof(EFI_ACPI_WHEA_ERROR_INJECTION_HEADER),
- EFI_ACPI_RESERVED_DWORD,
- 0x08, /*Injection Entry Count*/
- },
-
- {
- { //Action0
- 0x00, // Action:Begin Operation
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action1
- 0x01, // Action:Get Trigger Table
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action2
- 0x02, // Action:Set Error Type
- 0x2, // Instruction:Write Register
- 0x1, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action3
- 0x03, // Action:Get Error Type
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action4
- 0x04, // Action:End Operation
- 0x3, // Instruction:Write Register
- 0x1, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action5
- 0x05, // Action:Execute Operation
- 0x3, // Instruction:Write Register
- 0x1, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_IO, //Space ID
- 0x10, //Bit Width
- 0x0, //Bit Offset
- 0x2, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action6
- 0x06, // Action:Check Busy Status
- 0x1, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action7
- 0x07, // Action:Get Command Status
- 0x0, // Instruction:Read Register
- 0x1, // Flags
- 0x00, // Reserved
- /*Register Region*/
- {
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- },
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Einj;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Erst.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Erst.aslc
deleted file mode 100644
index 0170b99..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Erst.aslc
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define ACTION_BEGIN_WRITE_OPERATION 0x00
-#define ACTION_BEGIN_READ_OPERATION 0x01
-#define ACTION_BEGIN_CLEAR_OPERATION 0x02
-#define ACTION_END_OPERATION 0x03
-#define ACTION_SET_RECORD_OFFSET 0x04
-#define ACTION_EXECUTE_OPEARTION 0x05
-#define ACTION_CHECK_BUSY_STATUS 0x06
-#define ACTION_GET_COMMAND_STATUS 0x07
-#define ACTION_GET_RECORD_IDENTIFIER 0x08
-#define ACTION_SET_RECORD_IDENTIFIER 0x09
-#define ACTION_GET_RECORD_COUNT 0x0A
-#define ACTION_BEGIN_DUMMY_WRITE_OPERATION 0x0B
-#define ACTION_GET_NEXT_RECORD_IDENTIFIER 0x0C
-#define ACTION_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
-#define ACTION_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
-#define ACTION_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
-
-
-#pragma pack (1)
-
-typedef struct {
- UINT8 Operation;
- UINT8 Instruction;
- UINT8 Flags;
- UINT8 Reserved8;
- EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE Register;
- UINT64 Value;
- UINT64 Mask;
-} EFI_ACPI_5_0_SERIALIZATION_ACTION;
-
-
-typedef struct {
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT32 SerializationHeaderSize;
- UINT32 Resv1;
- UINT32 InstructionEntryCount;
- EFI_ACPI_5_0_SERIALIZATION_ACTION InstructionEntry[16];
-} EFI_ACPI_5_0_BOOT_ERROR_RECORD_SERIALIZATION_TABLE;
-
-typedef struct {
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT32 SerializationHeaderSize;
- UINT32 Resv1;
- UINT32 InstructionEntryCount;
-} EFI_ACPI_5_0_SERIALIZATION_ACTION_HEADER;
-#pragma pack ()
-
-
-
-EFI_ACPI_5_0_BOOT_ERROR_RECORD_SERIALIZATION_TABLE Erst = {
- {
- EFI_ACPI_5_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_BOOT_ERROR_RECORD_SERIALIZATION_TABLE),
- EFI_ACPI_5_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x00000002,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- sizeof(EFI_ACPI_5_0_SERIALIZATION_ACTION_HEADER),
- EFI_ACPI_RESERVED_DWORD,
- 0x10,
- {
- { //Action0
- 0x00, // Action:Begin Operation
- 0x3, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0100, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action1
- 0x01, // Action:Begin Read Operation
- 0x3, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0108, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action2
- 0x02, // Action:Begin Clear Operation
- 0x3, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0110, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action3
- 0x03, // Action:Begin Clear Operation
- 0x4, // Instruction:Noop
- 0x1, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0118, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action4
- 0x04, // Action:Begin Clear Operation
- 0x2, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0120, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action5
- 0x05, // Action:Execute Operation
- 0x3, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_5_0_SYSTEM_MEMORY, //Space ID
- 0x8, //Bit Width
- 0x0, //Bit Offset
- 0x1, //Encoded Access Width
- 0xFFFF0128, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action6
- 0x06, // Action:Check Busy Status
- 0x1, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0130, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action7
- 0x07, // Action:Get Command Status
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0138, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action8
- 0x08, // Action:Get Command Status
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0140, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action9
- 0x09, // Action:Set Record Identifier
- 0x2, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0148, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action10
- 0x0A, // Action:Get Record Count
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0150, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action11
- 0x0B, // Action:Begin Dummy Write
- 0x3, // Instruction:Write Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0158, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action12
- 0x0C, // Action:Unused/Unknown Action
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0160, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action13
- 0x0D, // Action:Get Error Address Range
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0168, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action14
- 0x0E, // Action:Get Error Address Length
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0170, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- { //Action15
- 0x0F, // Action:Get Error Attributes
- 0x0, // Instruction:Read Register
- 0x0, // Flags
- 0x00, // Reserved
- /*Register Region*/
- EFI_ACPI_3_0_SYSTEM_MEMORY, //Space ID
- 0x40, //Bit Width
- 0x0, //Bit Offset
- 0x4, //Encoded Access Width
- 0xFFFF0178, //Address
- 0x0000000000000000, // Value for InjectError()
- 0xFFFFFFFFFFFFFFFF // Mask is only valid for 32-bits
- },
- }
-
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Erst;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facp.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facp.aslc
deleted file mode 100644
index 729c5bc..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facp.aslc
+++ /dev/null
@@ -1,175 +0,0 @@
-/** @file
- FACP Table
-
- Copyright (c) 2008 - 2012, 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.
-
-**/
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include "Platform.h"
-
-EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Facp = {
- {
- EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE),
- EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION,
- 0, // to make sum of entire table == 0
- {EFI_ACPI_OEM_ID}, // OEMID is a 6 bytes long field
- EFI_ACPI_OEM_TABLE_ID, // OEM table identification(8 bytes long)
- 0x00, // OEM revision number
- EFI_ACPI_CREATOR_ID, // ASL compiler vendor ID
- EFI_ACPI_CREATOR_REVISION // ASL compiler revision number
- },
- 0, // Physical addesss of FACS
- 0x00000010, // Physical address of DSDT
- 0x0, // System Interrupt Model
- 0x4, // PM Profile
- SCI_INT_VECTOR, // System vector of SCI interrupt
- SMI_CMD_IO_PORT, // Port address of SMI command port
- ACPI_ENABLE, // value to write to port smi_cmd to enable ACPI
- ACPI_DISABLE, // value to write to port smi_cmd to disable ACPI
- S4BIOS_REQ, // Value to write to SMI CMD port to enter the S4BIOS state
- 0, // PState control
- PM1a_EVT_BLK, // Port address of Power Mgt 1a Event Reg Blk
- PM1b_EVT_BLK, // Port address of Power Mgt 1b Event Reg Blk
- PM1a_CNT_BLK, // Port address of Power Mgt 1a Ctrl Reg Blk
- PM1b_CNT_BLK, // Port address of Power Mgt 1b Ctrl Reg Blk
- PM2_CNT_BLK, // Port address of Power Mgt 2 Ctrl Reg Blk
- PM_TMR_BLK, // Port address of Power Mgt Timer Ctrl Reg Blk
- GPE0_BLK, // Port addr of General Purpose Event 0 Reg Blk
- GPE1_BLK, // Port addr of General Purpose Event 1 Reg Blk
- PM1_EVT_LEN, // Byte Length of ports at pm1X_evt_blk
- PM1_CNT_LEN, // Byte Length of ports at pm1X_cnt_blk
- PM2_CNT_LEN, // Byte Length of ports at pm2_cnt_blk
- PM_TM_LEN, // Byte Length of ports at pm_tm_blk
- GPE0_BLK_LEN, // Byte Length of ports at gpe0_blk
- GPE1_BLK_LEN, // Byte Length of ports at gpe1_blk
- GPE1_BASE, // offset in gpe model where gpe1 events start
- 0, // _CST support
- P_LVL2_LAT, // worst case HW latency to enter/exit C2 state
- P_LVL3_LAT, // worst case HW latency to enter/exit C3 state
- FLUSH_SIZE, // Size of area read to flush caches
- FLUSH_STRIDE, // Stride used in flushing caches
- DUTY_OFFSET, // bit location of duty cycle field in p_cnt reg
- DUTY_WIDTH, // bit width of duty cycle field in p_cnt reg
- DAY_ALRM, // index to day-of-month alarm in RTC CMOS RAM
- MON_ALRM, // index to month-of-year alarm in RTC CMOS RAM
- CENTURY, // index to century in RTC CMOS RAM
- 0x0000, // Boot architecture flag
- 0x00, // reserved
- FLAG,
-
- {
- 0x01, //Space ID
- 0x8, //Bit Width
- 0x0, //Bit Offset
- 0x1, //Encoded Access Width
- 0x0000000000000001,//Address
- },
-
- 0x0, //Value to cause reset
- {0,0,0}, //Reserved
- 0x0000000000000000,//FACS Address
- 0x0000000000000010,//DSDT Address
-
-
- /*PM1A Event Block*/
- 0x1, //Space ID:SystemIO
- 0x20, //Bit Width
- 0x0, //Bit Offset
- 0x2, //Encoded Access Width
- 0x0000000000000001, //Address
-
- /*PM1B Event Block*/
- 0x1, //Space ID:SystemIO
- 0x0, //Bit Width
- 0x0, //Bit Offset
- 0x0, //Encoded Access Width
- 0x0000000000000000, //Address
-
- /*PM1A Control Block*/
- 0x1, //Space ID:SystemIO
- 0x10, //Bit Width
- 0x0, //Bit Offset
- 0x02, //Encoded Access Width
- 0000000000000001, //Address
-
- /*PM1B Control Block*/
- 0x1, //Space ID:SystemIO
- 0x00, //Bit Width
- 0x0, //Bit Offset
- 0x0, //Encoded Access Width
- 0x0000000000000000, //Address
-
- /*PM2 Control Block*/
- 0x1, //Space ID:SystemIO
- 0x08, //Bit Width
- 0x0, //Bit Offset
- 0x0, //Encoded Access Width
- 0x0000000000000001, //Address
-
- /*PM Timer Block*/
- 0x1, //Space ID:SystemIO
- 0x20, //Bit Width
- 0x0, //Bit Offset
- 0x3, //Encoded Access Width
- 0x0000000000000001, //Address
-
- /*GPE0 Block*/
- 0x1, //Space ID:SystemIO
- 0x80, //Bit Width
- 0x0, //Bit Offset
- 0x1, //Encoded Access Width
- 0x0000000000000001, //Address
-
- /*GPE1 Block*/
- 0x1, //Space ID:SystemIO
- 0x00, //Bit Width
- 0x0, //Bit Offset
- 0x0, //Encoded Access Width
- 0x0000000000000000, //Address
-
- /*Sleep Control Register*/
- 0x1, //Space ID:SystemIO
- 0x08, //Bit Width
- 0x0, //Bit Offset
- 0x1, //Encoded Access Width
- 0x0000000000000000, //Address
-
- /*Sleep Status Register*/
- 0x1, //Space ID:SystemIO
- 0x08, //Bit Width
- 0x0, //Bit Offset
- 0x1, //Encoded Access Width
- 0x0000000000000000, //Address
-
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Facp;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facs.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facs.aslc
deleted file mode 100644
index 9bcddea..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Facs.aslc
+++ /dev/null
@@ -1,86 +0,0 @@
-/** @file
- FACS Table
-
- Copyright (c) 2008 - 2012, 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.
-
-**/
-
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-
-EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = {
- EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE),
-
- //
- // Hardware Signature will be updated at runtime
- //
- 0x00000000, //HardwareSignature
- 0x00, //FirmwareWakingVector
- 0x00, //GlobalLock
- 0x00, //Flags
- 0x0000000000000000, //XFirmwareWakingVector
- 0x02, //Version
- {
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE
- },
- 0x00,
- {
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE
- }
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Facs;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Gtdt.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Gtdt.aslc
deleted file mode 100644
index ab8a60a..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Gtdt.aslc
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt =
-{
- {
- EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE),
- EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x0000000000000000, //Timer Address
- 0x00000001, //Flags
- 0x00000000, //Secure PL1 Interrupt
- 0x00000000, //SPL1 Flags
- 0x00000000, //Non-Secure PL1 Interrupt
- 0x00000000, //NSPL1 Flags
- 0x00000000, //Virtual Timer Interrupt
- 0x00000000, //VT Flags
- 0x00000000, //Non-Secure PL2 Interrupt
- 0x00000000, //NSPL2 Flags
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Gtdt;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Hest.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Hest.aslc
deleted file mode 100644
index 08092ac..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Hest.aslc
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#pragma pack(1)
-
-typedef struct {
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT32 ErrorEntryCount;
- EFI_ACPI_5_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE GenHardWareError;
-
-} EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE;
-
-#pragma pack()
-
-EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE Hest = {
- {
- EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE),
- EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x02,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x00000001, //Error Source Count
-{
- 0x0009, //Subtable Type:Generic Hardware Error Source
- 0x0002, //Source Id
- 0xFFFF, //Related Source Id
- 0x00, //Reserved
- 0x01, //Enabled
- 0x00000001, //Records To Preallocate
- 0x00000001, //Max Sections Per Record
- 0x00001000, //Max Raw Data Length
-
- /* Error Status Address : [Generic Address Structure]*/
- {
- 0x00, //Space ID:SystemMemory
- 0x40, //Bit Width
- 0x00, //Bit Offset
- 0x04, //Encoded Access Width
- 0xFFFF0000, //Address
- },
- /*Notify : [Hardware Error Notification Structure]*/
- {
- 0x03, //Notify Type:SCI
- 0x1c, //Notify Length
- 0x0000, //Configuration Write Enable
- 0x00000000, //PollInterval
- 0x00000000, //Vector
- 0x00000000, //Polling Threshold Value
- 0x00000000, //Polling Threshold Window
- 0x00000000, //Error Threshold Value
- 0x00000000, //Error Threshold Window
- },
- 0x00001000, //Error Status Block Length
-},
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Hest;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mcfg.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mcfg.aslc
deleted file mode 100644
index 9451e9c..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mcfg.aslc
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define ACPI_5_0_MCFG_VERSION 0x1
-
-#pragma pack(1)
-typedef struct
-{
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT64 Reserved1;
- UINT64 ullBaseAddress;
- UINT16 usSegGroupNum;
- UINT8 ucStartBusNum;
- UINT8 ucEndBusNum;
- UINT32 Reserved2;
-}EFI_ACPI_5_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE;
-#pragma pack()
-
-EFI_ACPI_5_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE Mcfg=
-{
- {
- EFI_ACPI_5_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE),
- ACPI_5_0_MCFG_VERSION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x0000000000000000, //Reserved
- 0x0000000000000000, //Base Address
- 0x0000, //Segment Group Number
- 0x00, //Start Bus Number
- 0x00, //End Bus Number
- 0x00000000, //Reserved
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Mcfg;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mpst.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mpst.aslc
deleted file mode 100644
index dfdda34..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Mpst.aslc
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define MAX_POWER_STATES_NUM 0x2
-#define MAX_PHYSICAL_COMPONENTS_NUM 0x3
-#define MAX_MEMORY_POWER_NODE_COUNT 0x2
-#define MAX_CHARACTERISTICS_COUNT 0x2
-
-#pragma pack (1)
-typedef struct
-{
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STRUCTURE structre;
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE state[MAX_POWER_STATES_NUM];
- UINT16 components[MAX_PHYSICAL_COMPONENTS_NUM];
-}EFI_ACPI_5_0_MPST_MEMORY_POWER_STRUCTURE_EX;
-
-typedef struct
-{
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE structre;
- UINT64 ulResverd;
-}EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_EX;
-
-typedef struct
-{
- EFI_ACPI_5_0_MEMORY_POWER_STATUS_TABLE table;
- EFI_ACPI_5_0_MPST_MEMORY_POWER_NODE_TABLE node;
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STRUCTURE_EX powerNode[MAX_MEMORY_POWER_NODE_COUNT];
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE Characteristics;
- EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_EX powerChar[MAX_CHARACTERISTICS_COUNT];
-}EFI_ACPI_5_0_MEMORY_POWER_STATUS_TABLE_EX;
-#pragma pack ()
-
-
-EFI_ACPI_5_0_MEMORY_POWER_STATUS_TABLE_EX Mpst ={
- {
- {
- EFI_ACPI_5_0_MEMORY_POWER_STATE_TABLE_SIGNATURE,
- 0x000000B6,
- EFI_ACPI_5_0_MEMORY_POWER_STATE_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x00, //Channel ID
- {0,0,0}, //Reserved
-
- },
- 0x0002, //Power Node Count
- {0,0}, //Reserved
- {
- {
- 0x00, //Flags
- 0x00, //Reserved
- 0x0000, //Node ID
- 0x0000000000, //Length
- 0x00000000000000000000, //ange Address
- 0x00000000000000000000, //Range Length
- 0x00000002, // Num Power
- 0x00000003, // Num Physical Components
- {
- {
- 0x00, //Power State
- 0x00, //InfoIndex
- },
- {
- 0x00, //Power State
- 0x00, //InfoIndex
- },
- },
- 0x0000, //Component Id
- 0x0001, //Component Id
- 0x0002, //Component Id
- },
- {
- 0x00, //Flags
- 0x00, //Reserved
- 0x0000, //Node ID
- 0x0000000000, //Length
- 0x00000000000000000000, //ange Address
- 0x00000000000000000000, //Range Length
- 0x00000001, // Num Power
- 0x00000001, // Num Physical Components
- {
- 0x00, //Power State
- 0x00, //InfoIndex
- },
- 0x0000, //Component Id
-
- },
- },
-
- 0x0002, //Characteristics Count
- {0,0}, //Reserved
- {
- {
- 0x01, //Structure ID
- 0x00, //Flags
- 0x0000, //Reserved
- 0x00000000, //Average Power
- 0x00000000, //Power Saving
- 0x0000000000000000, //Exit Latency
- 0x0000000000000000, //Reserved
- },
- {
- 0x01, //Structure ID
- 0x00, //Flags
- 0x0000, //Reserved
- 0x00000000, //Average Power
- 0x00000000, //Power Saving
- 0x0000000000000000, //Exit Latency
- 0x0000000000000000, //Reserved
- },
- },
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Mpst;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Msct.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Msct.aslc
deleted file mode 100644
index 80c9d59..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Msct.aslc
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION 0x1
-//
-// MSCT Table definition
-//
-#pragma pack (1)
-typedef struct {
- UINT8 Revision;
- UINT8 Length;
- UINT32 ProxDomRangeLow;
- UINT32 ProxDomRangeHigh;
- UINT32 MaxProcessorCapacity;
- UINT64 MaxMemoryCapacity;
-} EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;
-
-typedef struct {
- EFI_ACPI_5_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER Header;
- EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE ProxDomInfoStructure[4];
-} EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE;
-
-#pragma pack ()
-
-EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE Msct = {
- {
- {
- EFI_ACPI_5_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE),
- EFI_ACPI_5_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- //
- // Beginning of MSCT specific fields
- //
- 0x00000038, // OffsetProxDomInfo
- 4 - 1, // MaxNumProxDom
- 0x00000000, // MaxNumClockDom
- 0x00000FFFFFFFFFFF, // MaxPhysicalAddress
- },
- {
- {
- EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
- sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
- 0x00000000, // ProxDomRangeLow
- 0x00000003, // ProxDomRangeHigh
- 0x00000010, // MaxProcessorCapacity
- 0x0000004000000000 // MaxMemoryCapacity
- },
- {
- EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
- sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
- 0x00000000, // ProxDomRangeLow
- 0x00000000, // ProxDomRangeHigh
- 0x00000000, // MaxProcessorCapacity
- 0x0000000000000000, // MaxMemoryCapacity
- },
-
- {
- EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
- sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
- 0x00000000, // ProxDomRangeLow
- 0x00000000, // ProxDomRangeHigh
- 0x00000000, // MaxProcessorCapacity
- 0x0000000000000000, // MaxMemoryCapacity
- },
-
- {
- EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
- sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
- 0x00000000, // ProxDomRangeLow
- 0x00000000, // ProxDomRangeHigh
- 0x00000000, // MaxProcessorCapacity
- 0x0000000000000000, // MaxMemoryCapacity
- },
- },
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Msct;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Oem0.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Oem0.aslc
deleted file mode 100644
index 2e84daf..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Oem0.aslc
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define EFI_ACPI_5_0_OEM0_SIGNATURE SIGNATURE_32('O', 'E', 'M', '0')
-#define ACPI_5_0_OEM0_REVISION 0x1
-
-typedef struct{
- EFI_ACPI_DESCRIPTION_HEADER Header;
-}EFI_ACPI_5_0_OEM0_TABLE;
-
-EFI_ACPI_5_0_OEM0_TABLE Oem0=
-{
- {
- EFI_ACPI_5_0_OEM0_SIGNATURE,
- sizeof (EFI_ACPI_5_0_OEM0_TABLE),
- ACPI_5_0_OEM0_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x0000000A,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Oem0;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Platform.h b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Platform.h
deleted file mode 100644
index 147d332..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Platform.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/** @file
- Platform specific defines for constructing ACPI tables
-
- Copyright (c) 2008, 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.
-
-**/
-
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#ifndef _Platform_h_INCLUDED_
-#define _Platform_h_INCLUDED_
-
-#include <PiDxe.h>
-#include <IndustryStandard/Acpi.h>
-
-//
-// ACPI table information used to initialize tables.RTSMVEV8
-//
-#define EFI_ACPI_OEM_ID 'L','I','N','A','R','O' // OEMID 6 bytes long
-#define EFI_ACPI_OEM_TABLE_ID SIGNATURE_64('R','T','S','M','V','E','V','8' ) // OEM table id 8 bytes long
-#define EFI_ACPI_OEM_REVISION 0x00000001
-#define EFI_ACPI_CREATOR_ID SIGNATURE_32('I','N','T','L')
-#define EFI_ACPI_CREATOR_REVISION 0x20130517
-
-#define INT_MODEL 0x01
-#define SCI_INT_VECTOR 0x0
-#define SMI_CMD_IO_PORT 0x0
-#define ACPI_ENABLE 0x0
-#define ACPI_DISABLE 0x0
-#define S4BIOS_REQ 0x00
-#define PM1a_EVT_BLK 0x00000001
-#define PM1b_EVT_BLK 0x00000000
-#define PM1a_CNT_BLK 0x00000001
-#define PM1b_CNT_BLK 0x00000000
-#define PM2_CNT_BLK 0x00000001
-#define PM_TMR_BLK 0x00000001
-#define GPE0_BLK 0x00000001
-#define GPE1_BLK 0x00000000
-#define PM1_EVT_LEN 0x04
-#define PM1_CNT_LEN 0x02
-#define PM2_CNT_LEN 0x01
-#define PM_TM_LEN 0x04
-#define GPE0_BLK_LEN 0x08
-#define GPE1_BLK_LEN 0x00
-#define GPE1_BASE 0x00
-#define RESERVED 0x00
-#define P_LVL2_LAT 0x0000
-#define P_LVL3_LAT 0x0000
-#define FLUSH_SIZE 0x0000
-#define FLUSH_STRIDE 0x0000
-#define DUTY_OFFSET 0x00
-#define DUTY_WIDTH 0x00
-#define DAY_ALRM 0x00
-#define MON_ALRM 0x00
-#define CENTURY 0x00
-#define FLAG 0x00321033
-#endif
-
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Pmtt.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Pmtt.aslc
deleted file mode 100644
index f0b4f6c..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Pmtt.aslc
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define EFI_ACPI_MEMORY_AGGREGATOR_TYPE_SOCKET 00 //socket
-#define EFI_ACPI_MEMORY_AGGREGATOR_TYPE_MEMCTRL 01 //Memory Controller
-#define EFI_ACPI_MEMORY_AGGREGATOR_TYPE_DIMM 02 //DIMM
-#define EFI_ACPI_MEMORY_AGGREGATOR_TYPE_RESVERVED 03 //RESVERVED
-
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG_TLAD 01
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG_PHYELEMENT 02 // BIT1 - set to 1 since socket is a physical element of the topology
-//Bit 2 and 3 - If 00, indicates that all components aggregated by this device implements volatile memory
-// If 01, indicates that components aggregated by this device implements both volatile and non-volatile memory
-// If 10, indicates that all components aggregated by this device implements non-volatile memory
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG__VOLATILE 00
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG__MIXED 4
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG__NONVOLATILE 0x08
-#define EFI_ACPI_MEMORY_AGGREGATOR_FLAG__RSVD 0x0C
-
-#define MAXNUMBER_OF_PROXIMITY_DOMAINS 0x3
-
-#define MAX_SOCKET 0x2
-#define NUM_MEM_CONTROLLERS 0x2
-#define MAX_DIMM 0x02
-
-#pragma pack (1)
-// PMMT Table fields
-typedef struct {
- UINT32 ReadLatency;
- UINT32 WriteLatency;
- UINT32 ReadBW;
- UINT32 WriteBW;
- UINT16 OptimalAccUnit;
- UINT16 OptimalAccAlignment;
-} EFI_ACPI_MEMCTRL_CHAR_TABLE;
-
-typedef struct {
- UINT8 Type;
- UINT8 Rsvd;
- UINT16 Length;
- UINT16 Flag;
- UINT16 Rsvd1;
- UINT16 PhyCompIdentifier;
- UINT16 Rsvd2;
- UINT32 Size;
- UINT32 SmBiosHandle;
-} EFI_ACPI_MEMORY_AGGREGATOR_DIMM_STRUC;
-
-typedef struct {
- UINT8 Type;
- UINT8 Rsvd;
- UINT16 Length;
- UINT16 Flag;
- UINT16 Rsvd1;
- EFI_ACPI_MEMCTRL_CHAR_TABLE MemCtrlCharTable;
- UINT16 Rsvd2;
- UINT16 NumProxDomains;
- UINT32 ProxDomain[MAXNUMBER_OF_PROXIMITY_DOMAINS];
- EFI_ACPI_MEMORY_AGGREGATOR_DIMM_STRUC PhyCompIdentStruc[MAX_DIMM];
-} EFI_ACPI_MEMORY_AGGREGATOR_MEMCTRL_STRUC;
-
-typedef struct {
- UINT8 Type;
- UINT8 Rsvd;
- UINT16 Length;
- UINT16 Flag;
- UINT16 Rsvd1;
- UINT16 SckIdent;
- UINT16 Rsvd2;
- EFI_ACPI_MEMORY_AGGREGATOR_MEMCTRL_STRUC MemCtrlStruc[NUM_MEM_CONTROLLERS];
-} EFI_ACPI_MEMORY_AGGREGATOR_SOCKET_STRUC;
-
-typedef struct {
- EFI_ACPI_5_0_MEMORY_TOPOLOGY_TABLE Header;
- EFI_ACPI_MEMORY_AGGREGATOR_SOCKET_STRUC TopLevelmemAggrDevStruc[MAX_SOCKET];
-} EFI_ACPI_5_0_PLATFORM_MEMORY_TOPOLOGY_TABLE;
-#pragma pack ()
-
-
-EFI_ACPI_5_0_PLATFORM_MEMORY_TOPOLOGY_TABLE Pmtt = {
- {
- {
- EFI_ACPI_5_0_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_PLATFORM_MEMORY_TOPOLOGY_TABLE), // Length
- EFI_ACPI_5_0_MEMORY_TOPOLOGY_TABLE_REVISION, // Revision
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- EFI_ACPI_RESERVED_DWORD, // Reserved[0]
- },
- {
- /*Socket 0*/
- {
- 0x00, //Subtable Type:Socket
- 0x00, //Reserved
- 0x0080, //Length
- 0x0001, //Flags
- 0x0000, //Reserved
- 0x0000, //Socket ID
- 0x0000, //Reserved
- {
- /*Memory Controller 1*/
-
- {
- 0x01, //Subtable Type:Memory Controller
- 0x00, //Reserved
- 0x0054, //Length
- 0x0005, //Flags
- 0x0000, //Reserved
- {
- 0x00000000, //Read Latency
- 0x00000000, //Write Latency
- 0x00000000, //Read Bandwidth
- 0x00000000, //Write Bandwidth
- 0x0000, //Access Width
- 0x0000, //Alignment
- },
- 0x0000, //Reserved
- MAXNUMBER_OF_PROXIMITY_DOMAINS, //Domain Count
- 0x00000000, //Proximity Domain
- 0x00000000, //Proximity Domain
- 0x00000000, //Proximity Domain
- {
- /*DIMM 0*/
- {
- 0x02, //Subtable Type:Physical Component (DIMM)
- 0x00, //Reserved
- 0x0014, //Length
- 0x0002, //Flags
- 0x0000, //Reserved
- 0x0000, //Component ID
- 0x0000, //Reserved
- 0x00000000, //Memory Size
- 0x00000000, //Bios Handle
- },
- /*DIMM 1*/
- {
- 0x02, //Subtable Type:Physical Component (DIMM)
- 0x00, //Reserved
- 0x0014, //Length
- 0x0002, //Flags
- 0x0000, //Reserved
- 0x0000, //Component ID
- 0x0000, //Reserved
- 0x00000000, //Memory Size
- 0x00000000, //Bios Handle
- },
- },
- },
-
- /*Memory Controller 2*/
- {
- 0x01, //Subtable Type:Memory Controller
- 0x00, //Reserved
- 0x0020, //Length
- 0x0001, //Flags
- 0x0000, //Reserved
- {
- 0x00000000, //Read Latency
- 0x00000000, //Write Latency
- 0x00000000, //Read Bandwidth
- 0x00000000, //Write Bandwidth
- 0x0000, //Access Width
- 0x0000 //Alignment
- },
- 0x0000, //Reserved
- 0x0000, //Domain Count
- {0},
- {0},
-
- },
- },
- },
-
-
- /*Socket 1*/
- {
- 0x00, //Subtable Type:Socket
- 0x00, //Reserved
- 0x000c, //Length
- 0x0001, //Flags
- 0x0000, //Reserved
- 0x0000, //Socket ID
- 0x0000 //Reserved
- },
- },
-
-
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Pmtt;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Slit.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Slit.aslc
deleted file mode 100644
index 05d96e0..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Slit.aslc
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define EFI_ACPI_SYSTEM_LOCALITIES_ENTRY_COUNT 0x0000000000000014
-
-#pragma pack(1)
-typedef struct {
- UINT8 Entry[EFI_ACPI_SYSTEM_LOCALITIES_ENTRY_COUNT];
-} EFI_ACPI_5_0_NUMBER_OF_SYSTEM_LOCALITIES_STRUCTURE;
-
-typedef struct {
- EFI_ACPI_5_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER Header;
- EFI_ACPI_5_0_NUMBER_OF_SYSTEM_LOCALITIES_STRUCTURE NumSlit[EFI_ACPI_SYSTEM_LOCALITIES_ENTRY_COUNT];
-
-} EFI_ACPI_5_0_SYSTEM_LOCALITY_INFORMATION_TABLE;
-#pragma pack()
-
-//
-// System Locality Information Table
-// Please modify all values in Slit.h only.
-//
-EFI_ACPI_5_0_SYSTEM_LOCALITY_INFORMATION_TABLE Slit = {
- {
- {
- EFI_ACPI_5_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_SYSTEM_LOCALITY_INFORMATION_TABLE),
- EFI_ACPI_5_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION,
- },
- //
- // Beginning of SLIT specific fields
- //
- EFI_ACPI_SYSTEM_LOCALITIES_ENTRY_COUNT,
- },
- {
- {0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27}, //Locality 0
- {0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,}, //Locality 1
- {0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,}, //Locality 2
- {0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24,}, //Locality 3
- {0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23,}, //Locality 4
- {0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22,}, //Locality 5
- {0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21,}, //Locality 6
- {0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,}, //Locality 7
- {0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,}, //Locality 8
- {0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E,}, //Locality 9
- {0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,}, //Locality 10
- {0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C,}, //Locality 11
- {0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B,}, //Locality 12
- {0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A,}, //Locality 13
- {0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17, 0x18, 0x19,}, //Locality 14
- {0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16, 0x17, 0x18,}, //Locality 15
- {0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10, 0x16, 0x17,}, //Locality 16
- {0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A, 0x15, 0x16,}, //Locality 17
- {0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x0A, 0x10,}, //Locality 18
- {0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x10, 0x0A,}, //Locality 19
- },
-};
-
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Slit;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Spmi.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Spmi.aslc
deleted file mode 100644
index 77836a4..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Spmi.aslc
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-#define ACPI_5_0_SPMI_REVISION 0x4
-
-#pragma pack(1)
-typedef struct
-{
-
- EFI_ACPI_DESCRIPTION_HEADER Header;
- UINT8 ucInterfaceType;
- UINT8 Reserved;
- UINT16 usIPMISpecVersion;
- UINT8 ucInterruptType;
- UINT8 ucGPENumber;
- UINT8 Reserved2;
- UINT8 ucPCIDeviceFlag;
- UINT32 uwInterrupt;
- EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE IPMIRegister;
- UINT8 ucPCISegment;
- UINT8 ucPCIBus;
- UINT8 ucPCIDevice;
- UINT8 ucPCIFunction;
- UINT8 Reserved3;
-}EFI_ACPI_5_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE;
-#pragma pack()
-
-EFI_ACPI_5_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE Spmi =
-{
- {
- EFI_ACPI_5_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE),
- ACPI_5_0_SPMI_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- 0x00,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- 0x00, //Interface Type
- 0x00, //Reserved
- 0x0000, //IPMI Spec Version
- 0x00, //Interrupt Type
- 0x00, //GPE Number
- 0x00, //Reserved
- 0x00, //PCI Device Flag
- 0x00000000, //Interrupt
- {
- 0x00, //Space ID:SystemMemory
- 0x08, //Bit Width
- 0x00, //Bit Offset
- 0x01, //Encoded Access Width
- 0x0000000000000000, //Address
- },
- 0x00, //PCI Segment
- 0x00, //PCI Bus
- 0x00, //PCI Device
- 0x00, //PCI Function
- 0x00, //Reserved
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
-
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Spmi;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Srat.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Srat.aslc
deleted file mode 100644
index d5c433f..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Srat.aslc
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-
-//
-// Define the number of each table type.
-// This is where the table layout is modified.
-//
-#define EFI_ACPI_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE_COUNT 4
-#define EFI_ACPI_MEMORY_AFFINITY_STRUCTURE_COUNT 4
-
-
-#pragma pack(1)
-typedef struct {
- EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER Header;
- EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE Apic;
- EFI_ACPI_5_0_MEMORY_AFFINITY_STRUCTURE Memory;
- EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE x2APIC;
-} EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE;
-
-#pragma pack()
-
-
-//
-// Static Resource Affinity Table definition
-//
-EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE Srat = {
- {
- EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE),
- EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION,
- /*Reserved*/
- 0x00000001, // Reserved to be 1 for backward compatibility
- EFI_ACPI_RESERVED_QWORD
- },
- /**/
- {
- 0x00, // Subtable Type:Processor Local APIC/SAPIC Affinity
- sizeof(EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE), //Length
- 0x00, //Proximity Domain Low(8)
- 0x00, //Apic ID
- 0x00000001, //Flags
- 0x00, //Local Sapic EID
- {0,0,0}, //Proximity Domain High(24)
- 0x00000000, //ClockDomain
- },
- //
- //
- // Memory Affinity
- //
- {
- 0x01, // Subtable Type:Memory Affinity
- sizeof (EFI_ACPI_5_0_MEMORY_AFFINITY_STRUCTURE), // Length
- 0x00000000, // Proximity Domain
- EFI_ACPI_RESERVED_WORD, // Reserved
- 0x00000000, // Address Base Low
- 0x00000000, // Address Base High
- 0x0009FC00, // Length Low
- 0x00000000, // Length High
- EFI_ACPI_RESERVED_DWORD, // Reserved
- 0x00000001, // Flags disabled, until enabled by Platform driver
- EFI_ACPI_RESERVED_QWORD , // Reserved
- },
-
- /*Processor Local x2APIC Affinity*/
- {
- 0x02, // Subtable Type:Processor Local x2APIC Affinity
- sizeof(EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE),
- {0,0}, //Reserved1
- 0x00000000, //Proximity Domain
- 0x00000000, //Apic ID
- 0x00000001, //Flags
- 0x00000000, //Clock Domain
- {0,0,0,0}, //Reserved2
- },
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Srat;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ssdt0.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ssdt0.asl
deleted file mode 100644
index c13ceef..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Ssdt0.asl
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
- *
- * [SSDT] Description of the armv8 VE Model
- *
- * This source is released under the terms of the GPLv2.
- */
-
-DefinitionBlock (
- "ssdt0.aml", // output filename
- "SSDT", // table signature
- 2, // SSDT compliance revision
- "LINARO", // OEM ID
- "RTSMVEV8", // table ID
- 0x00000001) // OEM revision
-{
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Uefi.aslc b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Uefi.aslc
deleted file mode 100644
index c3bbce3..0000000
--- a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/Uefi.aslc
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2013 Linaro Limited
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the BSD License which accompanies
- * this distribution, and is available at
- * http://opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * Yi Li - yi.li@linaro.org
-*/
-
-#include <IndustryStandard/Acpi.h>
-#include <Platform.h>
-
-
-#define ACPI_5_0_UEFI_REVISION 0x1
-
-#pragma pack(1)
-
-typedef struct
-{
- EFI_ACPI_DESCRIPTION_HEADER Header;
- EFI_GUID guid;
- UINT16 usDataOffset;
-}EFI_ACPI_5_0_UEFI_TABLE;
-#pragma pack()
-
-EFI_ACPI_5_0_UEFI_TABLE Uefi=
-{
- {
- EFI_ACPI_5_0_UEFI_ACPI_DATA_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_5_0_UEFI_TABLE),
- ACPI_5_0_UEFI_REVISION,
- 0x00, // Checksum will be updated at runtime
- {EFI_ACPI_OEM_ID},
- EFI_ACPI_OEM_TABLE_ID,
- EFI_ACPI_OEM_REVISION,
- EFI_ACPI_CREATOR_ID,
- EFI_ACPI_CREATOR_REVISION
- },
- //03020100-0504-0706-0809-0A0B0C0D0E0F
- { 0x03020100, 0x0504, 0x0706, { 0x08, 0x09, 0x0A, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } },
- 0x0036 //Data Offset
-};
-
-VOID*
-ReferenceAcpiTable (
- VOID
- )
-{
- //
- // Reference the table being generated to prevent the optimizer from removing the
- // data structure from the exeutable
- //
- return (VOID*)&Uefi;
-}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/apic.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/apic.asl
new file mode 100644
index 0000000..81351c3
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/apic.asl
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [APIC] Multiple APIC Description Table (MADT)
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "APIC"
+[0004] Table Length : 000000F6
+[0001] Revision : 03
+[0001] Checksum : B0
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20110623
+
+[0004] Local Apic Address : 2C000000
+[0004] Flags (decoded below) : 00000001
+ PC-AT Compatibility : 0
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000000 /* Should be equal to FDT provided or CPU hardware ID */
+[0004] Processor UID : 00000000
+[0004] Flags (decoded below) : 00000001
+ Processor Enabled : 1
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000 /* armv8 FVP Base GIC address */
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000001
+[0004] Processor UID : 00000001
+[0004] Flags (decoded below) : 00000001
+ Processor Enabled : 1
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000002
+[0004] Processor UID : 00000002
+[0004] Flags (decoded below) : 00000001
+ Processor Enabled : 1
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000003
+[0004] Processor UID : 00000003
+[0004] Flags (decoded below) : 00000001
+ Processor Enabled : 1
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000004
+[0004] Processor UID : 00000004
+[0004] Flags (decoded below) : 00000000
+ Processor Enabled : 0
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000005
+[0004] Processor UID : 00000005
+[0004] Flags (decoded below) : 00000000
+ Processor Enabled : 0
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000006
+[0004] Processor UID : 00000006
+[0004] Flags (decoded below) : 00000000
+ Processor Enabled : 0
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0B [Generic Interrupt Controller]
+[0001] Length : 28
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000007
+[0004] Processor UID : 00000007
+[0004] Flags (decoded below) : 00000000
+ Processor Enabled : 0
+[0004] Parking Protocol Version : 00000000
+[0004] Performance Interrupt : 00000000
+[0008] Parked Address : 0000000000000000
+[0008] Base Address : 000000002C000000
+
+[0001] Subtable Type : 0C [Generic Interrupt Distributor]
+[0001] Length : 18
+[0002] Reserved : 0000
+[0004] Local GIC Hardware ID : 00000000
+[0008] Base Address : 000000002F000000 /* armv8 FVP Base GIC distributor base addr */
+[0004] Interrupt Base : 00000000
+[0004] Reserved : 00000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/bert.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/bert.asl
new file mode 100644
index 0000000..1b9f3d6
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/bert.asl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [BERT] Boot Error Record Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "BERT"
+[0004] Table Length : 00000030
+[0001] Revision : 01
+[0001] Checksum : 15
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000002
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Boot Error Region Length : 0x9D
+[0008] Boot Error Region Address : 0xFFFF0008
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/cpep.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/cpep.asl
new file mode 100644
index 0000000..c84d07d
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/cpep.asl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [CPEP] Corrected Platform Error Polling Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "CPEP"
+[0004] Table Length : 00000034
+[0001] Revision : 01
+[0001] Checksum : 0F
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000000
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0008] Reserved : 0000000000000000
+
+[0001] Subtable Type : 00
+[0001] Length : 08
+[0001] Processor ID : 00
+[0001] Processor EID : 00
+[0004] Polling Interval : 00000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/dsdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/dsdt.asl
new file mode 100644
index 0000000..43ac170
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/dsdt.asl
@@ -0,0 +1,758 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [DSDT] Description of the armv8 VE Model
+ *
+ */
+
+DefinitionBlock (
+ "dsdt.aml", // output filename
+ "DSDT", // table signature
+ 2, // DSDT compliance revision
+ "LINARO", // OEM ID
+ "RTSMVEV8", // table ID
+ 0x00000004) // OEM revision
+{
+ Scope (\_SB)
+ {
+ Method (_OSC, 4, NotSerialized)
+ {
+ /* Platform-Wide OSPM Capabilities */
+ If(LEqual(Arg0,ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48")))
+ {
+ /* APEI support unconditionally */
+ Return (Arg3)
+ } Else {
+ CreateDWordField (Arg3, Zero, CDW1)
+ /* Set invalid UUID error bit */
+ Or (CDW1, 0x04, CDW1)
+ Return (Arg3)
+ }
+ }
+
+ Device (HED)
+ {
+ Name (_HID, EisaId ("PNP0C33"))
+ Name (_UID, 0x00)
+ }
+
+ Device (SCK0)
+ {
+ Name (_HID, "ACPI0004")
+ Name (_UID, 0x00)
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (0x0F)
+ }
+
+ Device (PRC0)
+ {
+ Name (_HID, "ACPI0007")
+ Name (_UID, 0x00)
+
+ /* CPU0 will be always present */
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (0x0F)
+ }
+
+ Name (MAT0, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* type, len, reserved, gic_id */
+ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* uid, flags */
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */
+ })
+
+ Name (MAT1, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Method (_MAT, 0, NotSerialized)
+ {
+ If (_STA())
+ {
+ Return (MAT0)
+ }
+ Else
+ {
+ Return (MAT1)
+ }
+ }
+ }
+
+ Device (PRC1)
+ {
+ Name (_HID, "ACPI0007")
+ Name (_UID, 0x01)
+
+ Name (STA1, 0x0F)
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (STA1)
+ }
+
+ Method (_EJ0, 1, NotSerialized)
+ {
+ If (LEqual (STA1, 0x0F))
+ {
+ Store (0x00, STA1)
+ }
+ }
+
+ Name (MAT0, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Name (MAT1, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Method (_MAT, 0, NotSerialized)
+ {
+ If (_STA())
+ {
+ Return (MAT0)
+ }
+ Else
+ {
+ Return (MAT1)
+ }
+ }
+ }
+
+ Device (PRC2)
+ {
+ Name (_HID, "ACPI0007")
+ Name (_UID, 0x02)
+
+ Name (STA2, 0x0F)
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (STA2)
+ }
+
+ Method (_EJ0, 1, NotSerialized)
+ {
+ If (LEqual (STA2, 0x0F))
+ {
+ Store (0x00, STA2)
+ }
+ }
+
+ Name (MAT0, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Name (MAT1, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Method (_MAT, 0, NotSerialized)
+ {
+ If (_STA())
+ {
+ Return (MAT0)
+ }
+ Else
+ {
+ Return (MAT1)
+ }
+ }
+ }
+
+ Device (PRC3)
+ {
+ Name (_HID, "ACPI0007")
+ Name (_UID, 0x03)
+
+ Name (STA3, 0x0F)
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (STA3)
+ }
+
+ Method (_EJ0, 1, NotSerialized)
+ {
+ If (LEqual (STA3, 0x0F))
+ {
+ Store (0x00, STA3)
+ }
+ }
+
+ Name (MAT0, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Name (MAT1, Buffer (0x28)
+ {
+ /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ /* 0008 */ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ })
+
+ Method (_MAT, 0, NotSerialized)
+ {
+ If (_STA())
+ {
+ Return (MAT0)
+ }
+ Else
+ {
+ Return (MAT1)
+ }
+ }
+ }
+ }
+
+ Device (PMU0) {
+ Name (_HID, "LNRO0007")
+ Name (_UID, 0)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (SMB) {
+ Name (_HID, "ACPI0004")
+ Name (_UID, 0)
+
+ Name (_CRS, ResourceTemplate () {
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x08000000, // Address Range Minimum (base address in FDT)
+ 0x0BFFFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x14000000, // Address Range Minimum (base address in FDT)
+ 0x17FFFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x18000000, // Address Range Minimum (base address in FDT)
+ 0x1BFFFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x1C000000, // Address Range Minimum (base address in FDT)
+ 0x1FFFFFFF, // Address Range Maximum (base + (len -1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x0C000000, // Address Range Minimum (base address in FDT)
+ 0x0FFFFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x10000000, // Address Range Minimum (base address in FDT)
+ 0x13FFFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x04000000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+
+ })
+
+ Device (NET0) {
+ Name (_HID, "LNRO0003")
+ Name (_UID, 0)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (CLK0) {
+ Name (_HID, "LNRO0008")
+ Name (_UID, 0)
+
+ Method (FREQ, 0x0, NotSerialized) {
+ Return (24000000)
+ }
+ }
+
+ Device (CLK1) {
+ Name (_HID, "LNRO0008")
+ Name (_UID, 1)
+
+ Method (FREQ, 0x0, NotSerialized) {
+ Return (1000000)
+ }
+ }
+
+ Device (CLK2) {
+ Name (_HID, "LNRO0008")
+ Name (_UID, 2)
+
+ Method (FREQ, 0x0, NotSerialized) {
+ Return (32768)
+ }
+ }
+
+ Device (FPGA) {
+ Name (_HID, "ACPI0004")
+ Name (_UID, 0)
+
+ Name (_CRS, ResourceTemplate () {
+
+ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+ 0x00000000, // Address Space Granularity
+ 0x1C000000, // Address Range Minimum (base address in FDT)
+ 0x1C1FFFFF, // Address Range Maximum (base + (len-1))
+ 0x00000000, // Address Translation Offset
+ 0x00200000, // Address Length (len in FDT)
+ ,, , AddressRangeMemory, TypeStatic)
+ })
+
+ Device (SREG) {
+ Name (_HID, "LNRO0009")
+ Name (_UID, 0)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c010000, 0x1000)
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (VIRT) {
+ Name (_HID, "LNRO0005")
+ Name (_UID, 0)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c130000, 0x1000)
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x4A}
+ })
+ Return (RBUF)
+ }
+ }
+ } // End of FPGA
+ } // End SMB
+
+ Method (DTGP, 5, NotSerialized)
+ {
+ If (LEqual (Arg0, Buffer (0x10)
+ {
+ /* UUID: a706b112-bf0b-48d2-9fa3-95591a3c4c06 */
+ /* 0000 */ 0xa7, 0x06, 0xb1, 0x12, 0xbf, 0x0b, 0x48, 0xd2,
+ /* 0008 */ 0x9f, 0xa3, 0x95, 0x59, 0x1a, 0x3c, 0x4c, 0x06
+ }))
+ {
+ If (LEqual (Arg1, 0x01)) {
+ If (LEqual (Arg2, 0x00)) {
+ Store (Buffer (0x01)
+ {
+ 0x03
+ }, Arg4)
+ Return (0x01)
+ }
+
+ If (LEqual (Arg2, 0x01)) {
+ Return (0x01)
+ }
+ }
+ }
+
+ Store (Buffer (0x01)
+ {
+ 0x00
+ }, Arg4)
+
+ Return (0x00)
+ }
+
+ Device (REG0) {
+ Name (_HID, "LNRO0019")
+ Name (_UID, 0)
+
+ Method(_DSM, 4, NotSerialized) {
+ Store (Package (8)
+ {
+ "regulator-name", "3V3",
+ "regulator-min-microvolt", "3300000",
+ "regulator-max-microvolt", "3300000",
+ "regulator-always-on", "1",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (FLH0) {
+ Name (_HID, "LNRO0015")
+ Name (_UID, 0)
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x08000000, 0x04000000)
+ Memory32Fixed (ReadWrite, 0x0C000000, 0x04000000)
+ })
+ Return (RBUF)
+ }
+
+ Method(_DSM, 4, NotSerialized) {
+ Store (Package ()
+ {
+ "bank-width", "4",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (AMBA) {
+ Name (_HID, "AMBA0000")
+ Name (_UID, 0)
+
+ /* Define 'apb_pclk' as a default clock source since it is
+ common with devices below */
+
+ Method(_DSM, 4, NotSerialized) {
+ Store (Package (2)
+ {
+ "clock-name", "apb_pclk \\_SB.SMB.CLK0",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+
+ Device (SCT0) {
+ Name (_HID, "LNRO000C")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c020000) /* SYSCTL */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c020000, 0x00001000)
+ })
+ Return (RBUF)
+ }
+ Method(_DSM, 4, Serialized) {
+ Store (Package (4)
+ {
+ "clock-name", "refclk \\_SB.SMB.CLK2",
+ "clock-name", "timclk \\_SB.SMB.CLK1",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (AAC0) {
+ Name (_HID, "LNRO000D")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c040000) /* AACI */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c040000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {43}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (MMC0) {
+ Name (_HID, "LNRO000E")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c050000) /* MMCI */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c050000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {41, 42}
+ })
+ Return (RBUF)
+ }
+ Method(_DSM, 4, Serialized) {
+ Store (Package (2)
+ {
+ "clock-name", "MCLK \\_SB.SMB.CLK0",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (KMI0) {
+ Name (_HID, "LNRO000F")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c060000)
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c060000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {44}
+ })
+ Return (RBUF)
+ }
+ Method(_DSM, 4, Serialized) {
+ Store (Package (2)
+ {
+ "clock-name", "KMIREFCLK \\_SB.SMB.CLK0",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (KMI1) {
+ Name (_HID, "LNRO000F")
+ Name (_UID, 1)
+ Name (_ADR, 0x1c070000)
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c070000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {45}
+ })
+ Return (RBUF)
+ }
+ Method(_DSM, 4, NotSerialized) {
+ Store (Package (2)
+ {
+ "clock-name", "KMIREFCLK \\_SB.SMB.CLK0",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ Device (SER0) {
+ Name (_HID, "LNRO000A")
+ Name (_ADR, 0x1c090000)
+ Name (_UID, 0)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c090000, 0x1000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x25}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (SER1) {
+ Name (_HID, "LNRO000A")
+ Name (_ADR, 0x1c0a0000)
+ Name (_UID, 1)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c0a0000, 0x1000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x26}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (SER2) {
+ Name (_HID, "LNRO000A")
+ Name (_ADR, 0x1c0b0000)
+ Name (_UID, 2)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c0b0000, 0x1000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x27}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (SER3) {
+ Name (_HID, "LNRO000A")
+ Name (_ADR, 0x1c0c0000)
+ Name (_UID, 3)
+
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate() {
+ Memory32Fixed (ReadWrite, 0x1c0c0000, 0x1000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x28}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (WDT0) {
+ Name (_HID, "LNRO0011")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c0f0000) /* WDT */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c0f0000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {32}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (TIM0) {
+ Name (_HID, "LNRO0012")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c110000) /* TIMER01 */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c110000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {34}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (TIM2) {
+ Name (_HID, "LNRO0012")
+ Name (_UID, 1)
+ Name (_ADR, 0x1c120000) /* TIMER23 */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c120000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {35}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (RTC0) {
+ Name (_HID, "LNRO0013")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c170000) /* RTC */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c170000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {36}
+ })
+ Return (RBUF)
+ }
+ }
+
+ Device (CLCD) {
+ Name (_HID, "LNRO0014")
+ Name (_UID, 0)
+ Name (_ADR, 0x1c1f0000) /* CLCD */
+ Method (_CRS, 0x0, Serialized) {
+ Name (RBUF, ResourceTemplate () {
+ Memory32Fixed (ReadWrite, 0x1c1f0000, 0x00001000)
+ Interrupt (ResourceConsumer, Edge, ActiveBoth,
+ Exclusive, , , ) {46}
+ })
+ Return (RBUF)
+ }
+ Method(_DSM, 4, Serialized) {
+ Store (Package (2)
+ {
+ "clock-name", "CCLDCLK \\_SB.SMB.CLK0",
+ }, Local0)
+
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+
+ Return (Local0)
+ }
+ }
+
+ } // End of AMBA
+ }
+}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ecdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ecdt.asl
new file mode 100644
index 0000000..2eb0acf
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ecdt.asl
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [ECDT] Embedded Controller Boot Resources Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "ECDT"
+[0004] Table Length : 00000042
+[0001] Revision : 01
+[0001] Checksum : 2D
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+
+[0012] Command/Status Register : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000066
+
+[0012] Data Register : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000062
+
+[0004] UID : 00000000
+[0001] GPE Number : 09
+[0001] Namepath : ""
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/einj.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/einj.asl
new file mode 100644
index 0000000..63044fc
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/einj.asl
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [EINJ] Error Injection Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "EINJ"
+[0004] Table Length : 00000130
+[0001] Revision : 01
+[0001] Checksum : 09
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000003
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Injection Header Length : 00000030
+[0001] Flags : 00
+[0003] Reserved : 000000
+[0004] Injection Entry Count : 00000008
+
+[0001] Action : 00 [Begin Operation]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0200
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 01 [Get Trigger Table]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0208
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 02 [Set Error Type]
+[0001] Instruction : 02 [Write Register]
+[0001] Flags (decoded below) : 01
+ Preserve Register Bits : 1
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0210
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 03 [Get Error Type]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0218
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 04 [End Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 01
+ Preserve Register Bits : 1
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0220
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 05 [Execute Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 01
+ Preserve Register Bits : 1
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 10
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 02 [Word Access:16]
+[0008] Address : 0xFFFF0228
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 06 [Check Busy Status]
+[0001] Instruction : 01 [Read Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0230
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 07 [Get Command Status]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 01
+ Preserve Register Bits : 1
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0238
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/erst.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/erst.asl
new file mode 100644
index 0000000..2bf2aff
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/erst.asl
@@ -0,0 +1,305 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [ERST] Error Record Serialization Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "ERST"
+[0004] Table Length : 00000230
+[0001] Revision : 01
+[0001] Checksum : AB
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000002
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Serialization Header Length : 00000030
+[0004] Reserved : 00000000
+[0004] Instruction Entry Count : 00000010
+
+[0001] Action : 00 [Begin Write Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0100
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 01 [Begin Read Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0108
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 02 [Begin Clear Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0110
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 03 [End Operation]
+[0001] Instruction : 04 [Noop]
+[0001] Flags (decoded below) : 01
+ Preserve Register Bits : 1
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0118
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 04 [Set Record Offset]
+[0001] Instruction : 02 [Write Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0120
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 05 [Execute Operation]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0xFFFF0128
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 06 [Check Busy Status]
+[0001] Instruction : 01 [Read Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0130
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 07 [Get Command Status]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0138
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 08 [Get Record Identifier]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0140
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 09 [Set Record Identifier]
+[0001] Instruction : 02 [Write Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0148
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0A [Get Record Count]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0150
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0B [Begin Dummy Write]
+[0001] Instruction : 03 [Write Register Value]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0158
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0C [Unused/Unknown Action]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0160
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0D [Get Error Address Range]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0168
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0E [Get Error Address Length]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0170
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
+
+[0001] Action : 0F [Get Error Attributes]
+[0001] Instruction : 00 [Read Register]
+[0001] Flags (decoded below) : 00
+ Preserve Register Bits : 0
+[0001] Reserved : 00
+
+[0012] Register Region : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0178
+
+[0008] Value : 0000000000000000
+[0008] Mask : FFFFFFFFFFFFFFFF
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facp.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facp.asl
new file mode 100644
index 0000000..8d742f7
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facp.asl
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [FACP] ACPI Table
+ *
+ */
+
+[0004] Signature : "FACP"
+[0004] Table Length : 0000010C
+[0001] Revision : 05
+[0001] Checksum : 18
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000000
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20111123
+
+[0004] FACS Address : 00000000
+[0004] DSDT Address : 00000010
+[0001] Model : 00
+[0001] PM Profile : 04 /* Enterprise Server */
+[0002] SCI Interrupt : 0000
+[0004] SMI Command Port : 00000000
+[0001] ACPI Enable Value : 00
+[0001] ACPI Disable Value : 00
+[0001] S4BIOS Command : 00
+[0001] P-State Control : 00
+[0004] PM1A Event Block Address : 00000001
+[0004] PM1B Event Block Address : 00000000
+[0004] PM1A Control Block Address : 00000001
+[0004] PM1B Control Block Address : 00000000
+[0004] PM2 Control Block Address : 00000001
+[0004] PM Timer Block Address : 00000001
+[0004] GPE0 Block Address : 00000001
+[0004] GPE1 Block Address : 00000000
+[0001] PM1 Event Block Length : 04
+[0001] PM1 Control Block Length : 02
+[0001] PM2 Control Block Length : 01
+[0001] PM Timer Block Length : 04
+[0001] GPE0 Block Length : 08
+[0001] GPE1 Block Length : 00
+[0001] GPE1 Base Offset : 00
+[0001] _CST Support : 00
+[0002] C2 Latency : 0000
+[0002] C3 Latency : 0000
+[0002] CPU Cache Size : 0000
+[0002] Cache Flush Stride : 0000
+[0001] Duty Cycle Offset : 00
+[0001] Duty Cycle Width : 00
+[0001] RTC Day Alarm Index : 00
+[0001] RTC Month Alarm Index : 00
+[0001] RTC Century Index : 00
+[0002] Boot Flags (decoded below) : 0000
+ Legacy Devices Supported (V2) : 0
+ 8042 Present on ports 60/64 (V2) : 0
+ VGA Not Present (V4) : 0
+ MSI Not Supported (V4) : 0
+ PCIe ASPM Not Supported (V4) : 0
+ CMOS RTC Not Present (V5) : 0
+[0001] Reserved : 00
+[0004] Flags (decoded below) : 00000000
+ WBINVD instruction is operational (V1) : 1
+ WBINVD flushes all caches (V1) : 1
+ All CPUs support C1 (V1) : 0
+ C2 works on MP system (V1) : 0
+ Control Method Power Button (V1) : 1
+ Control Method Sleep Button (V1) : 1
+ RTC wake not in fixed reg space (V1) : 0
+ RTC can wake system from S4 (V1) : 0
+ 32-bit PM Timer (V1) : 0
+ Docking Supported (V1) : 0
+ Reset Register Supported (V2) : 0
+ Sealed Case (V3) : 0
+ Headless - No Video (V3) : 1
+ Use native instr after SLP_TYPx (V3) : 0
+ PCIEXP_WAK Bits Supported (V4) : 0
+ Use Platform Timer (V4) : 0
+ RTC_STS valid on S4 wake (V4) : 0
+ Remote Power-on capable (V4) : 1
+ Use APIC Cluster Model (V4) : 0
+ Use APIC Physical Destination Mode (V4) : 0
+ Hardware Reduced (V5) : 1
+ Low Power S0 Idle (V5) : 1
+
+[0012] Reset Register : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0000000000000001
+
+[0001] Value to cause reset : 00
+[0003] Reserved : 000000
+[0008] FACS Address : 0000000000000000
+[0008] DSDT Address : 0000000000000010
+[0012] PM1A Event Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 20
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 02 [Word Access:16]
+[0008] Address : 0000000000000001
+
+[0012] PM1B Event Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 00
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000000
+
+[0012] PM1A Control Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 10
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 02 [Word Access:16]
+[0008] Address : 0000000000000001
+
+[0012] PM1B Control Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 00
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000000
+
+[0012] PM2 Control Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000001
+
+[0012] PM Timer Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 20
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 03 [DWord Access:32]
+[0008] Address : 0000000000000001
+
+[0012] GPE0 Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 80
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0000000000000001
+
+[0012] GPE1 Block : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 00
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000000
+
+
+[0012] Sleep Control Register : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0000000000000000
+
+[0012] Sleep Status Register : [Generic Address Structure]
+[0001] Space ID : 01 [SystemIO]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0000000000000000
+
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facs.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facs.asl
new file mode 100644
index 0000000..8dbb38b
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/facs.asl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [FACS] ACPI Table
+ *
+ */
+
+[0004] Signature : "FACS"
+[0004] Length : 00000040
+[0004] Hardware Signature : 00000000
+[0004] 32 Firmware Waking Vector : 00000000
+[0004] Global Lock : 00000000
+[0004] Flags (decoded below) : 00000000
+ S4BIOS Support Present : 0
+ 64-bit Wake Supported (V2) : 0
+[0008] 64 Firmware Waking Vector : 0000000000000000
+[0001] Version : 02
+[0003] Reserved : 000000
+[0004] OspmFlags (decoded below) : 00000000
+ 64-bit Wake Env Required (V2) : 0
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/fpdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/fpdt.asl
new file mode 100644
index 0000000..53afa66
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/fpdt.asl
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [FPDT] Firmware Performance Data Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "FPDT"
+[0004] Table Length : 00000064
+[0001] Revision : 01
+[0001] Checksum : BD
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20110804
+
+
+[0002] Subtable Type : 0000
+[0001] Length : 30
+[0001] Revision : 01
+[0004] Reserved : 00000000
+[0008] Reset End : 0000000000000000
+[0008] Load Image Start : 0000000000000000
+[0008] Start Image Start : 0000000000000000
+[0008] Exit Services Entry : 0000000000000000
+[0008] Exit Services Exit : 0000000000000000
+
+[0002] Subtable Type : 0001
+[0001] Length : 10
+[0001] Revision : 01
+[0004] Reserved : 00000000
+[0008] S3PT Address : 0000000000000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/gtdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/gtdt.asl
new file mode 100644
index 0000000..afaf9f4
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/gtdt.asl
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * Hanjun Guo <hanjun.guo@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [GTDT] Generic Timer Description Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "GTDT"
+[0004] Table Length : 00000050
+[0001] Revision : 01
+[0001] Checksum : F1
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20110623
+
+[0008] Timer Address : 0000000000000000
+[0004] Flags (decoded below) : 00000001
+ Memory Present : 1
+
+/* In RTSM model's dts file, the last cell of interrupts
+ * is 0xff01, it means its cpu mask is FF, and trigger type
+ * and flag is 1 = low-to-high edge triggered.
+ *
+ * so in ACPI the Trigger Mode is 1 - Edge triggered, and
+ * Polarity is 0 - Active high as ACPI spec describled.
+ *
+ * using direct mapping for hwirqs, it means that we using
+ * ID [16, 31] for PPI, not [0, 15] used in FDT.
+ */
+[0004] Secure PL1 Interrupt : 0000001d
+[0004] SPL1 Flags (decoded below) : 00000001
+ Trigger Mode : 1
+ Polarity : 0
+
+[0004] Non-Secure PL1 Interrupt : 0000001e
+[0004] NSPL1 Flags (decoded below) : 00000001
+ Trigger Mode : 1
+ Polarity : 0
+
+[0004] Virtual Timer Interrupt : 0000001b
+[0004] VT Flags (decoded below) : 00000001
+ Trigger Mode : 1
+ Polarity : 0
+
+[0004] Non-Secure PL2 Interrupt : 0000001a
+[0004] NSPL2 Flags (decoded below) : 00000001
+ Trigger Mode : 1
+ Polarity : 0
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/hest.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/hest.asl
new file mode 100644
index 0000000..70ba8f2
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/hest.asl
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [HEST] Hardware Error Source Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "HEST"
+[0004] Table Length : 000001D4
+[0001] Revision : 01
+[0001] Checksum : 20
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000002
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Error Source Count : 00000001
+
+[0002] Subtable Type : 0009 [Generic Hardware Error Source]
+[0002] Source Id : 0002
+[0002] Related Source Id : FFFF
+[0001] Reserved : 00
+[0001] Enabled : 01
+[0004] Records To Preallocate : 00000001
+[0004] Max Sections Per Record : 00000001
+[0004] Max Raw Data Length : 00001000
+
+[0012] Error Status Address : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 40
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 04 [QWord Access:64]
+[0008] Address : 0xFFFF0000
+
+[0028] Notify : [Hardware Error Notification Structure]
+[0001] Notify Type : 03 [SCI]
+[0001] Notify Length : 1C
+[0002] Configuration Write Enable : 0000
+[0004] PollInterval : 00000000
+[0004] Vector : 00000000
+[0004] Polling Threshold Value : 00000000
+[0004] Polling Threshold Window : 00000000
+[0004] Error Threshold Value : 00000000
+[0004] Error Threshold Window : 00000000
+
+[0004] Error Status Block Length : 00001000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mcfg.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mcfg.asl
new file mode 100644
index 0000000..470637e
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mcfg.asl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [MCFG] PCIe Memory Mapped Configuration Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "MCFG"
+[0004] Table Length : 0000003C
+[0001] Revision : 01
+[0001] Checksum : 19
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0008] Reserved : 0000000000000000
+
+[0008] Base Address : 0000000000000000
+[0002] Segment Group Number : 0000
+[0001] Start Bus Number : 00
+[0001] End Bus Number : 00
+[0004] Reserved : 00000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mchi.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mchi.asl
new file mode 100644
index 0000000..759ff19
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mchi.asl
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [MCHI] Management Controller Host Interface Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "MCHI"
+[0004] Table Length : 00000045
+[0001] Revision : 01
+[0001] Checksum : E4
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 02000715
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0001] Interface Type : 01
+[0001] Protocol : 00
+[0008] Protocol Data : 0000000000000000
+[0001] Interrupt Type : 00
+[0001] Gpe : 00
+[0001] Pci Device Flag : 00
+[0004] Global Interrupt : 00000000
+
+[0012] Control Register : [Generic Address Structure]
+[0001] Space ID : 02 [PCI_Config]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 00 [Undefined/Legacy]
+[0008] Address : 0000000000000000
+
+[0001] Pci Segment : 00
+[0001] Pci Bus : 00
+[0001] Pci Device : 00
+[0001] Pci Function : 00
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mpst.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mpst.asl
new file mode 100644
index 0000000..d8b0d8c
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/mpst.asl
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [MPST] Memory Power State Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "MPST"
+[0004] Table Length : 000000B6
+[0001] Revision : 01
+[0001] Checksum : 77
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20120913
+
+[0001] Channel ID : 00
+[0003] Reserved : 000000
+[0002] Power Node Count : 0002
+[0002] Reserved : 0000
+
+[0001] Flags (decoded below) : 00
+ Node Enabled : 0
+ Power Managed : 0
+ Hot Plug Capable : 0
+[0001] Reserved : 00
+[0002] Node ID : 0000
+[0004] Length : 00000000
+[0008] Range Address : 0000000000000000
+[0008] Range Length : 0000000000000000
+[0004] Num Power States : 00000002
+[0004] Num Physical Components : 00000003
+
+[0001] Power State : 00
+[0001] InfoIndex : 00
+
+[0001] Power State : 00
+[0001] InfoIndex : 00
+
+[0002] Component Id : 0000
+[0002] Component Id : 0001
+[0002] Component Id : 0002
+
+[0001] Flags (decoded below) : 00
+ Node Enabled : 0
+ Power Managed : 0
+ Hot Plug Capable : 0
+[0001] Reserved : 00
+[0002] Node ID : 0000
+[0004] Length : 00000000
+[0008] Range Address : 0000000000000000
+[0008] Range Length : 0000000000000000
+[0004] Num Power States : 00000001
+[0004] Num Physical Components : 00000001
+
+[0001] Power State : 00
+[0001] InfoIndex : 00
+
+[0002] Component Id : 0000
+
+[0002] Characteristics Count : 0002
+[0002] Reserved : 0000
+
+[0001] Structure ID : 01
+[0001] Flags (decoded below) : 00
+ Memory Preserved : 0
+ Auto Entry : 0
+ Auto Exit : 0
+[0002] Reserved : 0000
+[0004] Average Power : 00000000
+[0004] Power Saving : 00000000
+[0008] Exit Latency : 0000000000000000
+[0008] Reserved : 0000000000000000
+
+[0001] Structure ID : 01
+[0001] Flags (decoded below) : 00
+ Memory Preserved : 0
+ Auto Entry : 0
+ Auto Exit : 0
+[0002] Reserved : 0000
+[0004] Average Power : 00000000
+[0004] Power Saving : 00000000
+[0008] Exit Latency : 0000000000000000
+[0008] Reserved : 0000000000000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/msct.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/msct.asl
new file mode 100644
index 0000000..aecde84
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/msct.asl
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [MSCT] Maximum System Characteristics Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "MSCT"
+[0004] Table Length : 00000090
+[0001] Revision : 01
+[0001] Checksum : B7
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Proximity Offset : 00000038
+[0004] Max Proximity Domains : 00000003
+[0004] Max Clock Domains : 00000000
+[0008] Max Physical Address : 00000FFFFFFFFFFF
+
+[0001] Revision : 01
+[0001] Length : 16
+[0004] Domain Range Start : 00000000
+[0004] Domain Range End : 00000003
+[0004] Processor Capacity : 00000010
+[0008] Memory Capacity : 0000004000000000
+
+[0001] Revision : 01
+[0001] Length : 16
+[0004] Domain Range Start : 00000000
+[0004] Domain Range End : 00000000
+[0004] Processor Capacity : 00000000
+[0008] Memory Capacity : 0000000000000000
+
+[0001] Revision : 01
+[0001] Length : 16
+[0004] Domain Range Start : 00000000
+[0004] Domain Range End : 00000000
+[0004] Processor Capacity : 00000000
+[0008] Memory Capacity : 0000000000000000
+
+[0001] Revision : 01
+[0001] Length : 16
+[0004] Domain Range Start : 00000000
+[0004] Domain Range End : 00000000
+[0004] Processor Capacity : 00000000
+[0008] Memory Capacity : 0000000000000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/oem0.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/oem0.asl
new file mode 100644
index 0000000..ae4fa28
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/oem0.asl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [OEMx] OEM Specific Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "OEM0"
+[0004] Table Length : 00000024
+[0001] Revision : 01
+[0001] Checksum : 8B
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 0000000A
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/pmtt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/pmtt.asl
new file mode 100644
index 0000000..019116f
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/pmtt.asl
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [PMTT] Platform Memory Topology Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "PMTT"
+[0004] Table Length : 000000B4
+[0001] Revision : 01
+[0001] Checksum : 3A
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20110826
+
+[0004] Reserved : 00000000
+
+[0001] Subtable Type : 00 [Socket]
+[0001] Reserved : 00
+[0002] Length : 0080
+[0002] Flags (decoded below) : 0001
+ Top-level Device : 1
+ Physical Element : 0
+ Memory Type : 0
+[0002] Reserved : 0000
+[0002] Socket ID : 0000
+[0002] Reserved : 0000
+
+[0001] Subtable Type : 01 [Memory Controller]
+[0001] Reserved : 00
+[0002] Length : 0054
+[0002] Flags (decoded below) : 0005
+ Top-level Device : 1
+ Physical Element : 0
+ Memory Type : 1
+[0002] Reserved : 0000
+[0004] Read Latency : 00000000
+[0004] Write Latency : 00000000
+[0004] Read Bandwidth : 00000000
+[0004] Write Bandwidth : 00000000
+[0002] Access Width : 0000
+[0002] Alignment : 0000
+[0002] Reserved : 0000
+[0002] Domain Count : 0003
+[0004] Proximity Domain : 00000000
+[0004] Proximity Domain : 00000000
+[0004] Proximity Domain : 00000000
+
+[0001] Subtable Type : 02 [Physical Component (DIMM)]
+[0001] Reserved : 00
+[0002] Length : 0014
+[0002] Flags (decoded below) : 0002
+ Top-level Device : 0
+ Physical Element : 1
+ Memory Type : 0
+[0002] Reserved : 0000
+[0002] Component ID : 0000
+[0002] Reserved : 0000
+[0004] Memory Size : 00000000
+[0004] Bios Handle : 00000000
+
+[0001] Subtable Type : 02 [Physical Component (DIMM)]
+[0001] Reserved : 00
+[0002] Length : 0014
+[0002] Flags (decoded below) : 0002
+ Top-level Device : 0
+ Physical Element : 1
+ Memory Type : 0
+[0002] Reserved : 0000
+[0002] Component ID : 0000
+[0002] Reserved : 0000
+[0004] Memory Size : 00000000
+[0004] Bios Handle : 00000000
+
+[0001] Subtable Type : 01 [Memory Controller]
+[0001] Reserved : 00
+[0002] Length : 0020
+[0002] Flags (decoded below) : 0001
+ Top-level Device : 1
+ Physical Element : 0
+ Memory Type : 0
+[0002] Reserved : 0000
+[0004] Read Latency : 00000000
+[0004] Write Latency : 00000000
+[0004] Read Bandwidth : 00000000
+[0004] Write Bandwidth : 00000000
+[0002] Access Width : 0000
+[0002] Alignment : 0000
+[0002] Reserved : 0000
+[0002] Domain Count : 0000
+
+[0001] Subtable Type : 00 [Socket]
+[0001] Reserved : 00
+[0002] Length : 000C
+[0002] Flags (decoded below) : 0001
+ Top-level Device : 1
+ Physical Element : 0
+ Memory Type : 0
+[0002] Reserved : 0000
+[0002] Socket ID : 0000
+[0002] Reserved : 0000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/rsdp.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/rsdp.asl
new file mode 100644
index 0000000..0595647
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/rsdp.asl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [RSDP] ACPI Table
+ *
+ */
+
+[0008] Signature : "RSD PTR "
+[0001] Checksum : 43
+[0006] Oem ID : "LINARO"
+[0001] Revision : 02
+[0004] RSDT Address : 00000000
+[0004] Length : 00000024
+[0008] XSDT Address : 0000000000000000
+[0001] Extended Checksum : DC
+[0003] Reserved : 000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/slit.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/slit.asl
new file mode 100644
index 0000000..3d62f32
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/slit.asl
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [SLIT] System Locality Information Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "SLIT"
+[0004] Table Length : 000001BC
+[0001] Revision : 01
+[0001] Checksum : 00
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20110316
+
+[0008] Localities : 0000000000000014
+[0020] Locality 0 : 0A 10 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 \
+ 24 25 26 27
+[0020] Locality 1 : 10 0A 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 \
+ 23 24 25 26
+[0020] Locality 2 : 16 15 0A 10 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 \
+ 22 23 24 25
+[0020] Locality 3 : 17 16 10 0A 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 \
+ 21 22 23 24
+[0020] Locality 4 : 18 17 16 15 0A 10 16 17 18 19 1A 1B 1C 1D 1E 1F \
+ 20 21 22 23
+[0020] Locality 5 : 19 18 17 16 10 0A 15 16 17 18 19 1A 1B 1C 1D 1E \
+ 1F 20 21 22
+[0020] Locality 6 : 1A 19 18 17 16 15 0A 10 16 17 18 19 1A 1B 1C 1D \
+ 1E 1F 20 21
+[0020] Locality 7 : 1B 1A 19 18 17 16 10 0A 15 16 17 18 19 1A 1B 1C \
+ 1D 1E 1F 20
+[0020] Locality 8 : 1C 1B 1A 19 18 17 16 15 0A 10 16 17 18 19 1A 1B \
+ 1C 1D 1E 1F
+[0020] Locality 9 : 1D 1C 1B 1A 19 18 17 16 10 0A 15 16 17 18 19 1A \
+ 1B 1C 1D 1E
+[0020] Locality 10 : 1E 1D 1C 1B 1A 19 18 17 16 15 0A 10 16 17 18 19 \
+ 1A 1B 1C 1D
+[0020] Locality 11 : 1F 1E 1D 1C 1B 1A 19 18 17 16 10 0A 15 16 17 18 \
+ 19 1A 1B 1C
+[0020] Locality 12 : 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 0A 10 16 17 \
+ 18 19 1A 1B
+[0020] Locality 13 : 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 10 0A 15 16 \
+ 17 18 19 1A
+[0020] Locality 14 : 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 0A 10 \
+ 16 17 18 19
+[0020] Locality 15 : 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 10 0A \
+ 15 16 17 18
+[0020] Locality 16 : 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 \
+ 0A 10 16 17
+[0020] Locality 17 : 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 \
+ 10 0A 15 16
+[0020] Locality 18 : 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 \
+ 16 15 0A 10
+[0020] Locality 19 : 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 \
+ 17 16 10 0A
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/spmi.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/spmi.asl
new file mode 100644
index 0000000..11b1c99
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/spmi.asl
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [SPMI] Server Platform Management Interface Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "SPMI"
+[0004] Table Length : 00000041
+[0001] Revision : 04
+[0001] Checksum : ED
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000000
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0001] Interface Type : 00
+[0001] Reserved : 00
+[0002] IPMI Spec Version : 0000
+[0001] Interrupt Type : 00
+[0001] GPE Number : 00
+[0001] Reserved : 00
+[0001] PCI Device Flag : 00
+[0004] Interrupt : 00000000
+
+[0012] IPMI Register : [Generic Address Structure]
+[0001] Space ID : 00 [SystemMemory]
+[0001] Bit Width : 08
+[0001] Bit Offset : 00
+[0001] Encoded Access Width : 01 [Byte Access:8]
+[0008] Address : 0000000000000000
+
+[0001] PCI Segment : 00
+[0001] PCI Bus : 00
+[0001] PCI Device : 00
+[0001] PCI Function : 00
+[0001] Reserved : 00
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/srat.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/srat.asl
new file mode 100644
index 0000000..670bdd3
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/srat.asl
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [SRAT] System Resource Affinity Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "SRAT"
+[0004] Table Length : 00000080
+[0001] Revision : 03
+[0001] Checksum : 5A
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0004] Table Revision : 00000001
+[0008] Reserved : 0000000000000000
+
+[0001] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[0001] Length : 10
+
+[0001] Proximity Domain Low(8) : 00
+[0001] Apic ID : 00
+[0004] Flags (decoded below) : 00000001
+ Enabled : 1
+[0001] Local Sapic EID : 00
+[0003] Proximity Domain High(24) : 000000
+[0004] Reserved : 00000000
+
+[0001] Subtable Type : 01 [Memory Affinity]
+[0001] Length : 28
+
+[0004] Proximity Domain : 00000000
+[0002] Reserved1 : 0000
+[0008] Base Address : 0000000000000000
+[0008] Address Length : 000000000009FC00
+[0004] Reserved2 : 00000000
+[0004] Flags (decoded below) : 00000001
+ Enabled : 1
+ Hot Pluggable : 0
+ Non-Volatile : 0
+[0008] Reserved3 : 0000000000000000
+
+[0001] Subtable Type : 02 [Processor Local x2APIC Affinity]
+[0001] Length : 18
+
+[0002] Reserved1 : 0000
+[0004] Proximity Domain : 00000000
+[0004] Apic ID : 00000000
+[0004] Flags (decoded below) : 00000001
+ Enabled : 1
+[0004] Clock Domain : 00000000
+[0004] Reserved2 : 00000000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ssdt0.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ssdt0.asl
new file mode 100644
index 0000000..a5515ac
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/ssdt0.asl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [SSDT] Description of the armv8 VE Model
+ *
+ */
+
+DefinitionBlock (
+ "ssdt0.aml", // output filename
+ "SSDT", // table signature
+ 2, // SSDT compliance revision
+ "LINARO", // OEM ID
+ "RTSMVEV8", // table ID
+ 0x00000001) // OEM revision
+{
+}
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/tpm2.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/tpm2.asl
new file mode 100644
index 0000000..c88eb2c
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/tpm2.asl
@@ -0,0 +1,22 @@
+/*
+ * Intel ACPI Component Architecture
+ * iASL Compiler/Disassembler version 20130117-64 [Jan 31 2013]
+ * Copyright (c) 2000 - 2013 Intel Corporation
+ *
+ * Template for [TPM2] ACPI Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ */
+
+[0004] Signature : "TPM2" [Trusted Platform Module hardware interface table]
+[0004] Table Length : 00000034
+[0001] Revision : 03
+[0001] Checksum : 42
+[0006] Oem ID : "INTEL "
+[0008] Oem Table ID : "TEMPLATE"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20121114
+
+[0004] Flags : 00000000
+[0008] Control Address : 0011223344556677
+[0004] Start Method : 00000001
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/uefi.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/uefi.asl
new file mode 100644
index 0000000..a39aa52
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/uefi.asl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [UEFI] UEFI Boot Optimization Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "UEFI"
+[0004] Table Length : 00000036
+[0001] Revision : 01
+[0001] Checksum : 9B
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000001
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0016] UUID Identifier : 03020100-0504-0706-0809-0A0B0C0D0E0F
+[0002] Data Offset : 0000
diff --git a/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/xsdt.asl b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/xsdt.asl
new file mode 100644
index 0000000..b33f82e
--- /dev/null
+++ b/ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/xsdt.asl
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * NB: This License is also known as the "BSD 2-Clause License".
+ *
+ *
+ * [XSDT] Extended System Description Table
+ * Format: [ByteLength] FieldName : HexFieldValue
+ *
+ */
+
+[0004] Signature : "XSDT"
+[0004] Table Length : 00000064
+[0001] Revision : 01
+[0001] Checksum : 8B
+[0006] Oem ID : "LINARO"
+[0008] Oem Table ID : "RTSMVEV8"
+[0004] Oem Revision : 00000014
+[0004] Asl Compiler ID : "INTL"
+[0004] Asl Compiler Revision : 20100528
+
+[0008] ACPI Table Address 0 : 0000000000000010
+[0008] ACPI Table Address 0 : 0000000000000020
+[0008] ACPI Table Address 0 : 0000000000000030
+[0008] ACPI Table Address 0 : 0000000000000040
+[0008] ACPI Table Address 0 : 0000000000000050
+[0008] ACPI Table Address 0 : 0000000000000060
+[0008] ACPI Table Address 0 : 0000000000000070
+[0008] ACPI Table Address 0 : 0000000000000080
+[0008] ACPI Table Address 0 : 0000000000000090
+[0008] ACPI Table Address 0 : 00000000000000A0
+[0008] ACPI Table Address 0 : 00000000000000B0
+[0008] ACPI Table Address 0 : 00000000000000C0
+[0008] ACPI Table Address 0 : 00000000000000D0
+[0008] ACPI Table Address 0 : 00000000000000E0
+[0008] ACPI Table Address 0 : 00000000000000F0
+[0008] ACPI Table Address 0 : 0000000000000100
+[0008] ACPI Table Address 0 : 0000000000000110
+[0008] ACPI Table Address 0 : 0000000000000120
+[0008] ACPI Table Address 0 : 0000000000000130
+[0008] ACPI Table Address 0 : 0000000000000140
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicDxe.c b/ArmPkg/Drivers/ArmGic/ArmGicDxe.c
index 111ce14..b3085f9 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicDxe.c
+++ b/ArmPkg/Drivers/ArmGic/ArmGicDxe.c
@@ -320,6 +320,9 @@ ExitBootServicesEvent (
// Disable Gic Distributor
MmioWrite32 (PcdGet32(PcdGicDistributorBase) + ARM_GIC_ICDDCR, 0x0);
+
+ // Mask interrupts globally
+ ArmDisableInterrupts ();
}
/**
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf b/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
index 9dc557a..7ddecde 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
+++ b/ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
@@ -33,6 +33,7 @@
ArmPkg/ArmPkg.dec
[LibraryClasses]
+ ArmLib
BaseLib
UefiLib
UefiBootServicesTableLib
diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h
deleted file mode 100644
index 620ccd5..0000000
--- a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @file
-
-Copyright (c) 2009 - 2013, 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 _UPDATE_SMBIOS_DRIVER_H_
-#define _UPDATE_SMBIOS_DRIVER_H_
-
-
-#include <PiDxe.h>
-#include <Protocol/Smbios.h>
-#include <IndustryStandard/SmBios.h>
-#include <Guid/SmBios.h>
-#include <Library/DebugLib.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiLib.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/PcdLib.h>
-
-
-EFI_STATUS
-EFIAPI
-UpdateSmbios (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- );
-#endif
-
diff --git a/ArmPkg/Include/Chipset/AArch64Mmu.h b/ArmPkg/Include/Chipset/AArch64Mmu.h
index 7c98903..77a96ec 100644
--- a/ArmPkg/Include/Chipset/AArch64Mmu.h
+++ b/ArmPkg/Include/Chipset/AArch64Mmu.h
@@ -102,12 +102,12 @@
#define TCR_TG0_4KB (0 << 14)
-#define TCR_IPS_4GB (0UL << 32)
-#define TCR_IPS_64GB (1UL << 32)
-#define TCR_IPS_1TB (2UL << 32)
-#define TCR_IPS_4TB (3UL << 32)
-#define TCR_IPS_16TB (4UL << 32)
-#define TCR_IPS_256TB (5UL << 32)
+#define TCR_IPS_4GB (0ULL << 32)
+#define TCR_IPS_64GB (1ULL << 32)
+#define TCR_IPS_1TB (2ULL << 32)
+#define TCR_IPS_4TB (3ULL << 32)
+#define TCR_IPS_16TB (4ULL << 32)
+#define TCR_IPS_256TB (5ULL << 32)
#define TTBR_ASID_FIELD (48)
diff --git a/ArmPkg/Include/Library/ArmLib.h b/ArmPkg/Include/Library/ArmLib.h
index 611622e..a05f725 100644
--- a/ArmPkg/Include/Library/ArmLib.h
+++ b/ArmPkg/Include/Library/ArmLib.h
@@ -76,7 +76,7 @@ typedef enum {
typedef struct {
EFI_PHYSICAL_ADDRESS PhysicalBase;
EFI_VIRTUAL_ADDRESS VirtualBase;
- UINTN Length;
+ UINT64 Length;
ARM_MEMORY_REGION_ATTRIBUTES Attributes;
} ARM_MEMORY_REGION_DESCRIPTOR;
diff --git a/ArmPkg/Include/Ppi/ArmMpCoreInfo.h b/ArmPkg/Include/Ppi/ArmMpCoreInfo.h
index 08276b1..fdacd81 100644
--- a/ArmPkg/Include/Ppi/ArmMpCoreInfo.h
+++ b/ArmPkg/Include/Ppi/ArmMpCoreInfo.h
@@ -13,7 +13,7 @@
**/
#ifndef __ARM_MP_CORE_INFO_PPI_H__
-#define __ARM_MP_CORE_INFO_PPI_H_
+#define __ARM_MP_CORE_INFO_PPI_H__
#include <Guid/ArmMpCoreInfo.h>
diff --git a/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c b/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
index dfab4cc..fbe8949 100644
--- a/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
+++ b/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
@@ -773,17 +773,17 @@ DisassembleThumbInstruction (
case LDM_REG_INDIRECT_LSL:
// <rt>, [<rn>, <rm> {, LSL #<imm2>]}
Offset += AsciiSPrint (&Buf[Offset], Size - Offset, " %a, [%a, %a", gReg[Rt], gReg[Rn], gReg[Rm]);
- if (((OpCode32 >> 4) && 3) == 0) {
+ if (((OpCode32 >> 4) & 3) == 0) {
AsciiSPrint (&Buf[Offset], Size - Offset, "]");
} else {
- AsciiSPrint (&Buf[Offset], Size - Offset, ", LSL #%d]", (OpCode32 >> 4) && 3);
+ AsciiSPrint (&Buf[Offset], Size - Offset, ", LSL #%d]", (OpCode32 >> 4) & 3);
}
return;
case LDM_REG_IMM12:
// <rt>, [<rn>, {, #<imm12>]}
Offset += AsciiSPrint (&Buf[Offset], Size - Offset, " %a, [%a", gReg[Rt], gReg[Rn]);
- if ((OpCode32 && 0xfff) == 0) {
+ if ((OpCode32 & 0xfff) == 0) {
AsciiSPrint (&Buf[Offset], Size - Offset, "]");
} else {
AsciiSPrint (&Buf[Offset], Size - Offset, ", #0x%x]", OpCode32 & 0xfff);
@@ -797,7 +797,7 @@ DisassembleThumbInstruction (
P = (OpCode32 & BIT10) == BIT10;
Offset += AsciiSPrint (&Buf[Offset], Size - Offset, " %a, [%a", gReg[Rt], gReg[Rn]);
if (P) {
- if ((OpCode32 && 0xff) == 0) {
+ if ((OpCode32 & 0xff) == 0) {
AsciiSPrint (&Buf[Offset], Size - Offset, "]%a", W?"!":"");
} else {
AsciiSPrint (&Buf[Offset], Size - Offset, ", #%a0x%x]%a", U?"":"-" , OpCode32 & 0xff, W?"!":"");
@@ -814,13 +814,13 @@ DisassembleThumbInstruction (
W = (OpCode32 & BIT21) == BIT21;
Offset += AsciiSPrint (&Buf[Offset], Size - Offset, " %a, %a, [%a", gReg[Rt], gReg[Rt2], gReg[Rn]);
if (P) {
- if ((OpCode32 && 0xff) == 0) {
+ if ((OpCode32 & 0xff) == 0) {
AsciiSPrint (&Buf[Offset], Size - Offset, "]");
} else {
AsciiSPrint (&Buf[Offset], Size - Offset, ", #%a0x%x]%a", U?"":"-", (OpCode32 & 0xff) << 2, W?"!":"");
}
} else {
- if ((OpCode32 && 0xff) != 0) {
+ if ((OpCode32 & 0xff) != 0) {
AsciiSPrint (&Buf[Offset], Size - Offset, ", #%a0x%x", U?"":"-", (OpCode32 & 0xff) << 2);
}
}
diff --git a/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c b/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c
index 887058b..19177c8 100644
--- a/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c
+++ b/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c
@@ -223,7 +223,7 @@ BdsBootLinuxFdt (
// Try to put the kernel at the start of RAM so as to give it access to all memory.
// If that fails fall back to try loading it within LINUX_KERNEL_MAX_OFFSET of memory start.
- LinuxImage = PcdGet32(PcdSystemMemoryBase) + 0x80000;
+ LinuxImage = PcdGet64 (PcdSystemMemoryBase) + 0x80000;
Status = BdsLoadImage (LinuxKernelDevicePath, AllocateAddress, &LinuxImage, &LinuxImageSize);
if (EFI_ERROR(Status)) {
// Try again but give the loader more freedom of where to put the image.
diff --git a/ArmPkg/Library/BdsLib/BdsLinuxFdt.c b/ArmPkg/Library/BdsLib/BdsLinuxFdt.c
index 58db0bd..ae302af 100644
--- a/ArmPkg/Library/BdsLib/BdsLinuxFdt.c
+++ b/ArmPkg/Library/BdsLib/BdsLinuxFdt.c
@@ -25,7 +25,7 @@
#define PALIGN(p, a) ((void *)(ALIGN((unsigned long)(p), (a))))
#define GET_CELL(p) (p += 4, *((const UINT32 *)(p-4)))
-STATIC inline
+STATIC
UINTN
cpu_to_fdtn (UINTN x) {
if (sizeof (UINTN) == sizeof (UINT32)) {
diff --git a/ArmPkg/Library/BdsLib/BdsLinuxLoader.h b/ArmPkg/Library/BdsLib/BdsLinuxLoader.h
index 09b212f..8949cfa 100644
--- a/ArmPkg/Library/BdsLib/BdsLinuxLoader.h
+++ b/ArmPkg/Library/BdsLib/BdsLinuxLoader.h
@@ -1,6 +1,6 @@
/** @file
*
-* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+* Copyright (c) 2011-2013, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
@@ -16,9 +16,9 @@
#define __BDSLINUXLOADER_H
#define LINUX_UIMAGE_SIGNATURE 0x56190527
-#define LINUX_KERNEL_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxKernelMaxOffset))
-#define LINUX_ATAG_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxAtagMaxOffset))
-#define LINUX_FDT_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxFdtMaxOffset))
+#define LINUX_KERNEL_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxKernelMaxOffset))
+#define LINUX_ATAG_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxAtagMaxOffset))
+#define LINUX_FDT_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxFdtMaxOffset))
// Additional size that could be used for FDT entries added by the UEFI OS Loader
// Estimation based on: EDID (300bytes) + bootargs (200bytes) + initrd region (20bytes)
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.S
index 07e0cd6..b68ed8a 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.S
@@ -1,4 +1,4 @@
-#------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
#
# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
#
@@ -14,21 +14,19 @@
.text
.align 2
+ GCC_ASM_EXPORT(__aeabi_memcpy)
GCC_ASM_EXPORT(memcpy)
+ASM_PFX(__aeabi_memcpy):
ASM_PFX(memcpy):
- stmfd sp!, {r7, lr}
- mov ip, #0
- add r7, sp, #0
- mov lr, r0
- b L4
+ cmp r2, #0
+ bxeq lr
+ push {lr}
+ mov lr, r0
L5:
ldrb r3, [r1], #1 @ zero_extendqisi2
- add ip, ip, #1
- and r3, r3, #255
strb r3, [lr], #1
-L4:
- cmp ip, r2
+ subs r2, r2, #1
bne L5
- ldmfd sp!, {r7, pc}
+ pop {pc}
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.asm b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.asm
index e01b80d..f81db28 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.asm
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memcpy.asm
@@ -1,4 +1,4 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
//
// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
//
@@ -27,14 +27,15 @@
; );
;
__aeabi_memcpy
- CMP r2, #0
- BXEQ r14
-loop
- LDRB r3, [r1], #1
- STRB r3, [r0], #1
- SUBS r2, r2, #1
- BXEQ r14
- B loop
-
- END
+ cmp r2, #0
+ bxeq lr
+ push {lr}
+ mov lr, r0
+L5
+ ldrb r3, [r1], #1
+ strb r3, [lr], #1
+ subs r2, r2, #1
+ bne L5
+ pop {pc}
+ END \ No newline at end of file
diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc b/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc
index 998b826..2fc87f3 100644
--- a/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc
+++ b/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc
@@ -40,7 +40,7 @@
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLibSec.inf
[BuildOptions]
- RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A8 --fpu=softvfp -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
+ RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A8 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a8 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc b/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc
index 36bd1ab..1722d9c 100644
--- a/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc
+++ b/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc
@@ -40,7 +40,7 @@
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLibSec.inf
[BuildOptions]
- RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 --fpu=softvfp -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
+ RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c
index c7a413d..1ed2c47 100644
--- a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c
+++ b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c
@@ -65,9 +65,9 @@ ArmPlatformGetVirtualMemoryMap (
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)CacheAttributes;
// DDR
- VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdSystemMemoryBase);
- VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdSystemMemoryBase);
- VirtualMemoryTable[Index].Length = PcdGet32 (PcdSystemMemorySize);
+ VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemorySize);
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)CacheAttributes;
// SMC CS7
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c
index 8982568..1885b69 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c
@@ -1,73 +1,75 @@
-/** @file
-
- Copyright (c) 2013, ARM Ltd. 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 <Library/UefiLib.h>
-#include <Library/VirtioMmioDeviceLib.h>
-#include <Library/DebugLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-
-#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000
-
-typedef struct {
- VENDOR_DEVICE_PATH Vendor;
- EFI_DEVICE_PATH_PROTOCOL End;
-} VIRTIO_BLK_DEVICE_PATH;
-
-VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath =
-{
- {
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- {
- (UINT8)( sizeof(VENDOR_DEVICE_PATH) ),
- (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8)
- }
- },
- EFI_CALLER_ID_GUID,
- },
- {
- END_DEVICE_PATH_TYPE,
- END_ENTIRE_DEVICE_PATH_SUBTYPE,
- {
- sizeof (EFI_DEVICE_PATH_PROTOCOL),
- 0
- }
- }
-};
-
-EFI_STATUS
-EFIAPI
-ArmFvpInitialise (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
-
- Status = gBS->InstallProtocolInterface (&ImageHandle,
- &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
- &mVirtioBlockDevicePath);
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- // Declare the Virtio BlockIo device
- Status = VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE, ImageHandle);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "ArmFvpDxe: Failed to install Virtio block device\n"));
- }
-
- return Status;
-}
+/** @file
+
+ Copyright (c) 2013, ARM Ltd. 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 <Library/UefiLib.h>
+#include <Library/VirtioMmioDeviceLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+
+#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000
+
+#pragma pack(1)
+typedef struct {
+ VENDOR_DEVICE_PATH Vendor;
+ EFI_DEVICE_PATH_PROTOCOL End;
+} VIRTIO_BLK_DEVICE_PATH;
+#pragma pack()
+
+VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath =
+{
+ {
+ {
+ HARDWARE_DEVICE_PATH,
+ HW_VENDOR_DP,
+ {
+ (UINT8)( sizeof(VENDOR_DEVICE_PATH) ),
+ (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8)
+ }
+ },
+ EFI_CALLER_ID_GUID,
+ },
+ {
+ END_DEVICE_PATH_TYPE,
+ END_ENTIRE_DEVICE_PATH_SUBTYPE,
+ {
+ sizeof (EFI_DEVICE_PATH_PROTOCOL),
+ 0
+ }
+ }
+};
+
+EFI_STATUS
+EFIAPI
+ArmFvpInitialise (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = gBS->InstallProtocolInterface (&ImageHandle,
+ &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
+ &mVirtioBlockDevicePath);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ // Declare the Virtio BlockIo device
+ Status = VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE, ImageHandle);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "ArmFvpDxe: Failed to install Virtio block device\n"));
+ }
+
+ return Status;
+}
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
index 893fd8d..bc74758 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
@@ -1,35 +1,35 @@
-#/** @file
-#
-# Copyright (c) 2013, ARM Ltd. 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 = 0x00010006
- BASE_NAME = ArmFvpDxe
- FILE_GUID = fe61bb5f-1b67-4c24-b346-73db42e873e5
- MODULE_TYPE = UEFI_DRIVER
- VERSION_STRING = 1.0
- ENTRY_POINT = ArmFvpInitialise
-
-[Sources.common]
- ArmFvpDxe.c
-
-[Packages]
- MdePkg/MdePkg.dec
- ArmPlatformPkg/ArmPlatformPkg.dec
- OvmfPkg/OvmfPkg.dec
-
-[LibraryClasses]
- UefiDriverEntryPoint
- UefiBootServicesTableLib
- VirtioMmioDeviceLib
- BaseMemoryLib
+#/** @file
+#
+# Copyright (c) 2013, ARM Ltd. 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 = 0x00010006
+ BASE_NAME = ArmFvpDxe
+ FILE_GUID = fe61bb5f-1b67-4c24-b346-73db42e873e5
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = ArmFvpInitialise
+
+[Sources.common]
+ ArmFvpDxe.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ ArmPlatformPkg/ArmPlatformPkg.dec
+ OvmfPkg/OvmfPkg.dec
+
+[LibraryClasses]
+ UefiDriverEntryPoint
+ UefiBootServicesTableLib
+ VirtioMmioDeviceLib
+ BaseMemoryLib
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
index 5ea1d90..1536fb4 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2012, ARM Limited. All rights reserved.
+# Copyright (c) 2012-2014, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -60,9 +60,9 @@
GCC:*_*_ARM_PP_FLAGS = -DARM_BIGLITTLE_TC2=1
!endif
- RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 --fpu=softvfp -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
+ RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
@@ -257,6 +257,11 @@
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
+
+ # SMBIOS Support
+
+ ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
+ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
#
# Filesystems
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
index 948985c..c19d1b0 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
@@ -25,7 +25,7 @@
################################################################################
[FD.ARM_VEXPRESS_CTA15A7_EFI]
-BaseAddress = 0x81000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM.
+BaseAddress = 0xB0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM.
Size = 0x000D5000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
ErasePolarity = 1
BlockSize = 0x00001000
@@ -104,6 +104,12 @@ READ_LOCK_STATUS = TRUE
#
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
+
+ #
+ # SMBIOS Support
+ #
+ INF ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
+ INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
#
# Filesystems
@@ -151,7 +157,7 @@ READ_LOCK_STATUS = TRUE
INF ArmPlatformPkg/Bds/Bds.inf
[FV.FVMAIN_COMPACT]
-FvBaseAddress = 0x81000000
+FvBaseAddress = 0xB0000000
FvForceRebase = TRUE
FvAlignment = 8
ERASE_POLARITY = 1
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc
index 79b5b20..fa5809e 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc
@@ -275,19 +275,6 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # SMBIOS Support
- #
- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
- # ACPI Support
- #
- MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- ArmPkg/Drivers/AcpiTables/rtsm_ve-v7/AcpiTables.inf
-
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf
index f28a0aa..0fa16c0 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf
@@ -143,19 +143,6 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # SMBIOS Support
- #
- INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
- # ACPI Support
- #
- INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE ArmPkg/Drivers/AcpiTables/rtsm_ve-v7/AcpiTables.inf
-
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
@@ -354,11 +341,3 @@ READ_LOCK_STATUS = TRUE
UI STRING="$(MODULE_NAME)" Optional
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
}
-
-[Rule.Common.USER_DEFINED.ACPITABLE]
- FILE FREEFORM = $(NAMED_GUID) {
- RAW ACPI |.acpi
- RAW ASL |.aml
- UI STRING="$(MODULE_NAME)" Optional
- }
-
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc
index e28d79f..c82b95c 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc
@@ -266,19 +266,6 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # SMBIOS Support
- #
- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
- # ACPI Support
- #
- MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- ArmPkg/Drivers/AcpiTables/rtsm_ve-v7/AcpiTables.inf
-
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf
index 1090618..0dc6165 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf
@@ -143,19 +143,6 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # SMBIOS Support
- #
- INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
- # ACPI Support
- #
- INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE ArmPkg/Drivers/AcpiTables/rtsm_ve-v7/AcpiTables.inf
-
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
@@ -337,11 +324,3 @@ READ_LOCK_STATUS = TRUE
UI STRING="$(MODULE_NAME)" Optional
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
}
-
-[Rule.Common.USER_DEFINED.ACPITABLE]
- FILE FREEFORM = $(NAMED_GUID) {
- RAW ACPI |.acpi
- RAW ASL |.aml
- UI STRING="$(MODULE_NAME)" Optional
- }
-
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc
index 2c3ef61..15ed617 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -81,9 +81,9 @@
[BuildOptions]
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
- XCODE:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
+ XCODE:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
################################################################################
#
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
index db61aa8..430c18e 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -46,6 +46,10 @@
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
+ # Virtio Support
+ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
+ VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
+
[LibraryClasses.common.SEC]
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
@@ -281,6 +285,12 @@
!endif
#
+ # Platform Driver
+ #
+ ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+ #
# FAT filesystem + GPT/MBR partitioning
#
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
index 1ceb7cb..1e2a613 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
@@ -200,6 +200,12 @@ READ_LOCK_STATUS = TRUE
!endif
#
+ # Platform Driver
+ #
+ INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+ #
# UEFI application (Shell Embedded Boot Loader)
#
INF ShellBinPkg/UefiShell/UefiShell.inf
@@ -351,8 +357,6 @@ READ_LOCK_STATUS = TRUE
[Rule.Common.USER_DEFINED.ACPITABLE]
FILE FREEFORM = $(NAMED_GUID) {
- RAW ACPI |.acpi
RAW ASL |.aml
- UI STRING="$(MODULE_NAME)" Optional
}
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc
index 6844f37..f67cda4 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -46,6 +46,10 @@
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
+ # Virtio Support
+ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
+ VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
+
[LibraryClasses.common.SEC]
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
@@ -54,7 +58,7 @@
[BuildOptions]
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
@@ -136,13 +140,19 @@
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
#
- # ARM General Interrupt Controller
+ # Select network device based on build time macro
+!if $(EDK2_ARMVE_SUPPORT_QEMU) == 1
+ # Ethernet (SMSC 9118, for QEMU, matches real hardware)
+ gArmPlatformTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x1A000000
+!else
+ # Ethernet (SMSC 91C111, for RTSM)
+ gArmPlatformTokenSpaceGuid.PcdLan91xDxeBaseAddress|0x1A000000
+!endif
+
#
gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
- # Ethernet (SMSC 91C111)
- gArmPlatformTokenSpaceGuid.PcdLan91xDxeBaseAddress|0x1A000000
#
# ARM OS Loader
@@ -262,6 +272,12 @@
#
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
+
+ #
+ # Platform Driver
+ #
+ ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
#
# FAT filesystem + GPT/MBR partitioning
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf
index ed37877..6e1202b 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf
@@ -144,7 +144,13 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
+!if $(EDK2_ARMVE_SUPPORT_QEMU) == 1
+ # LAN9118Dxe.inf for QEMU (matches use of 9118 on real VExpress board)
+ INF ArmPlatformPkg/Drivers/LAN9118Dxe/LAN9118Dxe.inf
+!else
+ # LAN91xDxe.inf for RTSM
INF ArmPlatformPkg/Drivers/LAN91xDxe/LAN91xDxe.inf
+!endif
#
# Multiple Console IO support
@@ -181,6 +187,12 @@ READ_LOCK_STATUS = TRUE
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
#
+ # Platform Driver
+ #
+ INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+ #
# UEFI application (Shell Embedded Boot Loader)
#
INF ShellBinPkg/UefiShell/UefiShell.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
index f46f16e..8f26342 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -46,6 +46,10 @@
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
+ # Virtio Support
+ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
+ VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
+
[LibraryClasses.common.SEC]
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
@@ -54,7 +58,7 @@
[BuildOptions]
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
@@ -253,6 +257,12 @@
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
+
+ #
+ # SMBIOS Support
+ #
+ ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
+ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
#
# Semi-hosting filesystem
@@ -264,6 +274,12 @@
#
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
+
+ #
+ # Platform Driver
+ #
+ ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
#
# FAT filesystem + GPT/MBR partitioning
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
index 837985a..6d25bd1 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
@@ -162,6 +162,12 @@ READ_LOCK_STATUS = TRUE
INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
#
+ # SMBIOS Support
+ #
+ INF ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
+ INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
+
+ #
# Semi-hosting filesystem
#
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
@@ -181,6 +187,12 @@ READ_LOCK_STATUS = TRUE
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
#
+ # Platform Driver
+ #
+ INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+ #
# UEFI application (Shell Embedded Boot Loader)
#
INF ShellBinPkg/UefiShell/UefiShell.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc
index 337bf6b..035f704 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -44,6 +44,11 @@
#DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
+
+ # Virtio Support
+ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
+ VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
+
[LibraryClasses.common.SEC]
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
@@ -55,9 +60,9 @@
[BuildOptions]
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
- XCODE:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
+ XCODE:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
################################################################################
#
@@ -280,6 +285,12 @@
#
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
+
+ #
+ # Platform Driver
+ #
+ ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
#
# FAT filesystem + GPT/MBR partitioning
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf
index 75f18e4..45e82c2 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf
@@ -185,7 +185,13 @@ READ_LOCK_STATUS = TRUE
#
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
-
+
+ #
+ # Platform Driver
+ #
+ INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
+ INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
#
# UEFI application (Shell Embedded Boot Loader)
#
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc
index 0654ebb..2942b99 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc
@@ -80,13 +80,9 @@
gArmTokenSpaceGuid.PcdVFPEnabled|1
# Stacks for MPCores in Secure World (No SRAM on foundation model, put in RAM at 64MB)
- gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0xA4009000
+ gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0xA4008000
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
- # Stacks for MPCores in Monitor Mod (No SRAM on foundation model, put in RAM at 64MB)
- gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0xA4008000
- gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0x100
-
# Stacks for MPCores in Normal World (No SRAM on foundation model, put in RAM at 64MB)
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0xA4000000
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
@@ -219,18 +215,6 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # ACPI Support
- #
- MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- ArmPkg/Drivers/AcpiTables/foundation-v8/AcpiTables.inf
- #
- # SMBIOS Support
- #
- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf
index c070c57..bfb6cdf 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf
@@ -129,19 +129,6 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
- # ACPI Support
- #
- INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE ArmPkg/Drivers/AcpiTables/foundation-v8/AcpiTables.inf
-
- #
- # SMBIOS Support
- #
- INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
# Multiple Console IO support
#
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
@@ -325,11 +312,3 @@ READ_LOCK_STATUS = TRUE
UI STRING="$(MODULE_NAME)" Optional
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
}
-
-[Rule.Common.USER_DEFINED.ACPITABLE]
- FILE FREEFORM = $(NAMED_GUID) {
- RAW ACPI |.acpi
- RAW ASL |.aml
- UI STRING="$(MODULE_NAME)" Optional
- }
-
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc
index d61eb5d..5d22f1d 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc
@@ -241,19 +241,6 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
- # ACPI Support
- #
- MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf
-
- #
- # SMBIOS Support
- #
- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf
index 107e8d4..5e34115 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf
@@ -131,19 +131,6 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
- # ACPI Support
- #
- INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
- INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE ArmPkg/Drivers/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf
-
- #
- # SMBIOS Support
- #
- INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
-
- #
# Multiple Console IO support
#
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
@@ -336,10 +323,3 @@ READ_LOCK_STATUS = TRUE
UI STRING="$(MODULE_NAME)" Optional
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
}
-
-[Rule.Common.USER_DEFINED.ACPITABLE]
- FILE FREEFORM = $(NAMED_GUID) {
- RAW ACPI |.acpi
- RAW ASL |.aml
- UI STRING="$(MODULE_NAME)" Optional
- }
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15x2/ArmPlatform.h b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15x2/ArmPlatform.h
index 19d551d..5454b00 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15x2/ArmPlatform.h
+++ b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15x2/ArmPlatform.h
@@ -53,8 +53,8 @@
#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB
// DRAM
-#define ARM_VE_DRAM_BASE PcdGet32 (PcdSystemMemoryBase)
-#define ARM_VE_DRAM_SZ PcdGet32 (PcdSystemMemorySize)
+#define ARM_VE_DRAM_BASE PcdGet64 (PcdSystemMemoryBase)
+#define ARM_VE_DRAM_SZ PcdGet64 (PcdSystemMemorySize)
// This can be any value since we only support motherboard PL111
#define LCD_VRAM_CORE_TILE_BASE 0x84000000
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA5s/ArmPlatform.h b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA5s/ArmPlatform.h
index 4efd10e..990e407 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA5s/ArmPlatform.h
+++ b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA5s/ArmPlatform.h
@@ -53,8 +53,8 @@
#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB
// DRAM
-#define ARM_VE_DRAM_BASE PcdGet32 (PcdSystemMemoryBase)
-#define ARM_VE_DRAM_SZ PcdGet32 (PcdSystemMemorySize)
+#define ARM_VE_DRAM_BASE PcdGet64 (PcdSystemMemoryBase)
+#define ARM_VE_DRAM_SZ PcdGet64 (PcdSystemMemorySize)
// This can be any value since we only support motherboard PL111
#define LCD_VRAM_CORE_TILE_BASE 0x84000000
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h
index 06537a4..b692b16 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h
+++ b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h
@@ -52,8 +52,8 @@
#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB
// DRAM
-#define ARM_VE_DRAM_BASE PcdGet32 (PcdSystemMemoryBase)
-#define ARM_VE_DRAM_SZ PcdGet32 (PcdSystemMemorySize)
+#define ARM_VE_DRAM_BASE PcdGet64 (PcdSystemMemoryBase)
+#define ARM_VE_DRAM_SZ PcdGet64 (PcdSystemMemorySize)
// Inside the DRAM we allocate a section for the VRAM (Video RAM)
#define LCD_VRAM_CORE_TILE_BASE 0x64000000
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM/ArmPlatform.h b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM/ArmPlatform.h
index b568d6f..06414e6 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM/ArmPlatform.h
+++ b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM/ArmPlatform.h
@@ -45,8 +45,8 @@
#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB
// DRAM
-#define ARM_VE_DRAM_BASE PcdGet32 (PcdSystemMemoryBase)
-#define ARM_VE_DRAM_SZ PcdGet32 (PcdSystemMemorySize)
+#define ARM_VE_DRAM_BASE PcdGet64 (PcdSystemMemoryBase)
+#define ARM_VE_DRAM_SZ PcdGet64 (PcdSystemMemorySize)
// This can be any value since we only support motherboard PL111
#define LCD_VRAM_CORE_TILE_BASE 0x00000000
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S
index b560f56..ac5378a 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.S
@@ -22,6 +22,7 @@
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
ASM_PFX(ArmPlatformPeiBootAction):
bx lr
@@ -66,3 +67,23 @@ ASM_PFX(ArmPlatformIsPrimaryCore):
movne r0, #0
bx lr
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
+ // Extract cpu_id and cluster_id from ARM_SCC_CFGREG48
+ // with cpu_id[0:3] and cluster_id[4:7]
+ LoadConstantToReg (ARM_CTA15A7_SCC_CFGREG48, r0)
+ ldr r0, [r0]
+ lsr r0, #24
+
+ // Shift the SCC value to get the cluster ID at the offset #8
+ lsl r1, r0, #4
+ and r1, r1, #0xF00
+
+ // Keep only the cpu ID from the original SCC
+ and r0, r0, #0x0F
+ // Add the Cluster ID to the Cpu ID
+ orr r0, r0, r1
+ bx lr
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm
index ec2093a..2e323a1 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Helper.asm
@@ -21,6 +21,7 @@
EXPORT ArmPlatformPeiBootAction
EXPORT ArmPlatformGetCorePosition
EXPORT ArmPlatformIsPrimaryCore
+ EXPORT ArmPlatformGetPrimaryCoreMpId
PRESERVE8
AREA CTA15A7Helper, CODE, READONLY
@@ -71,4 +72,26 @@ ArmPlatformIsPrimaryCore FUNCTION
bx lr
ENDFUNC
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ArmPlatformGetPrimaryCoreMpId FUNCTION
+ // Extract cpu_id and cluster_id from ARM_SCC_CFGREG48
+ // with cpu_id[0:3] and cluster_id[4:7]
+ LoadConstantToReg (ARM_CTA15A7_SCC_CFGREG48, r0)
+ ldr r0, [r0]
+ lsr r0, #24
+
+ // Shift the SCC value to get the cluster ID at the offset #8
+ lsl r1, r0, #4
+ and r1, r1, #0xF00
+
+ // Keep only the cpu ID from the original SCC
+ and r0, r0, #0x0F
+ // Add the Cluster ID to the Cpu ID
+ orr r0, r0, r1
+ bx lr
+ ENDFUNC
+
END
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Mem.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Mem.c
index 473b3f3..e633c89 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Mem.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7Mem.c
@@ -136,18 +136,18 @@ ArmPlatformGetVirtualMemoryMap (
#ifndef ARM_BIGLITTLE_TC2
// Workaround for SRAM bug in RTSM
- if (PcdGet32 (PcdSystemMemoryBase) != 0x80000000) {
+ if (PcdGet64 (PcdSystemMemoryBase) != 0x80000000) {
VirtualMemoryTable[++Index].PhysicalBase = 0x80000000;
VirtualMemoryTable[Index].VirtualBase = 0x80000000;
- VirtualMemoryTable[Index].Length = PcdGet32 (PcdSystemMemoryBase) - 0x80000000;
+ VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemoryBase) - 0x80000000;
VirtualMemoryTable[Index].Attributes = CacheAttributes;
}
#endif
// DDR
- VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdSystemMemoryBase);
- VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdSystemMemoryBase);
- VirtualMemoryTable[Index].Length = PcdGet32 (PcdSystemMemorySize);
+ VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemorySize);
VirtualMemoryTable[Index].Attributes = CacheAttributes;
// Detect if it is a 1GB or 2GB Test Chip
@@ -159,13 +159,13 @@ ArmPlatformGetVirtualMemoryMap (
EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |
EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |
EFI_RESOURCE_ATTRIBUTE_TESTED,
- PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize),
+ PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize),
SIZE_1GB
);
// Map the additional 1GB into the MMU
- VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize);
- VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize);
+ VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize);
+ VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize);
VirtualMemoryTable[Index].Length = SIZE_1GB;
VirtualMemoryTable[Index].Attributes = CacheAttributes;
}
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S
index e12b8cd..d419bcf 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S
@@ -19,6 +19,7 @@
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
@@ -29,7 +30,7 @@ GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)
// VOID
// );
ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm
index 9508ced..e969db8 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm
@@ -33,7 +33,7 @@
// VOID
// );
ArmPlatformGetPrimaryCoreMpId FUNCTION
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
ENDFUNC
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/AArch64/RTSMHelper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/AArch64/RTSMHelper.S
index 50703ec..b24085c 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/AArch64/RTSMHelper.S
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/AArch64/RTSMHelper.S
@@ -22,6 +22,7 @@
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
GCC_ASM_EXPORT(ArmGetCpuCountPerCluster)
@@ -32,6 +33,15 @@ GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdCoreCount)
ASM_PFX(ArmPlatformPeiBootAction):
ret
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, x0)
+ ldrh w0, [x0]
+ ret
+
# IN None
# OUT x0 = number of cores present in the system
ASM_PFX(ArmGetCpuCountPerCluster):
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S
index 95006c5..04651e7 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.S
@@ -49,7 +49,7 @@ ASM_PFX(ArmGetScuBaseAddress):
// VOID
// );
ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm
index 5befec3..bcc56ca 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/Arm/RTSMHelper.asm
@@ -52,7 +52,7 @@ ArmGetScuBaseAddress FUNCTION
// VOID
// );
ArmPlatformGetPrimaryCoreMpId FUNCTION
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
ENDFUNC
diff --git a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
index d1da60b..799ead9 100644
--- a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
+++ b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
@@ -1,6 +1,6 @@
/** @file
*
-* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+* Copyright (c) 2011-2013, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
@@ -36,7 +36,7 @@ EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
i.e. it inhibits all writes to avoid rogue software accidentally
corrupting their contents.
**/
-inline
+STATIC
VOID
SP805Unlock (
VOID
@@ -54,7 +54,7 @@ SP805Unlock (
i.e. it inhibits all writes to avoid rogue software accidentally
corrupting their contents.
**/
-inline
+STATIC
VOID
SP805Lock (
VOID
@@ -69,7 +69,7 @@ SP805Lock (
/**
Stop the SP805 watchdog timer from counting down by disabling interrupts.
**/
-inline
+STATIC
VOID
SP805Stop (
VOID
@@ -86,7 +86,7 @@ SP805Stop (
The count down will start from the value stored in the Load register,
not from the value where it was previously stopped.
**/
-inline
+STATIC
VOID
SP805Start (
VOID
diff --git a/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c b/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c
index 47430e3..02cbb00 100644
--- a/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c
+++ b/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c
@@ -19,8 +19,8 @@
#include <Library/PcdLib.h>
#include <Library/DebugLib.h>
-#define IS_XIP() (((UINT32)PcdGet32 (PcdFdBaseAddress) > (UINT32)(PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize))) || \
- ((PcdGet32 (PcdFdBaseAddress) + PcdGet32 (PcdFdSize)) < PcdGet32 (PcdSystemMemoryBase)))
+#define IS_XIP() (((UINT32)PcdGet32 (PcdFdBaseAddress) > (UINT32)(PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize))) || \
+ ((PcdGet32 (PcdFdBaseAddress) + PcdGet32 (PcdFdSize)) < PcdGet64 (PcdSystemMemoryBase)))
// Declared by ArmPlatformPkg/PrePi Module
extern UINTN mGlobalVariableBase;
@@ -40,7 +40,7 @@ ArmPlatformGetGlobalVariable (
if (IS_XIP()) {
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
// The size must be 64bit aligned to allow 64bit variable to be aligned
- GlobalVariableBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
+ GlobalVariableBase = PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
} else {
GlobalVariableBase = mGlobalVariableBase;
}
@@ -69,7 +69,7 @@ ArmPlatformSetGlobalVariable (
if (IS_XIP()) {
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
// The size must be 64bit aligned to allow 64bit variable to be aligned
- GlobalVariableBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
+ GlobalVariableBase = PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
} else {
GlobalVariableBase = mGlobalVariableBase;
}
@@ -96,7 +96,7 @@ ArmPlatformGetGlobalVariableAddress (
if (IS_XIP()) {
// In Case of XIP, we expect the Primary Stack at the top of the System Memory
// The size must be 64bit aligned to allow 64bit variable to be aligned
- GlobalVariableBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
+ GlobalVariableBase = PcdGet64 (PcdSystemMemoryBase) + PcdGet64 (PcdSystemMemorySize) - ALIGN_VALUE(PcdGet32 (PcdPeiGlobalVariableSize),0x8);
} else {
GlobalVariableBase = mGlobalVariableBase;
}
diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
index 49f3fde..1fc6b7a 100644
--- a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
+++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
@@ -43,7 +43,7 @@ ASM_PFX(ArmPlatformGetCorePosition):
// VOID
// );
ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
index 6047ca2..5cdf6fa 100644
--- a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
+++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
@@ -47,7 +47,7 @@ ArmPlatformGetCorePosition FUNCTION
// VOID
// );
ArmPlatformGetPrimaryCoreMpId FUNCTION
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
+ LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
bx lr
ENDFUNC
diff --git a/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.S b/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.S
index 34fab31..96e9259 100644
--- a/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.S
+++ b/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.S
@@ -22,10 +22,11 @@ GCC_ASM_EXPORT(ArmPlatformStackSet)
GCC_ASM_EXPORT(ArmPlatformStackSetPrimary)
GCC_ASM_EXPORT(ArmPlatformStackSetSecondary)
+GCC_ASM_IMPORT(ArmPlatformIsPrimaryCore)
GCC_ASM_IMPORT(ArmPlatformGetCorePosition)
+GCC_ASM_IMPORT(ArmPlatformGetPrimaryCoreMpId)
GCC_ASM_IMPORT(gPcd_FixedAtBuild_PcdCoreCount)
-GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
//VOID
//ArmPlatformStackSet (
@@ -35,14 +36,29 @@ GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
// IN UINTN SecondaryStackSize
// );
ASM_PFX(ArmPlatformStackSet):
+ // Save parameters
+ mov r6, r3
+ mov r5, r2
+ mov r4, r1
+ mov r3, r0
+
+ // Save the Link register
+ mov r7, lr
+
// Identify Stack
- // Mask for ClusterId|CoreId
- LoadConstantToReg (0xFFFF, r4)
- and r1, r1, r4
- // Is it the Primary Core ?
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r4)
- ldr r4, [r4]
- cmp r1, r4
+ mov r0, r1
+ bl ASM_PFX(ArmPlatformIsPrimaryCore)
+ cmp r0, #1
+
+ // Restore parameters
+ mov r0, r3
+ mov r1, r4
+ mov r2, r5
+ mov r3, r6
+
+ // Restore the Link register
+ mov lr, r7
+
beq ASM_PFX(ArmPlatformStackSetPrimary)
bne ASM_PFX(ArmPlatformStackSetSecondary)
@@ -87,8 +103,7 @@ ASM_PFX(ArmPlatformStackSetSecondary):
mov r5, r0
// Get Primary Core Position
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
- ldr r0, [r0]
+ bl ASM_PFX(ArmPlatformGetPrimaryCoreMpId)
bl ASM_PFX(ArmPlatformGetCorePosition)
// Get Secondary Core Position. We should get consecutive secondary stack number from 1...(CoreCount-1)
diff --git a/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.asm b/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.asm
index db92023..e7fd4a0 100644
--- a/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.asm
+++ b/ArmPlatformPkg/Library/ArmPlatformStackLib/Arm/ArmPlatformStackLib.asm
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2012, ARM Limited. All rights reserved.
+// Copyright (c) 2012-2013, ARM Limited. All rights reserved.
//
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
@@ -21,10 +21,11 @@
EXPORT ArmPlatformStackSetPrimary
EXPORT ArmPlatformStackSetSecondary
+ IMPORT ArmPlatformIsPrimaryCore
IMPORT ArmPlatformGetCorePosition
+ IMPORT ArmPlatformGetPrimaryCoreMpId
IMPORT _gPcd_FixedAtBuild_PcdCoreCount
- IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
PRESERVE8
AREA ArmPlatformStackLib, CODE, READONLY
@@ -37,14 +38,29 @@
// IN UINTN SecondaryStackSize
// );
ArmPlatformStackSet FUNCTION
+ // Save parameters
+ mov r6, r3
+ mov r5, r2
+ mov r4, r1
+ mov r3, r0
+
+ // Save the Link register
+ mov r7, lr
+
// Identify Stack
- // Mask for ClusterId|CoreId
- LoadConstantToReg (0xFFFF, r4)
- and r1, r1, r4
- // Is it the Primary Core ?
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r4)
- ldr r4, [r4]
- cmp r1, r4
+ mov r0, r1
+ bl ArmPlatformIsPrimaryCore
+ cmp r0, #1
+
+ // Restore parameters
+ mov r0, r3
+ mov r1, r4
+ mov r2, r5
+ mov r3, r6
+
+ // Restore the Link register
+ mov lr, r7
+
beq ArmPlatformStackSetPrimary
bne ArmPlatformStackSetSecondary
ENDFUNC
@@ -91,8 +107,7 @@ ArmPlatformStackSetSecondary FUNCTION
mov r5, r0
// Get Primary Core Position
- LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
- ldr r0, [r0]
+ bl ArmPlatformGetPrimaryCoreMpId
bl ArmPlatformGetCorePosition
// Get Secondary Core Position. We should get consecutive secondary stack number from 1...(CoreCount-1)
diff --git a/ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf b/ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
index 700bc89..affd321 100644
--- a/ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
+++ b/ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
@@ -33,10 +33,8 @@
[Sources.AARCH64]
AArch64/ArmPlatformStackLib.S | GCC
-[FixedPcd]
- gArmPlatformTokenSpaceGuid.PcdCoreCount
+[LibraryClasses]
+ ArmPlatformLib
+[FixedPcd]
gArmPlatformTokenSpaceGuid.PcdCoreCount
-
- gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
- gArmTokenSpaceGuid.PcdArmPrimaryCore
diff --git a/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c b/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c
index cb0041f..8be91c0 100644
--- a/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c
+++ b/ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c
@@ -67,4 +67,24 @@ GetPeiServicesTablePointer (
return (CONST EFI_PEI_SERVICES**)PeiServicesTablePointer;
}
+/**
+ Perform CPU specific actions required to migrate the PEI Services Table
+ pointer from temporary RAM to permanent RAM.
+
+ For IA32 CPUs, the PEI Services Table pointer is stored in the 4 bytes
+ immediately preceding the Interrupt Descriptor Table (IDT) in memory.
+ For X64 CPUs, the PEI Services Table pointer is stored in the 8 bytes
+ immediately preceding the Interrupt Descriptor Table (IDT) in memory.
+ For Itanium and ARM CPUs, a the PEI Services Table Pointer is stored in
+ a dedicated CPU register. This means that there is no memory storage
+ associated with storing the PEI Services Table pointer, so no additional
+ migration actions are required for Itanium or ARM CPUs.
+**/
+VOID
+EFIAPI
+MigratePeiServicesTablePointer (
+ )
+{
+ return;
+}
diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c
index d1bf394..0214897 100755
--- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c
+++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c
@@ -78,7 +78,7 @@ MemoryPeim (
BOOLEAN Found;
// Ensure PcdSystemMemorySize has been set
- ASSERT (PcdGet32 (PcdSystemMemorySize) != 0);
+ ASSERT (PcdGet64 (PcdSystemMemorySize) != 0);
//
// Now, the permanent memory has been installed, we can call AllocatePages()
@@ -97,16 +97,16 @@ MemoryPeim (
BuildResourceDescriptorHob (
EFI_RESOURCE_SYSTEM_MEMORY,
ResourceAttributes,
- PcdGet32 (PcdSystemMemoryBase),
- PcdGet32 (PcdSystemMemorySize)
+ PcdGet64 (PcdSystemMemoryBase),
+ PcdGet64 (PcdSystemMemorySize)
);
- SystemMemoryTop = (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdSystemMemoryBase) + (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdSystemMemorySize);
+ SystemMemoryTop = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdSystemMemoryBase) + (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdSystemMemorySize);
FdTop = (EFI_PHYSICAL_ADDRESS)PcdGet32(PcdFdBaseAddress) + (EFI_PHYSICAL_ADDRESS)PcdGet32(PcdFdSize);
// EDK2 does not have the concept of boot firmware copied into DRAM. To avoid the DXE
// core to overwrite this area we must mark the region with the attribute non-present
- if ((PcdGet32 (PcdFdBaseAddress) >= PcdGet32 (PcdSystemMemoryBase)) && (FdTop <= SystemMemoryTop)) {
+ if ((PcdGet32 (PcdFdBaseAddress) >= PcdGet64 (PcdSystemMemoryBase)) && (FdTop <= SystemMemoryTop)) {
Found = FALSE;
// Search for System Memory Hob that contains the firmware
diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c
index 1de7d38..c6a6fe6 100755
--- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c
+++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c
@@ -104,10 +104,10 @@ InitializeMemory (
DEBUG ((EFI_D_ERROR, "Memory Init PEIM Loaded\n"));
// Ensure PcdSystemMemorySize has been set
- ASSERT (FixedPcdGet32 (PcdSystemMemorySize) != 0);
+ ASSERT (FixedPcdGet64 (PcdSystemMemorySize) != 0);
- SystemMemoryBase = (UINTN)FixedPcdGet32 (PcdSystemMemoryBase);
- SystemMemoryTop = SystemMemoryBase + (UINTN)FixedPcdGet32 (PcdSystemMemorySize);
+ SystemMemoryBase = (UINTN)FixedPcdGet64 (PcdSystemMemoryBase);
+ SystemMemoryTop = SystemMemoryBase + (UINTN)FixedPcdGet64 (PcdSystemMemorySize);
FdBase = (UINTN)PcdGet32 (PcdFdBaseAddress);
FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize);
diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c b/ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.c
index bd2d700..33db76a 100644
--- a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c
+++ b/ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.c
@@ -1,23 +1,46 @@
/** @file
+ Static SMBIOS Table for ARM platform
+ Derived from EmulatorPkg package
+
+ Note SMBIOS 2.7.1 Required structures:
+ BIOS Information (Type 0)
+ System Information (Type 1)
+ Board Information (Type 2)
+ System Enclosure (Type 3)
+ Processor Information (Type 4) - CPU Driver
+ Cache Information (Type 7) - For cache that is external to processor
+ System Slots (Type 9) - If system has slots
+ Physical Memory Array (Type 16)
+ Memory Device (Type 17) - For each socketed system-memory Device
+ Memory Array Mapped Address (Type 19) - One per contiguous block per Physical Memroy Array
+ System Boot Information (Type 32)
+
+ Copyright (c) 2012, Apple Inc. All rights reserved.<BR>
+ Copyright (c) 2013 Linaro.org
+ 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.
- This code responsible for constructing and updating SMBIOS table into system table.
-Copyright (c) 2009 - 2013, 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 "UpdateSmbios.h"
-
-
+//#include <PiDxe.h>
+#include <Protocol/Smbios.h>
+#include <IndustryStandard/SmBios.h>
+#include <Guid/SmBios.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+#include <Library/UefiLib.h>
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/UefiBootServicesTableLib.h>
/***********************************************************************
SMBIOS data definition TYPE0 BIOS Information
************************************************************************/
-
SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = {
{ EFI_SMBIOS_TYPE_BIOS_INFORMATION, sizeof (SMBIOS_TABLE_TYPE0), 0 },
1, // Vendor String
@@ -32,7 +55,7 @@ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = {
0, // IsaIsSupported :1;
0, // McaIsSupported :1;
0, // EisaIsSupported :1;
- 1, // PciIsSupported :1;
+ 0, // PciIsSupported :1;
0, // PcmciaIsSupported :1;
0, // PlugAndPlayIsSupported :1;
0, // ApmIsSupported :1;
@@ -83,15 +106,13 @@ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = {
0xFF, // EmbeddedControllerFirmwareMinorRelease
};
-
CHAR8 *mBIOSInfoType0Strings[] = {
- "edk2.sourceforge.net", // Vendor String
- __TIME__, // BiosVersion String
- __DATE__, // BiosReleaseDate String
+ "edk2.sourceforge.net", // Vendor String
+ __TIME__, // BiosVersion String
+ __DATE__, // BiosReleaseDate String
NULL
};
-
/***********************************************************************
SMBIOS data definition TYPE1 System Information
************************************************************************/
@@ -107,8 +128,8 @@ SMBIOS_TABLE_TYPE1 mSysInfoType1 = {
6, // Family String
};
CHAR8 *mSysInfoType1Strings[] = {
- "edk2.sourceforge.net",
- "EmulatorPkg",
+ "ARM",
+ "Arm Versatile Express",
"1.0",
"System Serial#",
"System SKU#",
@@ -119,7 +140,6 @@ CHAR8 *mSysInfoType1Strings[] = {
/***********************************************************************
SMBIOS data definition TYPE2 Board Information
************************************************************************/
-
SMBIOS_TABLE_TYPE2 mBoardInfoType2 = {
{ EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, sizeof (SMBIOS_TABLE_TYPE2), 0 },
1, // Manufacturer String
@@ -142,8 +162,8 @@ SMBIOS_TABLE_TYPE2 mBoardInfoType2 = {
{ 0 } // ContainedObjectHandles[1];
};
CHAR8 *mBoardInfoType2Strings[] = {
- "edk2.sourceforge.net",
- "EmulatorPkg",
+ "ARM",
+ "Arm Versatile Express",
"1.0",
"Base Board Serial#",
"Base Board Asset Tag#",
@@ -151,11 +171,9 @@ CHAR8 *mBoardInfoType2Strings[] = {
NULL
};
-
/***********************************************************************
SMBIOS data definition TYPE3 Enclosure Information
************************************************************************/
-
SMBIOS_TABLE_TYPE3 mEnclosureInfoType3 = {
{ EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, sizeof (SMBIOS_TABLE_TYPE3), 0 },
1, // Manufacturer String
@@ -175,26 +193,21 @@ SMBIOS_TABLE_TYPE3 mEnclosureInfoType3 = {
{ 0 }, // ContainedElements[1];
};
CHAR8 *mEnclosureInfoType3Strings[] = {
- "edk2.sourceforge.net",
- "EmulatorPkg",
+ "ARM",
+ "1.0",
"Chassis Board Serial#",
"Chassis Board Asset Tag#",
NULL
};
-
-
/***********************************************************************
SMBIOS data definition TYPE4 Processor Information
************************************************************************/
-
SMBIOS_TABLE_TYPE4 mProcessorInfoType4 = {
-
{ EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE4), 0},
-
1, // Socket String
- ProcessorOther, // ProcessorType; ///< The enumeration value from PROCESSOR_TYPE_DATA.
- ProcessorFamilyOther, // ProcessorFamily; ///< The enumeration value from PROCESSOR_FAMILY_DATA.
+ ProcessorOther, // ProcessorType; ///< The enumeration value from PROCESSOR_TYPE_DATA.
+ ProcessorFamilyIndicatorFamily2, // ProcessorFamily; ///< The enumeration value from PROCESSOR_FAMILY2_DATA.
2, // ProcessorManufacture String;
{ // ProcessorId;
{ // PROCESSOR_SIGNATURE
@@ -266,25 +279,22 @@ SMBIOS_TABLE_TYPE4 mProcessorInfoType4 = {
0, // EnabledCoreCount;
0, // ThreadCount;
0, // ProcessorCharacteristics;
- 0, // ProcessorFamily2;
+ ProcessorFamilyARM, // ARM Processor Family;
};
-
CHAR8 *mProcessorInfoType4Strings[] = {
"Socket",
- "edk2.svn.sourceforge.net",
- "Emulated Processor",
+ "ARM",
+ "v7",
"1.0",
"1.0",
"1.0",
NULL
};
-
/***********************************************************************
SMBIOS data definition TYPE7 Cache Information
************************************************************************/
-
SMBIOS_TABLE_TYPE7 mCacheInfoType7 = {
{ EFI_SMBIOS_TYPE_CACHE_INFORMATION, sizeof (SMBIOS_TABLE_TYPE7), 0 },
1, // SocketDesignation String
@@ -321,11 +331,9 @@ CHAR8 *mCacheInfoType7Strings[] = {
NULL
};
-
/***********************************************************************
SMBIOS data definition TYPE9 System Slot Information
************************************************************************/
-
SMBIOS_TABLE_TYPE9 mSysSlotInfoType9 = {
{ EFI_SMBIOS_TYPE_SYSTEM_SLOTS, sizeof (SMBIOS_TABLE_TYPE9), 0 },
1, // SlotDesignation String
@@ -362,7 +370,6 @@ CHAR8 *mSysSlotInfoType9Strings[] = {
/***********************************************************************
SMBIOS data definition TYPE16 Physical Memory ArrayInformation
************************************************************************/
-
SMBIOS_TABLE_TYPE16 mPhyMemArrayInfoType16 = {
{ EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, sizeof (SMBIOS_TABLE_TYPE16), 0 },
MemoryArrayLocationSystemBoard, // Location; ///< The enumeration value from MEMORY_ARRAY_LOCATION.
@@ -380,7 +387,6 @@ CHAR8 *mPhyMemArrayInfoType16Strings[] = {
/***********************************************************************
SMBIOS data definition TYPE17 Memory Device Information
************************************************************************/
-
SMBIOS_TABLE_TYPE17 mMemDevInfoType17 = {
{ EFI_SMBIOS_TYPE_MEMORY_DEVICE, sizeof (SMBIOS_TABLE_TYPE17), 0 },
0, // MemoryArrayHandle;
@@ -430,7 +436,6 @@ CHAR8 *mMemDevInfoType17Strings[] = {
/***********************************************************************
SMBIOS data definition TYPE19 Memory Array Mapped Address Information
************************************************************************/
-
SMBIOS_TABLE_TYPE19 mMemArrMapInfoType19 = {
{ EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS, sizeof (SMBIOS_TABLE_TYPE19), 0 },
0x80000000, // StartingAddress;
@@ -444,13 +449,9 @@ CHAR8 *mMemArrMapInfoType19Strings[] = {
NULL
};
-
-
-
/***********************************************************************
SMBIOS data definition TYPE32 Boot Information
************************************************************************/
-
SMBIOS_TABLE_TYPE32 mBootInfoType32 = {
{ EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof (SMBIOS_TABLE_TYPE32), 0 },
{ 0, 0, 0, 0, 0, 0 }, // Reserved[6];
@@ -492,7 +493,6 @@ CHAR8 *mBootInfoType32Strings[] = {
NULL is OK.
**/
-
EFI_STATUS
EFIAPI
LogSmbiosData (
@@ -500,7 +500,6 @@ LogSmbiosData (
IN CHAR8 **StringPack
)
{
-
EFI_STATUS Status;
EFI_SMBIOS_PROTOCOL *Smbios;
EFI_SMBIOS_HANDLE SmbiosHandle;
@@ -513,85 +512,50 @@ LogSmbiosData (
//
// Locate Smbios protocol.
//
-
Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&Smbios);
if (EFI_ERROR (Status)) {
-
return Status;
-
}
-
// Calculate the size of the fixed record and optional string pack
Size = Template->Length;
-
if (StringPack == NULL) {
-
// At least a double null is required
-
Size += 2;
-
} else {
-
for (Index = 0; StringPack[Index] != NULL; Index++) {
-
StringSize = AsciiStrSize (StringPack[Index]);
-
Size += StringSize;
-
}
-
- if (StringPack[0] == NULL) {
-
- // At least a double null is required
-
- Size += 1;
-
+ if (StringPack[0] == NULL) {
+ // At least a double null is required
+ Size += 1;
}
// Don't forget the terminating double null
-
Size += 1;
-
}
-
-
// Copy over Template
Record = (EFI_SMBIOS_TABLE_HEADER *)AllocateZeroPool (Size);
-
if (Record == NULL) {
-
return EFI_OUT_OF_RESOURCES;
-
}
-
CopyMem (Record, Template, Template->Length);
-
-
// Append string pack
-
Str = ((CHAR8 *)Record) + Record->Length;
-
-
for (Index = 0; StringPack[Index] != NULL; Index++) {
-
StringSize = AsciiStrSize (StringPack[Index]);
-
CopyMem (Str, StringPack[Index], StringSize);
-
Str += StringSize;
-
}
*Str = 0;
-
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
-
Status = Smbios->Add (
Smbios,
gImageHandle,
@@ -600,33 +564,21 @@ LogSmbiosData (
);
ASSERT_EFI_ERROR (Status);
-
FreePool (Record);
-
return Status;
-
}
-
-
/***********************************************************************
SMBIOS data update TYPE0 BIOS Information
************************************************************************/
-
-
VOID
BIOSInfoUpdateSmbiosType0 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBIOSInfoType0, mBIOSInfoType0Strings);
-
}
-
-
/***********************************************************************
SMBIOS data update TYPE1 System Information
************************************************************************/
@@ -634,11 +586,8 @@ VOID
SysInfoUpdateSmbiosType1 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mSysInfoType1, mSysInfoType1Strings);
-
}
/***********************************************************************
@@ -648,11 +597,8 @@ VOID
BoardInfoUpdateSmbiosType2 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBoardInfoType2, mBoardInfoType2Strings);
-
}
/***********************************************************************
@@ -662,42 +608,25 @@ VOID
EnclosureInfoUpdateSmbiosType3 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mEnclosureInfoType3, mEnclosureInfoType3Strings);
-
}
-
/***********************************************************************
SMBIOS data update TYPE4 Processor Information
************************************************************************/
-
-
VOID
-
ProcessorInfoUpdateSmbiosType4 (
-
IN UINTN MaxCpus
-
)
-
{
-
mProcessorInfoType4.CoreCount = (UINT8) MaxCpus;
-
mProcessorInfoType4.EnabledCoreCount = (UINT8) MaxCpus;
-
mProcessorInfoType4.ThreadCount = (UINT8) MaxCpus;
-
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mProcessorInfoType4, mProcessorInfoType4Strings);
-
}
-
/***********************************************************************
SMBIOS data update TYPE7 Cache Information
************************************************************************/
@@ -705,11 +634,8 @@ VOID
CacheInfoUpdateSmbiosType7 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mCacheInfoType7, mCacheInfoType7Strings);
-
}
/***********************************************************************
@@ -719,11 +645,8 @@ VOID
SysSlotInfoUpdateSmbiosType9 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mSysSlotInfoType9, mSysSlotInfoType9Strings);
-
}
/***********************************************************************
@@ -733,11 +656,8 @@ VOID
PhyMemArrayInfoUpdateSmbiosType16 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mPhyMemArrayInfoType16, mPhyMemArrayInfoType16Strings);
-
}
/***********************************************************************
@@ -747,11 +667,8 @@ VOID
MemDevInfoUpdateSmbiosType17 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mMemDevInfoType17, mMemDevInfoType17Strings);
-
}
/***********************************************************************
@@ -761,11 +678,8 @@ VOID
MemArrMapInfoUpdateSmbiosType19 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mMemArrMapInfoType19, mMemArrMapInfoType19Strings);
-
}
@@ -776,32 +690,20 @@ VOID
BootInfoUpdateSmbiosType32 (
VOID
)
-
{
-
LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBootInfoType32, mBootInfoType32Strings);
-
}
-
/***********************************************************************
Driver Entry
************************************************************************/
-
EFI_STATUS
-
EFIAPI
-
-UpdateSmbios (
-
+PlatfomrSmbiosDriverEntryPoint (
IN EFI_HANDLE ImageHandle,
-
IN EFI_SYSTEM_TABLE *SystemTable
-
)
-
{
-
BIOSInfoUpdateSmbiosType0();
SysInfoUpdateSmbiosType1();
@@ -810,7 +712,7 @@ UpdateSmbios (
EnclosureInfoUpdateSmbiosType3();
- ProcessorInfoUpdateSmbiosType4 (2);
+ ProcessorInfoUpdateSmbiosType4 (4); //One example for creating and updating
CacheInfoUpdateSmbiosType7();
@@ -825,5 +727,4 @@ UpdateSmbios (
BootInfoUpdateSmbiosType32();
return EFI_SUCCESS;
-
}
diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf b/ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
index 36552fd..502aa2e 100644
--- a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
+++ b/ArmPlatformPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
@@ -1,28 +1,27 @@
-## @file
-#
-# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+#/** @file
+# SMBIOS Table for ARM platform
#
+# Copyright (c) 2013 Linaro.org
# 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
+# 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 = UpdateSmbios
+ BASE_NAME = PlatformSmbiosDxe
FILE_GUID = 3847D23F-1D95-4772-B60C-4BBFBC4D532F
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
- ENTRY_POINT = UpdateSmbios
+ ENTRY_POINT = PlatfomrSmbiosDriverEntryPoint
[Sources]
- UpdateSmbios.c
- UpdateSmbios.h
+ PlatformSmbiosDxe.c
[Packages]
MdePkg/MdePkg.dec
@@ -37,7 +36,6 @@
UefiLib
UefiDriverEntryPoint
DebugLib
- PcdLib
[Protocols]
gEfiSmbiosProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
@@ -46,4 +44,3 @@
[Depex]
gEfiSmbiosProtocolGuid
-
diff --git a/ArmPlatformPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmPlatformPkg/PrePi/AArch64/ModuleEntryPoint.S
index 6358e3a..86b2f24 100644
--- a/ArmPlatformPkg/PrePi/AArch64/ModuleEntryPoint.S
+++ b/ArmPlatformPkg/PrePi/AArch64/ModuleEntryPoint.S
@@ -42,8 +42,8 @@ _SetSVCMode:
// at the top of the DRAM)
_SetupStackPosition:
// Compute Top of System Memory
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemoryBase), x1)
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemorySize), x2)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemoryBase), x1)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemorySize), x2)
sub x2, x2, #1
add x1, x1, x2 // x1 = SystemMemoryTop = PcdSystemMemoryBase + PcdSystemMemorySize
diff --git a/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.S b/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.S
index 3d4e1e9..4fe10ad 100644
--- a/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.S
+++ b/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.S
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+// Copyright (c) 2011-2014, ARM Limited. All rights reserved.
//
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
@@ -38,7 +38,7 @@ ASM_PFX(_ModuleEntryPoint):
// Get ID of this CPU in Multicore system
bl ASM_PFX(ArmReadMpidr)
// Keep a copy of the MpId register value
- mov r6, r0
+ mov r8, r0
_SetSVCMode:
// Enter SVC mode, Disable FIQ and IRQ
@@ -50,8 +50,8 @@ _SetSVCMode:
// at the top of the DRAM)
_SetupStackPosition:
// Compute Top of System Memory
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemoryBase), r1)
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemorySize), r2)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemoryBase), r1)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemorySize), r2)
sub r2, r2, #1
add r1, r1, r2 // r1 = SystemMemoryTop = PcdSystemMemoryBase + PcdSystemMemorySize
@@ -83,47 +83,47 @@ _SetupStack:
// Because the 'push' instruction is equivalent to 'stmdb' (decrement before), we need to increment
// one to the top of the stack. We check if incrementing one does not overflow (case of DRAM at the
// top of the memory space)
- adds r7, r1, #1
+ adds r9, r1, #1
bcs _SetupOverflowStack
_SetupAlignedStack:
- mov r1, r7
+ mov r1, r9
b _GetBaseUefiMemory
_SetupOverflowStack:
// Case memory at the top of the address space. Ensure the top of the stack is EFI_PAGE_SIZE
// aligned (4KB)
- LoadConstantToReg (EFI_PAGE_MASK, r7)
- and r7, r7, r1
- sub r1, r1, r7
+ LoadConstantToReg (EFI_PAGE_MASK, r9)
+ and r9, r9, r1
+ sub r1, r1, r9
_GetBaseUefiMemory:
// Calculate the Base of the UEFI Memory
- sub r7, r1, r4
+ sub r9, r1, r4
_GetStackBase:
// r1 = The top of the Mpcore Stacks
// Stack for the primary core = PrimaryCoreStack
LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), r2)
- sub r8, r1, r2
+ sub r10, r1, r2
// Stack for the secondary core = Number of Cores - 1
LoadConstantToReg (FixedPcdGet32(PcdCoreCount), r0)
sub r0, r0, #1
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), r1)
mul r1, r1, r0
- sub r8, r8, r1
+ sub r10, r10, r1
- // r8 = The base of the MpCore Stacks (primary stack & secondary stacks)
- mov r0, r8
- mov r1, r6
+ // r10 = The base of the MpCore Stacks (primary stack & secondary stacks)
+ mov r0, r10
+ mov r1, r8
//ArmPlatformStackSet(StackBase, MpId, PrimaryStackSize, SecondaryStackSize)
LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), r2)
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), r3)
bl ASM_PFX(ArmPlatformStackSet)
// Is it the Primary Core ?
- mov r0, r6
+ mov r0, r8
bl ASM_PFX(ArmPlatformIsPrimaryCore)
cmp r0, #1
bne _PrepareArguments
@@ -134,9 +134,9 @@ _ReserveGlobalVariable:
InitializePrimaryStack(r0, r1)
_PrepareArguments:
- mov r0, r6
- mov r1, r7
- mov r2, r8
+ mov r0, r8
+ mov r1, r9
+ mov r2, r10
mov r3, sp
// Move sec startup address into a data register
diff --git a/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.asm b/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.asm
index 993fccf..028a9a1 100644
--- a/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.asm
+++ b/ArmPlatformPkg/PrePi/Arm/ModuleEntryPoint.asm
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+// Copyright (c) 2011-2014, ARM Limited. All rights reserved.
//
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
@@ -40,7 +40,7 @@ _ModuleEntryPoint
// Get ID of this CPU in Multicore system
bl ArmReadMpidr
// Keep a copy of the MpId register value
- mov r6, r0
+ mov r8, r0
_SetSVCMode
// Enter SVC mode, Disable FIQ and IRQ
@@ -52,8 +52,8 @@ _SetSVCMode
// at the top of the DRAM)
_SetupStackPosition
// Compute Top of System Memory
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemoryBase), r1)
- LoadConstantToReg (FixedPcdGet32(PcdSystemMemorySize), r2)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemoryBase), r1)
+ LoadConstantToReg (FixedPcdGet64 (PcdSystemMemorySize), r2)
sub r2, r2, #1
add r1, r1, r2 // r1 = SystemMemoryTop = PcdSystemMemoryBase + PcdSystemMemorySize
@@ -85,47 +85,47 @@ _SetupStack
// Because the 'push' instruction is equivalent to 'stmdb' (decrement before), we need to increment
// one to the top of the stack. We check if incrementing one does not overflow (case of DRAM at the
// top of the memory space)
- adds r7, r1, #1
+ adds r9, r1, #1
bcs _SetupOverflowStack
_SetupAlignedStack
- mov r1, r7
+ mov r1, r9
b _GetBaseUefiMemory
_SetupOverflowStack
// Case memory at the top of the address space. Ensure the top of the stack is EFI_PAGE_SIZE
// aligned (4KB)
- LoadConstantToReg (EFI_PAGE_MASK, r7)
- and r7, r7, r1
- sub r1, r1, r7
+ LoadConstantToReg (EFI_PAGE_MASK, r9)
+ and r9, r9, r1
+ sub r1, r1, r9
_GetBaseUefiMemory
// Calculate the Base of the UEFI Memory
- sub r7, r1, r4
+ sub r9, r1, r4
_GetStackBase
// r1 = The top of the Mpcore Stacks
// Stack for the primary core = PrimaryCoreStack
LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), r2)
- sub r8, r1, r2
+ sub r10, r1, r2
// Stack for the secondary core = Number of Cores - 1
LoadConstantToReg (FixedPcdGet32(PcdCoreCount), r0)
sub r0, r0, #1
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), r1)
mul r1, r1, r0
- sub r8, r8, r1
+ sub r10, r10, r1
- // r8 = The base of the MpCore Stacks (primary stack & secondary stacks)
- mov r0, r8
- mov r1, r6
+ // r10 = The base of the MpCore Stacks (primary stack & secondary stacks)
+ mov r0, r10
+ mov r1, r8
//ArmPlatformStackSet(StackBase, MpId, PrimaryStackSize, SecondaryStackSize)
LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), r2)
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), r3)
bl ArmPlatformStackSet
// Is it the Primary Core ?
- mov r0, r6
+ mov r0, r8
bl ArmPlatformIsPrimaryCore
cmp r0, #1
bne _PrepareArguments
@@ -136,9 +136,9 @@ _ReserveGlobalVariable
InitializePrimaryStack r0, r1
_PrepareArguments
- mov r0, r6
- mov r1, r7
- mov r2, r8
+ mov r0, r8
+ mov r1, r9
+ mov r2, r10
mov r3, sp
// Move sec startup address into a data register
diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
index 7ef88c0..d54ebf9 100755
--- a/ArmPlatformPkg/PrePi/PrePi.c
+++ b/ArmPlatformPkg/PrePi/PrePi.c
@@ -30,8 +30,8 @@
#include "PrePi.h"
#include "LzmaDecompress.h"
-#define IS_XIP() (((UINT32)FixedPcdGet32 (PcdFdBaseAddress) > (UINT32)(FixedPcdGet32 (PcdSystemMemoryBase) + FixedPcdGet32 (PcdSystemMemorySize))) || \
- ((FixedPcdGet32 (PcdFdBaseAddress) + FixedPcdGet32 (PcdFdSize)) < FixedPcdGet32 (PcdSystemMemoryBase)))
+#define IS_XIP() (((UINT32)FixedPcdGet32 (PcdFdBaseAddress) > (UINT32)(FixedPcdGet64 (PcdSystemMemoryBase) + FixedPcdGet32 (PcdSystemMemorySize))) || \
+ ((FixedPcdGet32 (PcdFdBaseAddress) + FixedPcdGet32 (PcdFdSize)) < FixedPcdGet64 (PcdSystemMemoryBase)))
// Not used when PrePi in run in XIP mode
UINTN mGlobalVariableBase = 0;
@@ -108,8 +108,8 @@ PrePiMain (
// If ensure the FD is either part of the System Memory or totally outside of the System Memory (XIP)
ASSERT (IS_XIP() ||
- ((FixedPcdGet32 (PcdFdBaseAddress) >= FixedPcdGet32 (PcdSystemMemoryBase)) &&
- ((UINT32)(FixedPcdGet32 (PcdFdBaseAddress) + FixedPcdGet32 (PcdFdSize)) <= (UINT32)(FixedPcdGet32 (PcdSystemMemoryBase) + FixedPcdGet32 (PcdSystemMemorySize)))));
+ ((FixedPcdGet32 (PcdFdBaseAddress) >= FixedPcdGet64 (PcdSystemMemoryBase)) &&
+ ((UINT32)(FixedPcdGet32 (PcdFdBaseAddress) + FixedPcdGet32 (PcdFdSize)) <= (UINT32)(FixedPcdGet64 (PcdSystemMemoryBase) + FixedPcdGet64 (PcdSystemMemorySize)))));
// Initialize the architecture specific bits
ArchInitialize ();
diff --git a/BaseTools/Bin/Win32/BPDG.exe b/BaseTools/Bin/Win32/BPDG.exe
index d81803a..76186ca 100644
--- a/BaseTools/Bin/Win32/BPDG.exe
+++ b/BaseTools/Bin/Win32/BPDG.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/BootSectImage.exe b/BaseTools/Bin/Win32/BootSectImage.exe
index 4ba8c50..7e4bd4d 100755
--- a/BaseTools/Bin/Win32/BootSectImage.exe
+++ b/BaseTools/Bin/Win32/BootSectImage.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/EfiLdrImage.exe b/BaseTools/Bin/Win32/EfiLdrImage.exe
index a06534d..45219e3 100755
--- a/BaseTools/Bin/Win32/EfiLdrImage.exe
+++ b/BaseTools/Bin/Win32/EfiLdrImage.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/EfiRom.exe b/BaseTools/Bin/Win32/EfiRom.exe
index 1baf7a9..bec9d9b 100755
--- a/BaseTools/Bin/Win32/EfiRom.exe
+++ b/BaseTools/Bin/Win32/EfiRom.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenBootSector.exe b/BaseTools/Bin/Win32/GenBootSector.exe
index df8f019..ac0abfb 100755
--- a/BaseTools/Bin/Win32/GenBootSector.exe
+++ b/BaseTools/Bin/Win32/GenBootSector.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenCrc32.exe b/BaseTools/Bin/Win32/GenCrc32.exe
index 4a44014..3f4c4d8 100755
--- a/BaseTools/Bin/Win32/GenCrc32.exe
+++ b/BaseTools/Bin/Win32/GenCrc32.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenDepex.exe b/BaseTools/Bin/Win32/GenDepex.exe
index ca008db..3f7452a 100755
--- a/BaseTools/Bin/Win32/GenDepex.exe
+++ b/BaseTools/Bin/Win32/GenDepex.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenFds.exe b/BaseTools/Bin/Win32/GenFds.exe
index 529d291..2c7783b 100755
--- a/BaseTools/Bin/Win32/GenFds.exe
+++ b/BaseTools/Bin/Win32/GenFds.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenFfs.exe b/BaseTools/Bin/Win32/GenFfs.exe
index 3a57ec9..ad788da 100755
--- a/BaseTools/Bin/Win32/GenFfs.exe
+++ b/BaseTools/Bin/Win32/GenFfs.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenFv.exe b/BaseTools/Bin/Win32/GenFv.exe
index 31b4965..c99b15c 100755
--- a/BaseTools/Bin/Win32/GenFv.exe
+++ b/BaseTools/Bin/Win32/GenFv.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenFw.exe b/BaseTools/Bin/Win32/GenFw.exe
index 7d53501..df4199e 100755
--- a/BaseTools/Bin/Win32/GenFw.exe
+++ b/BaseTools/Bin/Win32/GenFw.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenPage.exe b/BaseTools/Bin/Win32/GenPage.exe
index 3ccbb5b..a1d26dd 100755
--- a/BaseTools/Bin/Win32/GenPage.exe
+++ b/BaseTools/Bin/Win32/GenPage.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenPatchPcdTable.exe b/BaseTools/Bin/Win32/GenPatchPcdTable.exe
index a978e64..b551b21 100755
--- a/BaseTools/Bin/Win32/GenPatchPcdTable.exe
+++ b/BaseTools/Bin/Win32/GenPatchPcdTable.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenSec.exe b/BaseTools/Bin/Win32/GenSec.exe
index 277d623..8043691 100755
--- a/BaseTools/Bin/Win32/GenSec.exe
+++ b/BaseTools/Bin/Win32/GenSec.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/GenVtf.exe b/BaseTools/Bin/Win32/GenVtf.exe
index fd936b0..3a0324c 100755
--- a/BaseTools/Bin/Win32/GenVtf.exe
+++ b/BaseTools/Bin/Win32/GenVtf.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/LzmaCompress.exe b/BaseTools/Bin/Win32/LzmaCompress.exe
index 1984cc7..b4915d6 100755
--- a/BaseTools/Bin/Win32/LzmaCompress.exe
+++ b/BaseTools/Bin/Win32/LzmaCompress.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/PatchPcdValue.exe b/BaseTools/Bin/Win32/PatchPcdValue.exe
index aa0e088..dc145cd 100755
--- a/BaseTools/Bin/Win32/PatchPcdValue.exe
+++ b/BaseTools/Bin/Win32/PatchPcdValue.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/Split.exe b/BaseTools/Bin/Win32/Split.exe
index 30451d4..9ea9592 100755
--- a/BaseTools/Bin/Win32/Split.exe
+++ b/BaseTools/Bin/Win32/Split.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/TargetTool.exe b/BaseTools/Bin/Win32/TargetTool.exe
index c8b1006..6cda989 100755
--- a/BaseTools/Bin/Win32/TargetTool.exe
+++ b/BaseTools/Bin/Win32/TargetTool.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/TianoCompress.exe b/BaseTools/Bin/Win32/TianoCompress.exe
index a574d07..0c75648 100755
--- a/BaseTools/Bin/Win32/TianoCompress.exe
+++ b/BaseTools/Bin/Win32/TianoCompress.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/Trim.exe b/BaseTools/Bin/Win32/Trim.exe
index 8a83841..feb0b1d 100755
--- a/BaseTools/Bin/Win32/Trim.exe
+++ b/BaseTools/Bin/Win32/Trim.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/UPT.exe b/BaseTools/Bin/Win32/UPT.exe
index 5bb1d9e..bea44d9 100644
--- a/BaseTools/Bin/Win32/UPT.exe
+++ b/BaseTools/Bin/Win32/UPT.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/VfrCompile.exe b/BaseTools/Bin/Win32/VfrCompile.exe
index 34df8a2..a35a489 100755
--- a/BaseTools/Bin/Win32/VfrCompile.exe
+++ b/BaseTools/Bin/Win32/VfrCompile.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/VolInfo.exe b/BaseTools/Bin/Win32/VolInfo.exe
index f7a7591..0ef74aa 100755
--- a/BaseTools/Bin/Win32/VolInfo.exe
+++ b/BaseTools/Bin/Win32/VolInfo.exe
Binary files differ
diff --git a/BaseTools/Bin/Win32/build.exe b/BaseTools/Bin/Win32/build.exe
index ee3f7eb..c7aaa98 100755
--- a/BaseTools/Bin/Win32/build.exe
+++ b/BaseTools/Bin/Win32/build.exe
Binary files differ
diff --git a/BaseTools/Conf/XMLSchema/DistributionPackage.xsd b/BaseTools/Conf/XMLSchema/DistributionPackage.xsd
index 5ae85f2..c1f2184 100644
--- a/BaseTools/Conf/XMLSchema/DistributionPackage.xsd
+++ b/BaseTools/Conf/XMLSchema/DistributionPackage.xsd
@@ -1613,7 +1613,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
type="PcdDatumTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
<xs:annotation>
@@ -1653,6 +1653,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</xs:annotation>
<xs:complexType>
<xs:sequence>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
+ </xs:choice>
<xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
<xs:annotation>
<xs:documentation xml:lang="en-us"> The minLength of 3 is
@@ -1731,6 +1744,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</xs:annotation>
<xs:complexType>
<xs:sequence>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
+ </xs:choice>
<xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
<xs:annotation>
<xs:documentation xml:lang="en-us"> The minLength of 3 is
@@ -1877,6 +1903,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableName"
type="xs:normalizedString">
<xs:annotation>
@@ -1948,6 +1975,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Usage" use="required">
@@ -1985,6 +2013,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Usage" use="required">
@@ -2272,17 +2301,32 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
different from the Distribution Package license. </xs:documentation>
</xs:annotation>
</xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:normalizedString">
+ <xs:element minOccurs="0" maxOccurs="1" name="Abstract">
<xs:annotation>
<xs:documentation xml:lang="en-us"> This is only required if the Abstract is
different from the Distribution Package Abstract. </xs:documentation>
</xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
</xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string">
+ <xs:element minOccurs="0" maxOccurs="1" name="Description">
<xs:annotation>
<xs:documentation xml:lang="en-us"> This is only required if the Description is
different from the Distribution Package Description. </xs:documentation>
</xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
</xs:element>
</xs:sequence>
</xs:complexType>
@@ -2474,6 +2518,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<xs:enumeration value="File"/>
<xs:enumeration value="FV"/>
<xs:enumeration value="GUID"/>
+ <xs:enumeration value="HII"/>
<xs:enumeration value="Hii"/>
<xs:enumeration value="HOB"/>
<xs:enumeration value="SystemTable"/>
@@ -2694,10 +2739,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
+ <xs:enumeration value="RedHat32"/>
+ <xs:enumeration value="RedHat64"/>
+ <xs:enumeration value="SuSE32"/>
+ <xs:enumeration value="SuSE64"/>
<xs:enumeration value="Linux32"/>
<xs:enumeration value="Linux64"/>
<xs:enumeration value="OS/X32"/>
<xs:enumeration value="OS/X64"/>
+ <xs:enumeration value="Generic"/>
<xs:enumeration value="GenericWin">
<xs:annotation>
<xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch files.
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template
index 4a21aba..6537108 100644
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -166,7 +166,7 @@
<Command.GCC, Command.RVCT>
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
- Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
# For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
"$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index ecfb557..aa169d1 100644
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -159,6 +159,9 @@ DEFINE GCC46_X64_PREFIX = /usr/bin/
DEFINE GCC47_IA32_PREFIX = /usr/bin/
DEFINE GCC47_X64_PREFIX = /usr/bin/
+DEFINE GCC48_IA32_PREFIX = /usr/bin/
+DEFINE GCC48_X64_PREFIX = /usr/bin/
+
DEFINE UNIX_IASL_BIN = /usr/bin/iasl
#DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl
DEFINE WIN_ASL_BIN_DIR = C:\ASL
@@ -304,6 +307,12 @@ DEFINE CLANG_BIN = /usr/bin/
# Required to build platforms or ACPI tables:
# Intel(r) ACPI Compiler v20101013 from
# http://www.acpica.org/downloads/previous_releases.php
+# GCC48 -Linux- Requires:
+# GCC 4.8
+# Optional:
+# Required to build platforms or ACPI tables:
+# Intel(r) ACPI Compiler v20101013 from
+# http://www.acpica.org/downloads/previous_releases.php
# ELFGCC -Linux- Requires:
# GCC(this tool chain uses whatever version of gcc and binutils that is installed in /usr/bin)
# Optional:
@@ -3127,12 +3136,13 @@ DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-strict-aliasing -
DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe
DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe
DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency
-DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address
+DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mfloat-abi=soft
DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
+DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_IPF_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_IPF_OBJCOPY_FLAGS = -I elf64-ia64-little -O efi-bsdrv-ia64
@@ -3176,6 +3186,7 @@ DEFINE GCC46_ASM_FLAGS = DEF(GCC45_ASM_FLAGS)
DEFINE GCC46_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
DEFINE GCC46_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -mno-unaligned-access -Wno-address -fomit-frame-pointer
DEFINE GCC46_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm
+DEFINE GCC46_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) --oformat=elf32-littlearm
DEFINE GCC47_IA32_CC_FLAGS = DEF(GCC46_IA32_CC_FLAGS)
DEFINE GCC47_X64_CC_FLAGS = DEF(GCC46_X64_CC_FLAGS)
@@ -3190,6 +3201,24 @@ DEFINE GCC47_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS)
DEFINE GCC47_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
DEFINE GCC47_ARM_DLINK_FLAGS = DEF(GCC46_ARM_DLINK_FLAGS)
DEFINE GCC47_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
+DEFINE GCC47_ARM_ASLDLINK_FLAGS = DEF(GCC46_ARM_ASLDLINK_FLAGS)
+DEFINE GCC47_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
+
+DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC47_IA32_CC_FLAGS)
+DEFINE GCC48_X64_CC_FLAGS = DEF(GCC47_X64_CC_FLAGS)
+DEFINE GCC48_IA32_X64_DLINK_COMMON = DEF(GCC47_IA32_X64_DLINK_COMMON)
+DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS)
+DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC47_IA32_X64_DLINK_FLAGS)
+DEFINE GCC48_X64_DLINK_FLAGS = DEF(GCC47_X64_DLINK_FLAGS)
+DEFINE GCC48_ASM_FLAGS = DEF(GCC47_ASM_FLAGS)
+DEFINE GCC48_ARM_ASM_FLAGS = DEF(GCC47_ARM_ASM_FLAGS)
+DEFINE GCC48_AARCH64_ASM_FLAGS = DEF(GCC47_AARCH64_ASM_FLAGS)
+DEFINE GCC48_ARM_CC_FLAGS = DEF(GCC47_ARM_CC_FLAGS)
+DEFINE GCC48_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS)
+DEFINE GCC48_ARM_DLINK_FLAGS = DEF(GCC47_ARM_DLINK_FLAGS)
+DEFINE GCC48_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
+DEFINE GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC47_ARM_ASLDLINK_FLAGS)
+DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
####################################################################################
#
@@ -3292,7 +3321,7 @@ DEFINE GCC47_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
*_GCC44_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
*_GCC44_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
*_GCC44_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
-*_GCC44_*_APP_FLAGS =
+*_GCC44_*_APP_FLAGS = DEF(GCC_PP_FLAGS)
*_GCC44_*_ASL_FLAGS = DEF(IASL_FLAGS)
*_GCC44_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
@@ -3490,6 +3519,8 @@ DEFINE GCC47_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
*_GCC46_ARM_ARCHCC_FLAGS = -mthumb
*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC46_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC46_ARM_ASLDLINK_FLAGS = DEF(GCC46_ARM_ASLDLINK_FLAGS)
*_GCC46_ARM_ASM_FLAGS = DEF(GCC46_ARM_ASM_FLAGS)
*_GCC46_ARM_DLINK_FLAGS = DEF(GCC46_ARM_DLINK_FLAGS)
*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
@@ -3579,9 +3610,11 @@ RELEASE_GCC46_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-v
*_GCC47_ARM_ASLPP_PATH = ENV(GCC47_ARM_PREFIX)gcc
*_GCC47_ARM_RC_PATH = ENV(GCC47_ARM_PREFIX)objcopy
-*_GCC46_ARM_ARCHCC_FLAGS = -mthumb
-*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC47_ARM_ARCHCC_FLAGS = -mthumb
+*_GCC47_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC47_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC47_ARM_ASLDLINK_FLAGS = DEF(GCC47_ARM_ASLDLINK_FLAGS)
*_GCC47_ARM_ASM_FLAGS = DEF(GCC47_ARM_ASM_FLAGS)
*_GCC47_ARM_DLINK_FLAGS = DEF(GCC47_ARM_DLINK_FLAGS)
*_GCC47_ARM_PLATFORM_FLAGS = -march=armv7-a
@@ -3606,6 +3639,8 @@ RELEASE_GCC47_ARM_CC_FLAGS = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-v
*_GCC47_AARCH64_ASLPP_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
*_GCC47_AARCH64_RC_PATH = ENV(GCC47_AARCH64_PREFIX)objcopy
+*_GCC47_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC47_AARCH64_ASLDLINK_FLAGS = DEF(GCC47_AARCH64_ASLDLINK_FLAGS)
*_GCC47_AARCH64_ASM_FLAGS = DEF(GCC47_AARCH64_ASM_FLAGS)
*_GCC47_AARCH64_DLINK_FLAGS = DEF(GCC47_AARCH64_DLINK_FLAGS)
*_GCC47_AARCH64_PLATFORM_FLAGS =
@@ -3618,6 +3653,126 @@ RELEASE_GCC47_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
####################################################################################
#
+# GCC 4.8 - This configuration is used to compile under Linux to produce
+# PE/COFF binaries using GCC 4.8.
+#
+####################################################################################
+*_GCC48_*_*_FAMILY = GCC
+
+*_GCC48_*_MAKE_PATH = make
+*_GCC48_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+
+*_GCC48_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
+*_GCC48_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
+*_GCC48_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC48_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
+*_GCC48_*_APP_FLAGS =
+*_GCC48_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_GCC48_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+
+##################
+# GCC48 IA32 definitions
+##################
+*_GCC48_IA32_OBJCOPY_PATH = DEF(GCC48_IA32_PREFIX)objcopy
+*_GCC48_IA32_CC_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_SLINK_PATH = DEF(GCC48_IA32_PREFIX)ar
+*_GCC48_IA32_DLINK_PATH = DEF(GCC48_IA32_PREFIX)ld
+*_GCC48_IA32_ASLDLINK_PATH = DEF(GCC48_IA32_PREFIX)ld
+*_GCC48_IA32_ASM_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_PP_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_VFRPP_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASLCC_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASLPP_PATH = DEF(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_RC_PATH = DEF(GCC48_IA32_PREFIX)objcopy
+
+*_GCC48_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32
+*_GCC48_IA32_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
+*_GCC48_IA32_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m32 -march=i386
+*_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os
+*_GCC48_IA32_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
+*_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+*_GCC48_IA32_OBJCOPY_FLAGS =
+
+##################
+# GCC48 X64 definitions
+##################
+*_GCC48_X64_OBJCOPY_PATH = DEF(GCC48_X64_PREFIX)objcopy
+*_GCC48_X64_CC_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_SLINK_PATH = DEF(GCC48_X64_PREFIX)ar
+*_GCC48_X64_DLINK_PATH = DEF(GCC48_X64_PREFIX)ld
+*_GCC48_X64_ASLDLINK_PATH = DEF(GCC48_X64_PREFIX)ld
+*_GCC48_X64_ASM_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_PP_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_VFRPP_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASLCC_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASLPP_PATH = DEF(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_RC_PATH = DEF(GCC48_X64_PREFIX)objcopy
+
+*_GCC48_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
+*_GCC48_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
+*_GCC48_X64_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m64
+*_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS)
+*_GCC48_X64_DLINK_FLAGS = DEF(GCC48_X64_DLINK_FLAGS)
+*_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+*_GCC48_X64_OBJCOPY_FLAGS =
+
+##################
+# GCC48 ARM definitions
+##################
+*_GCC48_ARM_CC_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_SLINK_PATH = ENV(GCC48_ARM_PREFIX)ar
+*_GCC48_ARM_DLINK_PATH = ENV(GCC48_ARM_PREFIX)ld
+*_GCC48_ARM_ASLDLINK_PATH = ENV(GCC48_ARM_PREFIX)ld
+*_GCC48_ARM_ASM_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_PP_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_VFRPP_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_ASLCC_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_ASLPP_PATH = ENV(GCC48_ARM_PREFIX)gcc
+*_GCC48_ARM_RC_PATH = ENV(GCC48_ARM_PREFIX)objcopy
+
+*_GCC48_ARM_ARCHCC_FLAGS = -mthumb
+*_GCC48_ARM_PLATFORM_FLAGS = -march=armv7-a
+
+*_GCC48_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)
+*_GCC48_ARM_ASM_FLAGS = DEF(GCC48_ARM_ASM_FLAGS)
+*_GCC48_ARM_DLINK_FLAGS = DEF(GCC48_ARM_DLINK_FLAGS)
+*_GCC48_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC48_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC48_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
+*_GCC48_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+
+ DEBUG_GCC48_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) -O0
+RELEASE_GCC48_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-variable
+
+##################
+# GCC48 AARCH64 definitions
+##################
+*_GCC48_AARCH64_CC_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_SLINK_PATH = ENV(GCC48_AARCH64_PREFIX)ar
+*_GCC48_AARCH64_DLINK_PATH = ENV(GCC48_AARCH64_PREFIX)ld
+*_GCC48_AARCH64_ASLDLINK_PATH = ENV(GCC48_AARCH64_PREFIX)ld
+*_GCC48_AARCH64_ASM_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_PP_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_VFRPP_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_ASLCC_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_ASLPP_PATH = ENV(GCC48_AARCH64_PREFIX)gcc
+*_GCC48_AARCH64_RC_PATH = ENV(GCC48_AARCH64_PREFIX)objcopy
+
+*_GCC48_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
+*_GCC48_AARCH64_ASM_FLAGS = DEF(GCC48_AARCH64_ASM_FLAGS)
+*_GCC48_AARCH64_DLINK_FLAGS = DEF(GCC48_AARCH64_DLINK_FLAGS)
+*_GCC48_AARCH64_PLATFORM_FLAGS =
+*_GCC48_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC48_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS)
+*_GCC48_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+
+ DEBUG_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -O0
+RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
+
+####################################################################################
+#
# Cygwin GCC And Intel ACPI Compiler
#
####################################################################################
@@ -5395,7 +5550,7 @@ DEFINE RVCT_ALL_DLINK_FLAGS = --ro-base 0 --no_scanlib --reloc --no_exceptions
#
# Use default values, or override in DSC file
#
-*_RVCT_ARM_ARCHCC_FLAGS = --thumb
+*_RVCT_ARM_ARCHCC_FLAGS = --thumb --fpu=softvfp
*_RVCT_ARM_ARCHASM_FLAGS =
*_RVCT_ARM_ARCHDLINK_FLAGS =
*_RVCT_ARM_PLATFORM_FLAGS = --cpu 7-A
@@ -5437,7 +5592,7 @@ RELEASE_RVCT_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=5
#
# Use default values, or override in DSC file
#
-*_RVCTLINUX_ARM_ARCHCC_FLAGS = --thumb
+*_RVCTLINUX_ARM_ARCHCC_FLAGS = --thumb --fpu=softvfp
*_RVCTLINUX_ARM_ARCHASM_FLAGS =
*_RVCTLINUX_ARM_ARCHDLINK_FLAGS =
*_RVCTLINUX_ARM_PLATFORM_FLAGS = --cpu 7-A
@@ -5484,7 +5639,7 @@ RELEASE_RVCTLINUX_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppr
#
# Use default values, or override in DSC file
#
-*_RVCTCYGWIN_ARM_ARCHCC_FLAGS = --thumb
+*_RVCTCYGWIN_ARM_ARCHCC_FLAGS = --thumb --fpu=softvfp
*_RVCTCYGWIN_ARM_ARCHASM_FLAGS =
*_RVCTCYGWIN_ARM_ARCHDLINK_FLAGS =
*_RVCTCYGWIN_ARM_PLATFORM_FLAGS = --cpu 7-A
@@ -5532,7 +5687,7 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
*_ARMGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
*_ARMGCC_*_ASLPP_FLAGS = -x c -E -P
*_ARMGCC_*_ASLCC_FLAGS = -x c
-*_ARMGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable
+*_ARMGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry ReferenceAcpiTable
##################
# ARM definitions
@@ -5625,8 +5780,8 @@ RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARC
*_ARMLINUXGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)
*_ARMLINUXGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
*_ARMLINUXGCC_*_ASLPP_FLAGS = -x c -E -P
-*_ARMLINUXGCC_*_ASLCC_FLAGS = -x c -Dmain=ReferenceAcpiTable
-*_ARMLINUXGCC_*_ASLDLINK_FLAGS = -nostdlib --entry _ReferenceAcpiTable --emit-relocs
+*_ARMLINUXGCC_*_ASLCC_FLAGS = -x c -Dmain=ReferenceAcpiTable
+*_ARMLINUXGCC_*_ASLDLINK_FLAGS = -nostdlib --entry _ReferenceAcpiTable --emit-relocs
##################
# ARM definitions
diff --git a/BaseTools/Source/C/EfiRom/EfiRom.c b/BaseTools/Source/C/EfiRom/EfiRom.c
index 5152f38..9f7da80 100644
--- a/BaseTools/Source/C/EfiRom/EfiRom.c
+++ b/BaseTools/Source/C/EfiRom/EfiRom.c
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2013, 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
@@ -237,6 +237,7 @@ Returns:
PCI_3_0_DATA_STRUCTURE *PciDs30;
UINT32 Index;
UINT8 ByteCheckSum;
+ UINT16 CodeType;
PciDs23 = NULL;
PciDs30 = NULL;
@@ -337,8 +338,10 @@ Returns:
//
if (mOptions.Pci23 == 1) {
PciDs23->ImageLength = (UINT16) (TotalSize / 512);
+ CodeType = PciDs23->CodeType;
} else {
PciDs30->ImageLength = (UINT16) (TotalSize / 512);
+ CodeType = PciDs30->CodeType;
}
//
@@ -359,14 +362,16 @@ Returns:
}
}
- ByteCheckSum = 0;
- for (Index = 0; Index < FileSize - 1; Index++) {
- ByteCheckSum = (UINT8) (ByteCheckSum + Buffer[Index]);
- }
+ if (CodeType != PCI_CODE_TYPE_EFI_IMAGE) {
+ ByteCheckSum = 0;
+ for (Index = 0; Index < FileSize - 1; Index++) {
+ ByteCheckSum = (UINT8) (ByteCheckSum + Buffer[Index]);
+ }
- Buffer[FileSize - 1] = (UINT8) ((~ByteCheckSum) + 1);
- if (mOptions.Verbose) {
- VerboseMsg(" Checksum = %02x\n\n", Buffer[FileSize - 1]);
+ Buffer[FileSize - 1] = (UINT8) ((~ByteCheckSum) + 1);
+ if (mOptions.Verbose) {
+ VerboseMsg(" Checksum = %02x\n\n", Buffer[FileSize - 1]);
+ }
}
//
@@ -449,6 +454,8 @@ Returns:
UINT16 MachineType;
UINT16 SubSystem;
UINT32 HeaderPadBytes;
+ UINT32 PadBytesBeforeImage;
+ UINT32 PadBytesAfterImage;
//
// Try to open the input file
@@ -559,6 +566,18 @@ Returns:
TotalSize = (TotalSize + 0x200) &~0x1ff;
}
//
+ // Workaround:
+ // If compressed, put the pad bytes after the image,
+ // else put the pad bytes before the image.
+ //
+ if ((InFile->FileFlags & FILE_FLAG_COMPRESS) != 0) {
+ PadBytesBeforeImage = 0;
+ PadBytesAfterImage = TotalSize - (FileSize + HeaderSize);
+ } else {
+ PadBytesBeforeImage = TotalSize - (FileSize + HeaderSize);
+ PadBytesAfterImage = 0;
+ }
+ //
// Check size
//
if (TotalSize > MAX_OPTION_ROM_SIZE) {
@@ -581,7 +600,7 @@ Returns:
RomHdr.EfiSignature = EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE;
RomHdr.EfiSubsystem = SubSystem;
RomHdr.EfiMachineType = MachineType;
- RomHdr.EfiImageHeaderOffset = (UINT16) HeaderSize;
+ RomHdr.EfiImageHeaderOffset = (UINT16) (HeaderSize + PadBytesBeforeImage);
RomHdr.PcirOffset = (UINT16) (sizeof (RomHdr) + HeaderPadBytes);
//
// Set image as compressed or not
@@ -686,11 +705,18 @@ Returns:
goto BailOut;
}
}
+
//
- // Keep track of how many bytes left to write
+ // Pad head to make it a multiple of 512 bytes
//
- TotalSize -= HeaderSize;
-
+ while (PadBytesBeforeImage > 0) {
+ if (putc (~0, OutFptr) == EOF) {
+ Error (NULL, 0, 2000, "Failed to write trailing pad bytes output file!", NULL);
+ Status = STATUS_ERROR;
+ goto BailOut;
+ }
+ PadBytesBeforeImage--;
+ }
//
// Now dump the input file's contents to the output file
//
@@ -700,18 +726,17 @@ Returns:
goto BailOut;
}
- TotalSize -= FileSize;
//
// Pad the rest of the image to make it a multiple of 512 bytes
//
- while (TotalSize > 0) {
+ while (PadBytesAfterImage > 0) {
if (putc (~0, OutFptr) == EOF) {
Error (NULL, 0, 2000, "Failed to write trailing pad bytes output file!", NULL);
Status = STATUS_ERROR;
goto BailOut;
}
- TotalSize--;
+ PadBytesAfterImage--;
}
BailOut:
@@ -1205,7 +1230,7 @@ Returns:
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.\n\n");
//
// Details Option
diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
index d0df4ac..0522cf4 100644
--- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c
+++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
@@ -458,9 +458,9 @@ Returns:
case 0:
//
- // 8 byte alignment, mini alignment requirement for FFS file.
+ // 1 byte alignment
//
- *Alignment = 3;
+ *Alignment = 0;
break;
case 1:
@@ -2212,7 +2212,8 @@ Returns:
mFvDataInfo.FvNameGuid.Data4[7]);
}
- if (CompareGuid (&mFvDataInfo.FvFileSystemGuid, &mEfiFirmwareFileSystem2Guid) == 0) {
+ if (CompareGuid (&mFvDataInfo.FvFileSystemGuid, &mEfiFirmwareFileSystem2Guid) == 0 ||
+ CompareGuid (&mFvDataInfo.FvFileSystemGuid, &mEfiFirmwareFileSystem3Guid) == 0) {
mFvDataInfo.IsPiFvImage = TRUE;
}
diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.h b/BaseTools/Source/C/GenFv/GenFvInternalLib.h
index 21993b5..a9a00ec 100644
--- a/BaseTools/Source/C/GenFv/GenFvInternalLib.h
+++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.h
@@ -168,7 +168,7 @@ Abstract:
// VTF (Firmware Volume Top File) signatures
//
#define IA32_X64_VTF_SIGNATURE_OFFSET 0x14
-#define IA32_X64_VTF0_SIGNATURE EFI_SIGNATURE_32('V','T','F',0)
+#define IA32_X64_VTF0_SIGNATURE SIGNATURE_32('V','T','F',0)
//
// Defines to calculate the offset for PEI CORE entry points
diff --git a/BaseTools/Source/C/Include/Common/BuildVersion.h b/BaseTools/Source/C/Include/Common/BuildVersion.h
index b84bd05..dd9852b 100644
--- a/BaseTools/Source/C/Include/Common/BuildVersion.h
+++ b/BaseTools/Source/C/Include/Common/BuildVersion.h
@@ -14,4 +14,4 @@
**/
-#define __BUILD_VERSION "Build 2610"
+#define __BUILD_VERSION "Build 2640"
diff --git a/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h b/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h
index ea06eee..9d62a9b 100644
--- a/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h
+++ b/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h
@@ -111,7 +111,7 @@ typedef struct {
EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];
} EFI_FIRMWARE_VOLUME_HEADER;
-#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
///
/// Firmware Volume Header Revision definition
diff --git a/BaseTools/Source/C/Include/Common/UefiBaseTypes.h b/BaseTools/Source/C/Include/Common/UefiBaseTypes.h
index 43f5854..8f27ed7 100644
--- a/BaseTools/Source/C/Include/Common/UefiBaseTypes.h
+++ b/BaseTools/Source/C/Include/Common/UefiBaseTypes.h
@@ -1,7 +1,7 @@
/** @file
Defines data types and constants introduced in UEFI.
- Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2006 - 2013, 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
@@ -146,10 +146,10 @@ typedef union {
//
// Define macros to build data structure signatures from characters.
//
-#define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
-#define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
-#define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
- (EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
+#define SIGNATURE_16(A, B) ((A) | (B << 8))
+#define SIGNATURE_32(A, B, C, D) (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
+#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
+ (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
//
diff --git a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h
index 7e7c0ea..5d55f4d 100644
--- a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h
+++ b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h
@@ -4,7 +4,7 @@
@bug Fix text - doc as defined in MSFT EFI specification.
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
@@ -648,7 +648,7 @@ typedef struct {
///
/// Debug Data Structure defined by Apple Mach-O to Coff utility
///
-#define CODEVIEW_SIGNATURE_MTOC EFI_SIGNATURE_32('M', 'T', 'O', 'C')
+#define CODEVIEW_SIGNATURE_MTOC SIGNATURE_32('M', 'T', 'O', 'C')
typedef struct {
UINT32 Signature; ///< "MTOC"
EFI_GUID MachOUuid;
diff --git a/BaseTools/Source/C/Include/IndustryStandard/pci22.h b/BaseTools/Source/C/Include/IndustryStandard/pci22.h
index e1d347a..e07aa88 100644
--- a/BaseTools/Source/C/Include/IndustryStandard/pci22.h
+++ b/BaseTools/Source/C/Include/IndustryStandard/pci22.h
@@ -1,7 +1,7 @@
/** @file
Support for PCI 2.2 standard.
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2006 - 2013, 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
@@ -335,7 +335,7 @@ typedef union {
#pragma pack()
#define PCI_EXPANSION_ROM_HEADER_SIGNATURE 0xaa55
-#define PCI_DATA_STRUCTURE_SIGNATURE EFI_SIGNATURE_32 ('P', 'C', 'I', 'R')
+#define PCI_DATA_STRUCTURE_SIGNATURE SIGNATURE_32 ('P', 'C', 'I', 'R')
#define PCI_CODE_TYPE_PCAT_IMAGE 0x00
#define PCI_CODE_TYPE_EFI_IMAGE 0x03
#define EFI_PCI_EXPANSION_ROM_HEADER_COMPRESSED 0x0001
diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
index da8c529..dd34a1b 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
@@ -2,7 +2,7 @@
VfrCompiler main class and main function.
-Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2013, 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
@@ -406,8 +406,8 @@ CVfrCompiler::Usage (
UINT32 Index;
CONST CHAR8 *Help[] = {
" ",
- "VfrCompile version " VFR_COMPILER_VERSION __BUILD_VERSION VFR_COMPILER_UPDATE_TIME,
- "Copyright (c) 2004-2011 Intel Corporation. All rights reserved.",
+ "VfrCompile version " VFR_COMPILER_VERSION __BUILD_VERSION,
+ "Copyright (c) 2004-2013 Intel Corporation. All rights reserved.",
" ",
"Usage: VfrCompile [options] VfrFile",
" ",
diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.h b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
index fe29f7e..ea20bbc 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
@@ -23,8 +23,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "ParseInf.h"
#define PROGRAM_NAME "VfrCompile"
-#define VFR_COMPILER_VERSION " 2.00 (UEFI 2.3.1)"
-#define VFR_COMPILER_UPDATE_TIME " updated on 2011/07/15"
+#define VFR_COMPILER_VERSION " 2.00 (UEFI 2.4) "
//
// This is how we invoke the C preprocessor on the VFR source file
// to resolve #defines, #includes, etc. To make C source files
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
index 363ca82..addff24 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
@@ -855,17 +855,6 @@ CFormPkg::DeclarePendingQuestion (
// Get VarStoreType
//
ReturnCode = lCVfrDataStorage.GetVarStoreId (FName, &Info.mVarStoreId);
- if (ReturnCode == VFR_RETURN_UNDEFINED) {
- lCVfrDataStorage.DeclareBufferVarStore (
- FName,
- LocalFormSetGuid,
- &lCVfrVarDataTypeDB,
- FName,
- EFI_VARSTORE_ID_INVALID,
- FALSE
- );
- ReturnCode = lCVfrDataStorage.GetVarStoreId (FName, &Info.mVarStoreId, LocalFormSetGuid);
- }
if (ReturnCode != VFR_RETURN_SUCCESS) {
gCVfrErrorHandle.PrintMsg (pNode->mLineNo, FName, "Error", "Var Store Type is not defined");
return ReturnCode;
diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 71d0d75..11cf8b2 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -1,7 +1,7 @@
## @file
# Generate AutoGen.h, AutoGen.c and *.depex files
#
-# Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 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
@@ -334,6 +334,7 @@ class WorkspaceAutoGen(AutoGen):
# Explicitly collect platform's dynamic PCDs
#
Pa.CollectPlatformDynamicPcds()
+ Pa.CollectFixedAtBuildPcds()
self.AutoGenObjectList.append(Pa)
#
@@ -785,6 +786,7 @@ class PlatformAutoGen(AutoGen):
self._PcdTokenNumber = None # (TokenCName, TokenSpaceGuidCName) : GeneratedTokenNumber
self._DynamicPcdList = None # [(TokenCName1, TokenSpaceGuidCName1), (TokenCName2, TokenSpaceGuidCName2), ...]
self._NonDynamicPcdList = None # [(TokenCName1, TokenSpaceGuidCName1), (TokenCName2, TokenSpaceGuidCName2), ...]
+ self._NonDynamicPcdDict = {}
self._ToolDefinitions = None
self._ToolDefFile = None # toolcode : tool path
@@ -851,6 +853,32 @@ class PlatformAutoGen(AutoGen):
(self.MetaFile, self.Arch))
self.IsMakeFileCreated = True
+ ## Deal with Shared FixedAtBuild Pcds
+ #
+ def CollectFixedAtBuildPcds(self):
+ for LibAuto in self.LibraryAutoGenList:
+ FixedAtBuildPcds = {}
+ ShareFixedAtBuildPcdsSameValue = {}
+ for Module in LibAuto._ReferenceModules:
+ for Pcd in Module.FixedAtBuildPcds + LibAuto.FixedAtBuildPcds:
+ key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
+ if key not in FixedAtBuildPcds:
+ ShareFixedAtBuildPcdsSameValue[key] = True
+ FixedAtBuildPcds[key] = Pcd.DefaultValue
+ else:
+ if FixedAtBuildPcds[key] != Pcd.DefaultValue:
+ ShareFixedAtBuildPcdsSameValue[key] = False
+ for Pcd in LibAuto.FixedAtBuildPcds:
+ key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
+ if (Pcd.TokenCName,Pcd.TokenSpaceGuidCName) not in self.NonDynamicPcdDict:
+ continue
+ else:
+ DscPcd = self.NonDynamicPcdDict[(Pcd.TokenCName,Pcd.TokenSpaceGuidCName)]
+ if DscPcd.Type != "FixedAtBuild":
+ continue
+ if key in ShareFixedAtBuildPcdsSameValue and ShareFixedAtBuildPcdsSameValue[key]:
+ LibAuto.ConstPcd[key] = Pcd.DefaultValue
+
## Collect dynamic PCDs
#
# Gather dynamic PCDs list from each module and their settings from platform
@@ -1296,6 +1324,13 @@ class PlatformAutoGen(AutoGen):
self._PackageList = list(self._PackageList)
return self._PackageList
+ def _GetNonDynamicPcdDict(self):
+ if self._NonDynamicPcdDict:
+ return self._NonDynamicPcdDict
+ for Pcd in self.NonDynamicPcdList:
+ self._NonDynamicPcdDict[(Pcd.TokenCName,Pcd.TokenSpaceGuidCName)] = Pcd
+ return self._NonDynamicPcdDict
+
## Get list of non-dynamic PCDs
def _GetNonDynamicPcdList(self):
if self._NonDynamicPcdList == None:
@@ -1373,6 +1408,8 @@ class PlatformAutoGen(AutoGen):
for La in Ma.LibraryAutoGenList:
if La not in self._LibraryAutoGenList:
self._LibraryAutoGenList.append(La)
+ if Ma not in La._ReferenceModules:
+ La._ReferenceModules.append(Ma)
## Summarize ModuleAutoGen objects of all modules to be built for this platform
def _GetModuleAutoGenList(self):
@@ -1911,6 +1948,7 @@ class PlatformAutoGen(AutoGen):
PcdTokenNumber = property(_GetPcdTokenNumbers) # (TokenCName, TokenSpaceGuidCName) : GeneratedTokenNumber
DynamicPcdList = property(_GetDynamicPcdList) # [(TokenCName1, TokenSpaceGuidCName1), (TokenCName2, TokenSpaceGuidCName2), ...]
NonDynamicPcdList = property(_GetNonDynamicPcdList) # [(TokenCName1, TokenSpaceGuidCName1), (TokenCName2, TokenSpaceGuidCName2), ...]
+ NonDynamicPcdDict = property(_GetNonDynamicPcdDict)
PackageList = property(_GetPackageList)
ToolDefinition = property(_GetToolDefinition) # toolcode : tool path
@@ -2027,12 +2065,35 @@ class ModuleAutoGen(AutoGen):
self._FinalBuildTargetList = None
self._FileTypes = None
self._BuildRules = None
-
+
+ ## The Modules referenced to this Library
+ # Only Library has this attribute
+ self._ReferenceModules = []
+
+ ## Store the FixedAtBuild Pcds
+ #
+ self._FixedAtBuildPcds = []
+ self.ConstPcd = {}
return True
def __repr__(self):
return "%s [%s]" % (self.MetaFile, self.Arch)
+ # Get FixedAtBuild Pcds of this Module
+ def _GetFixedAtBuildPcds(self):
+ if self._FixedAtBuildPcds:
+ return self._FixedAtBuildPcds
+ for Pcd in self.ModulePcdList:
+ if self.IsLibrary:
+ if not (Pcd.Pending == False and Pcd.Type == "FixedAtBuild"):
+ continue
+ elif Pcd.Type != "FixedAtBuild":
+ continue
+ if Pcd not in self._FixedAtBuildPcds:
+ self._FixedAtBuildPcds.append(Pcd)
+
+ return self._FixedAtBuildPcds
+
# Macros could be used in build_rule.txt (also Makefile)
def _GetMacros(self):
if self._Macro == None:
@@ -3102,6 +3163,8 @@ class ModuleAutoGen(AutoGen):
BuildOption = property(_GetModuleBuildOption)
BuildOptionIncPathList = property(_GetBuildOptionIncPathList)
BuildCommand = property(_GetBuildCommand)
+
+ FixedAtBuildPcds = property(_GetFixedAtBuildPcds)
# This acts like the main() function for the script, unless it is 'import'ed into another script.
if __name__ == '__main__':
diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py
index 63ba2b2..621b572 100644
--- a/BaseTools/Source/Python/AutoGen/GenC.py
+++ b/BaseTools/Source/Python/AutoGen/GenC.py
@@ -1069,10 +1069,15 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
AutoGenH.Append('#define %s %s_gPcd_BinaryPatch_%s\n' %(GetModeName, Type, TokenCName))
AutoGenH.Append('#define %s(Value) (%s = (Value))\n' % (SetModeName, PcdVariableName))
if PcdItemType == TAB_PCDS_FIXED_AT_BUILD or PcdItemType == TAB_PCDS_FEATURE_FLAG:
+ key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
+
AutoGenH.Append('extern const %s _gPcd_FixedAtBuild_%s%s;\n' %(DatumType, TokenCName, Array))
AutoGenH.Append('#define %s %s_gPcd_FixedAtBuild_%s\n' %(GetModeName, Type, TokenCName))
AutoGenH.Append('//#define %s ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD\n' % SetModeName)
-
+
+ if PcdItemType == TAB_PCDS_FIXED_AT_BUILD and key in Info.ConstPcd:
+ AutoGenH.Append('#define _PCD_VALUE_%s %s\n' %(TokenCName, Pcd.DefaultValue))
+
## Create code for library constructor
diff --git a/BaseTools/Source/Python/AutoGen/GenPcdDb.py b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
index 08719fa..289a6ff 100644
--- a/BaseTools/Source/Python/AutoGen/GenPcdDb.py
+++ b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
@@ -528,13 +528,20 @@ class DbSizeTableItemList (DbItemList):
if RawDataList is None:
RawDataList = []
DbItemList.__init__(self, ItemSize, DataList, RawDataList)
+ def GetListSize(self):
+ length = 0
+ for Data in self.RawDataList:
+ length += (1 + len(Data[1]))
+ return length * self.ItemSize
def PackData(self):
- PackStr = "=HH"
+ PackStr = "=H"
Buffer = ''
for Data in self.RawDataList:
Buffer += pack(PackStr,
- GetIntegerValue(Data[0]),
- GetIntegerValue(Data[1]))
+ GetIntegerValue(Data[0]))
+ for subData in Data[1]:
+ Buffer += pack(PackStr,
+ GetIntegerValue(subData))
return Buffer
## DbStringItemList
@@ -732,7 +739,7 @@ def BuildExDataBase(Dict):
DbPcdNameOffsetTable = DbItemList(4,RawDataList = PcdNameOffsetTable)
SizeTableValue = zip(Dict['SIZE_TABLE_MAXIMUM_LENGTH'], Dict['SIZE_TABLE_CURRENT_LENGTH'])
- DbSizeTableValue = DbSizeTableItemList(4, RawDataList = SizeTableValue)
+ DbSizeTableValue = DbSizeTableItemList(2, RawDataList = SizeTableValue)
InitValueUint16 = Dict['INIT_DB_VALUE_UINT16']
DbInitValueUint16 = DbComItemList(2, RawDataList = InitValueUint16)
VardefValueUint16 = Dict['VARDEF_DB_VALUE_UINT16']
@@ -812,7 +819,7 @@ def BuildExDataBase(Dict):
SkuIndexIndexTable = [(0) for i in xrange(len(Dict['SKU_INDEX_VALUE']))]
SkuIndexIndexTable[0] = 0 #Dict['SKU_INDEX_VALUE'][0][0]
for i in range(1,len(Dict['SKU_INDEX_VALUE'])):
- SkuIndexIndexTable[i] = SkuIndexIndexTable[i-1]+Dict['SKU_INDEX_VALUE'][i-1][0]
+ SkuIndexIndexTable[i] = SkuIndexIndexTable[i-1]+Dict['SKU_INDEX_VALUE'][i-1][0] + 1
for (LocalTokenNumberTableIndex, (Offset, Table)) in enumerate(LocalTokenNumberTable):
DbIndex = 0
DbOffset = FixedHeaderLen
@@ -829,7 +836,7 @@ def BuildExDataBase(Dict):
LocalTokenNumberTable[LocalTokenNumberTableIndex] = DbOffset|int(TokenTypeValue)
# if PCD_TYPE_SKU_ENABLED, then we need to fix up the SkuTable
- SkuIndexTabalOffset = SkuIdTableOffset + Dict['SKUID_VALUE'][0]
+ SkuIndexTabalOffset = SkuIdTableOffset + Dict['SKUID_VALUE'][0] + 1
if (TokenTypeValue & (0x2 << 28)):
SkuTable[SkuHeaderIndex] = (DbOffset|int(TokenTypeValue & ~(0x2<<28)), SkuIndexTabalOffset + SkuIndexIndexTable[SkuHeaderIndex])
LocalTokenNumberTable[LocalTokenNumberTableIndex] = (SkuTableOffset + SkuHeaderIndex * 8) | int(TokenTypeValue)
@@ -842,6 +849,7 @@ def BuildExDataBase(Dict):
# resolve variable table offset
for VariableEntries in VariableTable:
+ skuindex = 0
for VariableEntryPerSku in VariableEntries:
(VariableHeadGuidIndex, VariableHeadStringIndex, SKUVariableOffset, VariableOffset, VariableRefTable) = VariableEntryPerSku[:]
DbIndex = 0
@@ -853,7 +861,9 @@ def BuildExDataBase(Dict):
DbOffset += DbItemTotal[DbIndex].GetListSize()
else:
assert(False)
-
+ if isinstance(VariableRefTable[0],list):
+ DbOffset += skuindex * 4
+ skuindex += 1
if DbIndex >= InitTableNum:
assert(False)
@@ -995,10 +1005,6 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
DbFile.write(PcdDbBuffer)
Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)
-
-def CArrayToArray(carray):
- return "{%s, 0x00}" % ", ".join(["0x%02x" % ord(C) for C in carray])
-
## Create PCD database in DXE or PEI phase
#
# @param Platform The platform object
@@ -1094,6 +1100,8 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
Dict['PCD_TOKENSPACE_MAP'] = []
Dict['PCD_NAME_OFFSET'] = []
+ PCD_STRING_INDEX_MAP = {}
+
StringTableIndex = 0
StringTableSize = 0
NumberOfLocalTokens = 0
@@ -1105,6 +1113,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
GuidList = []
i = 0
for Pcd in Platform.DynamicPcdList:
+ VoidStarTypeCurrSize = []
i += 1
CName = Pcd.TokenCName
TokenSpaceGuidCName = Pcd.TokenSpaceGuidCName
@@ -1156,6 +1165,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
SkuIndexTableTmp = []
SkuIndexTableTmp.append(0)
SkuIdIndex = 1
+ VariableHeadList = []
for SkuName in Pcd.SkuInfoList:
Sku = Pcd.SkuInfoList[SkuName]
SkuId = Sku.SkuId
@@ -1171,27 +1181,36 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
if len(Sku.VariableName) > 0:
Pcd.TokenTypeList += ['PCD_TYPE_HII']
Pcd.InitString = 'INIT'
- # store VariableName to stringTable and calculate the VariableHeadStringIndex
- if Sku.VariableName.startswith('{'):
- VariableNameStructure = CArrayToArray(Sku.VariableName)
- else:
- VariableNameStructure = StringToArray(Sku.VariableName)
- if VariableNameStructure not in Dict['STRING_TABLE_VALUE']:
- Dict['STRING_TABLE_CNAME'].append(CName)
- Dict['STRING_TABLE_GUID'].append(TokenSpaceGuid)
- if StringTableIndex == 0:
- Dict['STRING_TABLE_INDEX'].append('')
- else:
- Dict['STRING_TABLE_INDEX'].append('_%d' % StringTableIndex)
-
- Dict['STRING_TABLE_LENGTH'].append((len(Sku.VariableName) - 3 + 1) * 2 )
- Dict['STRING_TABLE_VALUE'].append(VariableNameStructure)
- StringTableIndex += 1
- StringTableSize += (len(Sku.VariableName) - 3 + 1) * 2
- VariableHeadStringIndex = 0
- for Index in range(Dict['STRING_TABLE_VALUE'].index(VariableNameStructure)):
- VariableHeadStringIndex += Dict['STRING_TABLE_LENGTH'][Index]
-
+ # Store all variable names of one HII PCD under different SKU to stringTable
+ # and calculate the VariableHeadStringIndex
+ if SkuIdIndex - 2 == 0:
+ for SkuName in Pcd.SkuInfoList:
+ SkuInfo = Pcd.SkuInfoList[SkuName]
+ if SkuInfo.SkuId == None or SkuInfo.SkuId == '':
+ continue
+ VariableNameStructure = StringToArray(SkuInfo.VariableName)
+ if VariableNameStructure not in Dict['STRING_TABLE_VALUE']:
+ Dict['STRING_TABLE_CNAME'].append(CName)
+ Dict['STRING_TABLE_GUID'].append(TokenSpaceGuid)
+ if StringTableIndex == 0:
+ Dict['STRING_TABLE_INDEX'].append('')
+ else:
+ Dict['STRING_TABLE_INDEX'].append('_%d' % StringTableIndex)
+ VarNameSize = len(VariableNameStructure.replace(',',' ').split())
+ Dict['STRING_TABLE_LENGTH'].append(VarNameSize )
+ Dict['STRING_TABLE_VALUE'].append(VariableNameStructure)
+ StringHeadOffsetList.append(str(StringTableSize) + 'U')
+ VarStringDbOffsetList = []
+ VarStringDbOffsetList.append(StringTableSize)
+ Dict['STRING_DB_VALUE'].append(VarStringDbOffsetList)
+ StringTableIndex += 1
+ StringTableSize += len(VariableNameStructure.replace(',',' ').split())
+ VariableHeadStringIndex = 0
+ for Index in range(Dict['STRING_TABLE_VALUE'].index(VariableNameStructure)):
+ VariableHeadStringIndex += Dict['STRING_TABLE_LENGTH'][Index]
+ VariableHeadList.append(VariableHeadStringIndex)
+
+ VariableHeadStringIndex = VariableHeadList[SkuIdIndex - 2]
# store VariableGuid to GuidTable and get the VariableHeadGuidIndex
VariableGuidStructure = Sku.VariableGuidValue
VariableGuid = GuidStructureStringToGuidValueName(VariableGuidStructure)
@@ -1246,7 +1265,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
# the Pcd default value was filled before
VariableOffset = len(Dict['VARDEF_DB_VALUE_' + Pcd.DatumType]) - 1
VariableRefTable = Dict['VARDEF_DB_VALUE_' + Pcd.DatumType]
- VariableDbValueList.append([VariableHeadGuidIndex, VariableHeadStringIndex, Sku.VariableOffset, VariableOffset, VariableRefTable])
+ VariableDbValueList.append([VariableHeadGuidIndex, VariableHeadStringIndex, Sku.VariableOffset, VariableOffset, VariableRefTable])
elif Sku.VpdOffset != '':
Pcd.TokenTypeList += ['PCD_TYPE_VPD']
@@ -1256,11 +1275,8 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
# Also add the VOID* string of VPD PCD to SizeTable
if Pcd.DatumType == 'VOID*':
NumberOfSizeItems += 1
- Dict['SIZE_TABLE_CNAME'].append(CName)
- Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)
# For VPD type of PCD, its current size is equal to its MAX size.
- Dict['SIZE_TABLE_CURRENT_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')
- Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')
+ VoidStarTypeCurrSize = [str(Pcd.MaxDatumSize) + 'U']
continue
if Pcd.DatumType == 'VOID*':
@@ -1278,29 +1294,36 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
else:
Dict['STRING_TABLE_INDEX'].append('_%d' % StringTableIndex)
if Sku.DefaultValue[0] == 'L':
- Size = (len(Sku.DefaultValue) - 3 + 1) * 2
- Dict['STRING_TABLE_VALUE'].append(StringToArray(Sku.DefaultValue))
+ DefaultValueBinStructure = StringToArray(Sku.DefaultValue)
+ Size = len(DefaultValueBinStructure.replace(',',' ').split())
+ Dict['STRING_TABLE_VALUE'].append(DefaultValueBinStructure)
elif Sku.DefaultValue[0] == '"':
- Size = len(Sku.DefaultValue) - 2 + 1
- Dict['STRING_TABLE_VALUE'].append(StringToArray(Sku.DefaultValue))
+ DefaultValueBinStructure = StringToArray(Sku.DefaultValue)
+ Size = len(Sku.DefaultValue) -2 + 1
+ Dict['STRING_TABLE_VALUE'].append(DefaultValueBinStructure)
elif Sku.DefaultValue[0] == '{':
- Size = len(Sku.DefaultValue.replace(',',' ').split())
- Dict['STRING_TABLE_VALUE'].append(Sku.DefaultValue)
+ DefaultValueBinStructure = StringToArray(Sku.DefaultValue)
+ Size = len(Sku.DefaultValue.split(","))
+ Dict['STRING_TABLE_VALUE'].append(DefaultValueBinStructure)
StringHeadOffsetList.append(str(StringTableSize) + 'U')
StringDbOffsetList.append(StringTableSize)
- Dict['SIZE_TABLE_CNAME'].append(CName)
- Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)
- Dict['SIZE_TABLE_CURRENT_LENGTH'].append(str(Size) + 'U')
- Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')
if Pcd.MaxDatumSize != '':
MaxDatumSize = int(Pcd.MaxDatumSize, 0)
if MaxDatumSize < Size:
- MaxDatumSize = Size
- Size = MaxDatumSize
- Dict['STRING_TABLE_LENGTH'].append(Size)
+ EdkLogger.error("build", AUTOGEN_ERROR,
+ "The maximum size of VOID* type PCD '%s.%s' is less than its actual size occupied." % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
+ ExtraData="[%s]" % str(Platform))
+ else:
+ MaxDatumSize = Size
+ StringTabLen = MaxDatumSize
+ if StringTabLen % 2:
+ StringTabLen += 1
+ if Sku.VpdOffset == '':
+ VoidStarTypeCurrSize.append(str(Size) + 'U')
+ Dict['STRING_TABLE_LENGTH'].append(StringTabLen)
StringTableIndex += 1
- StringTableSize += (Size)
+ StringTableSize += (StringTabLen)
else:
if "PCD_TYPE_HII" not in Pcd.TokenTypeList:
Pcd.TokenTypeList += ['PCD_TYPE_DATA']
@@ -1326,8 +1349,14 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
DbValueList.append(Sku.DefaultValue)
Pcd.TokenTypeList = list(set(Pcd.TokenTypeList))
+ if Pcd.DatumType == 'VOID*':
+ Dict['SIZE_TABLE_CNAME'].append(CName)
+ Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)
+ Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')
+ Dict['SIZE_TABLE_CURRENT_LENGTH'].append(VoidStarTypeCurrSize)
- SkuIndexTableTmp[0] = len(SkuIndexTableTmp)
+
+ SkuIndexTableTmp[0] = len(SkuIndexTableTmp) - 1
if len(Pcd.SkuInfoList) > 1:
Dict['SKU_INDEX_VALUE'].append(SkuIndexTableTmp)
@@ -1352,6 +1381,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
Dict['STRING_HEAD_NUMSKUS_DECL'].append(len(Pcd.SkuInfoList))
Dict['STRING_HEAD_VALUE'].append(', '.join(StringHeadOffsetList))
Dict['STRING_DB_VALUE'].append(StringDbOffsetList)
+ PCD_STRING_INDEX_MAP[len(Dict['STRING_HEAD_CNAME_DECL']) -1 ] = len(Dict['STRING_DB_VALUE']) -1
if 'PCD_TYPE_DATA' in Pcd.TokenTypeList:
Dict[Pcd.InitString+'_CNAME_DECL_'+Pcd.DatumType].append(CName)
Dict[Pcd.InitString+'_GUID_DECL_'+Pcd.DatumType].append(TokenSpaceGuid)
@@ -1405,11 +1435,12 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
TokenSpaceGuidCNameArray = StringToArray('"' + TokenSpaceGuidCName + '"' )
if TokenSpaceGuidCNameArray not in Dict['PCD_TOKENSPACE']:
Dict['PCD_TOKENSPACE'].append(TokenSpaceGuidCNameArray)
- Dict['PCD_TOKENSPACE_LENGTH'].append( len(TokenSpaceGuidCName) + 1 )
+ Dict['PCD_TOKENSPACE_LENGTH'].append( len(TokenSpaceGuidCNameArray.split(",")) )
Dict['PCD_TOKENSPACE_MAP'][GeneratedTokenNumber] = Dict['PCD_TOKENSPACE'].index(TokenSpaceGuidCNameArray)
- Dict['PCD_CNAME'][GeneratedTokenNumber] = StringToArray('"' + CName + '"' )
+ CNameBinArray = StringToArray('"' + CName + '"' )
+ Dict['PCD_CNAME'][GeneratedTokenNumber] = CNameBinArray
- Dict['PCD_CNAME_LENGTH'][GeneratedTokenNumber] = len(CName) + 1
+ Dict['PCD_CNAME_LENGTH'][GeneratedTokenNumber] = len(CNameBinArray.split(","))
Pcd.TokenTypeList = list(set(Pcd.TokenTypeList))
@@ -1427,6 +1458,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
if 'PCD_TYPE_STRING' in Pcd.TokenTypeList and 'PCD_TYPE_HII' not in Pcd.TokenTypeList:
# Find index by CName, TokenSpaceGuid
Offset = GetMatchedIndex(CName, Dict['STRING_HEAD_CNAME_DECL'], TokenSpaceGuid, Dict['STRING_HEAD_GUID_DECL'])
+ Offset = PCD_STRING_INDEX_MAP[Offset]
assert(Offset != -1)
Table = Dict['STRING_DB_VALUE']
if 'PCD_TYPE_DATA' in Pcd.TokenTypeList:
@@ -1475,13 +1507,13 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
Dict['PCD_TOKENSPACE_OFFSET'].append(TokenSpaceIndex)
for index in range(len(Dict['PCD_TOKENSPACE'])):
StringTableSize += Dict['PCD_TOKENSPACE_LENGTH'][index]
-
+ StringTableIndex += 1
for index in range(len(Dict['PCD_CNAME'])):
Dict['PCD_CNAME_OFFSET'].append(StringTableSize)
Dict['PCD_NAME_OFFSET'].append(Dict['PCD_TOKENSPACE_OFFSET'][index])
Dict['PCD_NAME_OFFSET'].append(StringTableSize)
StringTableSize += Dict['PCD_CNAME_LENGTH'][index]
-
+ StringTableIndex += 1
if GuidList != []:
Dict['GUID_TABLE_EMPTY'] = 'FALSE'
Dict['GUID_TABLE_SIZE'] = str(len(GuidList)) + 'U'
@@ -1501,7 +1533,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
if Dict['SIZE_TABLE_CNAME'] == []:
Dict['SIZE_TABLE_CNAME'].append('')
Dict['SIZE_TABLE_GUID'].append('')
- Dict['SIZE_TABLE_CURRENT_LENGTH'].append('0U')
+ Dict['SIZE_TABLE_CURRENT_LENGTH'].append(['0U'])
Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append('0U')
if NumberOfLocalTokens != 0:
@@ -1524,7 +1556,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
if NumberOfSkuEnabledPcd != 0:
Dict['SKU_HEAD_SIZE'] = str(NumberOfSkuEnabledPcd) + 'U'
- Dict['SKUID_VALUE'][0] = len(Dict['SKUID_VALUE'])
+ Dict['SKUID_VALUE'][0] = len(Dict['SKUID_VALUE']) - 1
AutoGenH.Append(gPcdDatabaseAutoGenH.Replace(Dict))
if NumberOfLocalTokens == 0:
diff --git a/BaseTools/Source/Python/Common/BuildVersion.py b/BaseTools/Source/Python/Common/BuildVersion.py
index 2a3b0aa..4decd82 100644
--- a/BaseTools/Source/Python/Common/BuildVersion.py
+++ b/BaseTools/Source/Python/Common/BuildVersion.py
@@ -13,4 +13,4 @@
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
-gBUILD_VERSION = "Build 2610"
+gBUILD_VERSION = "Build 2640"
diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py
index dbe7215..cd420d1 100644
--- a/BaseTools/Source/Python/Common/DataType.py
+++ b/BaseTools/Source/Python/Common/DataType.py
@@ -486,6 +486,8 @@ PCDS_DYNAMICEX_DEFAULT = "PcdsDynamicExDefault"
PCDS_DYNAMICEX_VPD = "PcdsDynamicExVpd"
PCDS_DYNAMICEX_HII = "PcdsDynamicExHii"
+SECTIONS_HAVE_ITEM_PCD = [PCDS_DYNAMIC_DEFAULT.upper(),PCDS_DYNAMIC_VPD.upper(),PCDS_DYNAMIC_HII.upper(), \
+ PCDS_DYNAMICEX_DEFAULT.upper(),PCDS_DYNAMICEX_VPD.upper(),PCDS_DYNAMICEX_HII.upper()]
# Section allowed to have items after arch
SECTIONS_HAVE_ITEM_AFTER_ARCH = [TAB_LIBRARY_CLASSES.upper(), TAB_DEPEX.upper(), TAB_USER_EXTENSIONS.upper(),
PCDS_DYNAMIC_DEFAULT.upper(),
diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py
index 9605815..fafd84a 100644
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -1238,9 +1238,16 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
Value = FieldList[0]
Size = ''
if len(FieldList) > 1:
- Size = FieldList[1]
+ Type = FieldList[1]
+ # Fix the PCD type when no DataType input
+ if Type == 'VOID*':
+ DataType = 'VOID*'
+ else:
+ Size = FieldList[1]
+ if len(FieldList) > 2:
+ Size = FieldList[2]
if DataType == 'VOID*':
- IsValid = (len(FieldList) <= 2)
+ IsValid = (len(FieldList) <= 3)
else:
IsValid = (len(FieldList) <= 1)
return [Value, '', Size], IsValid, 0
@@ -1255,7 +1262,12 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
Size = FieldList[2]
else:
if Type == 'VOID*':
- Size = str(len(Value))
+ if Value.startswith("L"):
+ Size = str((len(Value)- 3 + 1) * 2)
+ elif Value.startswith("{"):
+ Size = str(len(Value.split(",")))
+ else:
+ Size = str(len(Value) -2 + 1 )
if DataType == 'VOID*':
IsValid = (len(FieldList) <= 3)
else:
diff --git a/BaseTools/Source/Python/Common/String.py b/BaseTools/Source/Python/Common/String.py
index c282326..04b45a0 100644
--- a/BaseTools/Source/Python/Common/String.py
+++ b/BaseTools/Source/Python/Common/String.py
@@ -401,16 +401,6 @@ def CleanString2(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyl
Comment = Line[Index:].strip()
Line = Line[0:Index].strip()
break
- if Comment:
- # Remove prefixed and trailing comment characters
- Start = 0
- End = len(Comment)
- while Start < End and Comment.startswith(CommentCharacter, Start, End):
- Start += 1
- while End >= 0 and Comment.endswith(CommentCharacter, Start, End):
- End -= 1
- Comment = Comment[Start:End]
- Comment = Comment.strip()
return Line, Comment
@@ -811,11 +801,25 @@ def StringToArray(String):
return "{%s, 0x00, 0x00}" % ", ".join(["0x%02x, 0x00" % ord(C) for C in String[2:-1]])
elif String.startswith('"'):
if String == "\"\"":
- return "{0x00}";
+ return "{0x00,0x00}"
else:
- return "{%s, 0x00}" % ", ".join(["0x%02x" % ord(C) for C in String[1:-1]])
+ StringLen = len(String[1:-1])
+ if StringLen % 2:
+ return "{%s, 0x00}" % ", ".join(["0x%02x" % ord(C) for C in String[1:-1]])
+ else:
+ return "{%s, 0x00,0x00}" % ", ".join(["0x%02x" % ord(C) for C in String[1:-1]])
+ elif String.startswith('{'):
+ StringLen = len(String.split(","))
+ if StringLen % 2:
+ return "{%s, 0x00}" % ", ".join([ C for C in String[1:-1].split(',')])
+ else:
+ return "{%s}" % ", ".join([ C for C in String[1:-1].split(',')])
+
else:
- return '{%s, 0}' % ', '.join(String.split())
+ if len(String.split()) % 2:
+ return '{%s, 0}' % ', '.join(String.split())
+ else:
+ return '{%s, 0,0}' % ', '.join(String.split())
def StringArrayLength(String):
if isinstance(String, unicode):
diff --git a/BaseTools/Source/Python/CommonDataClass/DataClass.py b/BaseTools/Source/Python/CommonDataClass/DataClass.py
index c69152b..2cc09ff 100644
--- a/BaseTools/Source/Python/CommonDataClass/DataClass.py
+++ b/BaseTools/Source/Python/CommonDataClass/DataClass.py
@@ -97,6 +97,7 @@ MODEL_META_DATA_COMMENT = 5016
MODEL_META_DATA_GLOBAL_DEFINE = 5017
MODEL_META_DATA_SECTION_HEADER = 5100
MODEL_META_DATA_SUBSECTION_HEADER = 5200
+MODEL_META_DATA_TAIL_COMMENT = 5300
MODEL_EXTERNAL_DEPENDENCY = 10000
diff --git a/BaseTools/Source/Python/GenFds/CapsuleData.py b/BaseTools/Source/Python/GenFds/CapsuleData.py
index aef8df0..2d532be 100644
--- a/BaseTools/Source/Python/GenFds/CapsuleData.py
+++ b/BaseTools/Source/Python/GenFds/CapsuleData.py
@@ -1,7 +1,7 @@
## @file
# generate capsule
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007-2013, 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
@@ -134,4 +134,24 @@ class CapsuleAnyFile (CapsuleData):
# @retval string Generated file name
#
def GenCapsuleSubItem(self):
+ return self.FileName
+
+## Afile class for capsule data
+#
+#
+class CapsuleAfile (CapsuleData):
+ ## The constructor
+ #
+ # @param self The object pointer
+ #
+ def __init__(self) :
+ self.Ffs = None
+ self.FileName = None
+
+ ## generate Afile capsule data
+ #
+ # @param self The object pointer
+ # @retval string Generated file name
+ #
+ def GenCapsuleSubItem(self):
return self.FileName \ No newline at end of file
diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py
index 661e16a..f1e03f4 100644
--- a/BaseTools/Source/Python/GenFds/FdfParser.py
+++ b/BaseTools/Source/Python/GenFds/FdfParser.py
@@ -1,7 +1,7 @@
## @file
# parse FDF file
#
-# Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 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
@@ -77,6 +77,7 @@ SEPERATOR_TUPLE = ('=', '|', ',', '{', '}')
RegionSizePattern = re.compile("\s*(?P<base>(?:0x|0X)?[a-fA-F0-9]+)\s*\|\s*(?P<size>(?:0x|0X)?[a-fA-F0-9]+)\s*")
RegionSizeGuidPattern = re.compile("\s*(?P<base>\w+\.\w+)\s*\|\s*(?P<size>\w+\.\w+)\s*")
+RegionOffsetPcdPattern = re.compile("\s*(?P<base>\w+\.\w+)\s*$")
ShortcutPcdPattern = re.compile("\s*\w+\s*=\s*(?P<value>(?:0x|0X)?[a-fA-F0-9]+)\s*\|\s*(?P<name>\w+\.\w+)\s*")
IncludeFileList = []
@@ -1732,8 +1733,7 @@ class FdfParser:
try:
return long(
ValueExpression(Expr,
- dict(['%s.%s' % (Pcd[1], Pcd[0]), Val]
- for Pcd, Val in self.Profile.PcdDict.iteritems())
+ self.__CollectMacroPcd()
)(True),0)
except Exception:
self.SetFileBufferPos(StartPos)
@@ -1769,16 +1769,26 @@ class FdfParser:
return True
if not self.__Token in ("SET", "FV", "FILE", "DATA", "CAPSULE"):
+ #
+ # If next token is a word which is not a valid FV type, it might be part of [PcdOffset[|PcdSize]]
+ # Or it might be next region's offset described by an expression which starts with a PCD.
+ # PcdOffset[|PcdSize] or OffsetPcdExpression|Size
+ #
self.__UndoToken()
- RegionObj.PcdOffset = self.__GetNextPcdName()
- self.Profile.PcdDict[RegionObj.PcdOffset] = "0x%08X" % (RegionObj.Offset + long(Fd.BaseAddress, 0))
- FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)
- self.Profile.PcdFileLineDict[RegionObj.PcdOffset] = FileLineTuple
- if self.__IsToken( "|"):
- RegionObj.PcdSize = self.__GetNextPcdName()
- self.Profile.PcdDict[RegionObj.PcdSize] = "0x%08X" % RegionObj.Size
+ IsRegionPcd = (RegionSizeGuidPattern.match(self.__CurrentLine()[self.CurrentOffsetWithinLine:]) or
+ RegionOffsetPcdPattern.match(self.__CurrentLine()[self.CurrentOffsetWithinLine:]))
+ if IsRegionPcd:
+ RegionObj.PcdOffset = self.__GetNextPcdName()
+ self.Profile.PcdDict[RegionObj.PcdOffset] = "0x%08X" % (RegionObj.Offset + long(Fd.BaseAddress, 0))
+ self.__PcdDict['%s.%s' % (RegionObj.PcdOffset[1], RegionObj.PcdOffset[0])] = "0x%x" % RegionObj.Offset
FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)
- self.Profile.PcdFileLineDict[RegionObj.PcdSize] = FileLineTuple
+ self.Profile.PcdFileLineDict[RegionObj.PcdOffset] = FileLineTuple
+ if self.__IsToken( "|"):
+ RegionObj.PcdSize = self.__GetNextPcdName()
+ self.Profile.PcdDict[RegionObj.PcdSize] = "0x%08X" % RegionObj.Size
+ self.__PcdDict['%s.%s' % (RegionObj.PcdSize[1], RegionObj.PcdSize[0])] = "0x%x" % RegionObj.Size
+ FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)
+ self.Profile.PcdFileLineDict[RegionObj.PcdSize] = FileLineTuple
if not self.__GetNextWord():
return True
@@ -1805,6 +1815,9 @@ class FdfParser:
self.__UndoToken()
self.__GetRegionDataType( RegionObj)
else:
+ self.__UndoToken()
+ if self.__GetRegionLayout(Fd):
+ return True
raise Warning("A valid region type was not found. "
"Valid types are [SET, FV, CAPSULE, FILE, DATA]. This error occurred",
self.FileName, self.CurrentLineNumber)
@@ -2158,8 +2171,9 @@ class FdfParser:
# @retval None
#
def __GetFvAttributes(self, FvObj):
-
+ IsWordToken = False
while self.__GetNextWord():
+ IsWordToken = True
name = self.__Token
if name not in ("ERASE_POLARITY", "MEMORY_MAPPED", \
"STICKY_WRITE", "LOCK_CAP", "LOCK_STATUS", "WRITE_ENABLED_CAP", \
@@ -2178,7 +2192,7 @@ class FdfParser:
FvObj.FvAttributeDict[name] = self.__Token
- return True
+ return IsWordToken
## __GetFvNameGuid() method
#
@@ -2562,22 +2576,7 @@ class FdfParser:
FfsFileObj.CurrentLineNum = self.CurrentLineNumber
FfsFileObj.CurrentLineContent = self.__CurrentLine()
FfsFileObj.FileName = self.__Token
- if FfsFileObj.FileName.replace('$(WORKSPACE)', '').find('$') == -1:
- #
- # For file in OUTPUT_DIRECTORY will not check whether it exist or not at AutoGen phase.
- #
- if not GlobalData.gAutoGenPhase:
- #do case sensitive check for file path
- ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
- if ErrorCode != 0:
- EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
- else:
- if not self.__GetMacroValue("OUTPUT_DIRECTORY") in FfsFileObj.FileName:
- #do case sensitive check for file path
- ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
- if ErrorCode != 0:
- EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
-
+ self.__VerifyFile(FfsFileObj.FileName)
if not self.__IsToken( "}"):
raise Warning("expected '}'", self.FileName, self.CurrentLineNumber)
@@ -2823,11 +2822,7 @@ class FdfParser:
if not self.__GetNextToken():
raise Warning("expected section file path", self.FileName, self.CurrentLineNumber)
DataSectionObj.SectFileName = self.__Token
- if DataSectionObj.SectFileName.replace('$(WORKSPACE)', '').find('$') == -1:
- #do case sensitive check for file path
- ErrorCode, ErrorInfo = PathClass(NormPath(DataSectionObj.SectFileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
- if ErrorCode != 0:
- EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
+ self.__VerifyFile(DataSectionObj.SectFileName)
else:
if not self.__GetCglSection(DataSectionObj):
return False
@@ -2836,6 +2831,21 @@ class FdfParser:
return True
+ ## __VerifyFile
+ #
+ # Check if file exists or not:
+ # If current phase if GenFds, the file must exist;
+ # If current phase is AutoGen and the file is not in $(OUTPUT_DIRECTORY), the file must exist
+ # @param FileName: File path to be verified.
+ #
+ def __VerifyFile(self, FileName):
+ if FileName.replace('$(WORKSPACE)', '').find('$') != -1:
+ return
+ if not GlobalData.gAutoGenPhase or not self.__GetMacroValue("OUTPUT_DIRECTORY") in FileName:
+ ErrorCode, ErrorInfo = PathClass(NormPath(FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
+ if ErrorCode != 0:
+ EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
+
## __GetCglSection() method
#
# Get compressed or GUIDed section for Obj
@@ -3066,12 +3076,14 @@ class FdfParser:
Value += self.__Token.strip()
elif Name == 'OEM_CAPSULE_FLAGS':
Value = self.__Token.strip()
+ if not Value.upper().startswith('0X'):
+ raise Warning("expected hex value between 0x0000 and 0xFFFF", self.FileName, self.CurrentLineNumber)
try:
Value = int(Value, 0)
except ValueError:
- raise Warning("expected integer value between 0x0000 and 0xFFFF", self.FileName, self.CurrentLineNumber)
+ raise Warning("expected hex value between 0x0000 and 0xFFFF", self.FileName, self.CurrentLineNumber)
if not 0x0000 <= Value <= 0xFFFF:
- raise Warning("expected integer value between 0x0000 and 0xFFFF", self.FileName, self.CurrentLineNumber)
+ raise Warning("expected hex value between 0x0000 and 0xFFFF", self.FileName, self.CurrentLineNumber)
Value = self.__Token.strip()
else:
Value = self.__Token.strip()
@@ -3095,7 +3107,8 @@ class FdfParser:
IsFv = self.__GetFvStatement(Obj)
IsFd = self.__GetFdStatement(Obj)
IsAnyFile = self.__GetAnyFileStatement(Obj)
- if not (IsInf or IsFile or IsFv or IsFd or IsAnyFile):
+ IsAfile = self.__GetAfileStatement(Obj)
+ if not (IsInf or IsFile or IsFv or IsFd or IsAnyFile or IsAfile):
break
## __GetFvStatement() method
@@ -3187,6 +3200,47 @@ class FdfParser:
CapsuleAnyFile.FileName = AnyFileName
CapsuleObj.CapsuleDataList.append(CapsuleAnyFile)
return True
+
+ ## __GetAfileStatement() method
+ #
+ # Get Afile for capsule
+ #
+ # @param self The object pointer
+ # @param CapsuleObj for whom Afile is got
+ # @retval True Successfully find a Afile statement
+ # @retval False Not able to find a Afile statement
+ #
+ def __GetAfileStatement(self, CapsuleObj):
+
+ if not self.__IsKeyword("APPEND"):
+ return False
+
+ if not self.__IsToken("="):
+ raise Warning("expected '='", self.FileName, self.CurrentLineNumber)
+
+ if not self.__GetNextToken():
+ raise Warning("expected Afile name", self.FileName, self.CurrentLineNumber)
+
+ AfileName = self.__Token
+ AfileBaseName = os.path.basename(AfileName)
+
+ if os.path.splitext(AfileBaseName)[1] not in [".bin",".BIN",".Bin",".dat",".DAT",".Dat",".data",".DATA",".Data"]:
+ raise Warning('invalid binary file type, should be one of "bin","BIN","Bin","dat","DAT","Dat","data","DATA","Data"', \
+ self.FileName, self.CurrentLineNumber)
+
+ if not os.path.isabs(AfileName):
+ AfileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(AfileName)
+ self.__VerifyFile(AfileName)
+ else:
+ if not os.path.exists(AfileName):
+ raise Warning('%s does not exist' % AfileName, self.FileName, self.CurrentLineNumber)
+ else:
+ pass
+
+ CapsuleAfile = CapsuleData.CapsuleAfile()
+ CapsuleAfile.FileName = AfileName
+ CapsuleObj.CapsuleDataList.append(CapsuleAfile)
+ return True
## __GetRule() method
#
diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
index 3d16398..feab8c8 100644
--- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
+++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
@@ -43,6 +43,8 @@ from PatchPcdValue.PatchPcdValue import PatchBinaryFile
#
#
class FfsInfStatement(FfsInfStatementClassObject):
+ ## The mapping dictionary from datum type to its maximum number.
+ _MAX_SIZE_TYPE = {"BOOLEAN":0x01, "UINT8":0xFF, "UINT16":0xFFFF, "UINT32":0xFFFFFFFF, "UINT64":0xFFFFFFFFFFFFFFFF}
## The constructor
#
# @param self The object pointer
@@ -204,10 +206,15 @@ class FfsInfStatement(FfsInfStatementClassObject):
if Inf._Defs != None and len(Inf._Defs) > 0:
self.OptRomDefs.update(Inf._Defs)
+
self.PatchPcds = []
InfPcds = Inf.Pcds
Platform = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, self.CurrentArch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]
FdfPcdDict = GenFdsGlobalVariable.FdfParser.Profile.PcdDict
+
+ # Workaround here: both build and GenFds tool convert the workspace path to lower case
+ # But INF file path in FDF and DSC file may have real case characters.
+ # Try to convert the path to lower case to see if PCDs value are override by DSC.
DscModules = {}
for DscModule in Platform.Modules:
DscModules[str(DscModule).lower()] = Platform.Modules[DscModule]
@@ -217,6 +224,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
continue
if Pcd.Type != 'PatchableInModule':
continue
+ # Override Patchable PCD value by the value from DSC
PatchPcd = None
InfLowerPath = str(PathClassObj).lower()
if InfLowerPath in DscModules and PcdKey in DscModules[InfLowerPath].Pcds:
@@ -227,16 +235,22 @@ class FfsInfStatement(FfsInfStatementClassObject):
if PatchPcd and Pcd.Type == PatchPcd.Type:
DefaultValue = PatchPcd.DefaultValue
DscOverride = True
+
+ # Override Patchable PCD value by the value from FDF
FdfOverride = False
if PcdKey in FdfPcdDict:
DefaultValue = FdfPcdDict[PcdKey]
FdfOverride = True
+
if not DscOverride and not FdfOverride:
continue
+ # Check value, if value are equal, no need to patch
if Pcd.DatumType == "VOID*":
if Pcd.DefaultValue == DefaultValue or DefaultValue in [None, '']:
continue
+ # Get the string size from FDF or DSC
if DefaultValue[0] == 'L':
+ # Remove L"", but the '\0' must be appended
MaxDatumSize = str((len(DefaultValue) - 2) * 2)
elif DefaultValue[0] == '{':
MaxDatumSize = str(len(DefaultValue.split(',')))
@@ -244,6 +258,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
MaxDatumSize = str(len(DefaultValue) - 1)
if DscOverride:
Pcd.MaxDatumSize = PatchPcd.MaxDatumSize
+ # If no defined the maximum size in DSC, try to get current size from INF
if Pcd.MaxDatumSize in ['', None]:
Pcd.MaxDatumSize = str(len(Pcd.DefaultValue.split(',')))
else:
@@ -259,6 +274,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
continue
except:
continue
+ # Check the Pcd size and data type
if Pcd.DatumType == "VOID*":
if int(MaxDatumSize) > int(Pcd.MaxDatumSize):
EdkLogger.error("GenFds", GENFDS_ERROR, "The size of VOID* type PCD '%s.%s' exceeds its maximum size %d bytes." \
@@ -306,7 +322,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
return EfiFile
Basename = os.path.basename(EfiFile)
Output = os.path.join(self.OutputPath, Basename)
- CopyLongFilePath(EfiFile, Output)
+ shutil.copy(EfiFile, Output)
for Pcd in self.PatchPcds:
RetVal, RetStr = PatchBinaryFile(Output, int(Pcd.Offset, 0), Pcd.DatumType, Pcd.DefaultValue, Pcd.MaxDatumSize)
if RetVal:
diff --git a/BaseTools/Source/Python/GenFds/Fv.py b/BaseTools/Source/Python/GenFds/Fv.py
index 6c7a050..d79bed2 100644
--- a/BaseTools/Source/Python/GenFds/Fv.py
+++ b/BaseTools/Source/Python/GenFds/Fv.py
@@ -86,6 +86,8 @@ class FV (FvClassObject):
GenFdsGlobalVariable.ErrorLogger("Capsule %s in FD region can't contain a FV %s in FD region." % (self.CapsuleName, self.UiFvName.upper()))
GenFdsGlobalVariable.InfLogger( "\nGenerating %s FV" %self.UiFvName)
+ GenFdsGlobalVariable.LargeFileInFvFlags.append(False)
+ FFSGuid = None
if self.FvBaseAddress != None:
BaseAddress = self.FvBaseAddress
@@ -130,12 +132,15 @@ class FV (FvClassObject):
OrigFvInfo = None
if os.path.exists (FvInfoFileName):
OrigFvInfo = open(FvInfoFileName, 'r').read()
+ if GenFdsGlobalVariable.LargeFileInFvFlags[-1]:
+ FFSGuid = GenFdsGlobalVariable.EFI_FIRMWARE_FILE_SYSTEM3_GUID;
GenFdsGlobalVariable.GenerateFirmwareVolume(
FvOutputFile,
[self.InfFileName],
AddressFile=FvInfoFileName,
FfsList=FfsFileList,
- ForceRebase=self.FvForceRebase
+ ForceRebase=self.FvForceRebase,
+ FileSystemGuid=FFSGuid
)
NewFvInfo = None
@@ -159,13 +164,16 @@ class FV (FvClassObject):
for FfsFile in self.FfsList :
FileName = FfsFile.GenFfs(MacroDict, FvChildAddr, BaseAddress)
+ if GenFdsGlobalVariable.LargeFileInFvFlags[-1]:
+ FFSGuid = GenFdsGlobalVariable.EFI_FIRMWARE_FILE_SYSTEM3_GUID;
#Update GenFv again
GenFdsGlobalVariable.GenerateFirmwareVolume(
FvOutputFile,
[self.InfFileName],
AddressFile=FvInfoFileName,
FfsList=FfsFileList,
- ForceRebase=self.FvForceRebase
+ ForceRebase=self.FvForceRebase,
+ FileSystemGuid=FFSGuid
)
#
@@ -194,6 +202,7 @@ class FV (FvClassObject):
self.FvAlignment = str (FvAlignmentValue)
FvFileObj.close()
GenFds.ImageBinDict[self.UiFvName.upper() + 'fv'] = FvOutputFile
+ GenFdsGlobalVariable.LargeFileInFvFlags.pop()
return FvOutputFile
## __InitializeInf__()
diff --git a/BaseTools/Source/Python/GenFds/GenFds.py b/BaseTools/Source/Python/GenFds/GenFds.py
index 400008e..eca2164 100644
--- a/BaseTools/Source/Python/GenFds/GenFds.py
+++ b/BaseTools/Source/Python/GenFds/GenFds.py
@@ -1,7 +1,7 @@
## @file
# generate flash image
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2013, 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
@@ -41,7 +41,7 @@ from Common.BuildVersion import gBUILD_VERSION
## Version and Copyright
versionNumber = "1.0" + ' ' + gBUILD_VERSION
__version__ = "%prog Version " + versionNumber
-__copyright__ = "Copyright (c) 2007 - 2010, Intel Corporation All rights reserved."
+__copyright__ = "Copyright (c) 2007 - 2013, Intel Corporation All rights reserved."
## Tool entrance method
#
diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
index 2fa4cb8..1cd31bc 100644
--- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
+++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
@@ -65,6 +65,19 @@ class GenFdsGlobalVariable:
BuildRuleFamily = "MSFT"
ToolChainFamily = "MSFT"
__BuildRuleDatabase = None
+
+ #
+ # The list whose element are flags to indicate if large FFS or SECTION files exist in FV.
+ # At the beginning of each generation of FV, false flag is appended to the list,
+ # after the call to GenerateSection returns, check the size of the output file,
+ # if it is greater than 0xFFFFFF, the tail flag in list is set to true,
+ # and EFI_FIRMWARE_FILE_SYSTEM3_GUID is passed to C GenFv.
+ # At the end of generation of FV, pop the flag.
+ # List is used as a stack to handle nested FV generation.
+ #
+ LargeFileInFvFlags = []
+ EFI_FIRMWARE_FILE_SYSTEM3_GUID = '5473C07A-3DCB-4dca-BD6F-1E9689E7349A'
+ LARGE_FILE_SIZE = 0x1000000
SectionHeader = struct.Struct("3B 1B")
@@ -390,11 +403,13 @@ class GenFdsGlobalVariable:
Cmd += Input
SaveFileOnChange(CommandFile, ' '.join(Cmd), False)
- if not GenFdsGlobalVariable.NeedsUpdate(Output, list(Input) + [CommandFile]):
- return
- GenFdsGlobalVariable.DebugLogger(EdkLogger.DEBUG_5, "%s needs update because of newer %s" % (Output, Input))
+ if GenFdsGlobalVariable.NeedsUpdate(Output, list(Input) + [CommandFile]):
+ GenFdsGlobalVariable.DebugLogger(EdkLogger.DEBUG_5, "%s needs update because of newer %s" % (Output, Input))
+ GenFdsGlobalVariable.CallExternalTool(Cmd, "Failed to generate section")
- GenFdsGlobalVariable.CallExternalTool(Cmd, "Failed to generate section")
+ if (os.path.getsize(Output) >= GenFdsGlobalVariable.LARGE_FILE_SIZE and
+ GenFdsGlobalVariable.LargeFileInFvFlags):
+ GenFdsGlobalVariable.LargeFileInFvFlags[-1] = True
@staticmethod
def GetAlignment (AlignString):
@@ -432,7 +447,7 @@ class GenFdsGlobalVariable:
@staticmethod
def GenerateFirmwareVolume(Output, Input, BaseAddress=None, ForceRebase=None, Capsule=False, Dump=False,
- AddressFile=None, MapFile=None, FfsList=[]):
+ AddressFile=None, MapFile=None, FfsList=[], FileSystemGuid=None):
if not GenFdsGlobalVariable.NeedsUpdate(Output, Input+FfsList):
return
GenFdsGlobalVariable.DebugLogger(EdkLogger.DEBUG_5, "%s needs update because of newer %s" % (Output, Input))
@@ -454,6 +469,8 @@ class GenFdsGlobalVariable:
Cmd += ["-a", AddressFile]
if MapFile not in [None, '']:
Cmd += ["-m", MapFile]
+ if FileSystemGuid:
+ Cmd += ["-g", FileSystemGuid]
Cmd += ["-o", Output]
for I in Input:
Cmd += ["-i", I]
diff --git a/BaseTools/Source/Python/UPT/BuildVersion.py b/BaseTools/Source/Python/UPT/BuildVersion.py
index 2858e32..1ce93db 100644
--- a/BaseTools/Source/Python/UPT/BuildVersion.py
+++ b/BaseTools/Source/Python/UPT/BuildVersion.py
@@ -17,4 +17,4 @@
Build version information
'''
-gBUILD_VERSION = "Build 2610"
+gBUILD_VERSION = "Build 2640"
diff --git a/BaseTools/Source/Python/UPT/Library/DataType.py b/BaseTools/Source/Python/UPT/Library/DataType.py
index de3c709..4b30f33 100644
--- a/BaseTools/Source/Python/UPT/Library/DataType.py
+++ b/BaseTools/Source/Python/UPT/Library/DataType.py
@@ -1,7 +1,7 @@
## @file
# This file is used to define class for data type structure
#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2013, 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
@@ -340,6 +340,7 @@ TAB_SLASH = '\\'
TAB_BACK_SLASH = '/'
TAB_SPECIAL_COMMENT = '##'
TAB_HEADER_COMMENT = '@file'
+TAB_BINARY_HEADER_COMMENT = '@BinaryHeader'
TAB_STAR = "*"
TAB_EDK_SOURCE = '$(EDK_SOURCE)'
@@ -735,7 +736,12 @@ TAB_INF_PATCH_PCD = 'PatchPcd'
TAB_INF_PCD = 'Pcd'
TAB_INF_PCD_EX = 'PcdEx'
TAB_INF_GUIDTYPE_VAR = 'Variable'
-
+TAB_INF_ABSTRACT = 'STR_MODULE_ABSTRACT'
+TAB_INF_DESCRIPTION = 'STR_MODULE_DESCRIPTION'
+TAB_INF_LICENSE = 'STR_MODULE_LICENSE'
+TAB_INF_BINARY_ABSTRACT = 'STR_MODULE_BINARY_ABSTRACT'
+TAB_INF_BINARY_DESCRIPTION = 'STR_MODULE_BINARY_DESCRIPTION'
+TAB_INF_BINARY_LICENSE = 'STR_MODULE_BINARY_LICENSE'
#
# Dec Definitions
#
@@ -745,7 +751,12 @@ TAB_DEC_DEFINES_PACKAGE_NAME = 'PACKAGE_NAME'
TAB_DEC_DEFINES_PACKAGE_GUID = 'PACKAGE_GUID'
TAB_DEC_DEFINES_PACKAGE_VERSION = 'PACKAGE_VERSION'
TAB_DEC_DEFINES_PKG_UNI_FILE = 'PKG_UNI_FILE'
-
+TAB_DEC_PACKAGE_ABSTRACT = 'STR_PACKAGE_ABSTRACT'
+TAB_DEC_PACKAGE_DESCRIPTION = 'STR_PACKAGE_DESCRIPTION'
+TAB_DEC_PACKAGE_LICENSE = 'STR_PACKAGE_LICENSE'
+TAB_DEC_BINARY_ABSTRACT = 'STR_PACKAGE_BINARY_ABSTRACT'
+TAB_DEC_BINARY_DESCRIPTION = 'STR_PACKAGE_BINARY_DESCRIPTION'
+TAB_DEC_BINARY_LICENSE = 'STR_PACKAGE_ASBUILT_LICENSE'
#
# Dsc Definitions
#
@@ -814,6 +825,8 @@ TAB_HEADER_ABSTRACT = 'Abstract'
TAB_HEADER_DESCRIPTION = 'Description'
TAB_HEADER_COPYRIGHT = 'Copyright'
TAB_HEADER_LICENSE = 'License'
+TAB_BINARY_HEADER_IDENTIFIER = 'BinaryHeader'
+TAB_BINARY_HEADER_USERID = 'TianoCore'
#
# Build database path
#
diff --git a/BaseTools/Source/Python/UPT/Logger/StringTable.py b/BaseTools/Source/Python/UPT/Logger/StringTable.py
index 8a94d71..6275a3e 100644
--- a/BaseTools/Source/Python/UPT/Logger/StringTable.py
+++ b/BaseTools/Source/Python/UPT/Logger/StringTable.py
@@ -1,7 +1,7 @@
## @file
# This file is used to define strings used in the UPT tool
#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2013, 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
@@ -42,7 +42,7 @@ MSG_USAGE_STRING = _("\n"
MSG_VERSION_NUMBER = _("1.0")
MSG_VERSION = _("Intel(r) UEFI Packaging Tool (Intel(r) UEFIPT) - Revision " + \
MSG_VERSION_NUMBER)
-MSG_COPYRIGHT = _("Copyright (c) 2011 Intel Corporation All Rights Reserved.")
+MSG_COPYRIGHT = _("Copyright (c) 2011 - 2013 Intel Corporation All Rights Reserved.")
MSG_VERSION_COPYRIGHT = _("\n %s\n %s" % (MSG_VERSION, MSG_COPYRIGHT))
MSG_USAGE = _("%s [options]\n%s" % ("upt.exe", MSG_VERSION_COPYRIGHT))
MSG_DESCRIPTION = _("The Intel(r) UEFIUPT is used to create, " + \
@@ -530,6 +530,10 @@ ERR_COPYRIGHT_MISSING = \
_("Header comment section must have copyright information")
ERR_LICENSE_MISSING = \
_("Header comment section must have license information")
+ERR_INVALID_BINARYHEADER_FORMAT = \
+_("Binary Header comment section must have abstract,description,copyright,license information")
+ERR_MULTIPLE_BINARYHEADER_EXIST = \
+_("the inf file at most support one BinaryHeader at the fileheader section.")
ERR_INVALID_COMMENT_FORMAT = _("Comment must start with #")
ERR_USER_ABORT = _("User has stopped the application")
ERR_DIST_EXT_ERROR = \
@@ -547,6 +551,8 @@ ERR_INSTALL_FILE_DEC_FILE_ERROR = _("Could not obtain the TokenSpaceGuidCName an
ERR_NOT_SUPPORTED_SA_MODULE = _("Stand-alone module distribution does not allow EDK 1 INF")
ERR_INSTALL_DIST_NOT_FOUND = \
_("Distribution file to be installed is not found in current working directory or workspace: %s")
+ERR_BINARY_HEADER_ORDER = _("Binary header must follow the file header.")
+ERR_NO_SOURCE_HEADER = _("File header statement \"## @file\" must exist at the first place.")
#
# Expression error message
diff --git a/BaseTools/Source/Python/UPT/Parser/DecParser.py b/BaseTools/Source/Python/UPT/Parser/DecParser.py
index 823cf71..060b927 100644
--- a/BaseTools/Source/Python/UPT/Parser/DecParser.py
+++ b/BaseTools/Source/Python/UPT/Parser/DecParser.py
@@ -1,7 +1,7 @@
## @file
# This file is used to parse DEC file. It will consumed by DecParser
#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2013, 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
@@ -19,6 +19,7 @@ import Logger.Log as Logger
from Logger.ToolError import FILE_PARSE_FAILURE
from Logger.ToolError import FILE_OPEN_FAILURE
from Logger import StringTable as ST
+from Logger.ToolError import FORMAT_INVALID
import Library.DataType as DT
from Library.ParserValidate import IsValidToken
@@ -735,6 +736,7 @@ class Dec(_DecBase, _DecComments):
_DecComments.__init__(self)
_DecBase.__init__(self, RawData)
+ self.BinaryHeadComment = []
self._Define = _DecDefine(RawData)
self._Include = _DecInclude(RawData)
self._Guid = _DecGuid(RawData)
@@ -778,8 +780,13 @@ class Dec(_DecBase, _DecComments):
# Parse DEC file
#
def ParseDecComment(self):
+ IsFileHeader = False
+ IsBinaryHeader = False
+ FileHeaderLineIndex = -1
+ BinaryHeaderLineIndex = -1
while not self._RawData.IsEndOfFile():
Line, Comment = CleanString(self._RawData.GetNextLine())
+
#
# Header must be pure comment
#
@@ -787,14 +794,55 @@ class Dec(_DecBase, _DecComments):
self._RawData.UndoNextLine()
break
- if Comment:
+ if Comment and Comment.startswith(DT.TAB_SPECIAL_COMMENT) and Comment.find(DT.TAB_HEADER_COMMENT) > 0 \
+ and not Comment[2:Comment.find(DT.TAB_HEADER_COMMENT)].strip():
+ IsFileHeader = True
+ IsBinaryHeader = False
+ FileHeaderLineIndex = self._RawData.LineIndex
+
+ #
+ # Get license information before '@file'
+ #
+ if not IsFileHeader and not IsBinaryHeader and Comment and Comment.startswith(DT.TAB_COMMENT_SPLIT) and \
+ DT.TAB_BINARY_HEADER_COMMENT not in Comment:
self._HeadComment.append((Comment, self._RawData.LineIndex))
+
+ if Comment and IsFileHeader and \
+ not(Comment.startswith(DT.TAB_SPECIAL_COMMENT) \
+ and Comment.find(DT.TAB_BINARY_HEADER_COMMENT) > 0):
+ self._HeadComment.append((Comment, self._RawData.LineIndex))
+ #
+ # Double '#' indicates end of header comments
+ #
+ if (not Comment or Comment == DT.TAB_SPECIAL_COMMENT) and IsFileHeader:
+ IsFileHeader = False
+ continue
+
+ if Comment and Comment.startswith(DT.TAB_SPECIAL_COMMENT) \
+ and Comment.find(DT.TAB_BINARY_HEADER_COMMENT) > 0:
+ IsBinaryHeader = True
+ IsFileHeader = False
+ BinaryHeaderLineIndex = self._RawData.LineIndex
+
+ if Comment and IsBinaryHeader:
+ self.BinaryHeadComment.append((Comment, self._RawData.LineIndex))
#
# Double '#' indicates end of header comments
#
- if not Comment or Comment == DT.TAB_SPECIAL_COMMENT:
+ if (not Comment or Comment == DT.TAB_SPECIAL_COMMENT) and IsBinaryHeader:
+ IsBinaryHeader = False
break
-
+
+ if FileHeaderLineIndex > -1 and not IsFileHeader and not IsBinaryHeader:
+ break
+
+ if FileHeaderLineIndex > BinaryHeaderLineIndex and FileHeaderLineIndex > -1 and BinaryHeaderLineIndex > -1:
+ self._LoggerError(ST.ERR_BINARY_HEADER_ORDER)
+
+ if FileHeaderLineIndex == -1:
+ Logger.Error(TOOL_NAME, FORMAT_INVALID,
+ ST.ERR_NO_SOURCE_HEADER,
+ File=self._RawData.Filename)
return
def _StopCurrentParsing(self, Line):
diff --git a/BaseTools/Source/Python/UPT/Parser/InfParser.py b/BaseTools/Source/Python/UPT/Parser/InfParser.py
index fb90c39..8a41eca 100644
--- a/BaseTools/Source/Python/UPT/Parser/InfParser.py
+++ b/BaseTools/Source/Python/UPT/Parser/InfParser.py
@@ -1,7 +1,7 @@
## @file
# This file contained the parser for INF file
#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2013, 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
@@ -128,6 +128,10 @@ class InfParser(InfSectionParser):
#
HeaderCommentStart = False
HeaderCommentEnd = False
+ HeaderStarLineNo = -1
+ BinaryHeaderCommentStart = False
+ BinaryHeaderCommentEnd = False
+ BinaryHeaderStarLineNo = -1
#
# While Section ends. parse whole section contents.
@@ -196,22 +200,16 @@ class InfParser(InfSectionParser):
#
if Line.startswith(DT.TAB_SPECIAL_COMMENT) and \
(Line.find(DT.TAB_HEADER_COMMENT) > -1) and \
- not HeaderCommentStart:
- if CurrentSection != DT.MODEL_UNKNOWN:
- Logger.Error("Parser",
- PARSER_ERROR,
- ST.ERR_INF_PARSER_HEADER_FILE,
- File=Filename,
- Line=LineNo,
- RaiseError = Logger.IS_RAISE_ERROR)
- else:
- CurrentSection = DT.MODEL_META_DATA_FILE_HEADER
- #
- # Append the first line to section lines.
- #
- SectionLines.append((Line, LineNo))
- HeaderCommentStart = True
- continue
+ not HeaderCommentStart and not HeaderCommentEnd:
+
+ CurrentSection = DT.MODEL_META_DATA_FILE_HEADER
+ #
+ # Append the first line to section lines.
+ #
+ HeaderStarLineNo = LineNo
+ SectionLines.append((Line, LineNo))
+ HeaderCommentStart = True
+ continue
#
# Collect Header content.
@@ -226,17 +224,72 @@ class InfParser(InfSectionParser):
#
if (Line.startswith(DT.TAB_SPECIAL_COMMENT) or not Line.strip().startswith("#")) and HeaderCommentStart \
and not HeaderCommentEnd:
- SectionLines.append((Line, LineNo))
+ HeaderCommentEnd = True
+ BinaryHeaderCommentStart = False
+ BinaryHeaderCommentEnd = False
HeaderCommentStart = False
+ if Line.find(DT.TAB_BINARY_HEADER_COMMENT) > -1:
+ self.InfHeaderParser(SectionLines, self.InfHeader, self.FileName)
+ SectionLines = []
+ else:
+ SectionLines.append((Line, LineNo))
#
# Call Header comment parser.
#
self.InfHeaderParser(SectionLines, self.InfHeader, self.FileName)
SectionLines = []
+ continue
+
+ #
+ # check whether binary header comment section started
+ #
+ if Line.startswith(DT.TAB_SPECIAL_COMMENT) and \
+ (Line.find(DT.TAB_BINARY_HEADER_COMMENT) > -1) and \
+ not BinaryHeaderCommentStart:
+ SectionLines = []
+ CurrentSection = DT.MODEL_META_DATA_FILE_HEADER
+ #
+ # Append the first line to section lines.
+ #
+ BinaryHeaderStarLineNo = LineNo
+ SectionLines.append((Line, LineNo))
+ BinaryHeaderCommentStart = True
HeaderCommentEnd = True
continue
#
+ # check whether there are more than one binary header exist
+ #
+ if Line.startswith(DT.TAB_SPECIAL_COMMENT) and BinaryHeaderCommentStart and \
+ not BinaryHeaderCommentEnd and (Line.find(DT.TAB_BINARY_HEADER_COMMENT) > -1):
+ Logger.Error('Parser',
+ FORMAT_INVALID,
+ ST.ERR_MULTIPLE_BINARYHEADER_EXIST,
+ File=Filename)
+
+ #
+ # Collect Binary Header content.
+ #
+ if (Line.startswith(DT.TAB_COMMENT_SPLIT) and CurrentSection == DT.MODEL_META_DATA_FILE_HEADER) and\
+ BinaryHeaderCommentStart and not Line.startswith(DT.TAB_SPECIAL_COMMENT) and not\
+ BinaryHeaderCommentEnd and NextLine != '':
+ SectionLines.append((Line, LineNo))
+ continue
+ #
+ # Binary Header content end
+ #
+ if (Line.startswith(DT.TAB_SPECIAL_COMMENT) or not Line.strip().startswith(DT.TAB_COMMENT_SPLIT)) and \
+ BinaryHeaderCommentStart and not BinaryHeaderCommentEnd:
+ SectionLines.append((Line, LineNo))
+ BinaryHeaderCommentStart = False
+ #
+ # Call Binary Header comment parser.
+ #
+ self.InfHeaderParser(SectionLines, self.InfBinaryHeader, self.FileName, True)
+ SectionLines = []
+ BinaryHeaderCommentEnd = True
+ continue
+ #
# Find a new section tab
# Or at the last line of INF file,
# need to process the last section.
@@ -255,6 +308,10 @@ class InfParser(InfSectionParser):
#
if (Line.startswith(DT.TAB_SECTION_START) and \
Line.find(DT.TAB_SECTION_END) > -1) or LastSectionFalg:
+
+ HeaderCommentEnd = True
+ BinaryHeaderCommentEnd = True
+
if not LastSectionFalg:
#
# check to prevent '#' inside section header
@@ -333,18 +390,17 @@ class InfParser(InfSectionParser):
# Clear section lines
#
SectionLines = []
- #
- # End of for
- #
- #
- # Found the first section, No file header.
- #
- if DefineSectionParsedFlag and not HeaderCommentEnd:
+
+ if HeaderStarLineNo == -1:
Logger.Error("InfParser",
FORMAT_INVALID,
- ST.ERR_INF_PARSER_HEADER_MISSGING,
+ ST.ERR_NO_SOURCE_HEADER,
File=self.FullPath)
-
+ if BinaryHeaderStarLineNo > -1 and HeaderStarLineNo > -1 and HeaderStarLineNo > BinaryHeaderStarLineNo:
+ Logger.Error("InfParser",
+ FORMAT_INVALID,
+ ST.ERR_BINARY_HEADER_ORDER,
+ File=self.FullPath)
#
# EDKII INF should not have EDKI style comment
#
@@ -627,4 +683,4 @@ def _ConvertSecNameToType(SectionName):
SectionType = gINF_SECTION_DEF[SectionName.upper()]
return SectionType
- \ No newline at end of file
+
diff --git a/BaseTools/Source/Python/UPT/Xml/CommonXml.py b/BaseTools/Source/Python/UPT/Xml/CommonXml.py
index fff6e67..0369bfb 100644
--- a/BaseTools/Source/Python/UPT/Xml/CommonXml.py
+++ b/BaseTools/Source/Python/UPT/Xml/CommonXml.py
@@ -1,7 +1,7 @@
## @file
# This file is used to parse a PCD file of .PKG file
#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2013, 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
@@ -357,8 +357,10 @@ class MiscellaneousFileXml(object):
Executable = XmlAttribute(XmlNode(SubItem, '%s/Filename' % Key), 'Executable')
if Executable.upper() == "TRUE":
Executable = True
- else:
+ elif Executable.upper() == "FALSE":
Executable = False
+ else:
+ Executable = ''
self.Files.append([Filename, Executable])
MiscFile = MiscFileObject()
@@ -392,8 +394,10 @@ class MiscellaneousFileXml(object):
OsType = XmlAttribute(XmlNode(SubItem, '%s/Filename' % Key), 'OS')
if Executable.upper() == "TRUE":
Executable = True
- else:
+ elif Executable.upper() == "FALSE":
Executable = False
+ else:
+ Executable = ''
self.Files.append([Filename, Executable, OsType])
MiscFile = MiscFileObject()
diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index 2419d27..7a6b1be 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -278,7 +278,7 @@ class MetaFileParser(object):
for Item in GetSplitValueList(self._CurrentLine[1:-1], TAB_COMMA_SPLIT):
if Item == '':
continue
- ItemList = GetSplitValueList(Item, TAB_SPLIT)
+ ItemList = GetSplitValueList(Item, TAB_SPLIT,2)
# different section should not mix in one section
if self._SectionName != '' and self._SectionName != ItemList[0].upper():
EdkLogger.error('Parser', FORMAT_INVALID, "Different section names in the same section",
@@ -305,7 +305,10 @@ class MetaFileParser(object):
# S2 may be Platform or ModuleType
if len(ItemList) > 2:
- S2 = ItemList[2].upper()
+ if self._SectionName.upper() in SECTIONS_HAVE_ITEM_PCD:
+ S2 = ItemList[2]
+ else:
+ S2 = ItemList[2].upper()
else:
S2 = 'COMMON'
self._Scope.append([S1, S2])
@@ -496,6 +499,8 @@ class InfParser(MetaFileParser):
# parse the file line by line
IsFindBlockComment = False
GetHeaderComment = False
+ TailComments = []
+ SectionComments = []
Comments = []
for Index in range(0, len(Content)):
@@ -507,6 +512,9 @@ class InfParser(MetaFileParser):
if Line == '':
if Comment:
Comments.append((Comment, Index + 1))
+ elif GetHeaderComment:
+ SectionComments.extend(Comments)
+ Comments = []
continue
if Line.find(DataType.TAB_COMMENT_EDK_START) > -1:
IsFindBlockComment = True
@@ -527,6 +535,8 @@ class InfParser(MetaFileParser):
self._Store(MODEL_META_DATA_HEADER_COMMENT, Cmt, '', '', 'COMMON',
'COMMON', self._Owner[-1], LNo, -1, LNo, -1, 0)
GetHeaderComment = True
+ else:
+ TailComments.extend(SectionComments + Comments)
Comments = []
self._SectionHeaderParser()
# Check invalid sections
@@ -602,9 +612,16 @@ class InfParser(MetaFileParser):
self._Store(MODEL_META_DATA_COMMENT, Comment, '', '', Arch, Platform,
LastItem, LineNo, -1, LineNo, -1, 0)
Comments = []
+ SectionComments = []
+ TailComments.extend(SectionComments + Comments)
if IsFindBlockComment:
EdkLogger.error("Parser", FORMAT_INVALID, "Open block comments (starting with /*) are expected to end with */",
File=self.MetaFile)
+
+ # If there are tail comments in INF file, save to database whatever the comments are
+ for Comment in TailComments:
+ self._Store(MODEL_META_DATA_TAIL_COMMENT, Comment[0], '', '', 'COMMON',
+ 'COMMON', self._Owner[-1], -1, -1, -1, -1, 0)
self._Done()
## Data parser for the format in which there's path
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 04e3d14..262ec65 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -1,7 +1,7 @@
## @file
# This file is used to create a database used by build tool
#
-# Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 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
@@ -36,6 +36,7 @@ from MetaFileParser import *
from BuildClassObject import *
from WorkspaceCommon import GetDeclaredPcd
from Common.Misc import AnalyzeDscPcd
+import re
## Platform build information from DSC file
#
@@ -328,6 +329,8 @@ class DscBuildData(PlatformBuildClassObject):
return False
def _GetSkuIdentifier(self):
+ if self._SkuName:
+ return self._SkuName
if self._SkuIdentifier == None:
if self._Header == None:
self._GetHeaderInfo()
@@ -337,16 +340,14 @@ class DscBuildData(PlatformBuildClassObject):
if self._SkuName == None:
if self._Header == None:
self._GetHeaderInfo()
- if self._SkuName == None or self._SkuName not in self.SkuIds:
+ if (self._SkuName == None or self._SkuName not in self.SkuIds):
self._SkuName = 'DEFAULT'
return self._SkuName
## Override SKUID_IDENTIFIER
def _SetSkuName(self, Value):
- if Value in self.SkuIds:
- self._SkuName = Value
- # Needs to re-retrieve the PCD information
- self._Pcds = None
+ self._SkuName = Value
+ self._Pcds = None
def _GetFdfFile(self):
if self._FlashDefinition == None:
@@ -460,7 +461,7 @@ class DscBuildData(PlatformBuildClassObject):
if Record[1] in [None, '']:
EdkLogger.error('build', FORMAT_INVALID, 'No Sku ID name',
File=self.MetaFile, Line=Record[-1])
- self._SkuIds[Record[1].upper()] = Record[0]
+ self._SkuIds[Record[1]] = Record[0]
if 'DEFAULT' not in self._SkuIds:
self._SkuIds['DEFAULT'] = '0'
if 'COMMON' not in self._SkuIds:
@@ -731,7 +732,6 @@ class DscBuildData(PlatformBuildClassObject):
RecordList = self._RawData[Type, self._Arch]
PcdValueDict = sdict()
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:
- SkuName = SkuName.upper()
if SkuName in (SkuObj.SystemSkuId,'DEFAULT','COMMON'):
PcdSet.add((PcdCName, TokenSpaceGuid, SkuName,Dummy4))
PcdDict[Arch, PcdCName, TokenSpaceGuid,SkuName] = Setting
@@ -798,7 +798,6 @@ class DscBuildData(PlatformBuildClassObject):
AvailableSkuIdSet.update({'DEFAULT':0,'COMMON':0})
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:
- SkuName = SkuName.upper()
if SkuName not in AvailableSkuIdSet:
continue
@@ -816,6 +815,16 @@ class DscBuildData(PlatformBuildClassObject):
if (PcdCName,TokenSpaceGuid) in Pcds.keys():
pcdObject = Pcds[PcdCName,TokenSpaceGuid]
pcdObject.SkuInfoList[SkuName] = SkuInfo
+ if MaxDatumSize.strip():
+ CurrentMaxSize = int(MaxDatumSize.strip(),0)
+ else:
+ CurrentMaxSize = 0
+ if pcdObject.MaxDatumSize:
+ PcdMaxSize = int(pcdObject.MaxDatumSize,0)
+ else:
+ PcdMaxSize = 0
+ if CurrentMaxSize > PcdMaxSize:
+ pcdObject.MaxDatumSize = str(CurrentMaxSize)
else:
Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(
PcdCName,
@@ -831,8 +840,8 @@ class DscBuildData(PlatformBuildClassObject):
)
for pcd in Pcds.values():
- if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
- pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
+ pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
+ if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
valuefromDec = pcdDecObject.DefaultValue
SkuInfo = SkuInfoClass('DEFAULT', '0', '', '', '', '', '', valuefromDec)
pcd.SkuInfoList['DEFAULT'] = SkuInfo
@@ -845,17 +854,7 @@ class DscBuildData(PlatformBuildClassObject):
if 'DEFAULT' in pcd.SkuInfoList.keys() and SkuObj.SystemSkuId not in pcd.SkuInfoList.keys():
pcd.SkuInfoList[SkuObj.SystemSkuId] = pcd.SkuInfoList['DEFAULT']
del(pcd.SkuInfoList['DEFAULT'])
-
- if SkuObj.SkuUsageType == SkuObj.MULTIPLE:
- if pcd.DatumType == "VOID*":
- MaxSize = int(pcd.MaxDatumSize,0)
- for (skuname,skuobj) in pcd.SkuInfoList.items():
- datalen = len(skuobj.DefaultValue)
- if datalen>MaxSize:
- MaxSize = datalen
- pcd.MaxDatumSize = str(MaxSize)
-
-
+
return Pcds
## Retrieve dynamic HII PCD settings
@@ -881,7 +880,6 @@ class DscBuildData(PlatformBuildClassObject):
AvailableSkuIdSet.update({'DEFAULT':0,'COMMON':0})
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:
- SkuName = SkuName.upper()
if SkuName not in AvailableSkuIdSet:
continue
PcdSet.add((PcdCName, TokenSpaceGuid, SkuName,Dummy4))
@@ -893,6 +891,20 @@ class DscBuildData(PlatformBuildClassObject):
if Setting == None:
continue
VariableName, VariableGuid, VariableOffset, DefaultValue = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)
+
+ ExceedMax = False
+ if VariableOffset.isdigit():
+ if int(VariableOffset,10) > 0xFFFF:
+ ExceedMax = True
+ elif re.match(r'[\t\s]*0[xX][a-fA-F0-9]+$',VariableOffset):
+ if int(VariableOffset,16) > 0xFFFF:
+ ExceedMax = True
+ else:
+ EdkLogger.error('Build', FORMAT_INVALID, "Invalid syntax or format of the variable offset value is incorrect for %s." % ".".join((TokenSpaceGuid,PcdCName)))
+
+ if ExceedMax:
+ EdkLogger.error('Build', OPTION_VALUE_INVALID, "The variable offset value must not exceed the maximum value of 0xFFFF (UINT16) for %s." % ".".join((TokenSpaceGuid,PcdCName)))
+
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName], VariableName, VariableGuid, VariableOffset, DefaultValue)
if (PcdCName,TokenSpaceGuid) in Pcds.keys():
pcdObject = Pcds[PcdCName,TokenSpaceGuid]
@@ -914,8 +926,12 @@ class DscBuildData(PlatformBuildClassObject):
for pcd in Pcds.values():
SkuInfoObj = pcd.SkuInfoList.values()[0]
- if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
- pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
+ pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
+ # Only fix the value while no value provided in DSC file.
+ for sku in pcd.SkuInfoList.values():
+ if (sku.HiiDefaultValue == "" or sku.HiiDefaultValue==None):
+ sku.HiiDefaultValue = pcdDecObject.DefaultValue
+ if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
valuefromDec = pcdDecObject.DefaultValue
SkuInfo = SkuInfoClass('DEFAULT', '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec)
pcd.SkuInfoList['DEFAULT'] = SkuInfo
@@ -929,6 +945,24 @@ class DscBuildData(PlatformBuildClassObject):
if 'DEFAULT' in pcd.SkuInfoList.keys() and SkuObj.SystemSkuId not in pcd.SkuInfoList.keys():
pcd.SkuInfoList[SkuObj.SystemSkuId] = pcd.SkuInfoList['DEFAULT']
del(pcd.SkuInfoList['DEFAULT'])
+
+
+ if pcd.MaxDatumSize.strip():
+ MaxSize = int(pcd.MaxDatumSize,0)
+ else:
+ MaxSize = 0
+ if pcdDecObject.DatumType == 'VOID*':
+ for (skuname,skuobj) in pcd.SkuInfoList.items():
+ datalen = 0
+ if skuobj.HiiDefaultValue.startswith("L"):
+ datalen = (len(skuobj.HiiDefaultValue)- 3 + 1) * 2
+ elif skuobj.HiiDefaultValue.startswith("{"):
+ datalen = len(skuobj.HiiDefaultValue.split(","))
+ else:
+ datalen = len(skuobj.HiiDefaultValue) -2 + 1
+ if datalen>MaxSize:
+ MaxSize = datalen
+ pcd.MaxDatumSize = str(MaxSize)
return Pcds
## Retrieve dynamic VPD PCD settings
@@ -954,7 +988,6 @@ class DscBuildData(PlatformBuildClassObject):
AvailableSkuIdSet.update({'DEFAULT':0,'COMMON':0})
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:
- SkuName = SkuName.upper()
if SkuName not in AvailableSkuIdSet:
continue
@@ -976,6 +1009,16 @@ class DscBuildData(PlatformBuildClassObject):
if (PcdCName,TokenSpaceGuid) in Pcds.keys():
pcdObject = Pcds[PcdCName,TokenSpaceGuid]
pcdObject.SkuInfoList[SkuName] = SkuInfo
+ if MaxDatumSize.strip():
+ CurrentMaxSize = int(MaxDatumSize.strip(),0)
+ else:
+ CurrentMaxSize = 0
+ if pcdObject.MaxDatumSize:
+ PcdMaxSize = int(pcdObject.MaxDatumSize,0)
+ else:
+ PcdMaxSize = 0
+ if CurrentMaxSize > PcdMaxSize:
+ pcdObject.MaxDatumSize = str(CurrentMaxSize)
else:
Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(
PcdCName,
@@ -991,8 +1034,8 @@ class DscBuildData(PlatformBuildClassObject):
)
for pcd in Pcds.values():
SkuInfoObj = pcd.SkuInfoList.values()[0]
+ pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
- pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]
valuefromDec = pcdDecObject.DefaultValue
SkuInfo = SkuInfoClass('DEFAULT', '0', '', '', '','',SkuInfoObj.VpdOffset, valuefromDec)
pcd.SkuInfoList['DEFAULT'] = SkuInfo
@@ -1006,14 +1049,6 @@ class DscBuildData(PlatformBuildClassObject):
pcd.SkuInfoList[SkuObj.SystemSkuId] = pcd.SkuInfoList['DEFAULT']
del(pcd.SkuInfoList['DEFAULT'])
- if SkuObj.SkuUsageType == SkuObj.MULTIPLE:
- if pcd.MaxDatumSize.strip():
- MaxSize = int(pcd.MaxDatumSize,0)
- for (skuname,skuobj) in pcd.SkuInfoList.items():
- datalen = len(skuobj.DefaultValue)
- if datalen>MaxSize:
- MaxSize = datalen
- pcd.MaxDatumSize = str(MaxSize)
return Pcds
## Add external modules
@@ -1520,6 +1555,7 @@ class InfBuildData(ModuleBuildClassObject):
## Set all internal used members of InfBuildData to None
def _Clear(self):
self._HeaderComments = None
+ self._TailComments = None
self._Header_ = None
self._AutoGenVersion = None
self._BaseName = None
@@ -1612,7 +1648,13 @@ class InfBuildData(ModuleBuildClassObject):
for Record in RecordList:
self._HeaderComments.append(Record[0])
return self._HeaderComments
-
+ def _GetTailComments(self):
+ if not self._TailComments:
+ self._TailComments = []
+ RecordList = self._RawData[MODEL_META_DATA_TAIL_COMMENT]
+ for Record in RecordList:
+ self._TailComments.append(Record[0])
+ return self._TailComments
## Retrieve all information in [Defines] section
#
# (Retriving all [Defines] information in one-shot is just to save time.)
@@ -1769,7 +1811,7 @@ class InfBuildData(ModuleBuildClassObject):
else:
Tool = ToolList[0]
ToolChain = "*_*_*_%s_FLAGS" % Tool
- ToolChainFamily = 'MSFT' # Edk.x only support MSFT tool chain
+ ToolChainFamily = ''
#ignore not replaced macros in value
ValueList = GetSplitList(' ' + Value, '/D')
Dummy = ValueList[0]
@@ -2447,6 +2489,7 @@ class InfBuildData(ModuleBuildClassObject):
Platform = property(_GetPlatform, _SetPlatform)
HeaderComments = property(_GetHeaderComments)
+ TailComments = property(_GetTailComments)
AutoGenVersion = property(_GetInfVersion)
BaseName = property(_GetBaseName)
ModuleType = property(_GetModuleType)
diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py
index 2058a7b..945ee1b 100644
--- a/BaseTools/Source/Python/build/BuildReport.py
+++ b/BaseTools/Source/Python/build/BuildReport.py
@@ -259,7 +259,7 @@ class DepexParser(object):
Statement = gOpCodeList[struct.unpack("B", OpCode)[0]]
if Statement in ["BEFORE", "AFTER", "PUSH"]:
GuidValue = "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X" % \
- struct.unpack("LHHBBBBBBBB", DepexFile.read(16))
+ struct.unpack("=LHHBBBBBBBB", DepexFile.read(16))
GuidString = self._GuidDb.get(GuidValue, GuidValue)
Statement = "%s %s" % (Statement, GuidString)
DepexStatement.append(Statement)
diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.S b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.S
index 1d0b090..0d50cbd 100644
--- a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.S
+++ b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.S
@@ -18,8 +18,11 @@
.align 2
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
+GCC_ASM_IMPORT(ArmReadMpidr)
+
//UINTN
//ArmPlatformIsPrimaryCore (
// IN UINTN MpId
@@ -32,4 +35,13 @@ ASM_PFX(ArmPlatformIsPrimaryCore):
ASM_PFX(ArmPlatformPeiBootAction):
bx lr
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
+ // The BeagleBoard is a uniprocessor platform. The MPIDR of primary core is
+ // always the MPIDR of the calling CPU.
+ b ASM_PFX(ArmReadMpidr)
+
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.asm b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.asm
index a057477..b850d98 100644
--- a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.asm
+++ b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardHelper.asm
@@ -20,6 +20,9 @@
EXPORT ArmPlatformPeiBootAction
EXPORT ArmPlatformIsPrimaryCore
+ EXPORT ArmPlatformGetPrimaryCoreMpId
+
+ IMPORT ArmReadMpidr
AREA BeagleBoardHelper, CODE, READONLY
@@ -37,4 +40,14 @@ ArmPlatformPeiBootAction FUNCTION
bx lr
ENDFUNC
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ArmPlatformGetPrimaryCoreMpId FUNCTION
+ // The BeagleBoard is a uniprocessor platform. The MPIDR of primary core is
+ // always the MPIDR of the calling CPU.
+ b ArmReadMpidr
+ ENDFUNC
+
END
diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardMem.c b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardMem.c
index 5524ddb..210e850 100755
--- a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardMem.c
+++ b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardMem.c
@@ -55,9 +55,9 @@ ArmPlatformGetVirtualMemoryMap (
}
// ReMap (Either NOR Flash or DRAM)
- VirtualMemoryTable[Index].PhysicalBase = PcdGet32(PcdSystemMemoryBase);
- VirtualMemoryTable[Index].VirtualBase = PcdGet32(PcdSystemMemoryBase);
- VirtualMemoryTable[Index].Length = PcdGet32(PcdSystemMemorySize);
+ VirtualMemoryTable[Index].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdSystemMemoryBase);
+ VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemorySize);
VirtualMemoryTable[Index].Attributes = CacheAttributes;
// SOC Registers. L3 interconnects
diff --git a/CryptoPkg/CryptoPkg.dec b/CryptoPkg/CryptoPkg.dec
index 05be6bb..cb0ae8f 100644
--- a/CryptoPkg/CryptoPkg.dec
+++ b/CryptoPkg/CryptoPkg.dec
@@ -4,7 +4,7 @@
# This Package provides cryptographic-related libraries for UEFI
# security modules.
#
-# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 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
@@ -19,7 +19,7 @@
DEC_SPECIFICATION = 0x00010005
PACKAGE_NAME = CryptoPkg
PACKAGE_GUID = 36470E80-36F2-4ba0-8CC8-937C7D9FF888
- PACKAGE_VERSION = 0.92
+ PACKAGE_VERSION = 0.93
[Includes]
Include
diff --git a/CryptoPkg/CryptoPkg.dsc b/CryptoPkg/CryptoPkg.dsc
index 67577e1..046a6ce 100644
--- a/CryptoPkg/CryptoPkg.dsc
+++ b/CryptoPkg/CryptoPkg.dsc
@@ -1,7 +1,7 @@
## @file
# Cryptographic Library Package for UEFI Security Implementation.
#
-# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 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
@@ -20,7 +20,7 @@
[Defines]
PLATFORM_NAME = CryptoPkg
PLATFORM_GUID = E1063286-6C8C-4c25-AEF0-67A9A5B6E6B6
- PLATFORM_VERSION = 0.92
+ PLATFORM_VERSION = 0.93
DSC_SPECIFICATION = 0x00010005
OUTPUT_DIRECTORY = Build/CryptoPkg
SUPPORTED_ARCHITECTURES = IA32|X64|IPF|ARM
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Dblk.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Dblk.efi
index 433ecac..23397a9 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Dblk.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Dblk.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Devices.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Devices.efi
index 312cebd..cbb2066 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Devices.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Devices.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Devtree.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Devtree.efi
index 577d2d6..03838de 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Devtree.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Devtree.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Guid.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Guid.efi
index d73a4f8..9811c27 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Guid.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Guid.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/IfConfig.efi b/EdkShellBinPkg/Bin/Ia32/Apps/IfConfig.efi
index 73aaa33..850e913 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/IfConfig.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/IfConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/IpConfig.efi b/EdkShellBinPkg/Bin/Ia32/Apps/IpConfig.efi
index 3430e0e..f81c12d 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/IpConfig.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/IpConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/LoadPciRom.efi b/EdkShellBinPkg/Bin/Ia32/Apps/LoadPciRom.efi
index ede448e..476561b 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/LoadPciRom.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/LoadPciRom.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Mount.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Mount.efi
index 5b1e9fb..4be0e86 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Mount.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Mount.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Openinfo.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Openinfo.efi
index 88de7b3..3299aaa 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Openinfo.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Openinfo.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/Ping.efi b/EdkShellBinPkg/Bin/Ia32/Apps/Ping.efi
index 3fc3074..f1b1241 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/Ping.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/Ping.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/SmbiosView.efi b/EdkShellBinPkg/Bin/Ia32/Apps/SmbiosView.efi
index fdbab5b..9246f9b 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/SmbiosView.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/SmbiosView.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/TelnetMgmt.efi b/EdkShellBinPkg/Bin/Ia32/Apps/TelnetMgmt.efi
index 8a0492f..0f7f0d8 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/TelnetMgmt.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/TelnetMgmt.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/comp.efi b/EdkShellBinPkg/Bin/Ia32/Apps/comp.efi
index 284ce06..8a75858 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/comp.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/comp.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/dmem.efi b/EdkShellBinPkg/Bin/Ia32/Apps/dmem.efi
index e52b79c..93cd873 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/dmem.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/dmem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/dmpstore.efi b/EdkShellBinPkg/Bin/Ia32/Apps/dmpstore.efi
index abfbd74..90c3814 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/dmpstore.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/dmpstore.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/edit.efi b/EdkShellBinPkg/Bin/Ia32/Apps/edit.efi
index babf3ac..06492d3 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/edit.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/edit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/eficompress.efi b/EdkShellBinPkg/Bin/Ia32/Apps/eficompress.efi
index 9cde32d..038fd3c 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/eficompress.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/eficompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/efidecompress.efi b/EdkShellBinPkg/Bin/Ia32/Apps/efidecompress.efi
index 9e0f1da..b719b42 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/efidecompress.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/efidecompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/err.efi b/EdkShellBinPkg/Bin/Ia32/Apps/err.efi
index b1c8eaf..30a0ddf 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/err.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/err.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/hexedit.efi b/EdkShellBinPkg/Bin/Ia32/Apps/hexedit.efi
index b7710da..4c2b2e6 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/hexedit.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/hexedit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/mem.efi b/EdkShellBinPkg/Bin/Ia32/Apps/mem.efi
index 658f43a..84432da 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/mem.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/mem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/memmap.efi b/EdkShellBinPkg/Bin/Ia32/Apps/memmap.efi
index 725b526..6966d08 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/memmap.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/memmap.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/mm.efi b/EdkShellBinPkg/Bin/Ia32/Apps/mm.efi
index 39c2036..a40c479 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/mm.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/mm.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/mode.efi b/EdkShellBinPkg/Bin/Ia32/Apps/mode.efi
index cff1df0..f1904be 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/mode.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/mode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/pci.efi b/EdkShellBinPkg/Bin/Ia32/Apps/pci.efi
index 30dd759..a58d824 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/pci.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/pci.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/sermode.efi b/EdkShellBinPkg/Bin/Ia32/Apps/sermode.efi
index 058e6c2..b285e27 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/sermode.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/sermode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/stall.efi b/EdkShellBinPkg/Bin/Ia32/Apps/stall.efi
index c2fa458..204f250 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/stall.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/stall.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ia32/Apps/timezone.efi b/EdkShellBinPkg/Bin/Ia32/Apps/timezone.efi
index 2bb559b..8eefb61 100644
--- a/EdkShellBinPkg/Bin/Ia32/Apps/timezone.efi
+++ b/EdkShellBinPkg/Bin/Ia32/Apps/timezone.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Dblk.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Dblk.efi
index 59ccd64..7d6316c 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Dblk.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Dblk.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Devices.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Devices.efi
index c1691a3..d108beb 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Devices.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Devices.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Devtree.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Devtree.efi
index 6a93793..dc4c188 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Devtree.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Devtree.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Guid.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Guid.efi
index d04b7d6..948c76b 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Guid.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Guid.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/IfConfig.efi b/EdkShellBinPkg/Bin/Ipf/Apps/IfConfig.efi
index c30d189..d793d59 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/IfConfig.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/IfConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/IpConfig.efi b/EdkShellBinPkg/Bin/Ipf/Apps/IpConfig.efi
index 95bfd72..7caf1d3 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/IpConfig.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/IpConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/LoadPciRom.efi b/EdkShellBinPkg/Bin/Ipf/Apps/LoadPciRom.efi
index dc4f652..437540c 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/LoadPciRom.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/LoadPciRom.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Mount.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Mount.efi
index e86fe15..d897e2f 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Mount.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Mount.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Openinfo.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Openinfo.efi
index 8f7e1c1..0ec5f80 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Openinfo.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Openinfo.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/Ping.efi b/EdkShellBinPkg/Bin/Ipf/Apps/Ping.efi
index 9dc09c3..a36e795 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/Ping.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/Ping.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/SmbiosView.efi b/EdkShellBinPkg/Bin/Ipf/Apps/SmbiosView.efi
index 85795dd..8586962 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/SmbiosView.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/SmbiosView.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/TelnetMgmt.efi b/EdkShellBinPkg/Bin/Ipf/Apps/TelnetMgmt.efi
index 3f1ac5d..618f932 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/TelnetMgmt.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/TelnetMgmt.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/comp.efi b/EdkShellBinPkg/Bin/Ipf/Apps/comp.efi
index 5bc0775..a82d706 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/comp.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/comp.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/dmem.efi b/EdkShellBinPkg/Bin/Ipf/Apps/dmem.efi
index 4517604..de93c82 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/dmem.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/dmem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/dmpstore.efi b/EdkShellBinPkg/Bin/Ipf/Apps/dmpstore.efi
index 843f729..bd78cc6 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/dmpstore.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/dmpstore.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/edit.efi b/EdkShellBinPkg/Bin/Ipf/Apps/edit.efi
index 48af2a2..11f4936 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/edit.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/edit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/eficompress.efi b/EdkShellBinPkg/Bin/Ipf/Apps/eficompress.efi
index b4845aa..c864890 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/eficompress.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/eficompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/efidecompress.efi b/EdkShellBinPkg/Bin/Ipf/Apps/efidecompress.efi
index 66587b4..59cee5d 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/efidecompress.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/efidecompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/err.efi b/EdkShellBinPkg/Bin/Ipf/Apps/err.efi
index 15b8524..281ce52 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/err.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/err.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/hexedit.efi b/EdkShellBinPkg/Bin/Ipf/Apps/hexedit.efi
index f3b270a..e437e5d 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/hexedit.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/hexedit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/mem.efi b/EdkShellBinPkg/Bin/Ipf/Apps/mem.efi
index 347cd38..a2a5256 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/mem.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/mem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/memmap.efi b/EdkShellBinPkg/Bin/Ipf/Apps/memmap.efi
index 268e548..2890d03 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/memmap.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/memmap.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/mm.efi b/EdkShellBinPkg/Bin/Ipf/Apps/mm.efi
index f5a504b..513bcb0 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/mm.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/mm.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/mode.efi b/EdkShellBinPkg/Bin/Ipf/Apps/mode.efi
index c8b083f..95c7545 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/mode.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/mode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/pci.efi b/EdkShellBinPkg/Bin/Ipf/Apps/pci.efi
index 78661de..04b9828 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/pci.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/pci.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/sermode.efi b/EdkShellBinPkg/Bin/Ipf/Apps/sermode.efi
index 04034ce..b7fc6ef 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/sermode.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/sermode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/stall.efi b/EdkShellBinPkg/Bin/Ipf/Apps/stall.efi
index 693d67f..f20ed01 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/stall.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/stall.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/Ipf/Apps/timezone.efi b/EdkShellBinPkg/Bin/Ipf/Apps/timezone.efi
index 7dc4cd8..399c174 100644
--- a/EdkShellBinPkg/Bin/Ipf/Apps/timezone.efi
+++ b/EdkShellBinPkg/Bin/Ipf/Apps/timezone.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Dblk.efi b/EdkShellBinPkg/Bin/X64/Apps/Dblk.efi
index 7be7eb2..da1f4d9 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Dblk.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Dblk.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Devices.efi b/EdkShellBinPkg/Bin/X64/Apps/Devices.efi
index 7e8650d..846f9ec 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Devices.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Devices.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Devtree.efi b/EdkShellBinPkg/Bin/X64/Apps/Devtree.efi
index d477c8e..43e81d2 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Devtree.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Devtree.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Guid.efi b/EdkShellBinPkg/Bin/X64/Apps/Guid.efi
index d2ec326..72594eb 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Guid.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Guid.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/IfConfig.efi b/EdkShellBinPkg/Bin/X64/Apps/IfConfig.efi
index 71d8577..d35c138 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/IfConfig.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/IfConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/IpConfig.efi b/EdkShellBinPkg/Bin/X64/Apps/IpConfig.efi
index 0979902..8e8f18f 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/IpConfig.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/IpConfig.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/LoadPciRom.efi b/EdkShellBinPkg/Bin/X64/Apps/LoadPciRom.efi
index 778417f..267a232 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/LoadPciRom.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/LoadPciRom.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Mount.efi b/EdkShellBinPkg/Bin/X64/Apps/Mount.efi
index 2182972..b6b1e84 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Mount.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Mount.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Openinfo.efi b/EdkShellBinPkg/Bin/X64/Apps/Openinfo.efi
index c3361df..6578def 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Openinfo.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Openinfo.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/Ping.efi b/EdkShellBinPkg/Bin/X64/Apps/Ping.efi
index d7a1025..4a44292 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/Ping.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/Ping.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/SmbiosView.efi b/EdkShellBinPkg/Bin/X64/Apps/SmbiosView.efi
index c3f0d23..e111ba7 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/SmbiosView.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/SmbiosView.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/TelnetMgmt.efi b/EdkShellBinPkg/Bin/X64/Apps/TelnetMgmt.efi
index 2777489..4589710 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/TelnetMgmt.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/TelnetMgmt.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/comp.efi b/EdkShellBinPkg/Bin/X64/Apps/comp.efi
index 873f661..ae814a9 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/comp.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/comp.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/dmem.efi b/EdkShellBinPkg/Bin/X64/Apps/dmem.efi
index 624d6a7..9cb8102 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/dmem.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/dmem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/dmpstore.efi b/EdkShellBinPkg/Bin/X64/Apps/dmpstore.efi
index e1670ff..e1f3a0c 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/dmpstore.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/dmpstore.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/edit.efi b/EdkShellBinPkg/Bin/X64/Apps/edit.efi
index d0f8d2a..74b3b37 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/edit.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/edit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/eficompress.efi b/EdkShellBinPkg/Bin/X64/Apps/eficompress.efi
index 21bee9a..5f252c3 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/eficompress.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/eficompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/efidecompress.efi b/EdkShellBinPkg/Bin/X64/Apps/efidecompress.efi
index 340bc06..4f1643f 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/efidecompress.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/efidecompress.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/err.efi b/EdkShellBinPkg/Bin/X64/Apps/err.efi
index 1eb7b01..6b8b933 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/err.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/err.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/hexedit.efi b/EdkShellBinPkg/Bin/X64/Apps/hexedit.efi
index 2414293..a41d387 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/hexedit.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/hexedit.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/mem.efi b/EdkShellBinPkg/Bin/X64/Apps/mem.efi
index d5d8a4a..cd24ee5 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/mem.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/mem.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/memmap.efi b/EdkShellBinPkg/Bin/X64/Apps/memmap.efi
index 6a06df9..dd58189 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/memmap.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/memmap.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/mm.efi b/EdkShellBinPkg/Bin/X64/Apps/mm.efi
index 493c2eb..46cebd9 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/mm.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/mm.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/mode.efi b/EdkShellBinPkg/Bin/X64/Apps/mode.efi
index 11c2c4a..168e39f 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/mode.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/mode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/pci.efi b/EdkShellBinPkg/Bin/X64/Apps/pci.efi
index 10c02db..4b875cf 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/pci.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/pci.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/sermode.efi b/EdkShellBinPkg/Bin/X64/Apps/sermode.efi
index a4ab6d6..9876250 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/sermode.efi
+++ b/EdkShellBinPkg/Bin/X64/Apps/sermode.efi
Binary files differ
diff --git a/EdkShellBinPkg/Bin/X64/Apps/stall.efi b/EdkShellBinPkg/Bin/X64/Apps/stall.efi
index 552b1ae..8399de5 100644
--- a/EdkShellBinPkg/Bin/X64/Apps/stall.efi
+++ b/