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:
hhuan13 2010-08-18 00:47:26 +00:00
parent 5b9fc2f089
commit cfbc1a7537
4 changed files with 23 additions and 1 deletions

View File

@ -352,6 +352,11 @@
## Smbios version ## Smbios version
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0206|UINT16|0x00010055 gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0206|UINT16|0x00010055
## TFTP BlockSize. Initial value 0 means using default block size which is (MTU-IP_HEADER-UDP_HEADER-TFTP_HEADER)
# to handle all link layers. If the value is non zero, the PCD value will be used as block size.
#
gEfiMdeModulePkgTokenSpaceGuid.PcdTftpBlockSize|0x0|UINT64|0x30001026
[PcdsFixedAtBuild,PcdsPatchableInModule] [PcdsFixedAtBuild,PcdsPatchableInModule]
## Maximun number of performance log entries during PEI phase. ## Maximun number of performance log entries during PEI phase.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f

View File

@ -347,7 +347,19 @@ EfiPxeBcStart (
return Status; 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; Private->AddressIsOk = FALSE;
ZeroMem (Mode, sizeof (EFI_PXE_BASE_CODE_MODE)); ZeroMem (Mode, sizeof (EFI_PXE_BASE_CODE_MODE));

View File

@ -40,6 +40,7 @@ typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
#include <Library/BaseLib.h> #include <Library/BaseLib.h>
#include <Library/NetLib.h> #include <Library/NetLib.h>
#include <Library/DpcLib.h> #include <Library/DpcLib.h>
#include <Library/PcdLib.h>
#include "PxeBcDriver.h" #include "PxeBcDriver.h"
#include "PxeBcDhcp.h" #include "PxeBcDhcp.h"

View File

@ -64,6 +64,7 @@
DebugLib DebugLib
NetLib NetLib
DpcLib DpcLib
PcdLib
[Guids] [Guids]
gEfiSmbiosTableGuid # ALWAYS_CONSUMED gEfiSmbiosTableGuid # ALWAYS_CONSUMED
@ -83,3 +84,6 @@
gEfiNetworkInterfaceIdentifierProtocolGuid_31 ## SOMETIMES_CONSUMES gEfiNetworkInterfaceIdentifierProtocolGuid_31 ## SOMETIMES_CONSUMES
gEfiIp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEfiIp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
[Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdTftpBlockSize ## CONSUMES