mirror of https://github.com/acidanthera/audk.git
ArmPkg/BdsLib/Arm: Check Linux image and parameters are not overlapping
Check Linux image and parameters are not overlapping with each other. 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@16013 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
5779aaafe9
commit
e754c233a1
|
@ -1,6 +1,6 @@
|
||||||
/** @file
|
/** @file
|
||||||
*
|
*
|
||||||
* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
* Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials
|
* This program and the accompanying materials
|
||||||
* are licensed and made available under the terms and conditions of the BSD License
|
* are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
@ -17,6 +17,9 @@
|
||||||
|
|
||||||
#define ALIGN32_BELOW(addr) ALIGN_POINTER(addr - 32,32)
|
#define ALIGN32_BELOW(addr) ALIGN_POINTER(addr - 32,32)
|
||||||
|
|
||||||
|
#define IS_ADDRESS_IN_REGION(RegionStart, RegionSize, Address) \
|
||||||
|
(((UINTN)(RegionStart) <= (UINTN)(Address)) && ((UINTN)(Address) <= ((UINTN)(RegionStart) + (UINTN)(RegionSize))))
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
PreparePlatformHardware (
|
PreparePlatformHardware (
|
||||||
|
@ -91,7 +94,10 @@ StartLinux (
|
||||||
LinuxImageSize -= 64;
|
LinuxImageSize -= 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Check there is no overlapping between kernel and Atag
|
// Check there is no overlapping between kernel and its parameters
|
||||||
|
// We can only assert because it is too late to fallback to UEFI (ExitBootServices has been called).
|
||||||
|
ASSERT (!IS_ADDRESS_IN_REGION(LinuxKernel, LinuxImageSize, KernelParamsAddress) &&
|
||||||
|
!IS_ADDRESS_IN_REGION(LinuxKernel, LinuxImageSize, KernelParamsAddress + KernelParamsSize));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Switch off interrupts, caches, mmu, etc
|
// Switch off interrupts, caches, mmu, etc
|
||||||
|
|
Loading…
Reference in New Issue