You can subscribe to this list here.
2010 |
Jan
(1) |
Feb
(2) |
Mar
(12) |
Apr
(3) |
May
(2) |
Jun
(16) |
Jul
(24) |
Aug
(3) |
Sep
(9) |
Oct
(9) |
Nov
(1) |
Dec
(10) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(8) |
Feb
(4) |
Mar
(6) |
Apr
(9) |
May
(4) |
Jun
(32) |
Jul
(14) |
Aug
|
Sep
(24) |
Oct
(26) |
Nov
(34) |
Dec
(15) |
2012 |
Jan
(16) |
Feb
(27) |
Mar
(44) |
Apr
(10) |
May
(8) |
Jun
(15) |
Jul
(10) |
Aug
(15) |
Sep
(12) |
Oct
(4) |
Nov
(3) |
Dec
(16) |
2013 |
Jan
(8) |
Feb
(4) |
Mar
(8) |
Apr
(7) |
May
(22) |
Jun
(17) |
Jul
(18) |
Aug
(31) |
Sep
(19) |
Oct
(16) |
Nov
(26) |
Dec
(11) |
2014 |
Jan
(21) |
Feb
(23) |
Mar
(17) |
Apr
(19) |
May
(39) |
Jun
(33) |
Jul
(86) |
Aug
(11) |
Sep
(5) |
Oct
(19) |
Nov
(1) |
Dec
(2) |
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: David C. <dav...@au...> - 2014-07-30 09:33:26
|
Hi, If I enable secure boot, generate keys, sign an EDK2 binary (EFI) application - do I have to make sure every module in the bios image is signed? Including free form sections? TE images? Along with every driver DXE EFI? Trouble is right now I only have the source EFI for my application. Regards, Dave Cox ________________________________ [http://www2.autologic.com/logo.gif] David Cox Hardware Engineer Autologic Diagnostics Ltd Tel: +44 1865 870050 Mobile: Fax: +44 1865 870051 Email: dav...@au... Website: www.autologic.com<http://www.autologic.com> This message contains information which may be confidential and is intended for the named addressee only. Unless you are the named addressee, or authorised to receive it on behalf of the addressee you may not copy or use it, or disclose it to anyone else. Any views or opinions expressed in this message are those of the author and not necessarily representative of those of Autologic Diagnostics Ltd. Whilst every endeavour is taken to ensure that e-mails are free from viruses, no liability can be accepted and the recipient is requested to use their own virus checking software. If you have received this email in error please accept our apology and contact the sender. All work carried out on any vehicle using Autologic diagnostic equipment must be carried out in strict accordance with the instructions contained within the relevant manufacturer's workshop manuals. Autologic Diagnostics limited accepts no responsibility or liability for any damage or claim arising from any work carried out by operatives using equipment supplied by Autologic Diagnostics limited. Registered Office: Autologic House, London Road, Wheatley, Oxon, OX33 1JH, England, UK Registered in England & Wales No. 06814180 |
From: Olivier M. <oli...@ar...> - 2014-07-28 08:56:42
|
CompilerIntrinsicsLib.lib does not seem to be included in the Conf/* files. I think removing it should not affect ARM firmware. As you said, this library has probably been replaced by ArmPkg/Library/CompilerIntrinsicsLib. Olivier From: Hauch, Larry [mailto:lar...@in...] Sent: 23 July 2014 22:38 To: edk...@li...; edk...@li... Subject: Re: [edk2-buildtools] [Review][Patch] Remove BaseTools\Bin\Win32 and replace with external Hi Folks, There is one other impact in this change. The two Arm CompilerIntrinsicLib.lib files in the Win32/Arm/DEBUG_RVCT31 and Win32/Arm/RELEASE_RVCT31 directories are not created by the build server, nor by the standard Windows BaseTools build process. These to libraries were committed in 2009 (have not changed) and appear to be temporary (based on the initial commit message) that have since been replaced by content in the ArmPkg. (Not being an ARM developer, I would like to hear confirmation that these two files are no longer required - if they are still required, then maybe they need to be moved out of this tree into a new BaseTools/Bin/Arm directory tree.) Also, I forgot to include the following: Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lhauch <lar...@in...> Cheers, Larry From: Hauch, Larry Sent: Wednesday, July 23, 2014 1:33 PM To: edk...@li...; edk...@li... Subject: [Review][Patch] Remove BaseTools\Bin\Win32 and replace with external Hi Folks, I have attached two patches for review that will complete task item 3 from the "Proposal to retire edk2-buildtools subproject". 3) Delete Win32 binaries from EDK II BaseTools and replace with an SVN extern. a. Default will continue to pull Win32 binaries b. Developers that do not want Win32 binaries can opt-out by ignoring externs. These patches must be applied in order and a commit must be performed after applying each of the changes. 1) Delete the edk2/BaseTools/Bin/Win32 directory and all of the content 2) Create an external.txt file in the edk2/BaseTools/Bin directory (and apply the svn:externals property to the Bin directory) to create the Win32 directory and pull content from https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32 Cheers, Larry |
From: Jordan J. <jlj...@gm...> - 2014-07-25 22:52:52
|
As Mike and Larry mentioned, we are migrating the separate buildtools/BaseTools to now live directly under edk2/BaseTools. (Thank Mike and Larry for your work on this!) As part of that, we will use the edk2-devel email for future BaseTools discussions (and patch contributions, ...). I updated the edk2-buildtools-devel to automatically send the response below if you email the old list. Be sure you are subscribed to edk2-devel if want to participate in future BaseTools discussions. === auto-response text for edk2-buildtools-devel list The BaseTools email list has moved. Discussions for BaseTools should now happen on the edk2-devel email list. http://lists.sourceforge.net/lists/listinfo/edk2-devel Please join that list and resend your email. Thanks! |
From: Jordan J. <jlj...@gm...> - 2014-07-25 20:55:13
|
On Fri, Jul 25, 2014 at 1:47 PM, Kinney, Michael D <mic...@in...> wrote: > Jordan, > > I agree with doing these as 5 separate patches. > > Reviewed-by: Michael Kinney mic...@in... I'll add your r-b on patch 5, but I'll just upload the others using the original commit info. > Do you want to go ahead and check-in these patches? Sure. -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jlj...@gm...] > Sent: Friday, July 25, 2014 1:43 PM > To: Kinney, Michael D > Cc: edk...@li...; edk...@li... > Subject: Re: [edk2-buildtools] [edk2][PATCH] Merge sources from edk2-buildtools sub-project to EDK II BaseTools trunk > > Mike, > > I think we should re-apply these 4 changes separately in EDK II. (See > attachments 1-4) > > I also found a difference in some 'build version' variables. (See attachment 5). > > After applying these 5 patches, the two BaseTools seem to be in sync. > > -Jordan > > https://github.com/jljusten/edk2/tree/sync-BaseTools > > On Fri, Jul 25, 2014 at 10:38 AM, Kinney, Michael D > <mic...@in...> wrote: >> Hello, >> >> >> >> The attached patch contains the changes to sync the edk2-buildtools >> sub-project to the EDK II BaseTools trunk. This is the last step before the >> edk2-buildtools sub-project permissions are changed to read-only. >> >> >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Michael Kinney mic...@in... >> >> >> >> The patch includes changes for the following check-in log entries from the >> edk2-buildtools sub-project. >> >> >> >> ===== >> >> Update GenFv tool to handle the file path with space. >> >> >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Gao, Liming lim...@in... >> >> Review-by: Kinney, Michael D mic...@in... >> >> ==== >> >> Report warning info if vfr file use the flags used for framework code only. >> >> >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Eric Dong <eri...@in...> >> >> Reviewed-by: Liming Gao <lim...@in...> >> >> ==== >> >> Clean 1 build error and 1 warning for VfrCompiler. >> >> >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Eric Dong <eri...@in...> >> >> Reviewed-by: Liming Gao <lim...@in...> >> >> ==== >> >> Report warning info if an action opcode has text two statement. >> >> >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Eric Dong <eri...@in...> >> >> Reviewed-by: Liming Gao <lim...@in...> >> >> ===== >> >> >> >> Thanks, >> >> >> >> Mike >> >> >> ------------------------------------------------------------------------------ >> Want fast and easy access to all the code in your enterprise? Index and >> search up to 200,000 lines of code with a free copy of Black Duck >> Code Sight - the same software that powers the world's largest code >> search on Ohloh, the Black Duck Open Hub! Try it now. >> http://p.sf.net/sfu/bds >> _______________________________________________ >> edk2-buildtools-devel mailing list >> edk...@li... >> https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel >> |
From: Kinney, M. D <mic...@in...> - 2014-07-25 20:48:01
|
Jordan, I agree with doing these as 5 separate patches. Reviewed-by: Michael Kinney mic...@in... Do you want to go ahead and check-in these patches? Thanks, Mike -----Original Message----- From: Jordan Justen [mailto:jlj...@gm...] Sent: Friday, July 25, 2014 1:43 PM To: Kinney, Michael D Cc: edk...@li...; edk...@li... Subject: Re: [edk2-buildtools] [edk2][PATCH] Merge sources from edk2-buildtools sub-project to EDK II BaseTools trunk Mike, I think we should re-apply these 4 changes separately in EDK II. (See attachments 1-4) I also found a difference in some 'build version' variables. (See attachment 5). After applying these 5 patches, the two BaseTools seem to be in sync. -Jordan https://github.com/jljusten/edk2/tree/sync-BaseTools On Fri, Jul 25, 2014 at 10:38 AM, Kinney, Michael D <mic...@in...> wrote: > Hello, > > > > The attached patch contains the changes to sync the edk2-buildtools > sub-project to the EDK II BaseTools trunk. This is the last step before the > edk2-buildtools sub-project permissions are changed to read-only. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Michael Kinney mic...@in... > > > > The patch includes changes for the following check-in log entries from the > edk2-buildtools sub-project. > > > > ===== > > Update GenFv tool to handle the file path with space. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Gao, Liming lim...@in... > > Review-by: Kinney, Michael D mic...@in... > > ==== > > Report warning info if vfr file use the flags used for framework code only. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ==== > > Clean 1 build error and 1 warning for VfrCompiler. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ==== > > Report warning info if an action opcode has text two statement. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ===== > > > > Thanks, > > > > Mike > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > |
From: Jordan J. <jlj...@gm...> - 2014-07-25 20:42:40
|
Mike, I think we should re-apply these 4 changes separately in EDK II. (See attachments 1-4) I also found a difference in some 'build version' variables. (See attachment 5). After applying these 5 patches, the two BaseTools seem to be in sync. -Jordan https://github.com/jljusten/edk2/tree/sync-BaseTools On Fri, Jul 25, 2014 at 10:38 AM, Kinney, Michael D <mic...@in...> wrote: > Hello, > > > > The attached patch contains the changes to sync the edk2-buildtools > sub-project to the EDK II BaseTools trunk. This is the last step before the > edk2-buildtools sub-project permissions are changed to read-only. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Michael Kinney mic...@in... > > > > The patch includes changes for the following check-in log entries from the > edk2-buildtools sub-project. > > > > ===== > > Update GenFv tool to handle the file path with space. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Gao, Liming lim...@in... > > Review-by: Kinney, Michael D mic...@in... > > ==== > > Report warning info if vfr file use the flags used for framework code only. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ==== > > Clean 1 build error and 1 warning for VfrCompiler. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ==== > > Report warning info if an action opcode has text two statement. > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Eric Dong <eri...@in...> > > Reviewed-by: Liming Gao <lim...@in...> > > ===== > > > > Thanks, > > > > Mike > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > |
From: Hauch, L. <lar...@in...> - 2014-07-25 18:53:11
|
Reviewed-by: lhauch <lar...@in...> Cheers, Larry From: Kinney, Michael D [mailto:mic...@in...] Sent: Friday, July 25, 2014 10:39 AM To: edk...@li... Cc: edk...@li... Subject: [edk2-buildtools] [edk2][PATCH] Merge sources from edk2-buildtools sub-project to EDK II BaseTools trunk Hello, The attached patch contains the changes to sync the edk2-buildtools sub-project to the EDK II BaseTools trunk. This is the last step before the edk2-buildtools sub-project permissions are changed to read-only. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney mic...@in...<mailto:mic...@in...> The patch includes changes for the following check-in log entries from the edk2-buildtools sub-project. ===== Update GenFv tool to handle the file path with space. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming lim...@in...<mailto:lim...@in...> Review-by: Kinney, Michael D mic...@in...<mailto:mic...@in...> ==== Report warning info if vfr file use the flags used for framework code only. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...<mailto:eri...@in...>> Reviewed-by: Liming Gao <lim...@in...<mailto:lim...@in...>> ==== Clean 1 build error and 1 warning for VfrCompiler. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...<mailto:eri...@in...>> Reviewed-by: Liming Gao <lim...@in...<mailto:lim...@in...>> ==== Report warning info if an action opcode has text two statement. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...<mailto:eri...@in...>> Reviewed-by: Liming Gao <lim...@in...<mailto:lim...@in...>> ===== Thanks, Mike |
From: David C. <dav...@au...> - 2014-07-24 16:43:46
|
Hi, I have been looking at EDK2 and gnu-efi projects. I have a sample driver built from gnu-efi-3.0, "drv0.c". I can include the driver in my bios rom image and use it by way of running a efi binary application from uefi shell. While useful, it would be more so if I could use the protocol interface it exports from Windoze or alike. Do I have to write a windows driver for this, or are there existing, signed drivers that can be used to parse the uefi bios drivers and invoke their interfaces? Regards, Dave Cox ________________________________ [http://www2.autologic.com/logo.gif] David Cox Hardware Engineer Autologic Diagnostics Ltd Tel: +44 1865 870050 Mobile: Fax: +44 1865 870051 Email: dav...@au... Website: www.autologic.com<http://www.autologic.com> This message contains information which may be confidential and is intended for the named addressee only. Unless you are the named addressee, or authorised to receive it on behalf of the addressee you may not copy or use it, or disclose it to anyone else. Any views or opinions expressed in this message are those of the author and not necessarily representative of those of Autologic Diagnostics Ltd. Whilst every endeavour is taken to ensure that e-mails are free from viruses, no liability can be accepted and the recipient is requested to use their own virus checking software. If you have received this email in error please accept our apology and contact the sender. All work carried out on any vehicle using Autologic diagnostic equipment must be carried out in strict accordance with the instructions contained within the relevant manufacturer's workshop manuals. Autologic Diagnostics limited accepts no responsibility or liability for any damage or claim arising from any work carried out by operatives using equipment supplied by Autologic Diagnostics limited. Registered Office: Autologic House, London Road, Wheatley, Oxon, OX33 1JH, England, UK Registered in England & Wales No. 06814180 |
From: Hauch, L. <lar...@in...> - 2014-07-24 15:18:21
|
CodeModule: BaseTools - tools_def.txt VS2010, VS2010x86, VS2012 and VS2012x86 update locations for rc.exe tool This change will point to the correct location of the rc.exe tool. RC.exe is used for building UEFI compliant drivers that must have a UEFI_HII_RESOURCE_SECTION generated as part of the .efi image file. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lhauch <lar...@in...> Reviewed-by: Gao, Liming <lim...@in...> Reviewed-by: Yingke Liu <yin...@in...> Index: tools_def.template =================================================================== --- tools_def.template (revision 15651) +++ tools_def.template (working copy) @@ -60,6 +60,14 @@ DEFINE WINSDK_BIN = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin DEFINE WINSDKx86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin +# Microsoft Visual Studio 2010 +DEFINE WINSDK7_BIN = c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin +DEFINE WINSDK7x86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin + +# Microsoft Visual Studio 2012 Update 1 (required for rc.exe that was not included in the initial release) +DEFINE WINSDK71_BIN = c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin +DEFINE WINSDK71x86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin + # These defines are needed for certain Microsoft Visual Studio tools that # are used by other toolchains. An example is that ICC on Windows normally # uses Microsoft's nmake.exe. @@ -254,7 +262,7 @@ # Intel(r) ACPI Compiler (iasl.exe) v20101013 from # http://www.acpica.org/downloads/previous_releases.php # VS2012 -win32- Requires: -# Microsoft Visual Studio 2012 Professional Edition +# Microsoft Visual Studio 2012 Professional Edition Update 1 # Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830 # Optional: # Required to build EBC drivers: @@ -392,7 +400,7 @@ # Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from # http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi # VS2012xASL -win32- Requires: -# Microsoft Visual Studio 2012 Professional Edition +# Microsoft Visual Studio 2012 Professional Edition Update 1 # Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830 # Optional: # Required to build EBC drivers: @@ -465,7 +473,7 @@ # Intel(r) ACPI Compiler (iasl.exe) v20101013 from # http://www.acpica.org/downloads/previous_releases.php # VS2012x86 -win64- Requires: -# Microsoft Visual Studio 2012 (x86) Professional Edition +# Microsoft Visual Studio 2012 (x86) Professional Edition Update 1 # Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830 # Optional: # Required to build platforms or ACPI tables: @@ -519,7 +527,7 @@ # Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from # http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi # VS2012x86xASL -win64- Requires: -# Microsoft Visual Studio 2012 (x86) Professional Edition +# Microsoft Visual Studio 2012 (x86) Professional Edition Update 1 # Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830 # Optional: # Required to build platforms or ACPI tables: @@ -1894,7 +1902,7 @@ *_VS2010_*_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe *_VS2010_*_MAKE_FLAGS = /nologo -*_VS2010_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2010_*_RC_PATH = DEF(WINSDK7_BIN)\rc.exe *_VS2010_*_SLINK_FLAGS = /NOLOGO /LTCG *_VS2010_*_APP_FLAGS = /nologo /E /TC @@ -2032,7 +2040,7 @@ *_VS2010xASL_*_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe *_VS2010xASL_*_MAKE_FLAG = /nologo -*_VS2010xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2010xASL_*_RC_PATH = DEF(WINSDK7_BIN)\rc.exe *_VS2010xASL_*_SLINK_FLAGS = /NOLOGO /LTCG *_VS2010xASL_*_APP_FLAGS = /nologo /E /TC @@ -2167,7 +2175,7 @@ *_VS2010x86_*_MAKE_PATH = DEF(VS2010x86_BIN)\nmake.exe *_VS2010x86_*_MAKE_FLAG = /nologo -*_VS2010x86_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2010x86_*_RC_PATH = DEF(WINSDK7x86_BIN)\rc.exe *_VS2010x86_*_MAKE_FLAGS = /nologo *_VS2010x86_*_SLINK_FLAGS = /NOLOGO /LTCG @@ -2302,7 +2310,7 @@ *_VS2010x86xASL_*_MAKE_PATH = DEF(VS2010x86_BIN)\nmake.exe *_VS2010x86xASL_*_MAKE_FLAG = /nologo -*_VS2010x86xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2010x86xASL_*_RC_PATH = DEF(WINSDK7x86_BIN)\rc.exe *_VS2010x86xASL_*_MAKE_FLAGS = /nologo *_VS2010x86xASL_*_SLINK_FLAGS = /NOLOGO /LTCG @@ -2441,7 +2449,7 @@ *_VS2012_*_MAKE_PATH = DEF(VS2012_BIN)\nmake.exe *_VS2012_*_MAKE_FLAGS = /nologo -*_VS2012_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2012_*_RC_PATH = DEF(WINSDK71_BIN)\rc.exe *_VS2012_*_SLINK_FLAGS = /NOLOGO /LTCG *_VS2012_*_APP_FLAGS = /nologo /E /TC @@ -2551,7 +2559,7 @@ *_VS2012xASL_*_MAKE_PATH = DEF(VS2012_BIN)\nmake.exe *_VS2012xASL_*_MAKE_FLAG = /nologo -*_VS2012xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2012xASL_*_RC_PATH = DEF(WINSDK71_BIN)\rc.exe *_VS2012xASL_*_SLINK_FLAGS = /NOLOGO /LTCG *_VS2012xASL_*_APP_FLAGS = /nologo /E /TC @@ -2658,7 +2666,7 @@ *_VS2012x86_*_MAKE_PATH = DEF(VS2012x86_BIN)\nmake.exe *_VS2012x86_*_MAKE_FLAG = /nologo -*_VS2012x86_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2012x86_*_RC_PATH = DEF(WINSDK71x86_BIN)\rc.exe *_VS2012x86_*_MAKE_FLAGS = /nologo *_VS2012x86_*_SLINK_FLAGS = /NOLOGO /LTCG @@ -2765,7 +2773,7 @@ *_VS2012x86xASL_*_MAKE_PATH = DEF(VS2012x86_BIN)\nmake.exe *_VS2012x86xASL_*_MAKE_FLAG = /nologo -*_VS2012x86xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe +*_VS2012x86xASL_*_RC_PATH = DEF(WINSDK71x86_BIN)\rc.exe *_VS2012x86xASL_*_MAKE_FLAGS = /nologo *_VS2012x86xASL_*_SLINK_FLAGS = /NOLOGO /LTCG |
From: Paolo B. <pbo...@re...> - 2014-07-24 05:07:57
|
Il 24/06/2014 11:55, Paolo Bonzini ha scritto: > As long as $EDK_TOOLS_PATH is properly set, the BaseTools/ directory > is not necessary in the workspace. The BuildEnv file itself suggests > setting the variable if BaseTools/ is not available. > > However, this only works if the user also sets $WORKSPACE. Otherwise, > BuildEnv refuses to set WORKSPACE itself and does not even try to use > the preset $EDK_TOOLS_PATH. Remove the check that fails, as it does > not have any practical benefit. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Paolo Bonzini <pbo...@re...> > > --- a/BaseTools/BuildEnv > +++ b/BaseTools/BuildEnv > @@ -23,14 +23,6 @@ > return 0 > fi > > - if [ ! ${BASH_SOURCE[0]} -ef ./BaseTools/BuildEnv ] > - then > - echo Run this script from the base of your tree. For example: > - echo " cd /Path/To/Edk/Root" > - echo " . BaseTools/BuildEnv" > - return 1 > - fi > - > # > # Set $WORKSPACE > # > > ------------------------------------------------------------------------------ > Open source business process management suite built on Java and Eclipse > Turn processes into business applications with Bonita BPM Community Edition > Quickly connect people, data, and systems into organized workflows > Winner of BOSSIE, CODIE, OW2 and Gartner awards > http://p.sf.net/sfu/Bonitasoft > Ping, was this patch ever applied? Paolo |
From: Gao, L. <lim...@in...> - 2014-07-24 02:29:19
|
Jordan: I have three comments. 1) BuildRule step "cd $(OUTPUT_DIR)(+)${s_dir}" is required? Nasm may not have the limitation on the execution path. 2) BuildRule "$(NASM)" -I${s_path}(+) $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii. I suggest to add "-l ${d_path}(+)${s_base}.lst" to create the asm list that include the output assembly code and source code. It will be helpful when user ports their asm16 to nasmb. 3) Tools_def "NASM_PATH = nasm", nasm tool will be placed in the different directories in windows and linux. I suggest to define $(WIN_NASM_BIN) and $(UNIX_NASM_BIN) like IASL tool definition. Thanks Liming -----Original Message----- From: Jordan Justen [mailto:jor...@in...] Sent: Thursday, July 24, 2014 4:18 AM To: edk...@li... Cc: edk...@li... Subject: [edk2-buildtools] [PATCH v2 1/7] BaseTools: Add rules to build NASM source file into a binary v2: * Use EDK II tool name of NASMB rather than NASMBIN * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- BaseTools/Conf/build_rule.template | 17 +++++++++++++++++ BaseTools/Conf/tools_def.template | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index c1c0d4c..0b265e8 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -440,6 +440,23 @@ otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} +[Nasm-to-Binary-Code-File] + <InputFile> + ?.nasmb, ?.NASMB + + <ExtraDependency> + $(MAKE_FILE) + + <OutputFile> + $(OUTPUT_DIR)(+)${s_base}.bin + + <Command> + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + cd $(OUTPUT_DIR)(+)${s_dir} + "$(NASM)" -I${s_path}(+) $(NASMB_FLAGS) -o $dst + ${d_path}(+)${s_base}.iii + + [Microcode-File.USER_DEFINED, Microcode-File.Microcode] <InputFile> ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f9e1e6c..e2571d4 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -616,6 +616,15 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G #################################################################################### #################################################################################### # +# Other Supported Tools +# ===================== +# NASM 2.0.3 http://www.nasm.us/ +# Note: Converts NASM source to .bin. Object linking to +# EDK II driver modules is not currently supported. +# +####################################################################### +############# +####################################################################### +############# +# # Intel EFI Byte Code Compiler (Template) # #################################################################################### @@ -6058,3 +6067,10 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC ################## *_*_*_VPDTOOL_PATH = BPDG *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 + +################## +# NASM tool definitions +################## +*_*_*_NASM_PATH = nasm +# NASMB uses NASM produce a .bin from a .nasmb NASM source file +*_*_*_NASMB_FLAGS = -f bin -- 2.0.1 ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ edk2-buildtools-devel mailing list edk...@li... https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Hauch, L. <lar...@in...> - 2014-07-23 23:00:05
|
Hi Folks, The following help content shows proposed changes to the edksetup.bat script in the edk2 project. While these changes currently focus on the Windows build environment, the *NIX edksetup.sh scripts can also be modified in the future to provide similar functionality with most of the same options (--nt32 [X64] does not apply to the *NIX style operating systems, Linux and Mac OS/X). I would like to break out much of the functionality into several scripts that would be called by edksetup.bat (with these sub-scripts located in the BaseTools\Scripts directory). This change will also allow us to remove the BaseTools\toolsetup.bat file from the repository. I also plan on moving the get_vsvars.bat file from the BaseTools directory to the BaseTools\Scripts directory. NOTE: The --rebuild option requires that a compiler environment be setup prior to running edksetup.bat. Please provide feedback to me by Thursday, July 31, 2014. Thanks, Larry e:\edk2>edksetup --help Usage: edksetup [Options] Copyright(c) 2014, Intel Corporation. All rights reserved. The system environment variable, WORKSPACE, is always set to the current working directory. Options: --help, -h Print this help screen and exit. --version, -v Print this tool's version and exit. --reset, -r Reset the EDK_TOOLS_PATH and PATH system environment variables. The EDK_TOOLS_PATH default is WORKSPACE\BaseTools, however, it may be overridden by arguments given to the --edk-tools-path, --pull and/or --rebuild options. Once set, the EDK_TOOLS_PATH environment variable reset by opening up a new command prompt window or through one of the options provided by this tool --reconfig Overwrite the WORKSPACE/Conf/*.txt files with the template files from the BaseTools/Conf directory. --edk-tools-path DIRECTORY This option sets the EDK_TOOLS_PATH to the DIRECTORY value instead of the default (WORKSPACE\BaseTools). --nt32 [X64] If a compiler tool chain is not available in the environment, call a script to attempt to set one up. If the X64 argument is set, if a compiler tool chain is not available, attempt to set up a tool chain that will create X64 binaries. Setting these two options have the potential side effect of changing tool chains used for a rebuild. --pull [DIRECTORY] Get the EDK II BaseTools binaries from source control (must not be used with --rebuild). If the optional DIRECTORY argument is specified, the tool sets EDK_TOOLS_PATH to DIRECTORY. If the DIRECTORY argument is not specified, the tools are placed in the directory tree pointed to by the current EDK_TOOLS_PATH environment variable. If the binaries cannot be obtained from source control, the EDK_TOOLS_PATH will be set to the default, WORKSPACE\BaseTools directory. --rebuild [DIRECTORY] Force Rebuilding the EDK II BaseTools from source (must not be used with --pull). NOTE: The build will use whatever compiler tool set is available in the environment prior to running edksetup.bat. If the optional DIRECTORY argument is specified, the tool sets EDK_TOOLS_PATH to DIRECTORY. Tools binaries will be placed in the appropriate subdirectory in the EDK_TOOLS_PATH directory. If the build fails, the EDK_TOOLS_PATH will be set to the default, WORKSPACE\BaseTools directory. |
From: Kinney, M. D <mic...@in...> - 2014-07-23 21:45:31
|
Larry, Looks good. Reviewed-by: Michael Kinney <mic...@in...<mailto:mic...@in...>> Mike From: Hauch, Larry [mailto:lar...@in...] Sent: Wednesday, July 23, 2014 2:38 PM To: edk...@li...; edk...@li... Subject: Re: [edk2-buildtools] [Review][Patch] Remove BaseTools\Bin\Win32 and replace with external Hi Folks, There is one other impact in this change. The two Arm CompilerIntrinsicLib.lib files in the Win32/Arm/DEBUG_RVCT31 and Win32/Arm/RELEASE_RVCT31 directories are not created by the build server, nor by the standard Windows BaseTools build process. These to libraries were committed in 2009 (have not changed) and appear to be temporary (based on the initial commit message) that have since been replaced by content in the ArmPkg. (Not being an ARM developer, I would like to hear confirmation that these two files are no longer required - if they are still required, then maybe they need to be moved out of this tree into a new BaseTools/Bin/Arm directory tree.) Also, I forgot to include the following: Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lhauch <lar...@in...<mailto:lar...@in...>> Cheers, Larry From: Hauch, Larry Sent: Wednesday, July 23, 2014 1:33 PM To: edk...@li...<mailto:edk...@li...>; edk...@li...<mailto:edk...@li...> Subject: [Review][Patch] Remove BaseTools\Bin\Win32 and replace with external Hi Folks, I have attached two patches for review that will complete task item 3 from the "Proposal to retire edk2-buildtools subproject". 3) Delete Win32 binaries from EDK II BaseTools and replace with an SVN extern. a. Default will continue to pull Win32 binaries b. Developers that do not want Win32 binaries can opt-out by ignoring externs. These patches must be applied in order and a commit must be performed after applying each of the changes. 1) Delete the edk2/BaseTools/Bin/Win32 directory and all of the content 2) Create an external.txt file in the edk2/BaseTools/Bin directory (and apply the svn:externals property to the Bin directory) to create the Win32 directory and pull content from https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32 Cheers, Larry |
From: Kinney, M. D <mic...@in...> - 2014-07-23 21:24:44
|
Jordan, Yes. We can clean this up later. Thanks, Mike -----Original Message----- From: Jordan Justen [mailto:jlj...@gm...] Sent: Wednesday, July 23, 2014 2:23 PM To: Kinney, Michael D; edk...@li... Cc: edk...@li... Subject: Re: [edk2-buildtools] [PATCH v2 4/7] OvmfPkg: Support building OVMF's ResetVector during the EDK II build On 2014-07-23 13:44:55, Kinney, Michael D wrote: > Can we get the NASM related build rules to add the include paths, > instead of having to use [BuildOptions] in INF? Yes, I should look at if the build rule can add includes. Unfortunately, this won't help this situation. Well, unless we think it is a good idea to add UefiCpuPkg/ResetVector/Vtf0 to UefiCpuPkg's include paths. I don't think this is a good idea. But, I do have another idea on how to clean this up: Add a new UefiCpuPkg/ResetVector/Vtf0 build type which reads a PCD and assumes memory 'just works' at that address. It would build the page tables there, like OvmfPkg/ResetVector/Ia32/PageTables64.asm, but at the PCD specified address. Then we can remove OvmfPkg/ResetVector. I didn't yet get a chance to verify if Fixed PCDs can be used in NASM builds, but I think it might be able to work since we run the C pre-processor to generate the NASM input file. By the way, the current OvmfPkg/ResetVector does depend on UefiCpuPkg/ResetVector/Vtf0, so we aren't adding a new dependency here. So, would it be okay to proceed with this version, but to try to fix the issue separately? -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jor...@in...] > Sent: Wednesday, July 23, 2014 1:18 PM > To: edk...@li... > Cc: edk...@li... > Subject: [edk2-buildtools] [PATCH v2 4/7] OvmfPkg: Support building OVMF's ResetVector during the EDK II build > > Using NASM we build OVMF's ResetVector as part of the EDK II build > process. > > v2: > * Use EDK II extension of .nasmb rather than .nasmbin > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++++++++++++++ > OvmfPkg/ResetVector/ResetVector.nasmb | 66 +++++++++++++++++++++++++++++++++++ > 2 files changed, 103 insertions(+) > create mode 100644 OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb > > diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf > new file mode 100644 > index 0000000..46610d2 > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.inf > @@ -0,0 +1,37 @@ > +## @file > +# Reset Vector > +# > +# Copyright (c) 2006 - 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 > +# 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 = ResetVector > + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 > + MODULE_TYPE = SEC > + VERSION_STRING = 1.1 > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + ResetVector.nasmb > + > +[Packages] > + MdePkg/MdePkg.dec > + UefiCpuPkg/UefiCpuPkg.dec > + > +[BuildOptions] > + *_*_IA32_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > + *_*_X64_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb b/OvmfPkg/ResetVector/ResetVector.nasmb > new file mode 100644 > index 0000000..31ac06a > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.nasmb > @@ -0,0 +1,66 @@ > +;------------------------------------------------------------------------------ > +; @file > +; This file includes all other code files to assemble the reset vector code > +; > +; Copyright (c) 2008 - 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. > +; > +;------------------------------------------------------------------------------ > + > +; > +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include > +; Base.h to use the C pre-processor to determine the architecture. > +; > +%ifndef ARCH_IA32 > + %ifndef ARCH_X64 > + #include <Base.h> > + #if defined (MDE_CPU_IA32) > + %define ARCH_IA32 > + #elif defined (MDE_CPU_X64) > + %define ARCH_X64 > + #endif > + %endif > +%endif > + > +%ifdef ARCH_IA32 > + %ifdef ARCH_X64 > + %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." > + %endif > +%elifdef ARCH_X64 > +%else > + %error "Either ARCH_IA32 or ARCH_X64 must be defined." > +%endif > + > +%include "CommonMacros.inc" > + > +%include "PostCodes.inc" > + > +%ifdef DEBUG_PORT80 > + %include "Port80Debug.asm" > +%elifdef DEBUG_SERIAL > + %include "SerialDebug.asm" > +%else > + %include "DebugDisabled.asm" > +%endif > + > +%include "Ia32/SearchForBfvBase.asm" > +%include "Ia32/SearchForSecEntry.asm" > + > +%ifdef ARCH_X64 > +%include "Ia32/Flat32ToFlat64.asm" > +%include "Ia32/PageTables64.asm" > +%endif > + > +%include "Ia16/Real16ToFlat32.asm" > +%include "Ia16/Init16.asm" > + > +%include "Main.asm" > + > +%include "Ia16/ResetVectorVtf0.asm" > + > -- > 2.0.1 > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Jordan J. <jlj...@gm...> - 2014-07-23 21:23:09
|
On 2014-07-23 13:44:55, Kinney, Michael D wrote: > Can we get the NASM related build rules to add the include paths, > instead of having to use [BuildOptions] in INF? Yes, I should look at if the build rule can add includes. Unfortunately, this won't help this situation. Well, unless we think it is a good idea to add UefiCpuPkg/ResetVector/Vtf0 to UefiCpuPkg's include paths. I don't think this is a good idea. But, I do have another idea on how to clean this up: Add a new UefiCpuPkg/ResetVector/Vtf0 build type which reads a PCD and assumes memory 'just works' at that address. It would build the page tables there, like OvmfPkg/ResetVector/Ia32/PageTables64.asm, but at the PCD specified address. Then we can remove OvmfPkg/ResetVector. I didn't yet get a chance to verify if Fixed PCDs can be used in NASM builds, but I think it might be able to work since we run the C pre-processor to generate the NASM input file. By the way, the current OvmfPkg/ResetVector does depend on UefiCpuPkg/ResetVector/Vtf0, so we aren't adding a new dependency here. So, would it be okay to proceed with this version, but to try to fix the issue separately? -Jordan > -----Original Message----- > From: Jordan Justen [mailto:jor...@in...] > Sent: Wednesday, July 23, 2014 1:18 PM > To: edk...@li... > Cc: edk...@li... > Subject: [edk2-buildtools] [PATCH v2 4/7] OvmfPkg: Support building OVMF's ResetVector during the EDK II build > > Using NASM we build OVMF's ResetVector as part of the EDK II build > process. > > v2: > * Use EDK II extension of .nasmb rather than .nasmbin > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <jor...@in...> > --- > OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++++++++++++++ > OvmfPkg/ResetVector/ResetVector.nasmb | 66 +++++++++++++++++++++++++++++++++++ > 2 files changed, 103 insertions(+) > create mode 100644 OvmfPkg/ResetVector/ResetVector.inf > create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb > > diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf > new file mode 100644 > index 0000000..46610d2 > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.inf > @@ -0,0 +1,37 @@ > +## @file > +# Reset Vector > +# > +# Copyright (c) 2006 - 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 > +# 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 = ResetVector > + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 > + MODULE_TYPE = SEC > + VERSION_STRING = 1.1 > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + ResetVector.nasmb > + > +[Packages] > + MdePkg/MdePkg.dec > + UefiCpuPkg/UefiCpuPkg.dec > + > +[BuildOptions] > + *_*_IA32_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > + *_*_X64_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ > diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb b/OvmfPkg/ResetVector/ResetVector.nasmb > new file mode 100644 > index 0000000..31ac06a > --- /dev/null > +++ b/OvmfPkg/ResetVector/ResetVector.nasmb > @@ -0,0 +1,66 @@ > +;------------------------------------------------------------------------------ > +; @file > +; This file includes all other code files to assemble the reset vector code > +; > +; Copyright (c) 2008 - 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. > +; > +;------------------------------------------------------------------------------ > + > +; > +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include > +; Base.h to use the C pre-processor to determine the architecture. > +; > +%ifndef ARCH_IA32 > + %ifndef ARCH_X64 > + #include <Base.h> > + #if defined (MDE_CPU_IA32) > + %define ARCH_IA32 > + #elif defined (MDE_CPU_X64) > + %define ARCH_X64 > + #endif > + %endif > +%endif > + > +%ifdef ARCH_IA32 > + %ifdef ARCH_X64 > + %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." > + %endif > +%elifdef ARCH_X64 > +%else > + %error "Either ARCH_IA32 or ARCH_X64 must be defined." > +%endif > + > +%include "CommonMacros.inc" > + > +%include "PostCodes.inc" > + > +%ifdef DEBUG_PORT80 > + %include "Port80Debug.asm" > +%elifdef DEBUG_SERIAL > + %include "SerialDebug.asm" > +%else > + %include "DebugDisabled.asm" > +%endif > + > +%include "Ia32/SearchForBfvBase.asm" > +%include "Ia32/SearchForSecEntry.asm" > + > +%ifdef ARCH_X64 > +%include "Ia32/Flat32ToFlat64.asm" > +%include "Ia32/PageTables64.asm" > +%endif > + > +%include "Ia16/Real16ToFlat32.asm" > +%include "Ia16/Init16.asm" > + > +%include "Main.asm" > + > +%include "Ia16/ResetVectorVtf0.asm" > + > -- > 2.0.1 > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > edk2-buildtools-devel mailing list > edk...@li... > https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Kinney, M. D <mic...@in...> - 2014-07-23 20:45:40
|
Jordan, Can we get the NASM related build rules to add the include paths, instead of having to use [BuildOptions] in INF? Thanks, Mike -----Original Message----- From: Jordan Justen [mailto:jor...@in...] Sent: Wednesday, July 23, 2014 1:18 PM To: edk...@li... Cc: edk...@li... Subject: [edk2-buildtools] [PATCH v2 4/7] OvmfPkg: Support building OVMF's ResetVector during the EDK II build Using NASM we build OVMF's ResetVector as part of the EDK II build process. v2: * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++++++++++++++ OvmfPkg/ResetVector/ResetVector.nasmb | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf new file mode 100644 index 0000000..46610d2 --- /dev/null +++ b/OvmfPkg/ResetVector/ResetVector.inf @@ -0,0 +1,37 @@ +## @file +# Reset Vector +# +# Copyright (c) 2006 - 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 +# 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 = ResetVector + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE = SEC + VERSION_STRING = 1.1 + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + ResetVector.nasmb + +[Packages] + MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + +[BuildOptions] + *_*_IA32_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ + *_*_X64_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb b/OvmfPkg/ResetVector/ResetVector.nasmb new file mode 100644 index 0000000..31ac06a --- /dev/null +++ b/OvmfPkg/ResetVector/ResetVector.nasmb @@ -0,0 +1,66 @@ +;------------------------------------------------------------------------------ +; @file +; This file includes all other code files to assemble the reset vector code +; +; Copyright (c) 2008 - 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. +; +;------------------------------------------------------------------------------ + +; +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include +; Base.h to use the C pre-processor to determine the architecture. +; +%ifndef ARCH_IA32 + %ifndef ARCH_X64 + #include <Base.h> + #if defined (MDE_CPU_IA32) + %define ARCH_IA32 + #elif defined (MDE_CPU_X64) + %define ARCH_X64 + #endif + %endif +%endif + +%ifdef ARCH_IA32 + %ifdef ARCH_X64 + %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." + %endif +%elifdef ARCH_X64 +%else + %error "Either ARCH_IA32 or ARCH_X64 must be defined." +%endif + +%include "CommonMacros.inc" + +%include "PostCodes.inc" + +%ifdef DEBUG_PORT80 + %include "Port80Debug.asm" +%elifdef DEBUG_SERIAL + %include "SerialDebug.asm" +%else + %include "DebugDisabled.asm" +%endif + +%include "Ia32/SearchForBfvBase.asm" +%include "Ia32/SearchForSecEntry.asm" + +%ifdef ARCH_X64 +%include "Ia32/Flat32ToFlat64.asm" +%include "Ia32/PageTables64.asm" +%endif + +%include "Ia16/Real16ToFlat32.asm" +%include "Ia16/Init16.asm" + +%include "Main.asm" + +%include "Ia16/ResetVectorVtf0.asm" + -- 2.0.1 ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ edk2-buildtools-devel mailing list edk...@li... https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:06
|
This implements the older VTF ResetVector code often used on EDK II IA32 & X64 platforms. This VTF requires build time fixups in order to find the SEC entry point. The BaseTools GenFv tool has code that patches the jump target of the reset vector code to match the entry point of the SEC image in the PEI Firmware Volume. v2: * Rename from OldVtf to FixupVtf * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf | 32 +++++++++++++++++ UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb | 60 +++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf create mode 100644 UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb diff --git a/UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf b/UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf new file mode 100644 index 0000000..2450bf6 --- /dev/null +++ b/UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf @@ -0,0 +1,32 @@ +## @file +# Reset Vector +# +# Copyright (c) 2006 - 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 +# 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 = ResetVector + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE = SEC + VERSION_STRING = 1.1 + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + Vtf.nasmb + +[Packages] + MdePkg/MdePkg.dec diff --git a/UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb b/UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb new file mode 100644 index 0000000..5aa733e --- /dev/null +++ b/UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb @@ -0,0 +1,60 @@ +;------------------------------------------------------------------------------ +; @file +; First code exectuted by processor after resetting. +; +; Copyright (c) 2008 - 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. +; +;------------------------------------------------------------------------------ + +BITS 16 + +ALIGN 16 ; 0xffffffd0 + +applicationProcessorEntryPoint: +; +; Application Processors entry point +; +; GenFv generates code aligned on a 4k boundary which will jump to this +; location. (0xffffffd0) This allows the Local APIC Startup IPI to be +; used to wake up the application processors. +; + jmp short resetVector + +ALIGN 16 ; 0xffffffe0 + +peiCoreEntryPoint: +; +; PEI Core entry point +; +; GenFv fills the address of the PEI Core into this location +; + DD 0x12345678 + +ALIGN 16 ; 0xfffffff0 + +resetVector: +; +; Reset Vector +; +; This is where the processor will begin execution +; + nop + nop + jmp near $ + +ALIGN 8 + +ApStartupSegment: + DD 0x12345678 + +BootFvBaseAddress: + DD 0x12345678 + +ALIGN 16 ; 0x100000000 -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:05
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------------ OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes OvmfPkg/ResetVector/Build.py | 58 ------------------------ OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ----------- 4 files changed, 113 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Build.py delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.inf b/OvmfPkg/ResetVector/Bin/ResetVector.inf deleted file mode 100644 index afc80e3..0000000 --- a/OvmfPkg/ResetVector/Bin/ResetVector.inf +++ /dev/null @@ -1,29 +0,0 @@ -## @file -# Reset Vector binary -# -# 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 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 = ResetVector - FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 - MODULE_TYPE = SEC - VERSION_STRING = 1.1 - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 -# - -[Binaries.X64] - RAW|ResetVector.x64.raw|* diff --git a/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw b/OvmfPkg/ResetVector/Bin/ResetVector.x64.raw deleted file mode 100644 index a3fc97c93e4d8100f95812102eec682003cc54a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmYk3&ubGw6vtn(NlZPsOQ|GaAwLiG5J@A75{uEI<Ra!EB~(Sc?8RH$fjtQBvgR;J z4GW&ce?jor)E+Wrn;HvZz(XTJSyPp4M!{39QnS8I5qyU?-^ZKzydPtlra8|tAOS1@ zfLl4OtCIR<Wrc8Eomr^OUMB-xjXpg??~?brI$O0e??~5B(?GVVC6wdD;#18Q8g272 zZ96+YfcZZCNQZL$cGlOc<hf9&oUJk?XRsrcOnSdoj_g@+WmGTD=$~BIg{jxd2j7O` zuk2{*v_L{UQe`AWJA8Yd(XHwp@hfBJ5pof7$6(R(o%>}?6(r>Z`e`LskLtS~2a6R9 zCRFn21Ku}SK-SM)TP7KCwS2*6>G{$X01^`x=Xea0)ROi5(lR+FEQSp>C$8QMo$T>o z6PEza1H|!+7`Mfj!=RY7*E9eo<}eD2SuxH~#Ka^Ub;qt71?M}yS%WAJ&S>EAf%^~! zKVJm_G)PGrphBODdn)XytfwST6+9L7R7pcZ7=U()8}{+wE)r?r&3;US!8hzl12Nfi z?qOTM*WpK_zpl8aWYHIqn<;<-wjz&iVN!x-Aq05WmYZQ{^ct*TH-?QazZe4z^Z40l z$etLk4B*LIn4Hi4oiCtuxx|mQE|qvtrkmW)fAN~r`{TM!8pm}$qiZ6|Ehe^#iFPru bS){i6^$<Pr+&T=rB1<=}f@$*S|E0~p(Iyu1 diff --git a/OvmfPkg/ResetVector/Build.py b/OvmfPkg/ResetVector/Build.py deleted file mode 100644 index e0a9496..0000000 --- a/OvmfPkg/ResetVector/Build.py +++ /dev/null @@ -1,58 +0,0 @@ -## @file -# Automate the process of building the various reset vector types -# -# 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. -# - -import glob -import os -import subprocess -import sys - -def RunCommand(commandLine): - #print ' '.join(commandLine) - return subprocess.call(commandLine) - -for filename in glob.glob(os.path.join('Bin', '*.raw')): - os.remove(filename) - -ThisDir = os.path.realpath(os.path.split(sys.argv[0])[0]) -WorkspaceDir = os.path.realpath(os.path.join(ThisDir, '..', '..')) -UefiCpuPkgVtf0Dir = os.path.join(WorkspaceDir, 'UefiCpuPkg', 'ResetVector', 'Vtf0') - -for arch in ('x64',): - for debugType in (None,): - output = os.path.join('Bin', 'ResetVector') - output += '.' + arch - if debugType is not None: - output += '.' + debugType - output += '.raw' - commandLine = ( - 'nasm', - '-D', 'ARCH_%s' % arch.upper(), - '-D', 'DEBUG_%s' % str(debugType).upper(), - '-I', UefiCpuPkgVtf0Dir + os.path.sep, - '-o', output, - 'ResetVectorCode.asm', - ) - ret = RunCommand(commandLine) - print '\tASM\t' + output - if ret != 0: sys.exit(ret) - - commandLine = ( - 'python', - 'Tools/FixupForRawSection.py', - output, - ) - print '\tFIXUP\t' + output - ret = RunCommand(commandLine) - if ret != 0: sys.exit(ret) - diff --git a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py b/OvmfPkg/ResetVector/Tools/FixupForRawSection.py deleted file mode 100644 index f88c8a4..0000000 --- a/OvmfPkg/ResetVector/Tools/FixupForRawSection.py +++ /dev/null @@ -1,26 +0,0 @@ -## @file -# Apply fixup to VTF binary image for FFS Raw section -# -# 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. -# - -import sys - -filename = sys.argv[1] - -d = open(sys.argv[1], 'rb').read() -c = ((len(d) + 4 + 7) & ~7) - 4 -if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:04
|
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/OvmfPkgIa32.dsc | 2 ++ OvmfPkg/OvmfPkgIa32.fdf | 6 +++--- OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++--- OvmfPkg/OvmfPkgX64.dsc | 2 ++ OvmfPkg/OvmfPkgX64.fdf | 6 +++--- OvmfPkg/README | 1 + 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index f7064b7..1ceb909 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -337,6 +337,8 @@ # ################################################################################ [Components] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 243cff3..e971445 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 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 @@ -136,7 +136,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -452,5 +452,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 26d1132..66a4bc3 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -343,6 +343,8 @@ # ################################################################################ [Components.IA32] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index 67c5f9c..218a78e 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 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 @@ -136,7 +136,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -452,5 +452,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 66459c2..73a6460 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -342,6 +342,8 @@ # ################################################################################ [Components] + OvmfPkg/ResetVector/ResetVector.inf + # # SEC Phase modules # diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index 1b029b8..29382fb 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -1,7 +1,7 @@ ## @file # Open Virtual Machine Firmware: FDF # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 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 @@ -136,7 +136,7 @@ READ_LOCK_STATUS = TRUE # INF OvmfPkg/Sec/SecMain.inf -INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/Bin/ResetVector.inf +INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf ################################################################################ [FV.PEIFV] @@ -452,5 +452,5 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { - RAW RAW |.raw + RAW BIN Align = 16 |.bin } diff --git a/OvmfPkg/README b/OvmfPkg/README index 3243dc6..44942e6 100644 --- a/OvmfPkg/README +++ b/OvmfPkg/README @@ -30,6 +30,7 @@ Pre-requisites: * A properly configured ASL compiler: - Intel ASL compiler: Available from http://www.acpica.org - Microsoft ASL compiler: Available from http://www.acpi.info +* NASM: http://www.nasm.us/ Update Conf/target.txt ACTIVE_PLATFORM for OVMF: PEI arch DXE arch UEFI interfaces -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:04
|
Using NASM we build OVMF's ResetVector as part of the EDK II build process. v2: * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++++++++++++++ OvmfPkg/ResetVector/ResetVector.nasmb | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb diff --git a/OvmfPkg/ResetVector/ResetVector.inf b/OvmfPkg/ResetVector/ResetVector.inf new file mode 100644 index 0000000..46610d2 --- /dev/null +++ b/OvmfPkg/ResetVector/ResetVector.inf @@ -0,0 +1,37 @@ +## @file +# Reset Vector +# +# Copyright (c) 2006 - 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 +# 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 = ResetVector + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE = SEC + VERSION_STRING = 1.1 + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + ResetVector.nasmb + +[Packages] + MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + +[BuildOptions] + *_*_IA32_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ + *_*_X64_NASMB_FLAGS = -I$(WORKSPACE)/UefiCpuPkg/ResetVector/Vtf0/ diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb b/OvmfPkg/ResetVector/ResetVector.nasmb new file mode 100644 index 0000000..31ac06a --- /dev/null +++ b/OvmfPkg/ResetVector/ResetVector.nasmb @@ -0,0 +1,66 @@ +;------------------------------------------------------------------------------ +; @file +; This file includes all other code files to assemble the reset vector code +; +; Copyright (c) 2008 - 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. +; +;------------------------------------------------------------------------------ + +; +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include +; Base.h to use the C pre-processor to determine the architecture. +; +%ifndef ARCH_IA32 + %ifndef ARCH_X64 + #include <Base.h> + #if defined (MDE_CPU_IA32) + %define ARCH_IA32 + #elif defined (MDE_CPU_X64) + %define ARCH_X64 + #endif + %endif +%endif + +%ifdef ARCH_IA32 + %ifdef ARCH_X64 + %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." + %endif +%elifdef ARCH_X64 +%else + %error "Either ARCH_IA32 or ARCH_X64 must be defined." +%endif + +%include "CommonMacros.inc" + +%include "PostCodes.inc" + +%ifdef DEBUG_PORT80 + %include "Port80Debug.asm" +%elifdef DEBUG_SERIAL + %include "SerialDebug.asm" +%else + %include "DebugDisabled.asm" +%endif + +%include "Ia32/SearchForBfvBase.asm" +%include "Ia32/SearchForSecEntry.asm" + +%ifdef ARCH_X64 +%include "Ia32/Flat32ToFlat64.asm" +%include "Ia32/PageTables64.asm" +%endif + +%include "Ia16/Real16ToFlat32.asm" +%include "Ia16/Init16.asm" + +%include "Main.asm" + +%include "Ia16/ResetVectorVtf0.asm" + -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:02
|
Previously, we would build the page tables in Tools/FixupForRawSection.py. In order to let NASM build VTF0 from source during the EDK II build process, we need to move this into the VTF0 NASM code. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- .../ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm | 19 +++- UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm | 4 +- .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 100 ++------------------- UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 4 + UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm | 78 ++++++++++++++++ 5 files changed, 108 insertions(+), 97 deletions(-) create mode 100644 UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm diff --git a/UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm b/UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm index 610b956..142d9f3 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm +++ b/UefiCpuPkg/ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm @@ -2,7 +2,7 @@ ; @file ; First code executed by processor after resetting. ; -; 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 @@ -17,6 +17,19 @@ BITS 16 ALIGN 16 +; +; Pad the image size to 4k when page tables are in VTF0 +; +; If the VTF0 image has page tables built in, then we need to make +; sure the end of VTF0 is 4k above where the page tables end. +; +; This is required so the page tables will be 4k aligned when VTF0 is +; located just below 0x100000000 (4GB) in the firmware device. +; +%ifdef ALIGN_TOP_TO_4K_FOR_PAGING + TIMES (0x1000 - ($ - EndOfPageTables) - 0x20) DB 0 +%endif + applicationProcessorEntryPoint: ; ; Application Processors entry point @@ -25,7 +38,7 @@ applicationProcessorEntryPoint: ; location. (0xffffffe0) This allows the Local APIC Startup IPI to be ; used to wake up the application processors. ; - jmp short EarlyApInitReal16 + jmp EarlyApInitReal16 ALIGN 8 @@ -50,7 +63,7 @@ resetVector: ; nop nop - jmp short EarlyBspInitReal16 + jmp EarlyBspInitReal16 ALIGN 16 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm b/UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm index 0cfcbae..2e16e71 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm +++ b/UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm @@ -21,9 +21,9 @@ BITS 32 SetCr3ForPageTables64: ; - ; These pages are built into the ROM image by Tools/FixupForRawSection.py + ; These pages are built into the ROM image in X64/PageTables.asm ; - mov eax, ((ADDR_OF_START_OF_RESET_CODE & ~0xfff) - 0x1000) + mov eax, ADDR_OF(TopLevelPageDirectory) mov cr3, eax OneTimeCallRet SetCr3ForPageTables64 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py b/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py index a9f21db..a70ce75 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py +++ b/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py @@ -16,95 +16,11 @@ import sys filename = sys.argv[1] -if filename.lower().find('ia32') >= 0: - d = open(sys.argv[1], 'rb').read() - c = ((len(d) + 4 + 7) & ~7) - 4 - if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -else: - from struct import pack - - PAGE_PRESENT = 0x01 - PAGE_READ_WRITE = 0x02 - PAGE_USER_SUPERVISOR = 0x04 - PAGE_WRITE_THROUGH = 0x08 - PAGE_CACHE_DISABLE = 0x010 - PAGE_ACCESSED = 0x020 - PAGE_DIRTY = 0x040 - PAGE_PAT = 0x080 - PAGE_GLOBAL = 0x0100 - PAGE_2M_MBO = 0x080 - PAGE_2M_PAT = 0x01000 - - def NopAlign4k(s): - c = ((len(s) + 0xfff) & ~0xfff) - len(s) - return ('\x90' * c) + s - - def PageDirectoryEntries4GbOf2MbPages(baseAddress): - - s = '' - for i in range(0x800): - i = ( - baseAddress + long(i << 21) + - PAGE_2M_MBO + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_DIRTY + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageDirectoryPointerTable4GbOf2MbPages(pdeBase): - s = '' - for i in range(0x200): - i = ( - pdeBase + - (min(i, 3) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageMapLevel4Table4GbOf2MbPages(pdptBase): - s = '' - for i in range(0x200): - i = ( - pdptBase + - (min(i, 0) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def First4GbPageEntries(topAddress): - PDE = PageDirectoryEntries4GbOf2MbPages(0L) - pml4tBase = topAddress - 0x1000 - pdptBase = pml4tBase - 0x1000 - pdeBase = pdptBase - len(PDE) - PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase) - PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase) - return PDE + PDPT + PML4T - - def AlignAndAddPageTables(): - d = open(sys.argv[1], 'rb').read() - code = NopAlign4k(d) - topAddress = 0x100000000 - len(code) - d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code - f = open(sys.argv[1], 'wb') - f.write(d) - f.close() - - AlignAndAddPageTables() - +d = open(sys.argv[1], 'rb').read() +c = ((len(d) + 4 + 7) & ~7) - 4 +if c > len(d): + c -= len(d) + f = open(sys.argv[1], 'wb') + f.write('\x90' * c) + f.write(d) + f.close() diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb index 31ac06a..f4a29e8 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb @@ -41,6 +41,10 @@ %include "PostCodes.inc" +%ifdef ARCH_X64 +%include "X64/PageTables.asm" +%endif + %ifdef DEBUG_PORT80 %include "Port80Debug.asm" %elifdef DEBUG_SERIAL diff --git a/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm new file mode 100644 index 0000000..3d703c7 --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm @@ -0,0 +1,78 @@ +;------------------------------------------------------------------------------ +; @file +; Emits Page Tables for 1:1 mapping of the addresses 0 - 0x100000000 (4GB) +; +; 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 +; 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. +; +;------------------------------------------------------------------------------ + +BITS 64 + +%define ALIGN_TOP_TO_4K_FOR_PAGING + +%define PAGE_PRESENT 0x01 +%define PAGE_READ_WRITE 0x02 +%define PAGE_USER_SUPERVISOR 0x04 +%define PAGE_WRITE_THROUGH 0x08 +%define PAGE_CACHE_DISABLE 0x010 +%define PAGE_ACCESSED 0x020 +%define PAGE_DIRTY 0x040 +%define PAGE_PAT 0x080 +%define PAGE_GLOBAL 0x0100 +%define PAGE_2M_MBO 0x080 +%define PAGE_2M_PAT 0x01000 + +%define PAGE_2M_PDE_ATTR (PAGE_2M_MBO + \ + PAGE_ACCESSED + \ + PAGE_DIRTY + \ + PAGE_READ_WRITE + \ + PAGE_PRESENT) + +%define PAGE_PDP_ATTR (PAGE_ACCESSED + \ + PAGE_READ_WRITE + \ + PAGE_PRESENT) + +%define PGTBLS_OFFSET(x) ((x) - TopLevelPageDirectory) +%define PGTBLS_ADDR(x) (ADDR_OF(TopLevelPageDirectory) + (x)) + +%define PDP(offset) (ADDR_OF(TopLevelPageDirectory) + (offset) + \ + PAGE_PDP_ATTR) +%define PTE_2MB(x) ((x << 21) + PAGE_2M_PDE_ATTR) + +TopLevelPageDirectory: + + ; + ; Top level Page Directory Pointers (1 * 512GB entry) + ; + DQ PDP(0x1000) + + + ; + ; Next level Page Directory Pointers (4 * 1GB entries => 4GB) + ; + TIMES 0x1000-PGTBLS_OFFSET($) DB 0 + + DQ PDP(0x2000) + DQ PDP(0x3000) + DQ PDP(0x4000) + DQ PDP(0x5000) + + ; + ; Page Table Entries (2048 * 2MB entries => 4GB) + ; + TIMES 0x2000-PGTBLS_OFFSET($) DB 0 + +%assign i 0 +%rep 0x800 + DQ PTE_2MB(i) + %assign i i+1 +%endrep + +EndOfPageTables: -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:19:01
|
Using NASM we build VTF0 as part of the EDK II build process. v2: * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- UefiCpuPkg/ResetVector/Vtf0/Build.py | 2 +- UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm | 53 -------------------- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 32 ++++++++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 66 +++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 54 deletions(-) delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/Vtf0/Build.py index 826cde0..a645c37 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Build.py +++ b/UefiCpuPkg/ResetVector/Vtf0/Build.py @@ -36,7 +36,7 @@ for arch in ('ia32', 'x64'): '-D', 'ARCH_%s' % arch.upper(), '-D', 'DEBUG_%s' % str(debugType).upper(), '-o', output, - 'ResetVectorCode.asm', + 'Vtf0.nasmb', ) ret = RunCommand(commandLine) print '\tASM\t' + output diff --git a/UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm b/UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm deleted file mode 100644 index 052c821..0000000 --- a/UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm +++ /dev/null @@ -1,53 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; This file includes all other code files to assemble the reset vector code -; -; Copyright (c) 2008 - 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. -; -;------------------------------------------------------------------------------ - -%ifdef ARCH_IA32 - %ifdef ARCH_X64 - %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." - %endif -%elifdef ARCH_X64 -%else - %error "Either ARCH_IA32 or ARCH_X64 must be defined." -%endif - -%include "CommonMacros.inc" - -%include "PostCodes.inc" - -%ifdef DEBUG_NONE - %include "DebugDisabled.asm" -%elifdef DEBUG_PORT80 - %include "Port80Debug.asm" -%elifdef DEBUG_SERIAL - %include "SerialDebug.asm" -%else - %error "No debug type was specified." -%endif - -%include "Ia32/SearchForBfvBase.asm" -%include "Ia32/SearchForSecEntry.asm" - -%ifdef ARCH_X64 -%include "Ia32/Flat32ToFlat64.asm" -%include "Ia32/PageTables64.asm" -%endif - -%include "Ia16/Real16ToFlat32.asm" -%include "Ia16/Init16.asm" - -%include "Main.asm" - -%include "Ia16/ResetVectorVtf0.asm" - diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf new file mode 100644 index 0000000..fe2d9b3 --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf @@ -0,0 +1,32 @@ +## @file +# Reset Vector +# +# Copyright (c) 2006 - 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 +# 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 = ResetVector + FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 + MODULE_TYPE = SEC + VERSION_STRING = 1.1 + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + Vtf0.nasmb + +[Packages] + MdePkg/MdePkg.dec diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb new file mode 100644 index 0000000..31ac06a --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb @@ -0,0 +1,66 @@ +;------------------------------------------------------------------------------ +; @file +; This file includes all other code files to assemble the reset vector code +; +; Copyright (c) 2008 - 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. +; +;------------------------------------------------------------------------------ + +; +; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include +; Base.h to use the C pre-processor to determine the architecture. +; +%ifndef ARCH_IA32 + %ifndef ARCH_X64 + #include <Base.h> + #if defined (MDE_CPU_IA32) + %define ARCH_IA32 + #elif defined (MDE_CPU_X64) + %define ARCH_X64 + #endif + %endif +%endif + +%ifdef ARCH_IA32 + %ifdef ARCH_X64 + %error "Only one of ARCH_IA32 or ARCH_X64 can be defined." + %endif +%elifdef ARCH_X64 +%else + %error "Either ARCH_IA32 or ARCH_X64 must be defined." +%endif + +%include "CommonMacros.inc" + +%include "PostCodes.inc" + +%ifdef DEBUG_PORT80 + %include "Port80Debug.asm" +%elifdef DEBUG_SERIAL + %include "SerialDebug.asm" +%else + %include "DebugDisabled.asm" +%endif + +%include "Ia32/SearchForBfvBase.asm" +%include "Ia32/SearchForSecEntry.asm" + +%ifdef ARCH_X64 +%include "Ia32/Flat32ToFlat64.asm" +%include "Ia32/PageTables64.asm" +%endif + +%include "Ia16/Real16ToFlat32.asm" +%include "Ia16/Init16.asm" + +%include "Main.asm" + +%include "Ia16/ResetVectorVtf0.asm" + -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:18:59
|
v2: * Use EDK II tool name of NASMB rather than NASMBIN * Use EDK II extension of .nasmb rather than .nasmbin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> --- BaseTools/Conf/build_rule.template | 17 +++++++++++++++++ BaseTools/Conf/tools_def.template | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index c1c0d4c..0b265e8 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -440,6 +440,23 @@ otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} +[Nasm-to-Binary-Code-File] + <InputFile> + ?.nasmb, ?.NASMB + + <ExtraDependency> + $(MAKE_FILE) + + <OutputFile> + $(OUTPUT_DIR)(+)${s_base}.bin + + <Command> + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + cd $(OUTPUT_DIR)(+)${s_dir} + "$(NASM)" -I${s_path}(+) $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii + + [Microcode-File.USER_DEFINED, Microcode-File.Microcode] <InputFile> ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f9e1e6c..e2571d4 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -616,6 +616,15 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G #################################################################################### #################################################################################### # +# Other Supported Tools +# ===================== +# NASM 2.0.3 http://www.nasm.us/ +# Note: Converts NASM source to .bin. Object linking to +# EDK II driver modules is not currently supported. +# +#################################################################################### +#################################################################################### +# # Intel EFI Byte Code Compiler (Template) # #################################################################################### @@ -6058,3 +6067,10 @@ RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC ################## *_*_*_VPDTOOL_PATH = BPDG *_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08 + +################## +# NASM tool definitions +################## +*_*_*_NASM_PATH = nasm +# NASMB uses NASM produce a .bin from a .nasmb NASM source file +*_*_*_NASMB_FLAGS = -f bin -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-23 20:18:58
|
These patches are available in the 'nasm-vtf-v2' branch of the git repo at https://github.com/jljusten/edk2. The web page for this branch also provides a .zip download (see link on right hand side of page): https://github.com/jljusten/edk2/tree/nasm-vtf-v2 Jordan Justen (7): BaseTools: Add rules to build NASM source file into a binary UefiCpuPkg: Support building VTF0 ResetVector during the EDK II build UefiCpuPkg VTF0 X64: Build page tables in NASM code OvmfPkg: Support building OVMF's ResetVector during the EDK II build OvmfPkg: Build OVMF ResetVector during EDK II build process OvmfPkg/ResetVector: Remove pre-built binaries UefiCpuPkg: Add ResetVector/FixupVtf BaseTools/Conf/build_rule.template | 17 ++++ BaseTools/Conf/tools_def.template | 16 ++++ OvmfPkg/OvmfPkgIa32.dsc | 2 + OvmfPkg/OvmfPkgIa32.fdf | 6 +- OvmfPkg/OvmfPkgIa32X64.dsc | 2 + OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- OvmfPkg/OvmfPkgX64.dsc | 2 + OvmfPkg/OvmfPkgX64.fdf | 6 +- OvmfPkg/README | 1 + OvmfPkg/ResetVector/Bin/ResetVector.inf | 29 ------ OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 0 bytes OvmfPkg/ResetVector/Build.py | 58 ------------ OvmfPkg/ResetVector/ResetVector.inf | 37 ++++++++ OvmfPkg/ResetVector/ResetVector.nasmb | 66 ++++++++++++++ OvmfPkg/ResetVector/Tools/FixupForRawSection.py | 26 ------ UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf | 32 +++++++ UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb | 60 +++++++++++++ UefiCpuPkg/ResetVector/Vtf0/Build.py | 2 +- .../ResetVector/Vtf0/Ia16/ResetVectorVtf0.asm | 19 +++- UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm | 4 +- UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm | 53 ----------- .../ResetVector/Vtf0/Tools/FixupForRawSection.py | 100 ++------------------- UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf | 32 +++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 70 +++++++++++++++ UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm | 78 ++++++++++++++++ 25 files changed, 451 insertions(+), 273 deletions(-) delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.inf delete mode 100644 OvmfPkg/ResetVector/Bin/ResetVector.x64.raw delete mode 100644 OvmfPkg/ResetVector/Build.py create mode 100644 OvmfPkg/ResetVector/ResetVector.inf create mode 100644 OvmfPkg/ResetVector/ResetVector.nasmb delete mode 100644 OvmfPkg/ResetVector/Tools/FixupForRawSection.py create mode 100644 UefiCpuPkg/ResetVector/FixupVtf/Vtf.inf create mode 100644 UefiCpuPkg/ResetVector/FixupVtf/Vtf.nasmb delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/ResetVectorCode.asm create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb create mode 100644 UefiCpuPkg/ResetVector/Vtf0/X64/PageTables.asm -- 2.0.1 |
From: Jordan J. <jor...@in...> - 2014-07-21 21:49:30
|
GCC 4.9 may use 64-byte (0x40) alignment for data sections. Therefore we use a different link script for GCC 4.9. The only difference from the gcc4.4-ld-script is the alignment for data sections. When using the GCC48 toolchain with GCC 4.9, this error would be encountered by GenFw: > GenFw: ERROR 3000: Invalid > Unsupported section alignment. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> Cc: edk...@li... Cc: Alain Kalker <a.c...@gm...> Cc: Keshav Amburay <the...@gm...> Cc: "Mendyke, DanielX" <dan...@in...> --- These patches are available in the gcc-4.9 branch of: https://github.com/jljusten/edk2.git BaseTools/Conf/tools_def.template | 145 +++++++++++++++++++++++++++++++++++++ BaseTools/Scripts/gcc4.9-ld-script | 44 +++++++++++ 2 files changed, 189 insertions(+) create mode 100644 BaseTools/Scripts/gcc4.9-ld-script diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f99ddf6..f9e1e6c 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -162,6 +162,9 @@ DEFINE GCC47_X64_PREFIX = /usr/bin/ DEFINE GCC48_IA32_PREFIX = /usr/bin/ DEFINE GCC48_X64_PREFIX = /usr/bin/ +DEFINE GCC49_IA32_PREFIX = /usr/bin/ +DEFINE GCC49_X64_PREFIX = /usr/bin/ + DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe @@ -307,6 +310,12 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler v20101013 from # http://www.acpica.org/downloads/previous_releases.php +# GCC49 -Linux- Requires: +# GCC 4.9 +# 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: @@ -3216,6 +3225,22 @@ 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) +DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) +DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) +DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.9-ld-script +DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable +DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map +DEFINE GCC49_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -melf_x86_64 --oformat=elf64-x86-64 +DEFINE GCC49_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) +DEFINE GCC49_ARM_ASM_FLAGS = DEF(GCC48_ARM_ASM_FLAGS) +DEFINE GCC49_AARCH64_ASM_FLAGS = DEF(GCC48_AARCH64_ASM_FLAGS) +DEFINE GCC49_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) +DEFINE GCC49_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) +DEFINE GCC49_ARM_DLINK_FLAGS = DEF(GCC48_ARM_DLINK_FLAGS) +DEFINE GCC49_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) +DEFINE GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS) +DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) + #################################################################################### # # Unix GCC And Intel Linux ACPI Compiler @@ -3769,6 +3794,126 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s #################################################################################### # +# GCC 4.9 - This configuration is used to compile under Linux to produce +# PE/COFF binaries using GCC 4.9. +# +#################################################################################### +*_GCC49_*_*_FAMILY = GCC + +*_GCC49_*_MAKE_PATH = make +*_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN) + +*_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS) +*_GCC49_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) +*_GCC49_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_GCC49_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) +*_GCC49_*_APP_FLAGS = +*_GCC49_*_ASL_FLAGS = DEF(IASL_FLAGS) +*_GCC49_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) + +################## +# GCC49 IA32 definitions +################## +*_GCC49_IA32_OBJCOPY_PATH = DEF(GCC49_IA32_PREFIX)objcopy +*_GCC49_IA32_CC_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_SLINK_PATH = DEF(GCC49_IA32_PREFIX)ar +*_GCC49_IA32_DLINK_PATH = DEF(GCC49_IA32_PREFIX)ld +*_GCC49_IA32_ASLDLINK_PATH = DEF(GCC49_IA32_PREFIX)ld +*_GCC49_IA32_ASM_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_PP_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_VFRPP_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_ASLCC_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_ASLPP_PATH = DEF(GCC49_IA32_PREFIX)gcc +*_GCC49_IA32_RC_PATH = DEF(GCC49_IA32_PREFIX)objcopy + +*_GCC49_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 +*_GCC49_IA32_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_i386 +*_GCC49_IA32_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m32 -march=i386 +*_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os +*_GCC49_IA32_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386 +*_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) +*_GCC49_IA32_OBJCOPY_FLAGS = + +################## +# GCC49 X64 definitions +################## +*_GCC49_X64_OBJCOPY_PATH = DEF(GCC49_X64_PREFIX)objcopy +*_GCC49_X64_CC_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_SLINK_PATH = DEF(GCC49_X64_PREFIX)ar +*_GCC49_X64_DLINK_PATH = DEF(GCC49_X64_PREFIX)ld +*_GCC49_X64_ASLDLINK_PATH = DEF(GCC49_X64_PREFIX)ld +*_GCC49_X64_ASM_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_PP_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_VFRPP_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_ASLCC_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_ASLPP_PATH = DEF(GCC49_X64_PREFIX)gcc +*_GCC49_X64_RC_PATH = DEF(GCC49_X64_PREFIX)objcopy + +*_GCC49_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 +*_GCC49_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64 +*_GCC49_X64_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m64 +*_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) +*_GCC49_X64_DLINK_FLAGS = DEF(GCC49_X64_DLINK_FLAGS) +*_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +*_GCC49_X64_OBJCOPY_FLAGS = + +################## +# GCC49 ARM definitions +################## +*_GCC49_ARM_CC_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_SLINK_PATH = ENV(GCC49_ARM_PREFIX)ar +*_GCC49_ARM_DLINK_PATH = ENV(GCC49_ARM_PREFIX)ld +*_GCC49_ARM_ASLDLINK_PATH = ENV(GCC49_ARM_PREFIX)ld +*_GCC49_ARM_ASM_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_PP_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_VFRPP_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_ASLCC_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_ASLPP_PATH = ENV(GCC49_ARM_PREFIX)gcc +*_GCC49_ARM_RC_PATH = ENV(GCC49_ARM_PREFIX)objcopy + +*_GCC49_ARM_ARCHCC_FLAGS = -mthumb +*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a + +*_GCC49_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) +*_GCC49_ARM_ASM_FLAGS = DEF(GCC49_ARM_ASM_FLAGS) +*_GCC49_ARM_DLINK_FLAGS = DEF(GCC49_ARM_DLINK_FLAGS) +*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a +*_GCC49_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS) +*_GCC49_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS) +*_GCC49_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) + + DEBUG_GCC49_ARM_CC_FLAGS = DEF(GCC49_ARM_CC_FLAGS) -O0 +RELEASE_GCC49_ARM_CC_FLAGS = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable + +################## +# GCC49 AARCH64 definitions +################## +*_GCC49_AARCH64_CC_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_SLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ar +*_GCC49_AARCH64_DLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ld +*_GCC49_AARCH64_ASLDLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ld +*_GCC49_AARCH64_ASM_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_PP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_VFRPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_ASLCC_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_ASLPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc +*_GCC49_AARCH64_RC_PATH = ENV(GCC49_AARCH64_PREFIX)objcopy + +*_GCC49_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) +*_GCC49_AARCH64_ASM_FLAGS = DEF(GCC49_AARCH64_ASM_FLAGS) +*_GCC49_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) +*_GCC49_AARCH64_PLATFORM_FLAGS = +*_GCC49_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS) +*_GCC49_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS) +*_GCC49_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) + + DEBUG_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -O0 +RELEASE_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable + +#################################################################################### +# # Cygwin GCC And Intel ACPI Compiler # #################################################################################### diff --git a/BaseTools/Scripts/gcc4.9-ld-script b/BaseTools/Scripts/gcc4.9-ld-script new file mode 100644 index 0000000..b692328 --- /dev/null +++ b/BaseTools/Scripts/gcc4.9-ld-script @@ -0,0 +1,44 @@ +/* OUTPUT_FORMAT(efi-bsdrv-x86_64) */ +SECTIONS +{ + /* . = 0 + SIZEOF_HEADERS; */ + . = 0x280; + .text ALIGN(0x20) : + { + *(.text .stub .text.* .gnu.linkonce.t.*) + . = ALIGN(0x20); + } =0x90909090 + .data ALIGN(0x40) : + { + *( + .rodata .rodata.* .gnu.linkonce.r.* + .data .data.* .gnu.linkonce.d.* + .bss .bss.* + *COM* + ) + . = ALIGN(0x20); + } + .eh_frame ALIGN(0x20) : + { + KEEP (*(.eh_frame)) + } + .got ALIGN(0x20) : + { + *(.got .got.*) + . = ALIGN(0x20); + } + .rela ALIGN(0x20) : + { + *(.rela .rela.*) + } + /DISCARD/ : { + *(.note.GNU-stack) *(.gnu_debuglink) + *(.interp) + *(.dynsym) + *(.dynstr) + *(.dynamic) + *(.hash) + *(.comment) + } +} + -- 2.0.1 |