Why is my "plb_gemac_v1_01_a" operating in SG DMA transmitting invalid data?
One of the reasons is the Alignment requirement, as described below:
- The Tx Frame Buffer will be Hardware Aligned by Data Realignment Engine (DRE).
- The Tx Buffer Descriptor is 8-byte aligned, and this is done in Hardware by DRE for SGDMA. However, this function is broken in simple DMA. This will be fixed in the later release of the core.
- The Rx Frame Buffer should be 8-byte aligned, and the Alignment has to be done by software,
- The Rx Buffer Descriptor is 8-byte aligned, and the Alignment has to be done by Software Application.
Failure to follow alignment restrictions will result in asserts from the driver or bad/corrupted data being transferred.