summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
diff options
context:
space:
mode:
authorhhuan13 <hhuan13@6f19259b-4bc3-4df7-8a09-765794883524>2010-08-18 00:47:26 +0000
committerhhuan13 <hhuan13@6f19259b-4bc3-4df7-8a09-765794883524>2010-08-18 00:47:26 +0000
commitcfbc1a7537d55ff0066b5635855f5739d02d15dc (patch)
treee2b9703347941575a1abfcceca3ed489177d7d14 /MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
parent5b9fc2f0890019cbb204f187abd1c41db51f4b93 (diff)
downloadedk2-platforms-cfbc1a7537d55ff0066b5635855f5739d02d15dc.tar.xz
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
Diffstat (limited to 'MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c')
-rw-r--r--MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
index 6721d9a083..989da79b85 100644
--- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
+++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
@@ -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));