oliviermartin [Mon, 20 Jun 2011 21:32:46 +0000 (21:32 +0000)]
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.
oliviermartin [Mon, 20 Jun 2011 21:30:51 +0000 (21:30 +0000)]
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.
andrewfish [Sun, 19 Jun 2011 02:25:37 +0000 (02:25 +0000)]
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.
andrewfish [Sat, 18 Jun 2011 17:53:31 +0000 (17:53 +0000)]
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.
andrewfish [Fri, 17 Jun 2011 18:21:16 +0000 (18:21 +0000)]
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.
andrewfish [Fri, 17 Jun 2011 16:18:14 +0000 (16:18 +0000)]
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.
lzeng14 [Thu, 16 Jun 2011 10:09:38 +0000 (10:09 +0000)]
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().
andrewfish [Wed, 15 Jun 2011 18:51:30 +0000 (18:51 +0000)]
InOsEmuPkg: Update code to support BerkeleyPacketFilter, and add a template for LinuxPacketFilter.
BerkelyPacketFilter seems to work. Some one else will need to use the BerkeleyPacketFilter as a template and implement the LinuxPacketFilter. I don't think it will be that hard, as they are simular.
qianouyang [Tue, 14 Jun 2011 09:45:59 +0000 (09:45 +0000)]
1. In IPv4 and IPv6 driver, before calling IPsec, a new NET_FRAGMENT structure is allocated and then passed to IPsec, it should be released after it is done to avoid the memory leak.
2. In IPsec driver it wrongly use the HeadLen to calculate the IP header length after the IPsec process. Correct this mistake.
oliviermartin [Sat, 11 Jun 2011 12:06:59 +0000 (12:06 +0000)]
ArmPlatformPkg: Unify the Secure and Normal FD and FV PCD naming
With this change, we now have these following PCDs values to define the
location of the Secure and Normal firmwares:
- gArmTokenSpaceGuid.PcdSecureFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdSecureFv(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFv(BaseAddress|Size)
oliviermartin [Sat, 11 Jun 2011 12:03:00 +0000 (12:03 +0000)]
ArmPlatformPkg/PrePeiCore: Reserve some memory on the top of the stack for Global Variables in XIP code
The size of this memory is controlled by a PCD. The Global Variable in this regsion are defined by their offset.
This memory region can be use to store the PEI Services Table Pointer.
Update the PeiServicesTablePointerLib to use this region instead of PcdPeiServicePtrAddr.
oliviermartin [Sat, 11 Jun 2011 11:58:23 +0000 (11:58 +0000)]
ArmPlatformPkg/Bds: Upgrade the BDS to be more conformed to the UEFI Specification
The UEFI Specification defines some requirement related to the Boot Manager.
This new version of the BDS support most of the features:
- TimeOut, BootNext, BootOrder, Boot### environment variable for boot device selection
- ConOut. ConIn, ConErr environment variables for console intialization
- Boot EFI application defined by a Device Path
- Support removable devices
- Support FileSystem, MemMap, PXE and TFTP boot devices
oliviermartin [Sat, 11 Jun 2011 11:56:30 +0000 (11:56 +0000)]
ArmPkg/BdsLib: Upgrade the library to use natively the Device Path
The previous version was using the string representation of the Device Path.
This new version takes as paramater the binary representation of the Device Path
It also tries to detect which kind of device support it refers by using the remaining
part of the Device Path after it has been loaded by gBS->ConnectController()
Lots of bug have been fixed as well in this new version.
oliviermartin [Sat, 11 Jun 2011 11:28:59 +0000 (11:28 +0000)]
EmbeddedPkg/Ebl: Move the flag string %a for the path from the PCD to the function call
The UEFI platform designer had to add '%a' to their EBL prompt PCD to print out the path
in the shell.
This change makes the addition of the path automatically after the platform specific value
in the EBL shell.
oliviermartin [Sat, 11 Jun 2011 11:12:38 +0000 (11:12 +0000)]
ArmPlatformPkg: Add support for PL111 Lcd driver
This driver implements the interface for the PL111 Lcd controller.
The LcdPlatformLib allows to set the platform specific requirements
needed by the platform for setting the LCD (oscillators, etc).
This library exports the supported resolutions. It also allocates the
memory for the framebuffer and send the correct settings to the VExpress
motherboard microcontroller.
oliviermartin [Sat, 11 Jun 2011 11:08:34 +0000 (11:08 +0000)]
ArmPlatformPkg: Introduce ArmPlatformSysConfigLib
The purpose of this library is to create an interface to communicate
with the platform micro-controller.
It abstracts the communication protocol (eg: SPI, UART, etc) between
the application processor and the micro-controller.
andrewfish [Thu, 9 Jun 2011 19:31:56 +0000 (19:31 +0000)]
InOsEmuPkg: Add the EFI parts of the Simple Network Protocol
This only adds the EFI parts and not the OS specific implementation. Since the EFI parts no longer use system include files this is safe to do. Also fix two minor typos.
niruiyu [Thu, 9 Jun 2011 02:55:17 +0000 (02:55 +0000)]
Change BuildGuidHob and BuildGuidDataHob to return NULL upon failure.
Guarantee no memory corruption in an out of memory condition even in production builds.
niruiyu [Thu, 9 Jun 2011 02:53:56 +0000 (02:53 +0000)]
Change BuildGuidHob and BuildGuidDataHob to return NULL upon failure.
Guarantee no memory corruption in an out of memory condition even in production builds.
niruiyu [Thu, 9 Jun 2011 02:51:00 +0000 (02:51 +0000)]
Change BuildGuidHob and BuildGuidDataHob to return NULL upon failure.
Guarantee no memory corruption in an out of memory condition even in production builds.
andrewfish [Wed, 8 Jun 2011 21:52:21 +0000 (21:52 +0000)]
InOsEmuPkg: Make XIP work properly
Update the InOsEmuPkg to properly function with XIP. Make the Recovery FV read only. Remove the use of global variable writes from XIP code. Add a new global page that can be used in place of writting to the FD by XIP code. Think of this global page as a system SRAM.
andrewfish [Wed, 8 Jun 2011 04:32:18 +0000 (04:32 +0000)]
Update the FD mapping so the volatile areas write back to the FD file. Currently they are only mapped as a memory copy of the file. This also make FV read only.
The current scheme maps a file into a memory buffer. You can write to the memory buffer, but if you restart the emulator the data is not written back to the FD. Since the build, rebuilds the FD it will blow away any changes. You can now set variables and restart the emulator and they are still set. There is a bug if the FV is set to write protect that still needs to be tracked down.
andrewfish [Wed, 8 Jun 2011 02:34:12 +0000 (02:34 +0000)]
Add support for SerialPortLib that maps into POSIX StdIn and StdOut. Add a device path text to lib as a holding point waiting on getting it reviewed for other packages. Some minor fixes. Also map the FV as writable, so the Variable store becomes writable.
I plan to try and make only the Variable store and logs writable, and make the executable/compressed FV read only in a future checkin.