ArmPkg/BdsLib: Increase fallback tftp buffer size

When performing a tftp download from a server which does not support
rfc2349 transfer size option (such as netkit-tftpd), the existing code
falls back to allocating an 8MB buffer. Since this is insufficient for
an uncompressed AArch64 Linux kernel image, double the size to 16MB.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ashutosh Singh <ashutosh.singh@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18748 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ashutosh Singh 2015-11-09 13:13:37 +00:00 committed by leiflindholm
parent 67b3c0f958
commit f3e88737f7
1 changed files with 2 additions and 2 deletions

View File

@ -1198,7 +1198,7 @@ BdsTftpLoadImage (
if (Mtftp4GetFileSize (Mtftp4, AsciiFilePath, &FileSize) == EFI_SUCCESS) { if (Mtftp4GetFileSize (Mtftp4, AsciiFilePath, &FileSize) == EFI_SUCCESS) {
TftpBufferSize = FileSize; TftpBufferSize = FileSize;
} else { } else {
TftpBufferSize = SIZE_8MB; TftpBufferSize = SIZE_16MB;
} }
TftpContext = AllocatePool (sizeof (BDS_TFTP_CONTEXT)); TftpContext = AllocatePool (sizeof (BDS_TFTP_CONTEXT));
@ -1209,7 +1209,7 @@ BdsTftpLoadImage (
TftpContext->FileSize = FileSize; TftpContext->FileSize = FileSize;
for (; TftpBufferSize <= FixedPcdGet32 (PcdMaxTftpFileSize); for (; TftpBufferSize <= FixedPcdGet32 (PcdMaxTftpFileSize);
TftpBufferSize = (TftpBufferSize + SIZE_8MB) & (~(SIZE_8MB-1))) { TftpBufferSize = (TftpBufferSize + SIZE_16MB) & (~(SIZE_16MB-1))) {
// //
// Allocate a buffer to hold the whole file. // Allocate a buffer to hold the whole file.
// //