summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/Arm
Commit message (Collapse)AuthorAgeFilesLines
* MdePkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney2019-04-091-7/+1
| | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/Arm/ProcessorBind.h: fix copy/paste errorArd Biesheuvel2018-12-201-1/+1
| | | | | | | | | Instead of #defining MAX_ALLOC_ADDRESS to MAX_ADDRESS as intended, it is #defined to itself, causing all ARM builds to break. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* MdePkg/Base: introduce MAX_ALLOC_ADDRESSArd Biesheuvel2018-12-201-0/+5
| | | | | | | | | | | | | | | | On some architectures, the maximum representable address deviates from the virtual address range that is accessible by the firmware at boot time. For instance, on AArch64, UEFI mandates a 4 KB page size, which limits the address space to 48 bits, while more than that may be populated on a particular platform, for use by the OS. So introduce a new macro MAX_ALLOC_ADDRESS, which represent the maximum address the firmware should take into account when allocating memory ranges that need to be accessible by the CPU at boot time. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg: Disable some Level 4 warnings for VS2017/ARMLiming Gao2018-02-071-21/+75
| | | | | | | | | | | We disable the exact same warnings as IA32 and X64. Also create a dummy macro for PRESERVE8, as this is not supported by the Microsoft ARM assembler. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard <pete@akeo.ie> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/BaseSafeIntLib: Add SafeIntLib class and instanceSean Brogan2018-01-251-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=798 SafeIntLib provides helper functions to prevent integer overflow during type conversion, addition, subtraction, and multiplication. Conversion Functions ==================== * Converting from a signed type to an unsigned type of the same size, or vice-versa. * Converting to a smaller type that could possibly overflow. * Converting from a signed type to a larger unsigned type. Unsigned Addition, Subtraction, Multiplication =============================================== * Unsigned integer math functions protect from overflow and underflow (in case of subtraction). Signed Addition, Subtraction, Multiplication ============================================ * Strongly consider using unsigned numbers. * Signed numbers are often used where unsigned numbers should be used. For example file sizes and array indices should always be unsigned. Subtracting a larger positive signed number from a smaller positive signed number with SafeInt32Sub() will succeed, producing a negative number, that then must not be used as an array index (but can occasionally be used as a pointer index.) Similarly for adding a larger magnitude negative number to a smaller magnitude positive number. * SafeIntLib does not protect you from such errors. It tells you if your integer operations overflowed, not if you are doing the right thing with your non-overflowed integers. * Likewise you can overflow a buffer with a non-overflowed unsigned index. Based on content from the following branch/commits: https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport https://github.com/Microsoft/MS_UEFI/commit/21ef3a321c907b40fa93797619c9f6c686dd92e0 https://github.com/Microsoft/MS_UEFI/commit/ca516b1a61315c2d823f453e12d2135098f53d61 https://github.com/Microsoft/MS_UEFI/commit/33bab4031a417d7d5a7d356c15a14c2e60302b2d Cc: Sean Brogan <sean.brogan@microsoft.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Sean Brogan <sean.brogan@microsoft.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg: Arm/AArch64 - filter #pragma pack() when __ASSEMBLER__Leif Lindholm2017-12-071-1/+1
| | | | | | | | | | | | clang, when used as a preprocessor for dtc, does not discard #pragma statements although -x assembler-with-cpp is specified. This causes dtc to barf at a #pragma pack() statement that is already filtered out for __GNUC__. So add a check to also filter this out if __ASSEMBLER__. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/ProcessorBind: add defines for page allocation granularityArd Biesheuvel2017-03-061-0/+6
| | | | | | | | | | | | | | The UEFI spec differs between architectures in the minimum alignment and granularity of page allocations that are visible to the OS as EFI_MEMORY_RUNTIME regions. So define macros that carry these values to the respective ProcessorBind.h header files. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg: Fix some typing errors in the header filesThomas Huth2016-10-071-1/+1
| | | | | | | | | Correct the typos in some header files of MdePkg. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
* MdePkg RVCT: add definition of UNREACHABLEArd Biesheuvel2016-08-121-0/+7
| | | | | | | | | | | | | The RVCT compiler in --gnu mode appears to simply strip of the __builtin prefix when it encounters calls to __builtin_xxx() functions, and so the __builtin_unreachable() we emit for GCC results in linker errors regarding undefined references against 'unreachable()'. So define UNREACHABLE() to a NOP instead. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/ProcessorBind.h: Add ARM and AArch64 GCC macros for ClangOlivier Martin2014-10-311-1/+3
| | | | | | | | | | | When compiling with Clang, we still use GNU as for the assembler, so we still need to define the GCC_ASM* macros. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16282 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg Base.h: Always define ASM_PFXJordan Justen2014-09-011-0/+4
| | | | | | | | | | | | Some compilers may define __USER_LABEL_PREFIX__ to determine the prefix used with ASM_PFX. Otherwise, IA32 will use a single underscore '_' character, and all other architectures will use an empty prefix. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16019 6f19259b-4bc3-4df7-8a09-765794883524
* 1. Add defines for MAX values for UEFI data types.Liming Gao2013-07-121-1/+7
| | | | | | | | | | | 2. Remove the #defines and add the extern declarations for gEfiDebugPortVariableGuid and gEfiDebugPortDevicePathGuid. Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: michael.d.kinney@intel.com Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14465 6f19259b-4bc3-4df7-8a09-765794883524
* Fix a typo.ydong102012-06-211-1/+1
| | | | | | | Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13464 6f19259b-4bc3-4df7-8a09-765794883524
* Update MdePkg and EdkCompatibilityPkg INT8 definition to be typedef signed ↵lgao42012-05-161-3/+3
| | | | | | | | | char to follow UEFI spec. Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Michael D. Kinney <michael.d.kinney@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13312 6f19259b-4bc3-4df7-8a09-765794883524
* Fix Xcode build issue.andrewfish2011-03-051-2/+1
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11347 6f19259b-4bc3-4df7-8a09-765794883524
* Replace INTERWORK_FUNC, with GCC_ASM_EXPORT() and GCC_ASM_IMPORT() and ↵andrewfish2011-02-011-1/+18
| | | | | | update the rest of the MdePkg ARM assembler to use the macro. Leave the old INTERWORK_FUNC macro in place until we can make sure all the other packages have been updated and then it can be removed. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11289 6f19259b-4bc3-4df7-8a09-765794883524
* Fix issue with CodeSourcery gcc requiring assembly functions to have a .type ↵andrewfish2010-12-151-0/+14
| | | | | | define inorder to support interworking (calling from thumb(C code) to ARM code (hadn written assembly). We had to add a macro as the .type directive is not supported, or needed, by Xcode. All ARM .S files need to be updated. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11167 6f19259b-4bc3-4df7-8a09-765794883524
* Update the copyright notice formathhtian2010-04-231-3/+3
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10403 6f19259b-4bc3-4df7-8a09-765794883524
* Clean up MdePkg source to correct some coding style issues, etc.qhuang82010-01-271-2/+1
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9832 6f19259b-4bc3-4df7-8a09-765794883524
* Fixes for ARM build in the EdkCompatibilityPkg and a couple of Xcode fixes ↵AJFISH2009-12-061-1/+1
| | | | | | for MdePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9520 6f19259b-4bc3-4df7-8a09-765794883524
* Fix file headers and a few commentsmdkinney2009-08-241-2/+2
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9188 6f19259b-4bc3-4df7-8a09-765794883524
* 1. Use .p2align directive instead of ambiguous .align directive.qhuang82009-08-201-2/+2
| | | | | | | It seems for ARM, .align means power of two, so we'd like to use .p2align for more portability. 2. Fix some typos in ARM ProcessorBind.h git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9152 6f19259b-4bc3-4df7-8a09-765794883524
* Update to make end-of-line consistent for all source files in MdePkg. There ↵qhuang82009-08-191-103/+103
| | | | | | are no other updates besides that change. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9141 6f19259b-4bc3-4df7-8a09-765794883524
* Add ARM specific version of ProcessorBind.hmdkinney2009-08-181-0/+128
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9095 6f19259b-4bc3-4df7-8a09-765794883524