Specif
ications
3
Figure 17. Target Retry
Note:
(1) These signals do not apply to the pci_mt32 and pci_t32 functions and should be ignored.
ad[31..0]
(1) ad[63..32]
cben[3..0]
(1) cben[7..4]
par (1) par64
framen (1) req64n irdyn devseln (1) ack64n trdyn stopn
lt_framen l_adro[31..0]
l_cmdo[3..0]
lt_rdyn lt_ackn l_dato[31..0]
lt_dxfrn (1) l_ldat_ackn (1) l_hdat_ackn clk
(1) l_dato[63..32]
l_beno[3..0]
(1) l_beno[7..4]
lt_tsr[11..0]
Adr
7
Adr-PAR
Adr 7 BE0_H
000 381
D0_L
D0-L-PAR D0-H-PAR
BE_L BE_H
000 D0_H
2 3 4 5 6 7 8 9 10
1
D1-L D1_H
lt_discn
BE1_L BE1_H
D1-L-PAR D1-H_PAR BE0_L
Disconnect
A PCI target can signal a disconnect by asserting stopn and devseln after at least one data phase is complete. There are two types of disconnects:
disconnect with data and disconnect without data. In a disconnect with data, trdyn is asserted while stopn is asserted. Therefore, more data phases are completed while the PCI bus master finishes the transaction. A disconnect without data occurs when the target device deasserts trdyn while stopn is asserted, thus ensuring that no more data phases are completed in the transaction. Depending on the sequence of lt_rdyn and lt_discn assertion, the MegaCore function issues either a disconnect with data or disconnect without data.
Figure 18 shows an example of a disconnect with data which ensures that only a single data phase is completed during a burst write transaction. It applies to all PCI functions, excluding the 64-bit extension signals as noted for pci_mt32 and pci_t32. In Figure 18, both lt_rdyn and lt_discn are asserted in clock 5. This transaction informs the MegaCore function that the local side is ready to accept data but also wants to disconnect. As a result, the MegaCore function issues a disconnect with data and accepts only one data phase.
Specif
ications
3
Figure 18. Single Data Phase Disconnect in a Burst Write Transaction
ad[31..0]
(1) ad[63..32]
cben[3..0]
(1) cben[7..4]
par (1) par64 framen (1) req64n irdyn devseln (1) ack64n trdyn stopn
lt_framen l_adro[31..0]
l_cmdo[3..0]
lt_rdyn lt_ackn l_dato[31..0]
lt_dxfrn (1) l_ldat_ackn (1) l_hdat_ackn clk
(1) l_dato[63..32]
l_beno[3..0]
(1) l_beno[7..4]
lt_tsr[11..0]
Adr
7
Adr-PAR
Adr 7 BE0_H
000 381
D0_L D0_H D0_L
D0-L-PAR D0-H-PAR
BE_L
000 381
781 D0_H
2 3 4 5 6 7 8 9 10
1
D1-L D1_H
lt_discn
BE1_L BE1_H
D1-L-PAR D1-H_PAR BE0_L
BE_H
Figure 19 shows an example of a disconnect with data that ensures that only a single data phase is completed during a burst read transaction. It applies to all PCI functions, excluding the 64-bit extension signals as noted for pci_mt32 and pci_t32. In Figure 19, lt_rdyn is asserted in clock 4, and lt_discn is asserted in clock 5. This transaction ensures one data phase is completed on the local side before the function detects a disconnect request. Subsequently, the PCI MegaCore function issues a disconnect cycle on the PCI side to ensure that only one data phase is completed successfully.
Specif
ications
3
Figure 19. Single Data Phase Disconnect in a Burst Read Transaction
Note:
(1) These signals do not apply to the pci_mt32 and pci_t32 functions and should be ignored.
ad[31..0]
(1) ad[63..32]
cben[3..0]
(1) cben[7..4]
par (1) par64 framen (1) req64n irdyn devseln (1) ack64n trdyn stopn
lt_framen l_adro[31..0]
l_cmdo[3..0]
lt_ackn l_adi[31..0]
lt_dxfrn clk
(1) l_adi[63..32]
l_beno[3..0]
(1) l_beno[7..4]
Adr
6
Adr-PAR Z
6 Z
BE_L BE_H Z
D0_L D0_H
D0_L D0_H
D0-L-PAR D0-H-PAR
BE_L BE_H
2 3 4 5 6 7 8 9 10 11
1
lt_rdyn lt_discn
Adr
lt_tsr[11..0] 000 381 781 381 000
Figure 20 shows a disconnect without data during a burst read
transaction. It applies to all PCI functions, excluding the 64-bit extension signals as noted for pci_mt32 and pci_t32.
Figure 20. Disconnect Without Data During a Burst Read Transaction
Note:
(1) These signals do not apply to the pci_mt32 and pci_t32 functions and should be ignored.
ad[31..0]
(1) ad[63..32]
cben[3..0]
(1) cben[7..4]
par (1) par64 framen (1) req64n irdyn devseln (1) ack64n trdyn stopn
lt_framen l_adro[31..0]
l_cmdo[3..0]
lt_ackn l_adi[31..0]
lt_dxfrn clk
(1) l_adi[63..32]
l_beno[3..0]
(1) l_beno[7..4]
Adr
6
Adr-PAR Z Z
BE_L BE_H Z
D0_L D0_H
D0_L D0_H
D0-L-PAR D0-H-PAR
D1_L D1_H
D1_L D1_H
D1-L-PAR D1-H-PAR
13
2 3 4 5 6 7 8 9 10 11 12
1
lt_rdyn lt_discn
Adr 6
BE_L BE_H
lt_tsr[11..0] 000 381 781 381 000
Specif
ications
3
1 The PCI Local Bus Specification, Revision 2.2 requires that a target device issues a disconnect if a burst transaction goes beyond its address range. In this case, the local-side device must request a disconnect. The local-side device must keep track of the current data transfer address; if the transfer exceeds its address range, the local side should request a disconnect by asserting lt_discn.
Target Abort
Target abort refers to an abnormal termination because either the local logic detected a fatal error, or the target will never be able to complete the request. An abnormal termination may cause a fatal error for the application that originally requested the transaction. A target abort allows the transaction to complete gracefully, thus preserving normal operation for other agents.
A target device issues an abort by deasserting devseln and trdyn and asserting stopn. A target device must set the tabort_sig bit in the PCI status register whenever it issues a target abort. See “Status Register” on page 66 for more details. Figure 21 shows the MegaCore function issuing an abort during a burst write cycle. It applies to all PCI functions, excluding the 64-bit extension signals as noted for pci_mt32 and pci_t32.
1 The PCI Local Bus Specification, Revision 2.2 requires that a target device issues an abort if the target device shares bytes in the same DWORD with another device, and the byte enable combination received byte requests outside its address range.
This condition most commonly occurs during I/O transactions.
The local-side device must ensure that this requirement is met, and if it receives this type of transaction, it must assert
lt_abortn to request a target abort termination.
Figure 21. Target Abort
Note:
(1) These signals do not apply to the pci_mt32 and pci_t32 functions and should be ignored.
ad[31..0]
(1) ad[63..32]
cben[3..0]
(1) cben[7..4]
par par64 framen (1) req64n irdyn devseln (1) ack64n trdyn stopn
lt_framen l_adro[31..0]
l_cmdo[3..0]
lt_rdyn lt_ackn l_dato[31..0]
lt_dxfrn (1) l_ldat_ackn (1) l_hdat_ackn clk
(1) l_dato[63..32]
l_beno[3..0]
(1) l_beno[7..4]
Adr
7
Adr-PAR
7 BE0_L
BE0_H
D0_L D0_H D0_L
D0-L-PAR D0-H-PAR
BE_L D0_H
2 3 4 5 6 7 8 9 10 11 12
1 13
D1-L D1_H
lt_abortn
BE1_L BE1_H
D1-L-PAR D1-H_PAR D2_L D2_H
D3_L D3_H BE2_L
BE2_H
BE3_L BE3_H D2-L-PAR D2-H_PAR
D3-L-PAR D3-H_PAR
D1-L D1_H BE1_L BE1_H
D2_L D2_H BE2_L BE2_H Adr
BE_H
lt_tsr[11..0] 000 381 781 381 000
Specif
ications