powerpc/fsl-pci: Add a workaround for PCI 5 errata
authorchenhui zhao <chenhui.zhao@freescale.com>
Fri, 15 Jan 2016 09:38:20 +0000 (17:38 +0800)
committerScott Wood <oss@buserror.net>
Mon, 16 May 2016 00:18:48 +0000 (19:18 -0500)
commita8165d421dabd476d811f89942e345827f7b1497
tree8bec598aefbc1bebb263a11c9a8fdb8dc7071070
parent6a369fa28509c3b6a35db979d6fa97a075b94876
powerpc/fsl-pci: Add a workaround for PCI 5 errata

Issue:
As a master, the PCI IP block can combine a memory write to the last PCI
double word (4 bytes) of a cacheline with a 4 byte memory write to the
first PCI double word of the subsequent cacheline. This affects 32-bit
PCI target devices that blindly assert STOP on memory-write transactions,
without detecting that the data beat being transferred is the last data
beat of the transaction. It can cause a hang. PCI-X operation is not
affected by this erratum.

Workaround:
Setting the bit MDS in the PCI Bus Function Register will disable the
combining of crossing cacheline boundary requests into one burst
transaction. Therefore, it can prevent the errata scenario from
occurring.

This errata exists in MPC8543, MPC8543E, MPC8545, MPC8545E, MPC8547,
MPC8547E, MPC8548 and MPC8548E. Refer to PCI 5 in MPC8548 errata
document.

Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
Signed-off-by: Zhiqiang Hou <Zhiqiang.Hou@freescale.com>
[scottwood: whitespace fix]
Signed-off-by: Scott Wood <oss@buserror.net>
arch/powerpc/sysdev/fsl_pci.c