Table 18.2 Itd Packet Offset Location - Hitachi HD64465 User Manual

Windows ce intelligent peripheral controller
Table of Contents

Advertisement

b) Isochronous Packet Begin and End Address Calculation
When processing an Isochronous Transfer Descriptor, the RelativeFrame (R) is used to
select two offset values, BeginAddrOffset and EndAddrOffset. EndAddrOffset is the lower
12 bits of the last byte of the packet +1. The source of these offsets is shown in Table 18-2.
Refer to next section for a description of the Descriptor Registers used.

Table 18.2 ITD Packet Offset Location

RelativeFrame
Is Even
Yes
No
Yes
No
The initial address of the transfer is determined from Offset[R]. If bit 12 (the 13th LSb) of
Offset[R] is 0, then the initial buffer address resides in the physical memory page specified
in BufferPage0 of the Isochronous Transfer Descriptor. If bit 12 is 1, then the initial buffer
address will reside in the physical page indicated by BufferEndPage. When the upper 20
bits are selected, the address is completed by using BeginAddrOffset as the low 12 bits of
the address.
c) General Last Packet Calculation
The GTDLastPacket signal is used for two purposes.
• Setting the CBP value to 0h upon a successful transfer.
• Limiting the transfer size of the last packet to be the remaining space in the buffer
instead of MaxPacketSize.
GTDLastPacket is asserted when the size of the packet is zero-length (indicated by CBP =
0h) or when the last byte of the buffer lies within the address range CBPOffset plus
MaxPacketSize.
This latter condition occurs when the 13 bit value of CBPOffset plus MaxPacketSize is
greater than or equal to BEOffset_12 concatenated with BEOffset, with one exception, as
stated below. BEOffset_12 is the buffer end relative page. It is set when BEOffset does not
reside in the same page as CBPOffset. There are two conditions for setting BEOffset_12:
CBPPage = BEPage, and the increment of the end address to form BEOffset crosses a
page boundary.
The exception for setting GTDLastPacket is when the two conditions for setting
BEOffset_12 are both valid. This indicates that the buffer end is at the end of the second
page, and there is at least one page worth of data remaining in the buffer.
Rev. 3.0, 03/01, page 276 of 390
RelativeFrame
Equals FrameCount
No
No
Yes
Yes
BeginAddrOffset
Offset0 Low
Offset0 High
Offset0 Low
Offset0 High
EndAddrOffset
Offset0 High
Offset1
BEOffset
BEOffset

Advertisement

Table of Contents
loading

Table of Contents