32.8.5.2 Building a transfer descriptorBefore a transfer can be executed from the linked list, a dTD must be built to describe thetransfer.Use the following procedure for building dTDs.Allocate 8-DWord dTD block of memory aligned to 8-DWord boundaries. Example: bitaddress 4-0 would be equal to '00000'.Write the following fields:1. Initialize first seven DWords to '0'.2. Set the terminate bit to '1'.3. Fill in total bytes with transfer size.4. Set the interrupt on complete if desired.5. Initialize the status field with the active bit set to '1' and all remaining status bits setto '0'.6. Fill in buffer pointer page 0 and the current offset to point to the start of the databuffer.7. Initialize buffer pointer page 1 through page 4 to be one greater than each of theprevious buffer pointer.32.8.5.3 Executing a transfer descriptorTo safely add a dTD, the DCD must account for the event in which the device controllerreaches the end of the dTD list at the same time a new dTD is being added to the end ofthe list.First, determine whether the link list is empty by checking the DCD driver to see if thepipe is empty (internal representation of linked-list should indicate if any packets areoutstanding). Then follow the sequence of actions in the following list as appropriate,depending on whether the link list is empty or not empty.Case 1: Link list is empty1. Write dQH next pointer AND dQH terminate bit to '0' as a single DWord operation.2. Clear active and halt bit in dQH (in case set from a previous error).3. Prime endpoint by writing '1' to correct bit position in ENDPTPRIME.Case 2: Link list is not empty1. Add dTD to end of linked list.Device operational modelQorIQ LS1012A Reference Manual, Rev. 1, 01/20182090 NXP Semiconductors