AnsweredAssumed Answered

ADSP-21469 Link Port DMA Addressing

Question asked by Alcor on Dec 15, 2009
Latest reply on Dec 15, 2009 by DivyaS

The ADSP-21469 Hardware Manual gives the following (page 2.30):


All addresses in the index registers are offser by a value matching the processor's first internal normal word addressed RAM location, before the I/O processor uses the addresses. For the ADSP-2146x processors, this offset  value is 0x0008 0000.


At the same time the processor's datasheet gives (table 4 on page 8):


Block 0 RAM     0x0008 C000-0x0009 3FFF


So the first RAM address is 0x0008 C000, not 0x0008 0000. Should this addresses be the same or there is some special address space between them?


Also, when I specify the TCB values (i.e. internal index register) what addresses I should write into the TCB?


For example, let's study the LinkPortLoopBack project coming with the EZ-KIT:


r0 = Tcb_BufRx0+3 - 0x80000+PCI ;
dm(Tcb_BufRx0) = r0;                       // points to next TCB

r0 = Tcb_BufRx0+3 -0x80000  ;
dm(CPLB0 ) = r0;                             // sets the chain pointer register


In the fist line the Chain Point Register is filled with the phisical buffer start address + 3 (since PCI = 0x80000); at the same time in the fourth line the situation is different -  CPLB is filled with the (Physical Address + 3 - Offset), where Offset = 0x80000!


So what is the addressing rule and where the offset/no offset should be used?