qhuang8 [Mon, 9 Nov 2009 05:13:14 +0000 (05:13 +0000)]
Change the GUID value of FVB to be that of FVB2 in PI 1.2 spec. this will force FVB drivers built through the ECP to produce the PI 1.2 FVB2 Protocol GUID
rsun3 [Thu, 5 Nov 2009 08:53:47 +0000 (08:53 +0000)]
Change the behavior of the HII Library function HiiGetHiiHandles() when the PackageListGuid parameter is not NULL. The original behavior is that if this parameter is not NULL at most 1 HII Handle is returned. Behavior after change is if this parameter is not NULL zero or more HII Handles associated with PackageListGuid are returned, because it is possible that there are multiple package lists with same package list GUID in the HII Database.
tye [Wed, 4 Nov 2009 08:18:34 +0000 (08:18 +0000)]
[Change summary]:
1. Update NetLib to a combined NetLib support dual network stack:
1) Add Network Debug facility for IPv4 stack.
2) Extend the library APIs to support IPv6 stack:
a. NetIp6IsUnspecifiedAddr
b. NetIp6IsLinkLocalAddr
c. NetIp6IsNetEqual
d. NetLibCreateIPv6DPathNode.
e. NetIp6PseudoHeadChecksum
f. NetIp6IsValidUnicast
3) Update the structure definitions:
a. Update NET_BUF to add EFI_IP6_HEADER and EFI_UDP_HEADER
b. Add NET_IP6_PSEUDO_HDR
4) Update Ip4IsUnicast to NetIp4IsUnicast
2. Update the impacted modules to adopt the combined NetLib.
3. Clean up coding style errors in all network drivers and libraries.
vanjeff [Wed, 4 Nov 2009 06:51:07 +0000 (06:51 +0000)]
1. rolled back Hob library to remove new API - BuildCapsuleHob() and related implementation in MdePkg.
2. implemented BuildCvHob() in PeiHobLib/HobLib.c.
xli24 [Mon, 2 Nov 2009 04:13:25 +0000 (04:13 +0000)]
The value of PcdStatusCodeValueSetVirtualAddressMap is changed from 0x03101004 to 0x03111004, which equals EFI_SOFTWARE_EFI_RUNTIME_SERVICE | EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP.
xli24 [Mon, 2 Nov 2009 03:22:51 +0000 (03:22 +0000)]
2 PCD values of status code are updated:
1. PcdStatusCodeValueBootServiceExit. Its value is changed from 0x3100019 to 0x3101019, which equals EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES.
2. PcdStatusCodeValuePeiHandoffToDxe. Its value is changed from 0x3031001 to 0x3021001, which equals EFI_SOFTWARE_PEI_CORE | EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT.
tye [Fri, 30 Oct 2009 05:11:38 +0000 (05:11 +0000)]
1. Update the UdpIo to a combined UdpIo to support both v4 and v6 stack.
2. Update Dhcp4 and Mtftp4 driver to adopt the combined UdpIo.
3. Clean up coding style problems in combined IpIoLib/NetLib. Update Tcp4 and Udp4 to adopt the changes.
mdkinney [Tue, 27 Oct 2009 22:58:55 +0000 (22:58 +0000)]
Update transition from EBC function to native IPF function to guarantee that at least 0x40 bytes of stack frame are reserved to prevent stack corruption.
tye [Mon, 26 Oct 2009 10:15:40 +0000 (10:15 +0000)]
NetLib:
1. Add new interface Ip6IsValidUnicast
2. Add new enum IP6_EXTENSION_HEADER_TYPE
3. Add new structure IP6_ICMP_* definitions
4. Update structure from EFI_UDP4_HEADER to EFI_UDP_HEADER
5. Add new macro EFI_IP6_EQUAL
IpIoLib:
1. Update the IpIoLib to a combined library for both v4 and v6 network stack
2. Fix a bug in IpIoIcmpHandler() - for IPv6 packet, the header length is variable (basic header + extension) rathar than fixed length.
The fix removes the IPv6 header fields and notify the user with the ICMPv6 packet only containing payload.
TcpDxe/UdpDxe:
1. Update to adapt the new combined IpIoLib
2. Add gEfiIp6ProtocolGuid/gEfiIp6ServiceBindingProtocolGuid to [Protocols] in INF file since the Ip6.h is included in IpIoLib and NetLib.
3. Pass the TCP4/UDP4 UEFI SCT test on NT32 platform.
xdu2 [Mon, 26 Oct 2009 07:44:10 +0000 (07:44 +0000)]
Update SetupBrowser to support call to SendForm() by specify a formset class GUID with input parameter FormsetGuid.
With this update, SendForm() could support formset class GUID other than EFI_HII_PLATFORM_SETUP_FORMSET_GUID, for example, the EFI_HII_DRIVER_HEALTH_FORMSET_GUID.
jchen20 [Mon, 26 Oct 2009 06:54:55 +0000 (06:54 +0000)]
For now PEI Core LoadImage() service to always call LoadAndRelocatePeCoffImage() even for XIP PEIMs.However the AllocatePage invoked in S3 path will make system assert. The patch is to fix it.
xdu2 [Mon, 26 Oct 2009 06:47:50 +0000 (06:47 +0000)]
Fix a UI hang bug when adding Boot Option or Driver Option.
Reproduce steps:
1. plug a NIC card to system
2. boot and select "Boot Maintenance Manager"->"Driver Options"->"Add Driver Option", a "MAC" device path will show up
3. select "MAC" device path and press Enter, and then press ESC
4. select "MAC" device path again, then the UI will hang.
xdu2 [Mon, 26 Oct 2009 03:05:16 +0000 (03:05 +0000)]
1. Code clean up: add IN/OUT modifier for parameters.
2. UI enchancement: if there is no editable item in a Form, the F9/F10 will not be displayed in the footer.
xdu2 [Mon, 26 Oct 2009 03:04:08 +0000 (03:04 +0000)]
Update FormBrowser to conform to UEFI spec Table 197. Callback Behavior for Cross-Reference:
"CHANGING: If EFI_UNSUPPORTED or EFI_SUCCESS, cross-reference is taken. Any other error the cross-reference will not be taken."
xdu2 [Mon, 26 Oct 2009 03:03:47 +0000 (03:03 +0000)]
Add support for newly defined VarStore type EFI_IFR_TYPE_UNDEFINED, EFI_IFR_TYPE_ACTION and EFI_IFR_TYPE_BUFFER in UEFI spec.
Note: with this update, the limitation for "OrderedList should use array of data type UINT8 as its storage" is removed; now OrderedList could use any data type (UINT8/UINT16/UINT32/UINT64) as its storage array.
xdu2 [Mon, 26 Oct 2009 03:03:12 +0000 (03:03 +0000)]
Change the FormBrowser behavior of "Pressing ESC":
The old behavior is: if press ESC, it will exit the whole Formset.
The new behavior is: if press ESC, it will return to the parent Form; if current Form is the root Form of a FormSet, it will exit the whole FormSet.
tye [Thu, 22 Oct 2009 06:29:51 +0000 (06:29 +0000)]
1. Fix timer unit bug in MNP: default rx/tx timeout value should be 10,000,000 (10s) according to UEFI spec.
2. Enable the mapping from IPv6 multicast address to MAC address in MnpMcastIpToMac().
3. Remove 2 tabs.
tye [Wed, 21 Oct 2009 09:37:10 +0000 (09:37 +0000)]
1. Fix a bug in Dhcp4 to prevent unexpected broadcast DHCP packets be queued up in the system: these packets will never be freed and will cumulate as time goes on, and then it will cause the system becomes very slow. This issue is reported by HP.
2. Sync HSD #210249 patch: Fix bug in handling certain network errors in EfiDhcp4TransmitReceive() for DHCP4 driver
3. Enhance DhcpCleanLease to clear Netmask as well, so that Dhcp4->GetModeData() could return clean data in Dhcp4Stopped state.
davidhuang [Tue, 20 Oct 2009 03:44:43 +0000 (03:44 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
davidhuang [Tue, 20 Oct 2009 03:44:25 +0000 (03:44 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
davidhuang [Tue, 20 Oct 2009 03:44:03 +0000 (03:44 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
davidhuang [Tue, 20 Oct 2009 03:43:42 +0000 (03:43 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
davidhuang [Tue, 20 Oct 2009 03:43:40 +0000 (03:43 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
davidhuang [Tue, 20 Oct 2009 03:43:09 +0000 (03:43 +0000)]
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg
b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg
c. Update the related consumes in inf/dsc/fdf
jljusten [Wed, 7 Oct 2009 16:01:09 +0000 (16:01 +0000)]
OVMF: Align PE images in ROM, and strip relocations were possible.
Align the PE32/32+ images in the ROM for XIP (execute in place) images
to function properly following the change in r9327. Also, convert
pre-memory PEIM's to use the TE image format and strip-relocation
data from image. This saves a little space, and provides a sample
usage of TE images.
jljusten [Wed, 7 Oct 2009 16:01:06 +0000 (16:01 +0000)]
OVMF SEC: Modify to search sections of FFS file for PE32 image.
Previously the code would expect that the PE32 image was in the
first section of the FFS file. This might not be the case if the
PE32 section is forced to be aligned.
jljusten [Mon, 5 Oct 2009 17:59:53 +0000 (17:59 +0000)]
MdeModulePkg-UsbBusDxe: Add work around for slower USB hubs/devices
Increase the value of USB_GENERAL_DEVICE_REQUEST_TIMEOUT from
50 milliseconds to 100 milliseconds. This provides a work around
for slower USB hubs and devices.
mdkinney [Thu, 1 Oct 2009 23:49:36 +0000 (23:49 +0000)]
Update PEI Core LoadImage() service to always call LoadAndRelocatePeCoffImage() even for XIP PEIMs. This will guarantee that the PE/COFF Extra Action Lib will be called for all PE/COFF images, even XIP PEIMs.
mdkinney [Thu, 1 Oct 2009 23:44:00 +0000 (23:44 +0000)]
1) Update PE/COFF file alignment to 4KB to match 4KB section alignment.
2) Align uncompressed PEIMs and PEI Core on a 4K boundary to match the section alignment and file alignment of the PE/COFF images
Change RETURN_STATUS type to UINTN, thus EFI_STATUS is defined as UINTN to align with recent UEFI 2.3 spec update.
Impaction:
There should be no impact unless code has been written that tests a constant or variable of type EFI_STATUS to be less than 0, or tested it against a negative value. This most likely have not been done.
For the data region which will be touched by Pci Bus Master, we should allocate memory by PciIo.AllocateBuffer() but not AllocatePool() base library API. So the memory region can be used to map into Pci controller-specific address thru PciIo.Map().
OVMF: Add support for saving the NV variables to disk following each SetVariable call.
Note:
* This only works before ExitBootServices
* For OVMF, variables are only preserved on the disk if there
is a hard disk connected which has a writeable FAT file system.
The Ovmf/Library/EmuVariableFvbLib library will look for the
gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent PCD to be set to
a non-zero value. If set, it is treated as an event handle, and
each write to the EmuVariableFvb will cause the event to be
signaled.
In this change, the OVMF platform BDS library sets up this event,
and sets the PCD so that after each write to the EMU Variable FVB,
the non-volatile variables will be saved out to the file system.
The end result is that NV variables that are written prior to the
ExitBootServices call should be preserved by storing them on the
disk.
OVMF: Convert from EmuVariableRuntimeDxe to VariableRuntimeDxe.
OVMF utilizes EmuVariableFvbRuntimeDxe to provide an emulated
variable firmware volume block device for non-volatile variables.
This allows the VariableRuntimeDxe and FaultTolerantWriteDxe
to function without a real non-volatile backing store.
This driver implements a firmware volume block protocol instance
which is stored in system memory.
The MdeModulePkg/Universal/Variable/RuntimeDxe and
MdeModulePkg/Universal/FaultTolerantWriteDxe drivers make use of
this FVB instance to provide variable services.
This driver links to a PlatformFvb library to allow for
platform specific processing to take place when data is written
to the FVB.
Allow the FaultTolerantWriteDxe addresses to be dynamic PCD's.
PcdFlashNvStorageFtwWorkingBase and PcdFlashNvStorageFtwSpareBase are
now updated each time an FVB instance is installed. This allows the
PCDs to be set at runtime at any time before the FVB is installed.