efi_loader: Allow bouncing for network

So far bounce buffers were only used for disk I/O, but network I/O
may suffer from the same problem.

On platforms that have problems doing DMA on high addresses, let's
also bounce outgoing network packets. Incoming ones always already
get bounced.

This patch fixes EFI PXE boot on ZynqMP for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
master
Alexander Graf 8 years ago
parent b6575f34e2
commit 712cd29874
  1. 7
      lib/efi_loader/efi_net.c

@ -152,7 +152,14 @@ static efi_status_t EFIAPI efi_net_transmit(struct efi_simple_network *this,
return EFI_EXIT(EFI_INVALID_PARAMETER);
}
#ifdef CONFIG_EFI_LOADER_BOUNCE_BUFFER
/* Ethernet packets always fit, just bounce */
memcpy(efi_bounce_buffer, buffer, buffer_size);
net_send_packet(efi_bounce_buffer, buffer_size);
#else
net_send_packet(buffer, buffer_size);
#endif
new_tx_packet = buffer;
return EFI_EXIT(EFI_SUCCESS);

Loading…
Cancel
Save