Zhang Lubo [Thu, 17 Dec 2015 01:12:11 +0000 (01:12 +0000)]
MdeModulePkg:Fix a bug HttpLib can't parse last chunked data well
When HttpLib parsing the last chunked data down, the Http NextMsg pointer
in the HttpBodyParserCallback function should point to the character
after '/n' flag.
Michael Kinney [Wed, 16 Dec 2015 17:34:23 +0000 (17:34 +0000)]
QuarkPlatformPkg/PlatformSecLib: Sync Flat32.S with Flat32.asm
Update Flat32.S to match Flat32.asm. A sync was missed, so
Flat32.S is calling SecStartup instead of PlatformSecLibStartup
which is causing a boot failures with GCC builds because the
caches are not initialized correctly when the call to
PlatformSecLibStartup is not performed.
Cc: Kelly Steele <kelly.steele@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19306 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Wed, 16 Dec 2015 17:31:15 +0000 (17:31 +0000)]
QuarkPlatformPkg/SpiFvbServices: Remove duplicate global variable
Remove declaration of gEfiFirmwareVolumeBlockProtocolGuid and
gEfiSmmFirmwareVolumeBlockProtocolGuid that are generating build
failures on GCC because these same variables are declared in
AutoGen.c and assigned a GUID value from DEC file.
Cc: Kelly Steele <kelly.steele@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19305 6f19259b-4bc3-4df7-8a09-765794883524
Paulo Alcantara [Wed, 16 Dec 2015 16:48:59 +0000 (16:48 +0000)]
ShellPkg: Fix unhandled value in switch statement
This patch fixes the following compile error under GCC 5.3.1:
/home/pcacjr/work/edk2.git/ShellPkg/Application/Shell/ShellManParser.c:
In function 'IsTitleHeader':
/home/pcacjr/work/edk2.git/ShellPkg/Application/Shell/ShellManParser.c:502:5:
error: enumeration value 'Final' not handled in switch [-Werror=switch]
switch (State) {
^
Ard Biesheuvel [Wed, 16 Dec 2015 12:57:14 +0000 (12:57 +0000)]
ArmPkg: rewrite vector table population macros
Unfortunately, Clang does not support the use of symbol references in .org
directives, and bails with the following error message when it encounters
them:
So replace the .org arguments with absolute values, and move the whole
vector table into a subsection with the appropriate alignment, and
starting at .org 0x0. This gives the same protection with respect to
entries that exceed 128 bytes, in a way that Clang supports as well.
Qiu Shumin [Wed, 16 Dec 2015 03:18:02 +0000 (03:18 +0000)]
ShellPkg: Fix the 'bcfg' command ASSERT when use some invalid parameters.
'bcfg boot mv xx yy' command will ASSET when xx is larger than the count of boot options.
This patch correct the order of ShellPrintHiiEx parameters to fix the bugs.
Jim Dailey [Wed, 16 Dec 2015 02:01:07 +0000 (02:01 +0000)]
ShellPkg: Ease the shell's MAN file Title Header syntax requirements.
Prior to this change, the shell would not use a MAN file if the Title Header line was not strictly formatted.
For example, if the case of the command name in the file was not exactly the same as the case of the command name as typed by the user,
the MAN file would not be used. Also, extra whitespace on the line would also cause the shell to ignore the MAN file.
This change allows "extra" white space and ignores case when looking for the command name.
It also ignores any path information for cases where the user enters a relative or absolute path to the EFI file.
Michael Kinney [Tue, 15 Dec 2015 19:23:57 +0000 (19:23 +0000)]
QuarkPlatformPkg: Add new package for Galileo boards
Changes for V4
==============
1) Move delete of QuarkSocPkg\QuarkNorthCluster\Binary\QuarkMicrocode
from QuarkPlatformPkg commit to QuarkSocPkg commit
2) Fix incorrect license header in PlatformSecLibModStrs.uni
Changes for V3
==============
1) Set PcdResetOnMemoryTypeInformationChange FALSE in QuarkMin.dsc
This is required because QuarkMin.dsc uses the emulated variable
driver that does not preserve any non-volatile UEFI variables
across reset. If the condition is met where the memory type
information variable needs to be updated, then the system will reset
every time the UEFI Shell is run. By setting this PCD to FALSE,
then reset action is disabled.
2) Move one binary file to QuarkSocBinPkg
3) Change RMU.bin FILE statements to INF statement in DSC FD region
to be compatible with PACKAGES_PATH search for QuarkSocBinPkg
Changes for V2
==============
1) Use new generic PCI serial driver PciSioSerialDxe in MdeModulePkg
2) Configure PcdPciSerialParameters for PCI serial driver for Quark
3) Use new MtrrLib API to reduce time to set MTRRs for all DRAM
4) Convert all UNI files to utf-8
5) Replace tabs with spaces and remove trailing spaces
6) Add License.txt
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19287 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Tue, 15 Dec 2015 19:22:23 +0000 (19:22 +0000)]
QuarkSocPkg: Add new package for Quark SoC X1000
Changes for V4
==============
1) Remove Unicode character from C source file
2) Move delete of QuarkSocPkg\QuarkNorthCluster\Binary\QuarkMicrocode
from QuarkPlatformPkg commit to QuarkSocPkg commit
Changes for V2
==============
1) Sync with new APIs in SmmCpuFeaturesLib class
2) Use new generic PCI serial driver PciSioSerialDxe in MdeModulePkg
3) Remove PCI serial driver from QuarkSocPkg
4) Apply optimizations to MtrrLib from MtrrLib in UefiCpuPkg
5) Convert all UNI files to utf-8
6) Replace tabs with spaces and remove trailing spaces
7) Add License.txt
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19286 6f19259b-4bc3-4df7-8a09-765794883524
Ard Biesheuvel [Tue, 15 Dec 2015 17:31:56 +0000 (17:31 +0000)]
ArmPkg/ArmV7Mmu: prefer non shareable memory on non-coherent hardware
Commit SVN r18778 made all mappings of normal memory (inner) shareable,
even on hardware that implements shareability as uncached accesses.
The original concerns that prompted the change, regarding coherent DMA
and virt guests migrating between CPUs, do not apply to such hardware,
so revert to the original behavior in that case.
Ard Biesheuvel [Tue, 15 Dec 2015 15:02:24 +0000 (15:02 +0000)]
BaseTools ARM: add CLANG35 support
This extends the existing CLANG35 toolchain definition with support for
building for the ARM architecture. In order to be able to reuse the existing
ARM GCC definitions as much as possible, the following changes have been
made to the existing ARM GCC support:
- the -mapcs option has been removed; it is a no-op under Thumb (our default)
and we use AAPCS (-mabi=aapcs) anyway
- the -mword-relocations option has been moved from GCC_ARM_CC_FLAGS to
the GCC4x specific option: CLANG does not support it, and uses '-mllvm
-marm-use-movt=0' instead.
Ard Biesheuvel [Tue, 15 Dec 2015 15:02:16 +0000 (15:02 +0000)]
ArmPkg/ArmSoftfloatLib: restrict -fno-tree-vrp option to GCC46 and GCC47
The -fno-tree-vrp option is not required for GCC 4.8 or later, and is not
supported by CLANG. So restrict its use to GCC 4.6 and 4.7, which are the
oldest versions we support for ARM.
Ard Biesheuvel [Tue, 15 Dec 2015 15:02:07 +0000 (15:02 +0000)]
ArmPkg/ArmV7Lib: add CLANG alternative for FPEXC access
The open coded access to co-processor #10 to set FPEXC is not supported
by the CLANG assembler, but the architecturally correct VMSR instruction
is not supported by older binutils. So keep the former unless __clang__
is defined.
Ard Biesheuvel [Tue, 15 Dec 2015 15:01:42 +0000 (15:01 +0000)]
ArmPkg: use unified asm syntax for CLANG
The CLANG assembler does not support the legacy, non-unified assembler syntax,
i.e., it does not support the reordering of the condition suffixes with the
increment/decrement before/after or byte/word suffixes, and it does not
recognize the 'empty descending' (ED) suffix at all. So move to the unified
syntax, and replace 'empty descending' with 'decrement after' or 'increment
before' as appropriate.
Ard Biesheuvel [Tue, 15 Dec 2015 13:08:48 +0000 (13:08 +0000)]
ArmPkg/ArmGic: fix bug in GICv3 distributor configuration
In the function ArmGicEnableDistributor (), the Affinity Routing Enable
(ARE) bit, which essentially defines whether the GIC runs in v2 or v3
mode, is inadvertently cleared when enabling the GIC distributor if it
is running in v3 mode. So fix that.
Ard Biesheuvel [Tue, 15 Dec 2015 09:56:04 +0000 (09:56 +0000)]
ArmPkg/CpuDxe: drop ARMv4 exception handling code
Since we do not support anything below ARMv7, let's promote the ARMv6
exception handling code in CpuDxe to the only version we provide for
ARM. This means we can drop the unused ARMv4 version.
Hao Wu [Tue, 15 Dec 2015 05:43:08 +0000 (05:43 +0000)]
MdeModulePkg UfsPassThru: ASSERT if params are NULL in SignalCallerEvent
In function SignalCallerEvent(), 'Private' and 'TransReq' are dereferenced
before NULL checking.
Since the function assumes that both 'Private' and 'TransReq' passed in
are not NULL pointer, this commit will add an ASSERT to make sure the
above assumption is satisfied.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19264 6f19259b-4bc3-4df7-8a09-765794883524
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19263 6f19259b-4bc3-4df7-8a09-765794883524
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19255 6f19259b-4bc3-4df7-8a09-765794883524
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19254 6f19259b-4bc3-4df7-8a09-765794883524
Jordan Justen [Tue, 15 Dec 2015 04:50:50 +0000 (04:50 +0000)]
BaseTools/Scripts: Add ConvertUni.py script
This script uses python codecs to convert .uni string files between
the utf-16 and utf-8 formats.
The advantages of utf-8 data:
* Generally smaller files
* More commonly supported by editors
* Not treated as binary data in patch files
The script was tested on MdePkg with both python 2.7 and python 3.4.
It was able to convert all MdePkg .uni files between utf-8 and utf-16
multiple times always producing the same files for each format.
v2:
* Rename ConvertUtf16ToUtf8.py to ConvertUni.py
* Also support utf-8 to utf-16 conversion (with --utf-16)
Yao, Jiewen [Tue, 15 Dec 2015 04:27:00 +0000 (04:27 +0000)]
Fix >4G issue on IDT not restored correctly.
Idtr might be changed inside of FSP. 32bit FSP only knows the <4G address.
If IDTR.Base is >4G, FSP can not handle. So we need save/restore IDTR here.
Interrupt is already disabled here, so it is safety to update IDTR.
Ard Biesheuvel [Mon, 14 Dec 2015 16:08:27 +0000 (16:08 +0000)]
ArmPlatformPkg/Sec: fix return_from_exception code and comment
The return_from_exception implementation in Sec/Helper.S (the GCC
version) deviates from the RVCT version, in a way that suggests that
both may have been broken at some point, and that they weren't fixed
in the same way nor at the same time.
So bring the GCC version in line with the RVCT version, and at the
same time, deobfuscate the comment.
Ard Biesheuvel [Mon, 14 Dec 2015 13:00:30 +0000 (13:00 +0000)]
ArmPlatformPkg/RTSM: use declared PPI rather than module local var
We can refer to gArmMpCoreInfoPpiGuid directly if we declare it under
[Ppis] in the library's .inf so there is no need to copy it into a
module local variable.
Ard Biesheuvel [Mon, 14 Dec 2015 13:00:21 +0000 (13:00 +0000)]
ArmPlatformPkg/CTA9x4: use declared PPI rather than module local var
We can refer to gArmMpCoreInfoPpiGuid directly if we declare it under
[Ppis] in the library's .inf so there is no need to copy it into a
module local variable.
Ard Biesheuvel [Mon, 14 Dec 2015 13:00:12 +0000 (13:00 +0000)]
ArmPlatformPkg/CTA15-A7: use declared PPI rather than module local var
We can refer to gArmMpCoreInfoPpiGuid directly if we declare it under
[Ppis] in the library's .inf so there is no need to copy it into a
module local variable.
Ard Biesheuvel [Mon, 14 Dec 2015 13:00:03 +0000 (13:00 +0000)]
ArmPlatformPkg/ArmJunoLib: use declared PPI rather than module local var
We can refer to gArmMpCoreInfoPpiGuid directly if we declare it under
[Ppis] in the library's .inf so there is no need to copy it into a
module local variable.
Ard Biesheuvel [Mon, 14 Dec 2015 12:59:52 +0000 (12:59 +0000)]
ArmPlatformPkg/ArmPlatformLibNull: use declared PPI rather than module local var
We can refer to gArmMpCoreInfoPpiGuid directly if we declare it under
[Ppis] in the library's .inf so there is no need to copy it into a
module local variable.
Ard Biesheuvel [Mon, 14 Dec 2015 07:56:19 +0000 (07:56 +0000)]
ArmVirtPkg RVCT: build DXE_RUNTIME_DRIVER modules with 4 KB alignment
This adds the RVCT armlink command line switches to build modules of type
DXE_RUNTIME_DRIVER with 4 KB PE/COFF section alignment, allowing the OS
to apply stricter permissions to the .text and .data sections.
Ard Biesheuvel [Mon, 14 Dec 2015 07:56:02 +0000 (07:56 +0000)]
BaseTools/GenFw RVCT: fix relocation processing of PT_DYNAMIC sections
Unlike GNU ld, which can be instructed to emit symbol based static
relocations into fully linked binaries using the --emit-relocs command
line switch, the RVCT armlink tool can only emit dynamic relocations
into the PT_DYNAMIC segment.
This has two consequences
. we can only identify absolute relocations, so there is no way to fix
up relative relocations between sections, or check their validity in
the PE/COFF layout
. the r_offset fields of the PT_DYNAMIC DT_REL entries are relative
either to the base of the image or to any of its segments but *not* to
the base of the input section that contains the location they refer
to, and converting them to PE/COFF image offsets is non-trivial unless
the sections are laid out in the same way in the ELF and PE/COFF
versions of the binary.
There is really only one way to deal with this, and that is to require
that the ELF and PE/COFF versions of the binary are identical in memory.
So enforce that in the code.
Also, fix the utterly broken relocation fixup code that dereferences
ELF32_R_SYM(r_info) both as a 1-based program header index and a 0-based
section header index. If this code ever produced working binaries, it
was purely by chance.
Ard Biesheuvel [Mon, 14 Dec 2015 07:55:46 +0000 (07:55 +0000)]
BaseTools RVCT: use scatter file to enforce minimum section alignment
Up until SVN r18540, GenFw created invalid PE/COFF binaries for the ARM
architecture, by allowing PE/COFF .data sections to appear at offsets
that were not aligned to the global PE/COFF section alignment. The
reason for this was that the relocation metadata emitted by RVCT's
armlink only contains dynamic absolute relocations, so it is impossible
to recalculate relative relocations between .text and .data, and so the
relative offset between the two needs to be preserved.
Since r18540, we do align .data to the PE/COFF section alignment,
resulting in potentially corrupt PE/COFF binaries unless .data happens
to appear at a 32-byte aligned offset. So let's introduce a RVCT scatter
file that sets this alignment for the ELF .data section (and subsequent
.bss section).
At the same time, set the start offset to 0x220 bytes (which is the size
of our 32-bit PE/COFF header) so that the memory layouts are identical
between ELF and PE/COFF. Also add a 4 KB aligned version that can be
used to build DXE_RUNTIME_DRIVER modules with runtime memory protection
enabled.
Michael Kinney [Mon, 14 Dec 2015 06:11:17 +0000 (06:11 +0000)]
MdePkg/BaseIoLibIntrinsic: Add EBC support
The EBC instruction set supports memory and MMIO access, but not
I/O port access. Add EBC support to BaseIoLibIntrinsic that
generates an ASSERT() if the IoReadXX()/IoWriteXX() APIs are used.
This matches the implementation for other CPU types that do not
support I/O port access.
Michael Kinney [Mon, 14 Dec 2015 06:03:58 +0000 (06:03 +0000)]
ShellPkg/Mm: Fix build warnings
Fix build warnings for potentially uninitialized local variables
in the functions ShellMmLocateIoProtocol() and ShellCommandRunMm()
in the Shell implementation of the 'mm' command.
Add missing braces in module global mControllerDevicePathTemplate.
Initialize ControllerNumber and ContainsControllerNode in
SerialControllerDriverStart() to address warning for potential use
before initialization warning.
Move initialization of local SerialIo earlier in
SerialControllerDriverStart() to address warning for potential use
before initialization warning.
Qiu Shumin [Sun, 13 Dec 2015 08:44:49 +0000 (08:44 +0000)]
ShellPkg: Initialize the local pointer to avoid potential suspicious dereference.
1. Initialize the local pointer 'HandleBuffer'.
2. When 'LocateHandleBuffer' return error 'HandleBuffer' is expected unchanged, add code make sure this.
Michael Kinney [Sat, 12 Dec 2015 19:28:21 +0000 (19:28 +0000)]
ShellPkg/Shell - Fix ASSERT() when FvSimpleFileSystemDxe is used
When the FvSimpleFileSystemDxe module is included in a platform,
Simple File System Protocols are produced for firmware volumes(FV)
that do not have the same style device paths as file systems with
file names. The ShellPkg has an assumption that the device path
contains device path nodes of type MEDIA_FILEPATH_DP and generates
an ASSERT() if any other device path nodes are encountered. This
change removes the ASSERT() condition and instead returns NULL that
means EfiShellGetFilePathFromDevicePath() can not convert the
device path nodes that represent the file path to a Unicode string.
Eugene Cohen [Fri, 11 Dec 2015 03:07:59 +0000 (03:07 +0000)]
MdeModulePkg: Convert HiiDatabaseDxe ConfigRouting ASSERT to return an error
This should just return an error and not assert. We hit this when testing with a client that was trying to access the old IP4_CONFIG on firmware implementing IP4_CONFIG2.
Qin Long [Fri, 11 Dec 2015 02:29:05 +0000 (02:29 +0000)]
CryptoPkg/OpensslLib: upgrade OpenSSL version to 1.0.2e
OpenSSL has released version 1.0.2e with security fixes.
Upgrade the supported OpenSSL version in CryptoPkg/OpensslLib
from 1.0.2d to 1.0.2e.
(Note: This is based on Ard's previous patch with extra fix
https://rt.openssl.org/Ticket/Display.html?id=4175)
Hao Wu [Fri, 11 Dec 2015 01:59:09 +0000 (01:59 +0000)]
MdeModulePkg ScsiBusDxe: Fix caller event may nerver be signaled
For function ScsiExecuteSCSICommand(), when the 'Event' parameter is not
NULL but the target SCSI device does not support non-blocking I/O, it will
execute a blocking I/O operation instead.
However, after the SCSI operation is done, the 'Event' is not signaled to
inform the caller.
Hao Wu [Fri, 11 Dec 2015 01:57:41 +0000 (01:57 +0000)]
MdePkg UefiScsiLib: Add non-blocking support for SCSI Read/Write command
Four new functions are added to UefiScsiLib:
ScsiRead10CommandEx
ScsiWrite10CommandEx
ScsiRead16CommandEx
ScsiWrite16CommandEx
They support both blocking and non-blocking SCSI Read/Write operation
depending on the optional parameter 'Event' passed to those APIs.
When 'Event' is NULL, these four functions will call the non-EX version
couterparts to execute blocking SCSI I/O. When 'Event' is not NULL,
non-blocking I/O operation is executed.
Heyi Guo [Thu, 10 Dec 2015 16:07:03 +0000 (16:07 +0000)]
ArmPlatformPkg: Fix stack switch bug after commit 7945b29
This is the complementary patch for the commit 7945b29, which strictly
aligns temporary heap size and temporary stack size, but does not do
the same thing when switching stack and heap to permanent memory, and
then it may cause fatal data corruption like PHIT HOB lost and stack
pointer unaligned.
Jiaxin Wu [Thu, 10 Dec 2015 10:59:29 +0000 (10:59 +0000)]
ShellPkg: Fix ifconfig hang issue with incomplete parameters
This patch is used to fix ifconfig hang issue with incomplete
parameters. In addition, some error related output information
is added to increase the interactivity.
Ruiyu Ni [Thu, 10 Dec 2015 04:18:35 +0000 (04:18 +0000)]
ShellPkg/mm: Fix mm to support multiple root bridge platform
In multiple root bridge platforms, different root bridges may
share the same segment but occupy different range of buses,
or may occupy different segments.
The fix is to find the correct root bridge IO instance by
comparing not only the segment but also the bus ranges.
It tries to access the MMIO and IO in the following order:
PciRootBridgeIo, CpuIo and direct IO.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19181 6f19259b-4bc3-4df7-8a09-765794883524
Ruiyu Ni [Thu, 10 Dec 2015 02:47:16 +0000 (02:47 +0000)]
MdeModulePkg: Add PciSioSerialDxe driver
PciSioSerialDxe driver can manages UARTs on a SIO chip or a PCI/PCIE
card.
It manages the SIO instance whose last device path node is a ACPI
device path and the HID in the ACPI device path node equals to
EISA_PNP_ID (0x501).
It also manages the PCI IO instance whose class code is 7/0/2 (16550
UART). But when proper value is set to PcdPciSerialParameters, the
driver can also manage non-standard PCI serial cards by matching
the Vendor ID and Device ID specified in PcdPciSerialParameters.
The PCI BAR index, IO/MMIO offset, register stride, clock rate can
also be specified through the same PCD.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19179 6f19259b-4bc3-4df7-8a09-765794883524
Eugene Cohen [Tue, 8 Dec 2015 15:58:53 +0000 (15:58 +0000)]
ArmPkg: update InvalidateInstructionCacheRange to flush only to PoU
This patch updates the ArmPkg variant of InvalidateInstructionCacheRange to
flush the data cache only to the point of unification (PoU). This improves
performance and also allows invalidation in scenarios where it would be
inappropriate to flush to the point of coherency (like when executing code
from L2 configured as cache-as-ram).
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eugene Cohen <eugene@hp.com>
Added AARCH64 and ARM/GCC implementations of the above.