Not applicable
May 19, 2016
01:55 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 19, 2016
01:55 AM
The reference manual chapter 15.2.4.1 describes three kinds of DMA descriptors:
* Normal descriptors (16 bytes)
* Alternate descriptors (16 bytes)
* Enhanced descriptors (32 bytes)
Question 1:
What is the default descriptor selection?
Question 2:
How do configure the hardware to use Normal or Alternate (16 bytes) descriptors?
I'm developing a driver for the Ethernet MAC, i.e. not using DAVE/xmc_eth_mac.c.
* Normal descriptors (16 bytes)
* Alternate descriptors (16 bytes)
* Enhanced descriptors (32 bytes)
Question 1:
What is the default descriptor selection?
Question 2:
How do configure the hardware to use Normal or Alternate (16 bytes) descriptors?
I'm developing a driver for the Ethernet MAC, i.e. not using DAVE/xmc_eth_mac.c.
3 Replies
May 20, 2016
12:17 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 20, 2016
12:17 AM
Hi,
The default after reset is normal descriptor format.
You can change it using the code below
What is the reason for you to write your own low level driver? Are you missing any functionality? Your feedback is appreciated, we are always open to incorporate user proposals.
Best regards,
Jesus
The default after reset is normal descriptor format.
You can change it using the code below
/* Increase enhanced descriptor to 8 WORDS, required when the Advanced Time-Stamp feature or Full IPC Offload Engine is enabled */
eth_mac->regs->BUS_MODE |= (uint32_t)ETH_BUS_MODE_ATDS_Msk;
What is the reason for you to write your own low level driver? Are you missing any functionality? Your feedback is appreciated, we are always open to incorporate user proposals.
Best regards,
Jesus
Not applicable
May 20, 2016
02:48 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 20, 2016
02:48 AM
Thanks for your answer!
Isn't it true though that setting ETH_BUS_MODE_ATDS will always expand descriptor size to 32 bytes (instead of 16 bytes)? What I really want is to use the 16 bytes Alternate descriptor layout.
I'm not writing the driver from scratch, but rather reusing an existing one written for another hardware platform (not Infineon). The other platform uses a version of the same Ethernet IP block.
Best regards,
Fredrik
Isn't it true though that setting ETH_BUS_MODE_ATDS will always expand descriptor size to 32 bytes (instead of 16 bytes)? What I really want is to use the 16 bytes Alternate descriptor layout.
I'm not writing the driver from scratch, but rather reusing an existing one written for another hardware platform (not Infineon). The other platform uses a version of the same Ethernet IP block.
Best regards,
Fredrik
Not applicable
May 26, 2016
07:35 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 26, 2016
07:35 AM
I tested with the Normal DMA descriptor layout, but that didn't work. Changing to Alternate 16-bytes layout worked. It appears as the Alternate 16-bytes descriptors are the default. The reference manual should be updated to reflect that.
Also, if Normal descriptors are not implemented in hardware, as it seems to be the case, then the section in the reference manual covering Normal descriptor should be removed.
Also, if Normal descriptors are not implemented in hardware, as it seems to be the case, then the section in the reference manual covering Normal descriptor should be removed.