Freescale Semiconductor Device Errata MPC5200E Rev. 5, 12/2011 MPC5200 (L25R) Errata by: Microcontroller Division This document identifies implementation differences between the MPC5200, L25R (Rev. 1.2), and the processor’s description contained in the MPC5200 Microcontroller User’s Manual and the MPC5200 Microcontroller Data Sheet. Refer to http://www.freescale.com for the latest updates. Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 © Freescale Semiconductor, Inc., 2004, 2005, 2011. All rights reserved. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 ATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 BestComm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 BDLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 e300 Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 I2 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 JTAG/COP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 LPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 PCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 PSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 SDRAM Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1 Overview Table 1. MPC5200 (L25R) errata summary Module ID Date Added Title 158 01 July 2003 Section 2.1, ATA interrupt is not affected by FIFO errors 292 01 July 2003 Section 2.2, ATA PIO write did not complete due to a LPC pipeline transaction 325 01 July 2003 Section 2.3, ATA_ISOLATION glitch 233 01 July 2003 Section 3.1, BestComm DMA handling of misaligned addresses 329 10 May 2004 Section 3.2, BestComm Read Line Buffer does not invalidate 351 01 July 2003 Section 3.3, BestComm DMA modules double initializing index registers BDLC 369 05 Nov 2003 Section 4.1, BDLC BREAK Symbol timing differs from SAE J1850 specification e300 Core ERR 003383 I2C 416 19 Dec 2003 Section 6.1, I2C Reaction to an arbitration loss is not I2C compliant JTAG/COP 330 01 July 2003 Section 7.1, LSRL corrupts XLB arbiter 343 01 July 2003 Section 8.1, ALE and TS changing on falling edge in 4:4:1 for LPC MUXED Mode 347 01 July 2003 Section 8.2, 8-/16-bit accesses in MOST/GRAPHICS mode inoperable 352 01 July 2003 Section 8.3, ALE to CS isolation clock is required for LPC MUXED mode 103 01 July 2003 Section 9.1, MSCAN filter bug for extended IDs 415 05 Nov 2003 Section 9.2, MSCAN clock source option oscillator clock does not work 499 01 Dec 2011 Section 9.3, Corrupt ID may be sent in Early-SOF condition ATA BestComm LPC MSCAN MUCts 01373 PCI 01 Dec 2011 01 Dec 2011 Section 5.1, If critical interrupt and normal interrupt are used in a system, the e300 core may hang Section 9.4, Message erroneously accepted if bus error in bit 6 of EOF 224 19 Dec 2003 Section 10.1, PCI BestComm FIFO collision CPU vs.BestComm at low granularity 310 01 July 2003 Section 10.2, Limited support of non-contiguous combinations of byte enables 319 19 Dec 2003 Section 10.3, TEA not asserted when Maximum Retries limit reached 322 19 Dec 2003 Section 10.4, Violation of PCI Tval min time 348 01 July 2003 Section 10.5, No target aborts on target read errors 429 19 Dec 2003 Section 10.6, PCI Bus must always be driven (bus parking) 433 02 Mar 2004 Section 10.7, PCI arbiter can grant external and internal PCI master at the same (modified time 10 May 2004) A11 19 Dec 2003 Section 10.8, External PCI bridge livelock MPC5200 (1L25R) Errata, Rev. 5 2 Freescale Semiconductor Table 1. MPC5200 (L25R) errata summary (continued) Module ID Date Added Title 363 01 July 2003 Section 11.1, SPI slave mode - first data must be ignored 350 01 July 2003 Section 11.2, PSC3 pin muxing mode 0x111x does not work 364 01 July 2003 Section 11.3, PSC UART — No return from break state 370 05 Nov 2003 Section 11.4, PSC Limitation of Codec/I2S slave mode 447 10 May 2004 Section 11.5, PSC CODEC slave transmitter fail at DTS1=0 and ClkPol=1 SDRAM Controller 340 01 July 2003 Section 12.1, Self Refresh control in Deep Sleep Mode 342 01 July 2003 Section 12.2, CS access (339) SPI 349 01 July 2003 Section 13.1, SPIF bits set early for SPI clock < 200 kHz operation USB 356 01 July 2003 PSC Section 14.1, USB register addresses for HccaFrameNumber and HccaPad1 are swapped 2 ATA 2.1 ATA interrupt is not affected by FIFO errors 2.1.1 Description FIFO error flags do not generate an ATA interrupt to the CPU. 2.1.2 Workaround To identify a FIFO error, the FIFO status register must be polled. 2.2 2.2.1 ATA PIO write did not complete due to a LPC pipeline transaction Description There is an issue with the latency of the ATA to request access to the shared Address/Data bus. If there is an ATA PIO access (write or read) followed by any other XLB_PCI/LPC transaction that asserts a request and then receives a grant before the ATA request is asserted, the ATA does not the access to the shared Address/Data bus. 2.2.2 Workaround Turn off XLB pipelining before performing ATA PIO transactions. MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 3 2.3 2.3.1 ATA_ISOLATION glitch Description The ATA_ISOLATION output is an active high signal to control external ATA transceiver devices and to isolate the ATA bus from the Local Plus (shared) bus. The ATA_ISOLATION is driven low after the positive edge of HRESET for 4 PCI_CLK cycles. 2.3.2 Workaround This is a warning only. 3 BestComm 3.1 BestComm DMA handling of misaligned addresses 3.1.1 Description BestComm DMA can produce misaligned word addresses on its Slave and Comm bus. These accesses are processed incorrectly by the Magenta write, Comm bus and SRAM interfaces which expect aligned address and appropriate byte selects asserted. 3.1.2 Workaround Do not use misaligned accesses. 3.2 3.2.1 BestComm Read Line Buffer does not invalidate Description When the BestComm reads data from the XLB memory bus, it reads it in blocks of 32 bytes. If the BestComm is requesting sequential addresses with lengths of less than 32 bytes, an optimization is utilized which allows the BestComm to do a single access to the XLB memory bus and then read data from one of four Read Line Buffers (RLB) between the BestComm and the XLB. For instance, if the BestComm reads 4 bytes from address 0x2340, then the BestComm will fetch data from 0x2340–0x235F from the XLB memory bus and leave it in the RLB. A subsequent read of four bytes at address 0x2344 will not result in another fetch from the SDRAM controller, but will instead be taken directly from the RLB. The problem occurs in the previous example when a write to address 0x2344 occurs from a XLB master, say the CPU, in between the two reads. In this case, no check is made to see if the data is dirty and the data MPC5200 (1L25R) Errata, Rev. 5 4 Freescale Semiconductor in the RLB is still taken without a subsequent fetch from the SDRAM controller. Obviously, this is probably not the correct data. 3.2.2 Workaround 1. 1. The simplest workaround for this problem is to make another non-sequential read. For instance, read address 0x2340, then read address 0x2500, then read address 0x2344. This forces the BestComm to make three separate fetches. Note that this workaround is not as far fetched as it sounds when the usage of the BestComm is taken into account. 2. 2. A 2nd workaround is to force a non-sequential read and put the buffers in memory with at least 32 bytes between them. 3. 3. Another workaround is to use the buffers in reverse order. Transmit C then B then A. This will force the BestComm to do a non-sequential read at the beginning of each buffer. 3.3 3.3.1 BestComm DMA modules double initializing index registers Description A task code of the form : LCDEXT:idx2 =idx3;idx2 >var13;idx2 +=inc0 LCD:idx3 =*(idx1 +var00000015);;idx3 +=inc1 creates problems with context switching. It is caused by two different modules within BestComm DMA initializing idx2 and idx3 twice and producing an incorrect result in idx2. This code is very rare and could be caused by an unsupported coding style in the tasks. 3.3.2 Workaround Changing the order of idx definition in the previous LCD changes the problematic LCD to: LCDEXT: idx2 = idx2; idx2 > var13; idx2 += inc0 LCD: idx3 = *(idx1 + var00000015); ; idx3 += inc1 which resolves the problem. 4 BDLC 4.1 BDLC BREAK Symbol timing differs from SAE J1850 specification 4.1.1 Description The BREAK symbol is defined by the SAE J1850 spec Rev May2001 as follows: • TX min 280 µs MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 5 • • • • TX nom = 300 µs TX max µ 5 ms RX min > 239 µs RX max 1 s The MPC5200 BDLC provides a BREAK Tx nom time of 240 us, which is smaller than TX min 280 µs. This is a violation. The SAE J1850 spec does not define the 4X mode. 4.1.2 Workaround To transmit a BREAK symbol of the right length, re-adjust the BDLC prescaler by writing the corresponding value to the BDLC Rate Select Register. 5 e300 Core 5.1 If critical interrupt and normal interrupt are used in a system, the e300 core may hang 5.1.1 Description If critical interrupt and normal interrupt are being used in a system, the e300 core may hang. 5.1.2 Workaround Instead of using an RFI at the end of every exception handler, replace the RFI with the following: Disable critical interrupts by setting MSR[CE] to 0 with mtspr. Copy SRR0 and SRR1 to CSRR0 and CSRR1, respectively. Execute an RFCI. This enables MSR[CE] and any other bits that original RFI would have set, including MSR[EE] Sample code: // Disable MSR[CE] mfmsr r2 lis r3, 0xffff ori r3, r3, 0xff7f and r2, r2, r3 sync mtmsr r2 isync // Copy SRR0, SRR1 to CSRR0 and CSRR1 mfspr r2, srr0 MPC5200 (1L25R) Errata, Rev. 5 6 Freescale Semiconductor mfspr mtspr mtspr r3, srr1 csrr0, r2 csrr1, r3 … restore GPRs rfci 6 I2C 6.1 I2C Reaction to an arbitration loss is not I2C compliant 6.1.1 Description The I2C bus specification (Philips Semiconductors) defines: “A master which loses the arbitration can generate clock pulses until the end of the byte in which it loses the arbitration.” When the MPC5200 I2C controller as master loses the arbitration, it generates one extra clock pulse on the serial clock (SCL) line. This becomes visible only if there is no other master driving the clock line. Potentially this becomes a problem for another node, which is may be forced by the clock pulse to an undefined state. This is a rare scenario, but a violation of the I2C specification. 6.1.2 Workaround Make sure that the design of the external I2C bus system supports a recovery mechanism for the bus, like continuously toggling the SCLK line. 7 JTAG/COP 7.1 LSRL corrupts XLB arbiter 7.1.1 Description When JTAG is scanning through the G2_LE core LSRL or boundary scan the XLB arbiter can be confused. Because of the XLB logic confusion, resume after scanning is not possible. This only affects JTAG debug operation. 7.1.2 Workaround The sequence is: 1. Halt the core (SOFT STOP required). MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 7 2. Find the value of MBAR using the TLM_MBAR_SEL instruction. 3. Read and save off the XLB Arbiter Configuration register at MBAR + 0x1F40. This EXMEM sequence should NOT have bit 24 set when running the RunN counter. 4. Write the XLB Arbiter Configuration register at MBAR + 0x1F40 with 0x00000000. This EXMEM sequence should NOT have bit 24 set when running the RunN counter. This enables pipelining and turns off arbiter time out counters. Enabling pipelining allows the arbiter to reset itself when it gets a bad state. Disabling the time out counters avoids the problem of receiving TEAs when accessing unimplemented memory space on the MPC5200. 5. From here, all LSRL activity is permitted and External memory can be accessed. Any external memory accesses here should have bit 24 set. Setting this bit for these accesses gets around bad unimplemented memory accesses. 6. Restore the XLB Arbiter Configuration register at MBAR + 0x1F40 using EXMEM Write. Be sure bit 24 is set for this access. 7. Now you can resume. NOTE A general rule for setting bit 24 is if pipelining is disabled in the XLB arbiter configuration register, then do not set bit 24. 8 LPC 8.1 ALE and TS changing on falling edge in 4:4:1 for LPC MUXED Mode 8.1.1 Description When running a multiplexed LPC transaction in 4:4:1 XLB:IP:PCI clock ratio, the ALE is asserted an extra half PCI clock before it deasserts and TSb asserts. 8.1.2 Workaround Use the falling edge of ALE to latch addresses. 8.2 8.2.1 8-/16-bit accesses in MOST/GRAPHICS mode inoperable Description In the MOST/GRAPHIC mode, 8-bit or 16-bit XLB accesses cannot be handled. MPC5200 (1L25R) Errata, Rev. 5 8 Freescale Semiconductor NOTE The issue is related to MOST/GRAPHICS mode only where the 2 bits TSIZ[1:0] are available at pins GPIO_WKUP_7 and TEST_SEL_1. The MUXed Mode is not impacted, as it provides 3 bits TSIZ[2:0] on EX_AD[30:28]. 8.2.2 Workaround Do not use 8-bit or 16-bit XLB access in MOST/GRAPHIC mode. 8.3 8.3.1 ALE to CS isolation clock is required for LPC MUXED mode Description For the Muxed mode, an isolation clock cycle is needed between the deassertion of ALE and the assertion of CS. ALE and CS are changing at the same clock edge. This can cause the “Data” and not the “Address” to be latched. 8.3.2 Workaround Use the falling edge of ALE to latch addresses. 9 MSCAN 9.1 MSCAN filter bug for extended IDs 9.1.1 Description MSCAN extended ID rejected if stuff bit between ID16 and ID15. For 32-bit and 16-bit identifier acceptance modes, an extended ID CAN frame with a stuff bit between ID16 and ID15 can be erroneously rejected, depending on IDAR0, IDAR1, and IDMR1. Extended IDs (ID28-ID0) that generate a stuff bit between ID16 and ID15 are: IDAR0 IDAR1 IDAR2 IDAR3 ******** ***1111x xxxxxxxx xxxxxxxx where x = 0 or 1 (don’t care) * = pattern for ID28 to ID18 (see following) Affected extended IDs (ID28 - ID18) patterns: a) xxxxxxxxx01 exceptions: 00000000001 01111100001 xxxx1000001 except 11111000001 b) xxxxx100000 exception: 01111100000 c) xxxx0111111 exception: 00000111111 d) x0111110000 MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 9 e) 10000000000 f) 11111111111 g) 10000011111 When an affected ID is received,an incorrect value is compared to the 2nd byte of the filter (IDAR1 and IDAR5, plus IDAR3 and IDAR7 in 16-bit mode). This incorrect value is the shift register contents before ID15 is shifted in (i.e., right shifted by 1). 9.1.2 Workaround If the problematic IDs cannot be avoided, the workaround is to mask certain bits with IDMR1 (and IDMR5, plus IDMR3 and IDMR7 in 16-bit mode). Example 1: to receive the message IDs xxxx xxxx x011 111x xxxx xxxx xxxx xxxx IDMR1 etc. must be 111x xxx1,i.e., ID20, 19, 18, 15 must be masked. Example 2: to receive the message IDs xxxx 0111 1111 111x xxxx xxxx xxxx xxxx IDMR1 etc. must be 1xxx xxx1, i.e., ID20 and ID15 must be masked. In general, using IDMR1 etc.1111 xxx1, i.e., masking ID20, 19, 18, SRR, 15 hides the problem. 9.2 9.2.1 MSCAN clock source option oscillator clock does not work Description There is a CAN Clock Source Select feature in the MSCAN, controlled by the CLKSRC bit of the CANCTL1 register. By default (reset), the IP bus clock is used as clock source for the MSCAN. Selecting the Oscillator clock (SYS_XTAL_IN) as clock source for the MSCAN does not work. 9.2.2 Workaround Only the default IP bus clock can be used as clock source for the MSCAN. 9.3 9.3.1 Corrupt ID may be sent in Early-SOF condition Description This erratum is only relevant for applications using more than one transmit buffer and with oscillators operating at opposite ends of the tolerance range. A corrupt ID is sent out if a Tx message with highest priority is set up for transmission during bit 3 of INTERMISSION and a dominant bit is sampled leading to an early-SOF condition. The message sent is taken from the newly setup Tx buffer with the exception of the first eight ID bits taken from the originally selected Tx buffer. The CRC is correctly calculated on MPC5200 (1L25R) Errata, Rev. 5 10 Freescale Semiconductor the resulting bit stream so that receiving nodes validate the message. In a typical CAN network, with oscillator tolerances inside of the specified limits, this is not an issue because an early SOF condition should not occur. This may be a problem if the oscillators operate at opposite ends of the tolerance range (max. 1.58%), which could lead to a cumulated phase error after 10 bit times larger than phase segment 2. NOTE The CAN protocol condition referred to as early SOF in this erratum is detailed in a note in the “Bosch CAN Specification Version 2.0 Part B”, section 3.2.5 INTERFRAME SPACING – INTERMISSION. 9.3.2 Workaround Use only one transmit buffer and do priority sorting in software. If more than one transmit buffer must be used, one of the following workarounds can be chosen: • Do not release higher priority messages than those already scheduled (either determined by local priority or if equal, by hard-coded buffer priority) before all buffers are empty. • Abort messages before scheduling higher priority transmissions. • Prevent bad IDs passing acceptance filters by not assigning IDs (x) consisting of a combination of other assigned IDs (y,z), i.e. IDx[11:0] != {IDy[11:3], IDz[2:0]} for standard and IDx[28:21] != {IDy[28:21],IDz[20:0]} for extended identifiers. • Allocate dedicated data length codes (DLC) to every ID and check for correspondence after reception. 9.4 9.4.1 Message erroneously accepted if bus error in bit 6 of EOF Description If a particular error condition occurs within the end of frame segment (EOF) of a CAN message, the MSCAN module recognizes and accepts a non-valid message as being valid, contrary to the CAN specification. The MSCAN module incorrectly validates messages after five recessive bits of the end of frame instead of after six bits. If a bus error occurs during the sixth bit of end of frame, the MSCAN module will already have accepted the message as valid, even although an error frame is transmitted and the receive error counter is incremented. The CAN protocol states that message validation differs between bus transmitter and receiver devices (refer to part B, section 5 of CAN protocol for details). In the case where the seventh bit of the EOF segment is dominant, the message is valid for the receiver but not for the transmitter. This erratum extends this case to the sixth bit of the EOF segment. 9.4.2 Workaround This erratum will not be an issue if the application software is protected against the known double receive problem of the CAN protocol. This problem occurs when a message is not recognized as valid by the transmitter, but is recognized as valid by a receiver, as described above. When this happens, the message is re-transmitted and hence the receiver will receive the same message twice. MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 11 10 PCI 10.1 PCI BestComm FIFO collision CPU vs.BestComm at low granularity 10.1.1 Description When the FIFO granularity is 0-3 (not when it is set to 4 or higher) read data can be corrupted with no error indication because the PCI controller writes to the same location that the BestComm is reading from at the same time. 10.1.2 Workaround Do not use a FIFO granularity below 4 (0-3). 10.2 Limited support of non-contiguous combinations of byte enables 10.2.1 Description The Command/Byte Enable bus C/BE#[3:0 ]is driven by the initiator. In each data phase the byte enables indicate the bytes to be transferred within the currently-addressed double-word. When MPC5200 is the PCI target, some combinations of byte enables (the non-contiguous cases) are not correctly supported. For external master writes with non-contiguous byte enables (active low) 0x2, 0x4, 0x5, 0x6, 0xa, if address bit 2 is low (corresponding to dh on XLB), the second beat of write data is put on the wrong data bus (dl). Non-contiguous PCI to XLB bus transfers require two XLB bus accesses. Refer to the MPC5200 Microcontroller User’s Manual, PCI chapter. The incorrect supported combinations of byte enables are: C/BE# PCI BUS AD 3:0 31:24 23:16 15:8 7:0 ---------------------------0010 OP3 OP2 --- OP1 0100 OP3 --- OP2 OP1 0101 OP3 --- OP2 --0110 OP3 --- --- OP2 1010 --- OP3 --- OP2 As a result, wrong data are written, no error wis indicated, and no target abort is issued. 10.2.2 Workaround Do not use these combinations of non-contiguous byte transfers. NOTE Refer to the MPC5200 Microcontroller User’s Manual, PCI chapter: The XLB bus supports misaligned operations; however, it is strongly recommended that software attempt to transfer contiguous code and data where possible. Non-contiguous transfers degrade performance. MPC5200 (1L25R) Errata, Rev. 5 12 Freescale Semiconductor 10.3 10.3.1 TEA not asserted when Maximum Retries limit reached Description When the implemented retry counter reaches the retry count limit (Maximum Retries) no error will be sent back on XLB (Transfer error ack (tea_b) indicates that a bus error occurred). Reaching the Maximum Retries limit generates a normal interrupt. 10.3.2 Workaround Use the normal interrupt, which alerts the processor that a problem exists. 10.4 10.4.1 Violation of PCI Tval min time Description The PCI Timing Specification defines the timing parameter Tval (CLK to Signal Valid Delay): Tval min 2 ns, max 11 ns (33 MHz) Tval min 2 ns, max 6 ns (66 MHz) When M66EN is asserted, the minimum specification for Tval(min) may be reduced to 1 ns if a mechanism is provided to guarantee a minimum value of 2 ns when M66EN is deasserted. MPC5200 provides Tval min of 1 ns (instead of 2 ns), which is a violation of the Timing Specification for 33 MHz. 10.4.2 Workaround Make sure that this reduced hold time budget is considered by the design of the external PCI bus system. 10.5 10.5.1 No target aborts on target read errors Description PCI target reads are supposed to respond with target aborts when a tea_b occurs on the internal xlb bus (e.g., a read from an unallocated DRAM space). Instead, when an transfer error occurs, the target path sends back fake data (Zeros) and completes the transaction (If the PCI 16/8 latency rule is not set). Target-Abort is the termination mechanism that allows the target to terminate a transaction in which a fatal error has occurred, or to which the target will never be able to respond. Target-Abort will cause the initiator to end the transaction with no data transfer and no retry. Target-Abort is indicated to the initiator by simultaneously asserting STOP# and deasserting TRDY# and DEVSEL#. MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 13 10.5.2 Workaround If the PCI16/8 latency rule is set, the target path issues at least a retry disconnect. 10.6 10.6.1 PCI Bus must always be driven (bus parking) Description The PCI Local Bus Specification (2.2) defines that the point-to-point and shared 32-bit PCI bus signals do not require pull-ups; bus parking ensures their stability. When the bus is idle and no bus masters are requesting ownership, either the bus arbiter or a master that has the bus parked on it must enable its AD, C/BE#, and PAR output drivers. Due to the nature of the MPC5200 PCI arbiter and the complexity of handling the shared PCI bus, parking on an external PCI master is not possible without incurring system instability. Therefore, the PCI arbiter will never leave the grant asserted to an external PCI master after a transaction has completed. Parking on an internal non-PCI master ( LPC, SCLPC, ATA) can violate the rule to drive the AD, C/BE#, and PAR pins. 10.6.2 Workaround There is no real workaround. To avoid that the PCI bus is left floating for a long period dummy accesses to the LPC can be performed. 10.7 10.7.1 PCI arbiter can grant external and internal PCI master at the same time Description The internal PCI arbiter should grant bus ownership only to one master at a time. This rule of operation is violated under certain conditions. An external PCI Initiator requests (REQ#) and gets the bus (GNT#). If exactly at this time, in a window of one IP bus clock cycle, an internal PCI Initiator asserts a request for the bus too, the internal PCI arbiter grants the internal requestor, in addition to the external one. As a result of two granted initiators there is contention on the PCI bus. 10.7.2 Workaround External logic is required to delay the GNT# by at least two PCI clock cycles and to deassert the REQ# when FRAME# becomes active and to reassert REQ# again. The following diagrams illustrate the workaround: MPC5200 (1L25R) Errata, Rev. 5 14 Freescale Semiconductor PCI_ CLK REQ# dummy request REQ#5200 GNT#5200 GNT AD int + ext PCI access FRAME# REQ#5200 MPC5200 GNT#5200 REQ External Logic GNT PCI Device FRAME# PCI_CLK 10.8 10.8.1 External PCI bridge livelock Description An external PCI device that is both a master and a slave can potentially cause system livelock. Due to the nature of the MPC5200 PCI arbiter and the complexity of handling the shared PCI bus, an external PCI device that is both a master and a slave can cause system-wide livelock. Specifically, this can only occur on such a device that has sideband communication between the master and slave partitions where the master can instruct the slave to retry inbound transactions until the master completes its transaction. As an example, the MPC5200 may issue an I/O write to an external PCI device which is both a master and a slave. About the same time, this external master has a transaction that is pending, and is awaiting mastership of the PCI bus. Because of this, the external master instructs the slave to retry any inbound I/O writes until its outbound transaction is serviced. This is done because any inbound I/O write may change the state of the master which is trying to complete a transaction. In this case, the PCI arbiter first gives the grant to the core issuing the I/O write, but the transaction is retried by the external slave. Because of a limitation of the PCI arbiter, it can not rearbitrate incoming requests after the slaves first retry, and instead MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 15 continues to assert the grant to the core until its pending transaction is successfully completed. Thus the slave retries will occur forever, and no forward progress is made; the MPC5200 is in livelock. Note that this situation will not always occur, as in the case when the outbound transaction on the XLB is placed in the PCI posted-write buffer. In this case, the XLB write transaction is completed, and the PCI arbiter will eventually arbitrate to the external device for bus mastership. However, if the XLB transaction is a read, or is not eligible or able to be placed in the posted-write buffer, then the system remains susceptible to livelock. 10.8.2 Workaround There are two ways to avert this problem when using an external device that has a coupled master and slave component. 1. If possible, program the external slave to issue a Target Abort after excessive retries. 2. Program the MPC5200 PCI registers PCITTCR and PCIRTCR, Max_Retries field to catch slaves with excessive retries. To alleviate the livelock, both options above require that an interrupt is generated to the CPU, and that the pending XLB transaction is aborted with a TEA (if it was not a posted write). The CPU interrupt is necessary to determine which XLB master was requesting the external slave so the transaction can eventually be reissued. The TEA is necessary to free up the XLB so the external device can finally obtain the grant from the PCI arbiter, thus alleviating the livelock. The first option is the preferred work-around because it forces the external device to monitor its own retries for a specific transaction request. Once the retry counter expires, the slave issues a Target Abort instead of a retry, which causes a CPU interrupt and a TEA to be generated to the XLB. The second option is similar to the first, except that the MPC5200 PCI controller monitors the retries for a given transaction to a particular slave. The Max_Retries counter is set in the PCI controller to a sufficiently large value (for example, 0xFF). When the Max_Retries counter expires because a transaction is constantly being retried, the CPU will receive an interrupt, and a TEA will be generated to the XLB. 11 PSC 11.1 SPI slave mode - first data must be ignored 11.1.1 Description In SPI slave mode, the PSC module does not generate the bit clock. The bit clock will be generated by the master device and is an input to the PSC. The PSC requires some clocks for the configuration before any data can be transfered. The master provides the clock only together with the data. Therefore, the first received and transmitted data are incorrect, the following transfers are correct. MPC5200 (1L25R) Errata, Rev. 5 16 Freescale Semiconductor 11.1.2 Workaround The first received and transmitted data must be ignored. The master must send a “dummy” data after each PSC-SPI configuration. 11.2 11.2.1 PSC3 pin muxing mode 0x111x does not work Description The pin muxing mode 0x111x for PSC3 does not work. In this mode the PSC3 group provides the signals for CODEC3 mode and SPI (from the stand-alone SPI module) at the same time. It is not possible to use this mode. The SPI part is working but the CODEC functionality is broken. 11.2.2 Workaround When CODEC and SPI required, either use a different PSC for the CODEC, or set the SPI to use the Timer Group pins. 11.3 11.3.1 PSC UART — No return from break state Description The PSC UART cannot get back to the normal operation from the break state if the receiver was disabled. 11.3.2 Workaround Do not reset RX during UART break state. 11.4 11.4.1 PSC Limitation of Codec/I2S slave mode Description The PSC receiver in Codec or I2S slave mode is not synchronized with the frame clock. Only the bit clock is used for the sampling of the serial data. An inaccurate external (master) bit clock can force the receiver out of sync. There is no embedded Schmitt trigger for the external (master) bit clock input. In an noisy environment, a bit clock could be lost or a spike could be sampled. In the case of an erroneous bit clock sequence, there is no indication of error and no workaround to bring the receiver back to sync. The receiver must be reset, the FiFo must be cleared, and the transmission must be started again. MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 17 11.4.2 Workaround Make sure that a clean external (master) bit clock is available. An external Schmitt trigger can be added to improve the quality of the bit clock signal. 11.5 11.5.1 PSC CODEC slave transmitter fail at DTS1=0 and ClkPol=1 Description The PSC CODEC slave transmitter mode does not work at the configuration DTS1 = 0 and ClkPol = 1. Incorrect data will be transferred. Affected are all CODEC ( softmodem and I2S) slave modes that use the DTS1 = 0 and ClkPol = 1 configuration. 11.5.2 Workaround There is no workaround. 12 SDRAM Controller 12.1 Self Refresh control in Deep Sleep Mode 12.1.1 Description The implemented S/W mechanism to control the SDRAM Self Refresh when entering and exiting Deep Sleep Mode does not work when the executed code is located in the external SDRAM. 12.1.2 Workaround The portion of the code which controls the SDRAM Self Refresh before entering and after exiting Deep Sleep Mode must be executed from Icache or external Flash memory. 12.2 12.2.1 CS access (339) Description There is problem when executing code from CS0 that writes data to CS1 of the SDRAM, and vice versa. As a result, exception 700 will be forced. MPC5200 (1L25R) Errata, Rev. 5 18 Freescale Semiconductor 12.2.2 Workaround Go through the standard method of calculating all command-to-command delays. When this is complete, determine the max of the parameters “srd2rwp,” “swt2rwp,” “brd2rp,” “brd2wt,” and “bwt2pre;” and set all of these parameters equal to that max value. By setting all of these delay timer fields equal, all CSes are refreshed at the same time. NOTE All of the delay timer fields are not the same width. swt2rwp is only 3 bits, while all others are 4 bits. It may not be possible to set swt2rwp equal to the others. In this case there is still a vulnerability in the specific case of a sm1 single-write followed by an access to a different CS. 13 SPI 13.1 SPIF bits set early for SPI clock < 200 kHz operation 13.1.1 Description At low clock frequency (SPI clock < 200 kHz), it looks like the SPIF bit is set in the SPI status register not after 8th SPI clock cycle, but a bit earlier (about 0.5 SPI_CLOCK). Writing new data into the SPI data register can cause a Write Collision (WCOL flag); i.e., the previous transfer is not yet completed. 13.1.2 Workaround The problem can be solved by putting a delay before the next data writing. 14 USB 14.1 USB register addresses for HccaFrameNumber and HccaPad1 are swapped 14.1.1 Description The Open Host Controller Interface (OHCI) specification describes the Host Controller Communication Area (HCCA), which is located inside the memory. The start address (base address) of that memory area is defined by the USB controller register HC Communication Register. The HCCA includes the "virtual" registers HccaFrameNumber and HccaPad1. The offsets are 0x80 (for HccaFrameNumber) and 0x82 (for HccaPad1). MPC5200 (1L25R) Errata, Rev. 5 Freescale Semiconductor 19 In the MPC5200 USB, these two virtual registers are swapped. The HccaFrameNumber is a copy of the Frame Number field at the USB HC Timing Reference Register. 14.1.2 Workaround A the “C-level,” swap the two variables in the HCCA structure. The error occurs if an OHCI-specified compiled USB driver is used, because this HCCA does not have the right structure. MPC5200 (1L25R) Errata, Rev. 5 20 Freescale Semiconductor Table 2. Revision history Rev. Number Substantive Changes 0.0 Initial release. 1.0 Added errata IDs 369 BDLC, 370 PSC, 415 MSCAN. 07/2003 I2C, 11/2003 1.1 Added errata IDs 319 PCI, 322 PCI, A11 PCI, 416 2.0 Added errata ID 433 PCI, removed 335. 03/2004 3.0 Added errata IDs 329 BestComm, 447, modified 433 PCI. 05/2004 4.0 Rebranded and reformatted. 08/2004 5.0 Added errata IDs ERR003383 e300 Core, 499 MSCAN, MUCts01373 MSCAN. 12/2011 How to Reach Us: Home Page: www.freescale.com Web Support: http://www.freescale.com/support USA/Europe or Locations Not Listed: Freescale Semiconductor, Inc. Technical Information Center, EL516 2100 East Elliot Road Tempe, Arizona 85284 1-800-521-6274 or +1-480-768-2130 www.freescale.com/support Europe, Middle East, and Africa: Freescale Halbleiter Deutschland GmbH Technical Information Center Schatzbogen 7 81829 Muenchen, Germany +44 1296 380 456 (English) +46 8 52200080 (English) +49 89 92103 559 (German) +33 1 69 35 48 48 (French) www.freescale.com/support Japan: Freescale Semiconductor Japan Ltd. Headquarters ARCO Tower 15F 1-8-1, Shimo-Meguro, Meguro-ku, Tokyo 153-0064 Japan 0120 191014 or +81 3 5437 9125 [email protected] Asia/Pacific: Freescale Semiconductor China Ltd. Exchange Building 23F No. 118 Jianguo Road Chaoyang District Beijing 100022 China +86 10 5879 8000 [email protected] Freescale Semiconductor Literature Distribution Center 1-800-441-2447 or +1-303-675-2140 Fax: +1-303-675-2150 [email protected] Document Number: MPC5200E Rev. 5 12/2011 Date of Release 429 PCI. 12/2003 Information in this document is provided solely to enable system and software implementers to use Freescale Semiconductor products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. Freescale Semiconductor reserves the right to make changes without further notice to any products herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale Semiconductor assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters that may be provided in Freescale Semiconductor data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals”, must be validated for each customer application by customer’s technical experts. Freescale Semiconductor does not convey any license under its patent rights nor the rights of others. Freescale Semiconductor products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Freescale Semiconductor product could create a situation where personal injury or death may occur. Should Buyer purchase or use Freescale Semiconductor products for any such unintended or unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Freescale Semiconductor was negligent regarding the design or manufacture of the part. RoHS-compliant and/or Pb-free versions of Freescale products have the functionality and electrical characteristics as their non-RoHS-compliant and/or non-Pb-free counterparts. For further information, see http://www.freescale.com or contact your Freescale sales representative. For information on Freescale’s Environmental Products program, go to http://www.freescale.com/epp. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2004, 2005, 2011. All rights reserved. MPC5200 (1L25R) Errata, Rev. 5 22 Freescale Semiconductor