ArmPkg,ArmPlatformPkg: Allow dynamic PCDs for memory base and size
This changes the definition and a bunch of references to
gArmTokenSpaceGuid.PcdSystemMemoryBase and
gArmTokenSpaceGuid.PcdSystemMemorySize so they can be declared as dynamic PCDs
by the platform. Also, move the non-SEC call to
ArmPlatformInitializeSystemMemory() earlier, so a platform has a chance to set
these PCDs before they are first referenced.
The purpose is allowing dynamically instantiated virtual machines to declare
the system memory by passing a device tree.
ArmPkg: Move TimerDxe and ArmArchTimerLib to new ArmGenericTimerCounterLib
Move TimerDxe and ArmArchTimerLib to ArmGenericTimerCounterLib, and update all
platforms to select the physical counter instance they have been using
implicitly all along.
ArmPkg: Renamed ArmArchTimerLib.h to ArmArchTimer.h
The ArmArchTimerLib.h include file is not directly related to the TimerLib
instance ArmArchTimerLib, so the name is confusing. Rename to ArmArchTimer.h
instead.
Allow the PCDs gArmTokenSpaceGuid.PcdGicDistributorBase and
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase to be redeclared
as PcdsDynamic by the platform, so virtual machines can set these
properties during boot. As the PcdGet32() calls now call into the
PCD database, cache the values that are required during the handling
of interrupts.
To support booting on virtual machines whose interrupt routing is
discovered from the device tree, allow the interrupt numbers to
be redeclared as PcdsDynamic by the platform .dsc
Harry Liebel [Tue, 9 Sep 2014 15:58:33 +0000 (15:58 +0000)]
ArmPlatformPkg/Bds: Fix delete boot option
- We need to delete the boot option variable from storage not just
adjust the BootOrder variable.
- The Linux tool 'efibootmgr' still showed the previously removed boot
options.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16070 6f19259b-4bc3-4df7-8a09-765794883524
Harry Liebel [Tue, 9 Sep 2014 15:57:18 +0000 (15:57 +0000)]
ArmPkg/ArmDisassemblerLib: ARMThumb and AArch64 fixes
- Fix ARM Thumb mask operator. This was flagged by a toolchain as warning
"use of logical '&&' with constant operand [-Wconstant-logical-operand]"
- AArch64 should not be building the ARM32 disassemblers.
- Add a AArch64 build target. The disassembler is still to be
implemented.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16069 6f19259b-4bc3-4df7-8a09-765794883524
Anderw Fish [Tue, 9 Sep 2014 06:50:51 +0000 (06:50 +0000)]
UefiCpuPkg: CpuExceptionHandlerLib: Make self modifying code work with Xcode
CpuExceptionHandlerLib has code that contains absolute relocations, not supported by
Xcode for X64, and it then copies this code to an alternate location in memory. It is
very hard to write IP relative self-modifiying code. I had to update AsmVectorNumFixup()
to also patch in the absolute addressess after the code was copied.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16068 6f19259b-4bc3-4df7-8a09-765794883524
Gabriel Somlo [Tue, 9 Sep 2014 03:18:30 +0000 (03:18 +0000)]
OvmfPkg: AcpiTimerLib: Access power mgmt regs based on host bridge type
Pick the appropriate bus:dev.fn for accessing ACPI power management
registers (00:01.3 on PIIX4 vs. 00:1f.0 on Q35) based on the device
ID of the host bridge (assumed always present at 00:00.0).
With this patch, OVMF can boot QEMU's "-machine q35" x86 machine type.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16066 6f19259b-4bc3-4df7-8a09-765794883524
In XCODE tool chain, the 64-bit bit wise and operation is causing the compiler to emit an __umoddi3.
This patch uses BaseLib API to replace 64-bit bit operation.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-by: Andrew Fish <afish@apple.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16065 6f19259b-4bc3-4df7-8a09-765794883524
This file allows a developer to add a new tool in either the C or Python trees, add the executable (and any supporting files, such as the TestSigningPrivateKey.pem file) to this file and the build server will automatically make sure that the new files are added to the BaseTools\Bin\Win32 directory. The Win32 directory is located in https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32 repository.
Developer - Tool add process:
1) Developer adds code for the new tool.
2) Developer updates the Makefile in the C or Python directory
a) The entry must make sure that the executable is generated in the BaseTools\Bin\Win32 directory and any supporting files are copied to the same directory as part of the build step.
3) Developer adds the <Toolname>.exe under the [Bin.Win32] section in the BinaryFiles.txt file.
4) Developer adds other files required to be present in the [ExtraFiles.Win32] section in the BinaryFiles.txt file.
Build Server:
1) Build all binaries by calling nmake on the Source\C\Makefile and Source\Python\Makefile
2) After building the binaries, the build server verify that the files listed in BaseTools\Source\BinFiles.txt are also in the edk2-toolbinaries project,
a. If a file is not under source control, then the build server will add file as long as it is present.
Harry Liebel [Wed, 3 Sep 2014 09:04:00 +0000 (09:04 +0000)]
ShellPkg: Fix dynamic command help
- Use Shell Help print function that understands Shell Man Page format.
- Move Dynamic help print above the catchall case otherwise the help is
printed multiple times in case of man page format.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> Reviewed-by: Jaben Carsey <Jaben.Carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16053 6f19259b-4bc3-4df7-8a09-765794883524
Harry Liebel [Wed, 3 Sep 2014 09:03:10 +0000 (09:03 +0000)]
ShellPkg: Add DXE_DRIVER class type to some libraries
Shell Libraries can now be used from Platform Drivers with the
introduction of the Shell Dynamic Command Protocol.
Adding DXE_DRIVER class allows to use these libraries with this
class of driver.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> Reviewed-by: Jaben Carsey <Jaben.Carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16052 6f19259b-4bc3-4df7-8a09-765794883524
PcAtChipsetPkg: Convert non DOS format files to DOS format and rename the same module name.
1. Module UNI and Package UNI files are not DOS format. Convert them to DOS format.
2. BaseAcpiTimerLib and DxeAcpiTimerLib has the same module name. Update them to the different name, and add the module uni file with the updated module name.
MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files.
1. Module UNI and Package UNI files are not DOS format. Convert them to DOS format.
2. Remove unused SectionExtractionDxeModStrs.uni and SectionExtractionPeiModStrs.uni
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Cleanup UefiShellDebug1CommandsLib strings to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc...)
* Wrap the text to fit in 80x25 formatted console output
* Remove excessive and very verbose examples output
Jordan Justen [Mon, 1 Sep 2014 17:24:08 +0000 (17:24 +0000)]
MdePkg BaseLib NASM Thunk16: Initialize _16GdtrBase to 0
Previously we were setting it to the start of the GDT in the UEFI
driver's copy of BaseLib. This address is irrelavent, since the C code
will initialize it to the cooresponding address after the Thunk16 code
has been placed in low memory.
Additionally, initializing this was causing a link error for the
XCLANG toolchain.
Convert remaining 'DB' code to assembly code by:
* Move instruction immediate data labels to end of instruction
* Use strict keyword to make sure immediate data size is not optimized
Jordan Justen [Mon, 1 Sep 2014 17:23:51 +0000 (17:23 +0000)]
MdePkg BaseLib NASM Thunk16: Use bits 16 for 16-bit code
By using 'bits 16', we can write code for 16-bit use the actual
assembly syntax rather than 'DB' and sometimes writing code with
seemingly incorrect operands because we know it will run correctly
when the processor is running in 16-bit mode.
Jordan Justen [Mon, 1 Sep 2014 17:23:10 +0000 (17:23 +0000)]
MdePkg Base.h: Always define ASM_PFX
Some compilers may define __USER_LABEL_PREFIX__ to determine the
prefix used with ASM_PFX. Otherwise, IA32 will use a single underscore
'_' character, and all other architectures will use an empty prefix.
Allow the PCDs gArmPlatformTokenSpaceGuid.PcdPL031RtcBase and
gArmPlatformTokenSpaceGuid.PcdPL031RtcPpmAccuracy PCDs to be
declared as PcdsDynamic by the platform so they can be overridden
during boot.
ArmPlatformPkg/PrePeiCore: remove GIC related PCDs from unicore
Remove the PCDs gArmTokenSpaceGuid.PcdGicDistributorBase and
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase from PrePeiCoreUniCore.inf,
as they are not in fact used by the module.
Olivier Martin [Mon, 1 Sep 2014 13:21:54 +0000 (13:21 +0000)]
ArmPkg/BdsLib/Arm: Clean Data cache before disabling it
It is actually the same sequence as AArch64.
Without cleaning the data cache prior to disable the cache, the LR value
pushed on the stack when entering in ArmCleanInvalidateDataCache()
might have been overwritten by this specific cache line maintenance.
Ronald Cron [Mon, 1 Sep 2014 13:17:23 +0000 (13:17 +0000)]
ArmPlatformPkg/Bds: Correct copy of an unaligned Unicode string
When a Unicode string is not stored in a 2-byte aligned memory area,
the StrnCpy() or StrCpy() functions can not be used to copy the string.
The string is now copied using CopyMem().
In the same function, a copy with "AsciiStrnCpy()" has also be replaced
with a copy using "CopyMem()" as the size of the string to copy is in
normal cases known. Another copy using "AsciiStrnCpy()" has been corrected
in order not to run off the array the string is copied into and to ensure
that the copied string has a final zero.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <ronald.cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16009 6f19259b-4bc3-4df7-8a09-765794883524
Jaben Carsey [Fri, 29 Aug 2014 22:01:54 +0000 (22:01 +0000)]
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Jaben Carsey [Fri, 29 Aug 2014 21:57:42 +0000 (21:57 +0000)]
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Jaben Carsey [Fri, 29 Aug 2014 21:17:46 +0000 (21:17 +0000)]
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Jaben Carsey [Fri, 29 Aug 2014 21:17:27 +0000 (21:17 +0000)]
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Jaben Carsey [Fri, 29 Aug 2014 21:17:03 +0000 (21:17 +0000)]
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through some other means.
This patch replaces StrCat with StrnCat or refactors out the usage of StrCat through some other means.
Jaben Carsey [Fri, 29 Aug 2014 21:15:05 +0000 (21:15 +0000)]
The binaries of ShellBinPkg are generated with ShellPkg project 15999. The binaries are built with no debug information by building with "RELEASE" target.
Tapan Shah [Fri, 29 Aug 2014 20:40:21 +0000 (20:40 +0000)]
Cleanup UefiShellLevel1CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
Tapan Shah [Fri, 29 Aug 2014 20:36:23 +0000 (20:36 +0000)]
Cleanup UefiShellDriver1CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
* Remove excessive and very verbose examples output
Tapan Shah [Fri, 29 Aug 2014 20:33:31 +0000 (20:33 +0000)]
Cleanup UefiShellInstall1CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
Tapan Shah [Fri, 29 Aug 2014 20:30:58 +0000 (20:30 +0000)]
Cleanup UefiShellLevel2CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
Tapan Shah [Fri, 29 Aug 2014 20:17:57 +0000 (20:17 +0000)]
Cleanup UefiShellNetwork1CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
* Remove excessive and very verbose examples output
Tapan Shah [Fri, 29 Aug 2014 20:16:24 +0000 (20:16 +0000)]
Cleanup UefiShellLevel3CommandsLib commands help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
Tapan Shah [Fri, 29 Aug 2014 20:02:38 +0000 (20:02 +0000)]
Cleanup UefiDpLib ‘dp’ command help output string to :
* Follow a consistent style
* Add consistent sections: NOTES, EXAMPLES, RETURN VALUES, etc.
* Wrap the text to fit in 80x25 formatted console output
Anderw Fish [Fri, 29 Aug 2014 18:58:36 +0000 (18:58 +0000)]
EmulatorPkg: Unix: Use XCODE5 and lldb if Xcode 5 is detected
The EmulatorPkg build.sh will use XCODE5 if that is the default toolchain, and
default to using lldb if Xcode 5 is dectect. This will work for Xcode 6 and
possibly future version of Xcode too.
/usr/bin/clang is just a wrapper that calls the currently selected Xcode
version. xcode-select is used used to display or set the current version of
Xcode used by the command line tools.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15983 6f19259b-4bc3-4df7-8a09-765794883524
Anderw Fish [Fri, 29 Aug 2014 18:52:42 +0000 (18:52 +0000)]
EmulatorPkg: Unix: Add LLDB support for Xcode 5
Xcode5 retired gdb, so this patch adds support for using, and loading symbols
in, lldb. It also supports building with Xcode 5.
The lldb script also supports dumping out the build generated guid database
and it prints guids out with thier Cname if available. lldbefi.py also
contains some EFI specific type formatters. Symbols are loaded via the
lldbefi.py script setting a breakpoint on SecGdbScriptBreak() and runing a
breakpoint action Python function that uses the arguments to
SecGdbScriptBreak() to load symbols.
The location of SecGdbScriptBreak() in Host.c was updated to move symbol
loading control into the lldb Python script, since lldb only uses the
arguments to SecGdbScriptBreak() and not the files generated by the
emulator. The +1 on the SecGdbScriptBreak() argument makes it string size,
not string length, as this is what the lldb script is looking for.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15982 6f19259b-4bc3-4df7-8a09-765794883524