TRANSPORTATION SYSTEMS GROUP
CUSTOMER ERRATA AND INFORMATION SHEET
Part: MPC565.0A Mask Set: 01K85H
General Business Use
Report Generated: Wed Jun 14, 2000, 11:54:18
Page 6
___________________________________________________________________________________
CDR_AR_755 Customer Erratum DLCMD2.CDR3IMB3_03_0
DLCMD2 switching into 1x-4x mode
DESCRIPTION:
If 4x mode is entered before the symbol counter value reaches the normal mode TIFS
value but after the counter has passed the 4x mode TIFS value, the module will
hang.Before a transmitter can send an SOF (which resets the symbol counter) it must
wait for either of the two following conditions. One, TIFS must have been reached.
Two, REOF and a rising edge from another module must have been detected. The second
condition means that if another module tries to access the bus before TIFS and
after REOF then we can also contend and try and gain access to the bus. If no other
module is trying to access the bus then condition two won’t occur.The symbol
counter does not reset when the mode is changed. This means that if the module is
put into 4x mode before the normal mode TIFSvalue has been detected (which would
signal an SOF and reset the counter) the module will keep counting until it reaches
its max value and holds. Since the counter is stuck at its max value the module
cannever detect any symbols on the bus so it will hang until reset.
WORKAROUND:
Software work-around: Wait for TIFS before changing to/from 4x mode. To wait for
TIFS the difference between the normal mode REOF and TIFS values must be found.
Once that value is determined, wait for bus_idle (REOF), which can be polled for,
and wait (TIFS - REOF) amount of time.
___________________________________________________________________________________
CDR_AR_758 Customer Erratum DLCMD2.CDR3IMB3_03_0
DLCMD2 Temporary Interrupt Deassertions
DESCRIPTION:
Writes to the CMD/TDATA register or reads of the STAT/RDATA register during a
pending DLCMD2 interrupt cause a temporary deassertion of the interrupt signal.
One of two things can happen at this point. One, the CPU will generate a level zero
IACK cycle because the interrupt line is currently deasserted.Two, the deassertion
could occur after the CPU latches the DLCMD2 interrupt request. Since the
interrupt line is deasserted the DLCMD2 will not respond to the CPU’s IACK cycle
and a spurious interupt will occur.
WORKAROUND:
If interrupts are disabled before the register accesses are performed and then
enabled after the accesses the interrupt deassertions can not occur. However, it
may be necessary on parts that use a CPU32X/FASRAM combination to insert a NOP
instructions after the last register access and before the interrupt enabling.
This is due to the fact that the FASRAM has a dedicated bus to the CPU32X which
allows much faster accesses between it and the CPU32X then the CPU32X has between
itself and another IMB module such as the DLCMD2. If the Program stack is being
kept in the FASRAM it is possible that the CPU32X’s instruction to enable
interrupts, which would only require a stack access to check the status register,
will occur before its access of the DLCMD2’s register. Since interrupts will no
longer be disabled, the register access could cause an interrupt deassertion.