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.

Signed-off-by: Alexander Graf <ag...@suse.de>
---
 lib/efi_loader/efi_net.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c
index dd3b485..6a8a0d7 100644
--- a/lib/efi_loader/efi_net.c
+++ b/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);
-- 
1.8.5.6

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to