5.2 Results

Test SetupSAM E54 Xplained Pro evaluation kitSTM32F413ZH Nucleo-144
DMA EnabledDMA DisabledDMA EnabledDMA Disabled

LAN8651 (Client)

EVB-LAN8670-USB

(Server)
4.41 Mbps4.77 Mbps2.44 Mbps3.56 Mbps

LAN8651 (Server)

EVB-LAN8670-USB

(Client)
4.96 Mbps5.01 Mbps2.51 Mbps3.88 Mbps
Notes:
  1. While DMA is disabled, the achieved bandwidth is higher than when DMA is enabled. This driver supports half-duplex SPI operation, and one SPI transfer takes a maximum of 68 bytes of data only. So, when DMA is enabled, the DMA will add overhead after each 68 bytes are transmitted or received.
  2. To achieve full bandwidth performance, you can refer to the below pull request: github.com/zephyrproject-rtos/zephyr/pull/89639.
  3. The pull request implements full-duplex SPI operation. Using this driver you can achieve a maximum bandwidth of 9.43 Mbps when DMA is enabled. One SPI transfer takes a maximum of 2108 bytes of data. Also, you can configure the number of bytes to be transmitted or received in one SPI transfer by using the “menuconfig” option. Hence, it is required to enable DMA while using the updated driver to achieve maximum performance.
  4. If the pull request has been merged with Zephyr main branch, just follow the steps described in Chapter 2 and Chapter 3. Otherwise, copy the files or modify the file contents in the pull request into your respective directories and proceed with the steps.