1. Introduce PcdTftpBlockSize to let platform DSC customize block size.
2. Roll back the default block size to handle all link layers. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10803 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -347,7 +347,19 @@ EfiPxeBcStart (
|
||||
return Status;
|
||||
}
|
||||
|
||||
Private->BlockSize = 0x8000;
|
||||
|
||||
//
|
||||
// Configure block size for TFTP as a default value to handle all link layers.
|
||||
//
|
||||
Private->BlockSize = (UINTN) (MIN (Private->Ip4MaxPacketSize, PXEBC_DEFAULT_PACKET_SIZE) -
|
||||
PXEBC_DEFAULT_UDP_OVERHEAD_SIZE - PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE);
|
||||
//
|
||||
// If PcdTftpBlockSize is set to non-zero, override the default value.
|
||||
//
|
||||
if (PcdGet64 (PcdTftpBlockSize) != 0) {
|
||||
Private->BlockSize = (UINTN) PcdGet64 (PcdTftpBlockSize);
|
||||
}
|
||||
|
||||
Private->AddressIsOk = FALSE;
|
||||
|
||||
ZeroMem (Mode, sizeof (EFI_PXE_BASE_CODE_MODE));
|
||||
|
@@ -40,6 +40,7 @@ typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/NetLib.h>
|
||||
#include <Library/DpcLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
|
||||
#include "PxeBcDriver.h"
|
||||
#include "PxeBcDhcp.h"
|
||||
|
@@ -64,6 +64,7 @@
|
||||
DebugLib
|
||||
NetLib
|
||||
DpcLib
|
||||
PcdLib
|
||||
|
||||
[Guids]
|
||||
gEfiSmbiosTableGuid # ALWAYS_CONSUMED
|
||||
@@ -83,3 +84,6 @@
|
||||
gEfiNetworkInterfaceIdentifierProtocolGuid_31 ## SOMETIMES_CONSUMES
|
||||
gEfiIp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
|
||||
[Pcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTftpBlockSize ## CONSUMES
|
||||
|
Reference in New Issue
Block a user