Commit Graph

11531 Commits

Author SHA1 Message Date
andrewfish 1d7ac5a617 InOsEmuPkg: Add an OS malloc/valloc/free based implementation of the MemoryAllocationLib. Requires extra Thunk APIs.
I've got this working. The tricky part was a driver/application can mix malloc forms. If the driver links against this library all the allocations come from the OS service, but if a protocol or EFI boot service return an allocated buffer it will still use the EFI allocation. The gasket code can detect this and do the right thing, as the emulator is passing up the memory map to EFI. 

You can now use the OS based malloc debugging tools in an EFI driver or appliaction. On OS X this is libgmalloc, also called guard malloc. 

Signed-off-by: andrewfish.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11886 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-24 23:59:51 +00:00
andrewfish 0de7effb73 InOsEmuPkg: Fix issue with struct stat not having the right size. EFI compiler args are not compatible with system include headers for IA32.
This is a fix for XCODE/XCLANG. I'm still seeing an issue, but the stat info for the filesystem is now correct. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11885 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-24 22:48:34 +00:00
andrewfish c8f62f95a6 [InOsEmuPkg] Fix minor coding style bug.
signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11884 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-24 14:50:06 +00:00
andrewfish c217506815 [InOSEmPkg] Add OS malloc and free to the Thunk.
Added OS malloc and free so we can make MemoryAllocationLib instance that uses OS guard malloc. This will allow all the debug support built into the OS for finding malloc bugs to be used with a driver in the emulator. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11883 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-24 14:48:38 +00:00
jljusten 54e0b04c74 InOsEmuPkg/Unix: Fix build issues for GCC44 IA32
Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11880 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 15:23:39 +00:00
jljusten 27f6b4f869 InOsEmuPkg/Unix: Detect lib directory suffix on Linux
For IA32 builds, if /lib32 and /usr/lib32 exist,
they will be used instead of /lib and /usr/lib.

For X64 builds, if /lib64 and /usr/lib64 exist,
they will be used instead of /lib and /usr/lib.

Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11879 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 15:23:20 +00:00
jljusten feceaad588 InOsEmuPkg/Unix/build.sh: Merge changes from build64.sh r11867
Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11878 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 15:23:02 +00:00
jljusten fe7e504faa InOsEmuPkg/Unix: Auto-run emulator in gdb
Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11877 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 15:22:49 +00:00
niruiyu b68b78e66c Change DUET DxeIpl to use SerialPort instead of manipulating serial port directly.
Signed-off-by: niruiyu
Reviewed-by: jyao1

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11876 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 08:31:18 +00:00
ydong10 f6bd06633d Refine code to follow coding style.
Signed-off-by: ydong10



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11875 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 01:33:03 +00:00
niruiyu 8b67c4c879 Remove non-ASCII characters.
Signed-off-by: niruiyu

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11874 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 01:30:52 +00:00
ydong10 72c8a89a65 Add check code to avoid access violation.
Signed-off-by: ydong10
Reviewed-by: jcarsey


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11873 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-23 01:26:06 +00:00
andrewfish 1ef41207dc InOsEmuPkg: Add TimerLib for PEI, DXE_CORE, and DXE/EFI drivers/applications.
Start using MdeModulePkg MetronomeDxe driver. Add PEI and DXE_CORE TimerLibs that just call back to the emulator. Add a DXE/UEFI TimerLib that also does a gBS->WaitForEvent() if the stall is for a long period of time. Change the Thunk API for Sleep to nanoseconds. 

Signed-off-by: andrewfish


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11872 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-21 23:41:31 +00:00
ydong10 090f3fdbf9 Move the check refresh attribute logical out of the option string check logical.
Signed-off-by: ydong10
Reviewed-by: lgao4



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11871 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-21 02:58:45 +00:00
ydong10 8f766f6eec Add sample code for vfr opcode "guidop"
Signed-off-by: ydong10
Reviewed-by: lgao4



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11870 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-21 02:43:14 +00:00
ydong10 18ad26da31 Initialize data before using it
Signed-off-by: ydong10
Reviewed-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11869 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-21 02:24:46 +00:00
andrewfish ea203f2215 InOsEmuPkg: Make sure to skip DXE IPL on emulator build, and don't double build every thing IA-32 Xcode.
Signed-off-by: andrewfish


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11868 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 23:05:43 +00:00
jljusten 53a6813fd0 InOsEmuPkg/Unix: Enable single-pass build with Linux
For Linux builds the thunk layer ('SEC') and main platform
firmware image will be built in a single build pass.

Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11867 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:58:22 +00:00
jljusten b8800fc547 InOsEmuPkg/Unix/Sec: Add BaseMemoryLib implementation to thunk layer
This implementation only covers a few BaseMemoryLib functions.
The implementation leverates malloc/free in stdlib.

Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11866 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:58:05 +00:00
jljusten 7af94c1d0a InOsEmuPkg/Unix/Sec: Fix EFIAPI usage inconsistencies
Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11865 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:57:43 +00:00
jljusten d7dd93876b InOsEmuPkg: Remove unreference local variables
GCC44 will flag a warning for these unused variables.

Signed-off-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11864 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:57:27 +00:00
oliviermartin 8513037f2c ArmPkg/CpuDxe: Register a callback for the gIdleLoopEventGuid event
This gIdleLoopEventGuid event signals the Cpu that it should go into
the idle state waiting for any events.
CpuSleep() is used in this implementation to make the Cpu wait for
the next interrupt (WFI instruction).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11863 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:35:50 +00:00
oliviermartin 149daa615f ArmPkg/CpuPei: Declare the CPU HOB
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11862 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:33:56 +00:00
oliviermartin fbcd5cea83 ArmPkg/CpuPei: Get the System Memory from the Resource Memory HOB
Declare the system memory provided by the first Resource Memory HOB
as cached memory to the MMU.
All the remaining memory space is declared as Device Memory.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11861 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:32:46 +00:00
oliviermartin d7b6c49b78 ArmPkg/CpuDxe: Change chain of dependency for CpuDxe and PL390Gic
Previously the CPU driver had a dependency on the GIC driver.
But by design is should be the opposite. The CPU driver installs the
CPU protocol that exposes the exception registration function.
And then, the interrupt controller registers its IRQ handler through
this interface.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11860 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:30:51 +00:00
erictian e7c2a83b3b Fix potential null pointer dereference
Signed-off-by: erictian
Reviewed-by: ydong10


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11859 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 09:35:53 +00:00
niruiyu eaaf8693dc Fix EFI Option ROM being loaded twice unconditionally.
Signed-off-by: niruiyu
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11858 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 05:09:40 +00:00
andrewfish 1453e7736e InOsEmuPkg: Fix debug prints from DXE/UEFI drivers.
Turning on serial prints for early drivers, turned off debug prints for DXE/UEFI drivers. Add them back in via report status code.

signed-off-by: andrewfish


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11857 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-19 18:59:00 +00:00
andrewfish ab34fe8b48 InOsEmuPkg: Remove unneeded Framework for XCODE linker flag overrides.
signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11856 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-19 18:57:56 +00:00
andrewfish b02333caa6 InOsEmuPkg: Fix issue with EFI_LBA not being implemented as a UINT64 in the IA-32 Gasket.
Also clean up some missing EFIAPI.

signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11855 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-19 18:56:13 +00:00
andrewfish f2f008b435 InOsEmuPkg: Fix UINT64 bugs in IA-32 gasket.
At this point IA-32 emulator boots the shell with an X11 GOP window. Block IO seems to have an issue that needs to be debugged. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11854 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-19 02:58:32 +00:00
andrewfish 102d35ba76 InOsEmuPkg: Fix issues with stack alignment in the gasket.
There are still issues with the IA-32 gasket code. Mostly having to do with yank put bugs not accounting for UINT64 returns and arguments. Currently the IA-32 build crashes in the timer callback since it is UINT64, function ptr but the gasket is UINTN UINTN. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11853 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-19 02:25:37 +00:00
andrewfish aac0fea79f InOsEmuPkg: Fix IA-32 SEC temp ram code.
Now we crash early in DXE Core.

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11852 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-18 23:36:36 +00:00
andrewfish e7523e0619 InOsEmuPkg: Make build dir different for IA-32. Fix PCD XIP issues.
Signed-off-by andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11851 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-18 22:23:46 +00:00
andrewfish 417a8020ab InOsEmuPkg: Add an Xcode project file for building and debugging IA-32 Unix emulator.
Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11850 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-18 18:40:45 +00:00
andrewfish 112a857f61 InOsEmuPkg: Unix emulator now compiles for IA-32.
Wrote IA-32 (align stack to 16-bytes) gaskets for emulator and got it to compile for IA-32. TempRam switch code is not ported to IA-32 in Sec. Code crashes in Sec. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11849 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-18 17:53:31 +00:00
rsun3 2a5c468026 Update the EFI_PCI_ADDRESS macro in PciRootBridgeIo.h to support PCI Express extended registers.
Signed-off-by:  rsun3
Reviewed-by:  mdkinney


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11848 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-18 04:52:20 +00:00
andrewfish 0bc26da2bf InOsEmuPkg: Fix Linux compile issues in BlockIo code.
singed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11847 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17 21:43:45 +00:00
andrewfish 57c7d70ff9 InOsEmuPkg: Implement gIdleLoopEventGuid.
Added a CpuSleep () API to the Emulator Thunk. We needed to do this as the Stall() works hard to not get broken by the timer tic (POSIX signal). nanosleep() gets interrupted by the timer signal so it is a good emulator of a CpuSleep(); I was also able to remove some stalls in the X11 keyboard and mouse checking events, now that the gIdleLoopEventGuid was added.

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11846 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17 18:21:16 +00:00
jljusten d8387fa4af IntelFrameworkModulePkg: Add IsaFloppyPei driver
Signed-off-by: jljusten
Reviewed-by: mdkinney

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11845 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17 17:42:49 +00:00
andrewfish a1e23d485b InOsEmuPkg: Fix typo in comment of previous submit.
Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11844 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17 16:21:02 +00:00
andrewfish 5dcda296a4 InOsEmuPkg: Add support for mounting CD-ROM images.
Devices get the block size via ioctl, but for a file the block size needs to be set. Default to 512, but optionally allow other values, like 2048/0x800 for ISO CD-ROM images. Also updated the comments in .DSC and .DEC files.

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11843 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17 16:18:14 +00:00
jljusten 323940278e UefiCpuPkg/CpuDxe: Put CPU to sleep during Idle events
When the MdeModulePkg gCoreEventIdleGuid event is signaled,
CpuSleep is called.  This will cause the CPU to sleep until
the next interrupt occurs.

Signed-off-by: jljusten
Reviewed-by: mdkinney
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11842 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 23:28:16 +00:00
jljusten 54cd17e984 MdeModulePkg DXE Core: Add Idle event during BootServices WaitForEvent
Signal an Idle event during BootServices WaitForEvent.

Signed-off-by: jljusten
Reviewed-by: mdkinney
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11841 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 23:28:02 +00:00
jljusten f6079c7003 IntelFrameworkModulePkg GenericBdsLib: Remove unwanted assert condition
If the call to SetVariable is to delete the variable,
but the variable was not found, then we return EFI_SUCCESS
rather than EFI_NOT_FOUND.

Signed-off-by: jljusten
Reviewed-by: jcarsey
Reviewed-by: geekboy15a
Reviewed-by: niruiyu

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11840 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 22:44:27 +00:00
andrewfish bfa084fad9 InOsEmuPkg: Clean up coding standards.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11839 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 18:28:12 +00:00
oliviermartin 92a2f8ea68 ArmPlatformPkg/Documentation: Update the instructions to build ARM Versatile Express CTA9x4
The default build instructions are for the Open Source Toolchain (ARMGCC) on Linux.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11838 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 15:38:27 +00:00
lzeng14 8a18c8c24e Update prototype name of Get()/Set() to EFI_AUTHENTICATION_INFO_PROTOCOL_GET/ EFI_AUTHENTICATION_INFO_PROTOCOL_SET,
remove star before ControllerHandle for Get()/Set() and add star before Buffer for Get().

Signed-off-by: lzeng14
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11834 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 10:09:38 +00:00
lzeng14 044a53c12a Correct ExtendedSize’s type to UINT32.
Signed-off-by: lzeng14
Reviewed-by: jyao1

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11833 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 07:07:12 +00:00
lgao4 2b2f353371 Remove the unused TimerLib from PeiCore.
Signed-off-by: lgao4
Reviewed-by: rsun3


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11832 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 06:44:21 +00:00