Tool/software:
I've been reading through the EthFw documentation and source code to understand how it works, and I noticed that there is a configuration flag ETHFW_CPSW_MULTIHOST_CHECKSUM_ERRATA
which is enabled when VEPA is enabled (via the ETHFW_CPSW_VEPA_SUPPORT
config flag). In the EthFw code, ETHFW_CPSW_MULTIHOST_CHECKSUM_ERRATA
seems to disable both RX and TX checksum calculation. I'm aware that in the first place the checksum offload only applies to TCP and UDP packets, but that seems to be getting disabled when the multihost bit is set.
The multihost functionality itself also seems to be barely documented outside of a brief mention in the EthFw user guide in the VEPA section. It isn't mentioned at all in the J784S4 TRM, but can be found in the J784S4 buildsheet workbook that can be found with the FreeRTOS SDK. It would be great if there could be a mention of this functionality in the TRM.
I see no errata related to the multihost functionality or the checksum offload functionality anywhere. I've looked at the J784S4 errata and the EthFw errata (either in the release notes specific to EthFw or in the release notes for the SDK as a whole). Can I get an explanation of the errata that ETHFW_CPSW_MULTIHOST_CHECKSUM_ERRATA
refers to? Is this errata a software issue that could be fixed in the future, or is it a hardware issue that cannot be resolved? If VEPA is enabled (or more specifically, if the multihost bit in the ALE_CTRL2 register is set) does that mean that ALL packets being sent from ALL cores through port 0 need their checksums calculated in software (i.e. no packets can use the checksum offload), or is does the checksum offload restriction only effect frames being sent from one core to another?