mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg/Documentation: Removed BaseTools-Pending-Patches.patch
All the required pending BaseTools patches have been merged. This patch is not required anymore. 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@16275 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
5de8a35c62
commit
b07ae3d607
|
@ -16,15 +16,12 @@ svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 --username
|
|||
cd edk2
|
||||
svn co https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk/FatPkg FatPkg --username guest
|
||||
|
||||
3. Apply BaseTools patches (BaseTools-Pending-Patches.patch combines all the currently pending BaseTools patches)
|
||||
patch -p1 < ArmPlatformPkg/Documentation/patches/BaseTools-Pending-Patches.patch
|
||||
|
||||
4. Set up the environment. And build the EDK2’s tools
|
||||
3. Set up the environment. And build the EDK2’s tools
|
||||
export EDK_TOOLS_PATH=`pwd`/BaseTools
|
||||
. edksetup.sh `pwd`/BaseTools/
|
||||
make -C $EDK_TOOLS_PATH
|
||||
|
||||
5. Build the ARM RealView EB UEFI Firmware
|
||||
4. Build the ARM RealView EB UEFI Firmware
|
||||
build -a ARM -p ArmPlatformPkg/ArmRealViewEBPkg/ArmRealViewEb-RTSM-A8.dsc -t RVCTLINUX
|
||||
|
||||
|
||||
|
|
|
@ -38,21 +38,18 @@ svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 --username
|
|||
cd edk2
|
||||
svn co https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk/FatPkg FatPkg --username guest
|
||||
|
||||
3. Apply BaseTools patches (BaseTools-Pending-Patches.patch combines all the currently pending BaseTools patches)
|
||||
patch -p1 < ArmPlatformPkg/Documentation/patches/BaseTools-Pending-Patches.patch
|
||||
|
||||
4. Set up the environment. And build the EDK2’s tools
|
||||
3. Set up the environment. And build the EDK2’s tools
|
||||
export EDK_TOOLS_PATH=`pwd`/BaseTools
|
||||
. edksetup.sh `pwd`/BaseTools/
|
||||
. edksetup.sh
|
||||
make -C $EDK_TOOLS_PATH
|
||||
|
||||
5. Ensure the ARMGCC toolchain is in your PATH environment variable or defined by the ARMGCC_TOOLS_PATH environment variable. Example:
|
||||
4. Ensure the ARMGCC toolchain is in your PATH environment variable or defined by the ARMGCC_TOOLS_PATH environment variable. Example:
|
||||
export ARMGCC_TOOLS_PATH=/opt/toolchains/arm-2010.09-arm-none-eabi-i686-pc-linux-gnu/bin/
|
||||
|
||||
6. Build the ARM Versatile Express UEFI Firmware
|
||||
5. Build the ARM Versatile Express UEFI Firmware
|
||||
build -a ARM -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc -t ARMGCC
|
||||
|
||||
7. Edit the ARM Versatile Express configuration file config.txt to declare the location of the UEFI firmware in NOR Flash
|
||||
6. Edit the ARM Versatile Express configuration file config.txt to declare the location of the UEFI firmware in NOR Flash
|
||||
TOTALIMAGES: 5 ;Number of Images (Max : 32)
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: BOOT ;Image Flash Address
|
||||
|
@ -77,20 +74,20 @@ NOR4ADDRESS: 40000000 ;Image Flash Address
|
|||
NOR4NAME: BOOTSCRIPT ;Image Name
|
||||
NOR4FILE: \SOFTWARE\bootscr.txt ;Image File Name
|
||||
|
||||
8. To select second NOR Flash as a booting device, replace in the ARM Versatile Express file \SITE1\HBI0191B\board.txt:
|
||||
7. To select second NOR Flash as a booting device, replace in the ARM Versatile Express file \SITE1\HBI0191B\board.txt:
|
||||
SCC: 0x004 0x00001F09
|
||||
By:
|
||||
SCC: 0x004 0x10001F09
|
||||
|
||||
9. Copy Build/ArmVExpress-CTA9x4/DEBUG_ARMGCC/FV/SEC_ARMVEXPRESS_EFI.fd to the ARM Versatile Express mass storage (available when the board is connected through USB to your host machine) under the folder SOTWARE and name sec_uefi.bin. Example for cygwin:
|
||||
8. Copy Build/ArmVExpress-CTA9x4/DEBUG_ARMGCC/FV/SEC_ARMVEXPRESS_EFI.fd to the ARM Versatile Express mass storage (available when the board is connected through USB to your host machine) under the folder SOTWARE and name sec_uefi.bin. Example for cygwin:
|
||||
cp Build/ArmVExpress-CTA9x4/DEBUG_ARMGCC/FV/SEC_ARMVEXPRESS_EFI.fd /cygdrive/e/SOFTWARE/sec_uefi.bin
|
||||
|
||||
10. Start the ARM Versatile Express board. You should read “Waiting for firmware at 0x80000000 ...” on the serial port.
|
||||
9. Start the ARM Versatile Express board. You should read “Waiting for firmware at 0x80000000 ...” on the serial port.
|
||||
|
||||
11. Copy ARMVEXPRESS_EFI.fd at 0x80000000 with RealView Debugger
|
||||
10. Copy ARMVEXPRESS_EFI.fd at 0x80000000 with RealView Debugger
|
||||
readfile,raw,nowarn "[EDK2_PATH]\Build\ArmVExpress-CTA9x4\DEBUG_ARMGCC\FV\ARMVEXPRESS_EFI.fd"=0x80000000
|
||||
|
||||
12. Resume the execution from RealView Debugger
|
||||
11. Resume the execution from RealView Debugger
|
||||
|
||||
For all subsequent times
|
||||
************************
|
||||
|
|
|
@ -1,152 +0,0 @@
|
|||
From 7686eed1a9ed96791cfa65ec5b2f5fdaca538e53 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Martin <olivier.martin@arm.com>
|
||||
Date: Tue, 11 Jun 2013 10:56:12 +0100
|
||||
Subject: [PATCH 3/8] BaseTools/GenFw: Set the PE/COFF attribute BaseOfCode with the address of the first '.text' section
|
||||
|
||||
Before this change the alignment of the first code section was not taken into account.
|
||||
|
||||
Change-Id: I6e6b07edb2f7e7179c9467b43857c44a8309cb68
|
||||
Contributed-under: TianoCore Contribution Agreement 1.0
|
||||
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
|
||||
---
|
||||
BaseTools/Source/C/GenFw/Elf32Convert.c | 20 +++++++++++++++++++-
|
||||
BaseTools/Source/C/GenFw/Elf64Convert.c | 19 ++++++++++++++++++-
|
||||
2 files changed, 37 insertions(+), 2 deletions(-)
|
||||
mode change 100644 => 100755 BaseTools/Source/C/GenFw/Elf32Convert.c
|
||||
mode change 100644 => 100755 BaseTools/Source/C/GenFw/Elf64Convert.c
|
||||
|
||||
diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C/GenFw/Elf32Convert.c
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index ddb45ac..58ac333
|
||||
--- a/BaseTools/Source/C/GenFw/Elf32Convert.c
|
||||
+++ b/BaseTools/Source/C/GenFw/Elf32Convert.c
|
||||
@@ -1,6 +1,7 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
+Portions 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
|
||||
@@ -18,6 +19,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <windows.h>
|
||||
#include <io.h>
|
||||
#endif
|
||||
+#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -264,9 +266,12 @@ ScanSections32 (
|
||||
EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
|
||||
UINT32 CoffEntry;
|
||||
UINT32 SectionCount;
|
||||
+ BOOLEAN FoundText;
|
||||
|
||||
CoffEntry = 0;
|
||||
mCoffOffset = 0;
|
||||
+ mTextOffset = 0;
|
||||
+ FoundText = FALSE;
|
||||
|
||||
//
|
||||
// Coff file start with a DOS header.
|
||||
@@ -291,7 +296,6 @@ ScanSections32 (
|
||||
// First text sections.
|
||||
//
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
- mTextOffset = mCoffOffset;
|
||||
SectionCount = 0;
|
||||
for (i = 0; i < mEhdr->e_shnum; i++) {
|
||||
Elf_Shdr *shdr = GetShdrByIndex(i);
|
||||
@@ -315,12 +319,26 @@ ScanSections32 (
|
||||
(mEhdr->e_entry < shdr->sh_addr + shdr->sh_size)) {
|
||||
CoffEntry = mCoffOffset + mEhdr->e_entry - shdr->sh_addr;
|
||||
}
|
||||
+
|
||||
+ //
|
||||
+ // Set mTextOffset with the offset of the first '.text' section
|
||||
+ //
|
||||
+ if (!FoundText) {
|
||||
+ mTextOffset = mCoffOffset;
|
||||
+ FoundText = TRUE;
|
||||
+ }
|
||||
+
|
||||
mCoffSectionsOffset[i] = mCoffOffset;
|
||||
mCoffOffset += shdr->sh_size;
|
||||
SectionCount ++;
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!FoundText) {
|
||||
+ Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||
+ assert (FALSE);
|
||||
+ }
|
||||
+
|
||||
if (mEhdr->e_machine != EM_ARM) {
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
}
|
||||
diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 72d6cd1..713f8f7
|
||||
--- a/BaseTools/Source/C/GenFw/Elf64Convert.c
|
||||
+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
|
||||
@@ -19,6 +19,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <windows.h>
|
||||
#include <io.h>
|
||||
#endif
|
||||
+#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -258,9 +259,12 @@ ScanSections64 (
|
||||
EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
|
||||
UINT32 CoffEntry;
|
||||
UINT32 SectionCount;
|
||||
+ BOOLEAN FoundText;
|
||||
|
||||
CoffEntry = 0;
|
||||
mCoffOffset = 0;
|
||||
+ mTextOffset = 0;
|
||||
+ FoundText = FALSE;
|
||||
|
||||
//
|
||||
// Coff file start with a DOS header.
|
||||
@@ -286,7 +290,6 @@ ScanSections64 (
|
||||
// First text sections.
|
||||
//
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
- mTextOffset = mCoffOffset;
|
||||
SectionCount = 0;
|
||||
for (i = 0; i < mEhdr->e_shnum; i++) {
|
||||
Elf_Shdr *shdr = GetShdrByIndex(i);
|
||||
@@ -310,12 +313,26 @@ ScanSections64 (
|
||||
(mEhdr->e_entry < shdr->sh_addr + shdr->sh_size)) {
|
||||
CoffEntry = (UINT32) (mCoffOffset + mEhdr->e_entry - shdr->sh_addr);
|
||||
}
|
||||
+
|
||||
+ //
|
||||
+ // Set mTextOffset with the offset of the first '.text' section
|
||||
+ //
|
||||
+ if (!FoundText) {
|
||||
+ mTextOffset = mCoffOffset;
|
||||
+ FoundText = TRUE;
|
||||
+ }
|
||||
+
|
||||
mCoffSectionsOffset[i] = mCoffOffset;
|
||||
mCoffOffset += (UINT32) shdr->sh_size;
|
||||
SectionCount ++;
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!FoundText) {
|
||||
+ Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||
+ assert (FALSE);
|
||||
+ }
|
||||
+
|
||||
if (mEhdr->e_machine != EM_ARM) {
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
}
|
||||
--
|
||||
1.7.0.4
|
||||
|
Loading…
Reference in New Issue