niruiyu [Wed, 24 Nov 2010 03:23:30 +0000 (03:23 +0000)]
Fix AutoUpdateLangVariable() logic to handle the case PlatformLang/Lang is set before PlatformLangCodes/LangCodes.
Pre-allocate pool for runtime phase.
niruiyu [Wed, 24 Nov 2010 03:04:20 +0000 (03:04 +0000)]
Fix AutoUpdateLangVariable() logic to handle the case PlatformLang/Lang is set before PlatformLangCodes/LangCodes.
Pre-allocate pool for runtime phase.
vanjeff [Tue, 23 Nov 2010 07:51:00 +0000 (07:51 +0000)]
1. Rollback the changing on replacing MAX_EXTENDED_DATA_SIZE by EFI_STATUS_CODE_DATA_MAX_SIZE,
use MAX_EXTENDED_DATA_SIZE as before.
2. Use DEBUG error message instead of ASSERT(FASLE) when extended data is too large
3. Expand 1 for buffer array size to avoid potential issue.
vanjeff [Tue, 23 Nov 2010 07:50:31 +0000 (07:50 +0000)]
1. Rollback the changing on replacing MAX_EXTENDED_DATA_SIZE by EFI_STATUS_CODE_DATA_MAX_SIZE,
use MAX_EXTENDED_DATA_SIZE as before.
2. Use DEBUG error message instead of ASSERT(FASLE) when extended data is too large
3. Expand 1 for buffer array size to avoid potential issue.
rsun3 [Mon, 22 Nov 2010 07:16:02 +0000 (07:16 +0000)]
The PCI HotPlug Init Protocol returns a list of Root HPC, but it is possible that some HPCs in the list are not found during PCI enumeration. In this case, the PCI HotPlug Init Protocol.InitializeRootHpc() will not be called for the un-found HPCs. However, in AllRootHPCInitialized(), all reported HPCs are checked to see if it has been initialized, so TIME_OUT happens.
This check-in fix the issue by adding a flag to indicate if a HPC is found during PCI enumeration or not. This check-in also adds a debug message if any found HPC failed with initialization.
niruiyu [Mon, 22 Nov 2010 05:25:03 +0000 (05:25 +0000)]
Use PcdResetOnMemoryTypeInformationChange in MdeModulePkg to control whether to reset system when memory type information changes.
Check memory type information after signaling the ReadyToBoot event.
niruiyu [Thu, 18 Nov 2010 01:40:22 +0000 (01:40 +0000)]
Fix AutoUpdateLangVariable() logic to handle the case PlatformLang/Lang is set before PlatformLangCodes/LangCodes.
Pre-allocate pool for runtime phase.
li-elvin [Fri, 12 Nov 2010 07:48:32 +0000 (07:48 +0000)]
Fix the issue that the high 16-bit of EAX may contain invalid data, which cause bad stack pointer, the change will ensure the high 16-bit of EAX is cleared.
li-elvin [Fri, 12 Nov 2010 07:47:27 +0000 (07:47 +0000)]
Fix the issue that the high 16-bit of EAX may contain invalid data, which cause bad stack pointer, the change will ensure the high 16-bit of EAX is cleared.
li-elvin [Fri, 12 Nov 2010 07:45:08 +0000 (07:45 +0000)]
Fix the issue that the high 16-bit of EAX may contain invalid data, which cause bad stack pointer, the change will ensure the high 16-bit of EAX is cleared.
vanjeff [Wed, 10 Nov 2010 06:12:25 +0000 (06:12 +0000)]
Prevent infinite recursion when ASSERT(), DEBUG(), or any other use of ReportStatusCode is performed at > TPL_NOTIFY or there is not enough memory to allocate a buffer for the ExtendedData associated with the status code being reported.
lgao4 [Tue, 9 Nov 2010 07:54:53 +0000 (07:54 +0000)]
Add new PCD gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress for the MdeModulePkg that allows the platform DSC file to specify the address below which the EFI_SYSTEM_TABLE_POINTER structure is allocated.
rsun3 [Tue, 9 Nov 2010 03:41:03 +0000 (03:41 +0000)]
Some existing PCI adapters with UEFI option ROMs make unaligned requests through the PCI I/O Protocol. Add support for unaligned requests in the PCI IO protocol implementation in the PCI Bus driver to be compatible with those UEFI option ROMs.
This solution defines a PCD Feature Flag to enabled support for unaligned requests through the PCI I/O Protocol. This flag is disabled by default. Platforms that do want to support such EFI/UEFI drivers that make unaligned PCI I/O requests should enable this feature.
rsun3 [Mon, 8 Nov 2010 07:36:12 +0000 (07:36 +0000)]
Per the UEFI spec, if a PCI controller is a P2P bridge, then the I/O, Memory and Bus Master bits in the Command register of the PCI configuration header should be placed in the enabled state by the PCI Bus driver.
But current PCI bus driver has a bug that if a P2P bridge has no child devices detected during enumeration, the bits won’t be set. This may impact PCI hot plug capable bridges because the OS may re-assign resources for them causing the reserved resource by the firmware will be overwritten.
mdkinney [Fri, 5 Nov 2010 22:27:19 +0000 (22:27 +0000)]
Add Doxygen style comments to the EFI_SIZE_TO_PAGES() and EFI_PAGES_TO_SIZE() macros. Clarify that the Size and Pages parameters to these macros are assumed to be type UINTN.
mdkinney [Fri, 5 Nov 2010 20:22:18 +0000 (20:22 +0000)]
Fix bug in DataHub where it would skip the first record in a set when a filter is being used. Also add comments and update source code logic to make it easier to understand and maintain.
mdkinney [Thu, 4 Nov 2010 20:58:23 +0000 (20:58 +0000)]
Prevent infinite recursion when ASSERT(), DEBUG(), or any other use of ReportStatusCode is performed at > TPL_NOTIFY or there is not enough memory to allocate a buffer for the ExtendedData associated with the status code being reported
rsun3 [Wed, 3 Nov 2010 01:14:51 +0000 (01:14 +0000)]
Remove PI SMM IPL's dependency on CPU AP so that PI SMM IPL can be dispatched before the CPU AP is installed.
If PI SMM IPL will be dispatched before the CPU AP is installed for a platform, the platform developer is expected to set cache-ability of SMRAM to WB earlier to improve performance of SMM initialization.
xdu2 [Mon, 1 Nov 2010 08:19:28 +0000 (08:19 +0000)]
1. Update IPsec driver to produce EFI_IPSEC2_PROTOCOL which is defined by UEFI errata that will appear in UEFI 2.3 specification after 2.3 errata B and future UEFI Specifications after 2.3.
2. Update IPv6 driver to consume the EFI_IPSEC2_PROTOCOL.
rsun3 [Thu, 28 Oct 2010 02:01:43 +0000 (02:01 +0000)]
Fix build break when doing 32-bit build with some certain C compiler option combinations.
Use the library functions for shift operations in BaseLib for a 64-bit integer where the code is shared for 32-bit and 64-bit.
Defining bitfields in structures with > 32 bits will cause these types of issues on IA32 builds. So the largest bitfield should be type UINT32 with a max size of :32.
lgao4 [Mon, 25 Oct 2010 05:32:17 +0000 (05:32 +0000)]
Fix the following three issues:
1. When question is grayout, its value is not gray.
2. When type Ui UP action, Repaint is not trigged when next MenuOption is above the TopOfScreen.
3. When type Ui Down action, TopOfScreen is not calculated correctly when screen roll is required.
jljusten [Fri, 22 Oct 2010 01:08:16 +0000 (01:08 +0000)]
DuetPkg: Use UefiCpuPkg/CpuDxe instead of DuetPkg/CpuDxe
UefiCpuPkg/CpuDxe provides all the critical features
needed for DUET. Therefore, to reduce code duplication,
DUET can use the generic UEFI CPU DXE driver.
The one notable lost feature is that DUET's CPU DXE would
call legacy video INT 10 to make sure the exception information
could be displayed on the screen.
jljusten [Fri, 22 Oct 2010 01:07:58 +0000 (01:07 +0000)]
DuetPkg: Add DXE APRIORI for 8259 driver
DUET's CpuDxe driver is directly dependent on the 8259. This
forces the 8259 driver to run before the CPU DXE driver. This
is required so the 8259 driver will initialize and mask all
8259 interrupts before the CPU DXE driver allows interrupts
to be enabled.
The UefiCpuPkg CPU DXE driver is not dependent on the 8259
directly. Therefore, in order to use the UefiCpuPkg CPU DXE
driver with DUET, we add the APRIORI file to force the 8259
driver to run early before the CPU DXE driver runs.
jljusten [Fri, 22 Oct 2010 01:07:48 +0000 (01:07 +0000)]
UefiCpuPkg CpuDxe: Fix bug with CPU Arch RegisterInterruptHandler
The change in r10765 introduced an issue where inherited interrupt
handlers would override the driver's RegisterInterruptHandler
functionality.
DUET installs a IDT with 256 entries early in it's boot. Therefore,
no interrupt handlers could be installed with DUET while using
UefiCpuPkg/CpuDxe (instead of DuetPkg/CpuDxe).
This change forces the IDT to be modified when RegisterInterruptHandler
is called to ensure the UEFI handler will be installed properly.
erictian [Tue, 19 Oct 2010 02:55:16 +0000 (02:55 +0000)]
return EFI_DEVICE_ERROR if the Status value is not EFI_SUCCESS.
it's because BlockIo.Reset() only has two possible values: EFI_SUCCESS and EFI_DEVICE_ERROR according to UEFI2.3 spec
lgao4 [Mon, 18 Oct 2010 09:59:55 +0000 (09:59 +0000)]
Update UefiDriverEntryPoint library by adding BaseLib library class required by AutoGen code.
Update UefiApplicationEntryPoint library by adding BaseLib and DebugLib library class required by AutoGen code.