2025-10-23 9:33 PM - last edited on 2025-10-24 10:42 AM by mƎALLEm
if (txbuffer->next != NULL)
{
txbuffer = txbuffer->next;
/* Set buffer 2 address */
WRITE_REG(dmatxdesc->DESC1, (uint32_t)txbuffer->buffer);
/* Set buffer 2 Length */
MODIFY_REG(dmatxdesc->DESC2, ETH_DMATXNDESCRF_B2L, (txbuffer->len << 16));
}.2025-10-24 10:12 AM
Hello @Aks,
To assist you better, could you please answer the following questions:
Best regards,
2025-10-24 10:24 AM
As for TSN, it is supported by the hardware; however, unfortunately, there is currently no driver provided by ST. You can check the reference manual for more details.
Additionally, you may find the following knowledge base article helpful for running a bare-metal Ethernet application, as it provides useful tips:
2025-10-29 10:05 PM - last edited on 2025-10-31 2:46 AM by STackPointer64
Post edited by ST moderator to be inline with the community rules especially with the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code
Hello @STackPointer64
Thank you for your response.
Please find my answers to your queries below:
We are currently running in Non-Secure mode. However, we are still facing some issues in this mode. I will address the additional observations after answering all your queries.
Our Ethernet DMA descriptors are located in AXI SRAM 2.
We are not using any external Ethernet stack such as NetXDuo — all Ethernet operations are handled directly through the HAL libraries.
We encountered a HardFault when running in FSBL mode, whereas in Non-Secure mode, we are facing an OWN bit clearing issue.
while ((dmatxdesc -> DESC3 & ETH_DMATXNDESCWBF_OWN) != (uint32_t) RESET)
{
if ((heth -> Instance -> DMA_CH[ch].DMACSR & ETH_DMACxSR_FBE) != (uint32_t) RESET)
{
heth -> ErrorCode |= (uint32_t) HAL_ETH_ERROR_DMA;
heth -> DMAErrorCode = heth -> Instance -> DMA_CH[ch].DMACSR;
/* Return function status */
return HAL_ERROR;
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0 U))
{
heth -> ErrorCode |= HAL_ETH_ERROR_TIMEOUT;
/* Clear TX descriptor so that we can proceed */
dmatxdesc -> DESC3 = (ETH_DMATXNDESCWBF_FD | ETH_DMATXNDESCWBF_LD);
return HAL_ERROR;
}
}
}
I have also attached the call stack screenshot, IOC file, and code snippet for your reference.
Thanks & Regards
Akshitha Pattem
2025-10-29 10:09 PM
Hello @STackPointer64
Thank you for the clarification.
As you mentioned, TSN is supported by the hardware but no driver is currently provided by ST. We would like to know how we can test TSN functionality on this controller in that case. Could you please share any recommended sequence, procedure, or reference for testing TSN features?
Thanks & regards
Akshitha Pattem