u-boot/include
Stefan Roese a27044b14a ppc4xx: Enable hardware-fix for PCI/DMA errata on AMCC 440SP/SPe boards
This patch enables the hardware-fix for the PCI/DMA errata's 19+22 by
setting the FIXD bit in the SDR0_MFR register. Here a description of the
symptoms:

Problem Description
------------------------------
If a DMA is performed between memory and PCI with the DMA 1 Controller
using prefetch, and as a result uses a special purpose buffer selected by
the PCIXn Bridge Options 1 Register (PCIXn_BRDGOPT1[RBP7] - bits 31-29),
the first part of the transfer sequence is performed twice. The
PPC440SPe PCI Controller requests more data than was needed such that in
the case of enforce memory protection, a host CPU  exception can occur.
No data is corrupted, because data transfer is stopped in the PCI
Controller. Prefetch enable is specified by setting DMA Configuration
Register (I2O0_DMAx_CFG[DXEPD] - bit 31) to 0.

Behavior that may be observed in a running system
---------------------------------------------------------------------------

1. DMA performance is decreased because of the double access on the PCI bus
interface.
2. If an illegal access to some address on the PCI bus is detected at the
system level, a machine check or similar system error may occur.

Workarounds Available
----------------------------------

1. Do not program prefetch. Note that a prefetch command cannot be programmed
without selecting a special purpose buffer.
2. To avoid crossing a physical boundary of the PCI slave device, add 512
bytes of address to the PCI address range.

This patch was originally provided by Pravin M. Bathija <pbathija@amcc.com>
from AMCC and slighly changed.

Signed-off-by: Pravin M. Bathija <pbathija@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-06 05:58:43 +01:00
..
asm-arm Move coloured led API to status_led.h 2007-09-18 13:07:54 +01:00
asm-avr32 AVR32: Change prototype of memset 2007-08-27 14:56:29 +02:00
asm-blackfin [Blackfin][PATCH] Fix dynamic CPLB generation issue 2007-04-05 18:33:04 +08:00
asm-i386 [PATCH v3] Add sync to ensure flash_write_cmd is fully finished 2007-02-21 16:52:31 +01:00
asm-m68k ColdFire: Add M5235EVB Platform for MCF523x 2007-08-17 11:36:29 -06:00
asm-microblaze Fix a few file permission problems. 2007-07-04 00:43:53 +02:00
asm-mips Mips: Fix string functions differ prototype declaration 2007-10-24 00:29:31 +02:00
asm-nios [PATCH v3] Add sync to ensure flash_write_cmd is fully finished 2007-02-21 16:52:31 +01:00
asm-nios2 [PATCH v3] Add sync to ensure flash_write_cmd is fully finished 2007-02-21 16:52:31 +01:00
asm-ppc ppc4xx: Enable 405EX PCIe UTL register configuration 2007-11-16 14:16:54 +01:00
bedbug * Code cleanup: 2003-06-27 21:31:46 +00:00
configs ppc4xx: Yosemite/Yellowstone: Add DTT AD7414 support 2007-12-04 16:29:48 +01:00
cramfs Add cramfs support for m68k 2005-09-25 16:59:36 +02:00
galileo More code cleanup 2006-07-21 15:24:56 +02:00
jffs2 Add common (with Linux) MTD partition scheme and "mtdparts" command 2005-08-08 01:03:24 +02:00
linux OneNAND support (take #2) 2007-09-17 08:19:08 +02:00
pcmcia Fix IDE stability problems on CPC45 board. 2005-01-22 18:26:04 +00:00
4xx_i2c.h ppc4xx: Add PPC405EX support 2007-10-31 21:20:49 +01:00
74xx_7xx.h [ppc] Fix build breakage for all non-4xx PowerPC variants. 2007-06-22 14:58:04 +02:00
405_dimm.h * Code cleanup: 2003-06-27 21:31:46 +00:00
405_mal.h ppc4xx: Add PPC405EX support 2007-10-31 21:20:49 +01:00
_exports.h [ARM] TI DaVinci support, hopefully final 2007-08-10 20:26:18 +02:00
ACEX1K.h Add FPGA Altera Cyclone 2 support 2006-08-15 14:15:51 +02:00
ahci.h Add AHCI support to u-boot 2006-08-23 10:39:01 -05:00
altera.h Add FPGA Altera Cyclone 2 support 2006-08-15 14:15:51 +02:00
arm920t.h * Code cleanup: 2003-06-27 21:31:46 +00:00
arm925t.h [PATCH] omap925.c: Remove unused functions 2006-10-28 17:13:12 +02:00
arm926ejs.h * Patch by George G. Davis, 19 Aug 2003: 2003-08-29 22:00:43 +00:00
arm946es.h Add ARM946E cpu and core module targets; remap memory to 0x00000000 2005-09-25 01:48:28 +02:00
armcoremodule.h Update ARM Integrator boards: 2005-10-04 23:10:28 +02:00
at45.h Coding style cleanup. Update CHANGELOG. 2007-08-14 18:42:36 +02:00
at91rm9200_i2c.h Code Cleanup 2004-10-10 18:03:33 +00:00
at91rm9200_net.h * Move dm9161.c and lxt972.c into cpu/arm920t/at91rm9200 2005-10-05 01:51:29 +02:00
ata.h Minor coding style cleanup. 2007-05-15 23:38:05 +02:00
bcd.h rtc: Add Xicor/Intersil X1205 RTC support 2007-10-31 21:20:50 +01:00
bcm5221.h Add support for Cogent csb637 2005-10-05 02:00:09 +02:00
bmp_layout.h * Implement new mechanism to export U-Boot's functions to standalone 2003-07-24 23:38:38 +00:00
bzlib.h * Patches by Xianghua Xiao, 15 Oct 2003: 2003-10-15 23:53:47 +00:00
circbuf.h Add support for Siemens SX1 mobile phone; 2004-03-12 00:14:09 +00:00
clps7111.h Initial revision 2002-03-14 16:44:03 +00:00
command.h Remove references to the old cmd_confdefs.h include file. 2007-07-08 16:06:51 -05:00
common.h ppc4xx: Enable 405EX PCIe UTL register configuration 2007-11-16 14:16:54 +01:00
commproc.h Add support for TQM885D board. 2006-07-12 15:26:01 +02:00
config_cmd_all.h Merge branch 'master' of git://www.denx.de/git/u-boot-nand-flash 2007-10-13 21:40:23 +02:00
config_cmd_default.h include/ non-config: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*). 2007-07-04 00:35:14 +02:00
console.h Initial revision 2000-11-12 23:38:42 +00:00
crc.h Some code cleanup 2006-04-16 10:51:58 +02:00
da9030.h This patch adds USB storage support for the delta board. This is the first 2006-05-22 16:33:54 +02:00
dataflash.h Coding style cleanup. Update CHANGELOG. 2007-08-14 18:42:36 +02:00
devices.h Add support for console over UDP (compatible to Ingo Molnar's 2004-08-02 21:11:11 +00:00
div64.h Move 64bit division from avr32 to generic lib 2007-08-10 10:33:34 +02:00
dm9161.h Add MACH_TYPE records for several AT91 boards. 2007-08-14 10:10:52 +01:00
dp83848.h [ARM] TI DaVinci support, hopefully final 2007-08-10 20:26:18 +02:00
dtt.h ppc4xx: Add support for AMCC 405EP Taihu board 2007-07-26 17:49:11 +02:00
e500.h Patch by Jon Loeliger, 16 Jul 2004: 2004-08-01 23:02:45 +00:00
elf.h * Fix parameter passing to standalone images with bootm command 2003-10-30 21:49:38 +00:00
environment.h [PATCH] Select NAND embedded environment from board configuration 2006-11-27 17:34:10 +01:00
exports.h [ARM] TI DaVinci support, hopefully final 2007-08-10 20:26:18 +02:00
ext2fs.h ext2fs support added 2004-12-16 17:33:10 +00:00
fat.h Fix fatload command on FAT32 formatted partitions. 2006-08-14 22:05:26 +02:00
fdc.h * Code cleanup: 2003-06-27 21:31:46 +00:00
fdt.h libfdt: Make fdt_check_header() public 2007-04-06 14:17:14 -04:00
fdt_support.h Call ft_board_setup() from the bootm command. 2007-08-10 19:21:36 -04:00
flash.h Add MACH_TYPE records for several AT91 boards. 2007-08-14 10:10:52 +01:00
fpga.h Cleanup for GCC-4.x 2005-10-13 16:45:02 +02:00
ft_build.h * Fix a bunch of compiler warnings for gcc 4.0 2006-10-19 11:33:52 -05:00
hush.h Initial revision 2002-11-03 00:07:02 +00:00
i2c.h [PATCH] I2C: Add missing default CFG_SPD_BUS_NUM 2007-03-08 22:16:00 +01:00
i8042.h * Patch by Marc Singer, 29 May 2003: 2003-05-31 18:35:21 +00:00
ide.h IDE: - make ide_inb () and ide_outb () "weak", so boards can 2007-08-28 17:39:14 +02:00
image.h Allocate CPU Architecture Code for STMicroelectronics' ST200. 2007-09-10 22:24:23 +02:00
ioports.h Code cleanup. 2006-11-30 18:02:20 +01:00
keyboard.h [Strange. I _did_ check these in before. Seems SF restored an old 2004-01-16 00:30:56 +00:00
kgdb.h Initial revision 2002-08-27 10:38:37 +00:00
lcd.h include/: Remove obsolete references to CONFIG_COMMANDS 2007-07-09 17:15:49 -05:00
lcdvideo.h Initial revision 2001-11-03 22:15:16 +00:00
lh7a40x.h * Patch by Paul Ruhland, 10 Jun 2004: 2004-06-10 21:55:33 +00:00
lh7a400.h * Patch by Paul Ruhland, 10 Jun 2004: 2004-06-10 21:55:33 +00:00
lh7a404.h * Patch by Paul Ruhland, 10 Jun 2004: 2004-06-10 21:55:33 +00:00
libfdt.h libfdt: add convenience function fdt_find_and_setprop() 2007-09-06 09:46:17 -06:00
libfdt_env.h Minor code clean up. 2007-08-10 19:21:35 -04:00
linux_logo.h Initial revision 2002-09-17 21:37:55 +00:00
lists.h * Code cleanup: 2003-06-27 21:31:46 +00:00
logbuff.h Adapt log buffer code to support Linux 2.6 2007-06-22 23:25:25 +02:00
lpd7a400_cpld.h * Patch by Paul Ruhland, 17 May 2004: 2004-06-09 13:37:52 +00:00
lxt971a.h Patches by Lars Munch, 12 Jul 2004: 2004-08-02 23:39:03 +00:00
lynxkdi.h * Patch by Scott McNutt, 21 Jul 2003: 2003-07-27 00:21:01 +00:00
malloc.h * Code cleanup: 2003-06-27 21:31:46 +00:00
mii_phy.h * Code cleanup: 2003-06-27 21:31:46 +00:00
miiphy.h Fix miiphy global data initialization (problem on 4xx boards when no 2005-11-30 18:06:04 +01:00
mk48t59.h include/: Remove obsolete references to CONFIG_COMMANDS 2007-07-09 17:15:49 -05:00
mmc.h * Fix CONFIG_NET_MULTI support in include/net.h 2003-06-15 22:40:42 +00:00
mpc5xx.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
mpc5xxx.h [ppc] Fix build breakage for all non-4xx PowerPC variants. 2007-06-22 14:58:04 +02:00
mpc8xx.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
mpc8xx_irq.h Initial revision 2001-04-28 17:59:11 +00:00
mpc83xx.h mpc83xx: implement board_add_ram_info 2007-08-16 23:12:24 -05:00
mpc85xx.h 85xx start.S cleanup and exception support 2007-08-14 01:34:21 -05:00
mpc86xx.h [ppc] Fix build breakage for all non-4xx PowerPC variants. 2007-06-22 14:58:04 +02:00
mpc106.h * Code cleanup: 2003-06-27 21:31:46 +00:00
mpc512x.h Coding style cleanup, update CHANGELOG 2007-08-02 21:27:46 +02:00
mpc824x.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
mpc8220.h [ppc] Fix build breakage for all non-4xx PowerPC variants. 2007-06-22 14:58:04 +02:00
mpc8260.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
mpc8260_irq.h Patches by Murray Jensen, 17 Jun 2003: 2003-06-19 23:40:20 +00:00
nand.h [patch] add nand_init() prototype to nand.h 2007-06-22 10:34:12 +02:00
net.h multicast tftp: RFC2090 2007-08-13 23:22:31 -04:00
nios-io.h Patch by Scott McNutt, 25 Apr 2004: 2004-05-19 21:33:14 +00:00
nios.h * Patch by Scott McNutt, 04 Oct 2003: 2003-10-08 23:26:14 +00:00
nios2-epcs.h Nios II - Add EPCS Controller bootrom work-around 2006-06-08 12:08:12 -04:00
nios2-io.h * Patch by Scott McNutt, 21 Oct 2004: 2005-03-30 23:28:18 +00:00
nios2.h Patches by Scott McNutt, 24 Aug 2004: 2004-10-10 21:27:30 +00:00
ns7520_eth.h Add support for NetSilicon NS7520 processor. 2005-10-09 01:41:48 +02:00
ns9750_bbus.h * Patch by Markus Pietrek, 24 Feb 2004: 2004-02-26 23:46:20 +00:00
ns9750_eth.h Patches by Lars Munch, 12 Jul 2004: 2004-08-02 23:39:03 +00:00
ns9750_mem.h * Patch by Markus Pietrek, 24 Feb 2004: 2004-02-26 23:46:20 +00:00
ns9750_ser.h * Patch by Markus Pietrek, 24 Feb 2004: 2004-02-26 23:46:20 +00:00
ns9750_sys.h * Patch by Markus Pietrek, 24 Feb 2004: 2004-02-26 23:46:20 +00:00
ns16550.h Add support for TB5200 board 2006-07-19 13:50:38 +02:00
ns87308.h Initial revision 2002-04-01 14:29:03 +00:00
onenand_uboot.h OneNAND support (take #2) 2007-09-17 08:19:08 +02:00
part.h fix pxa255_idp board 2007-10-23 16:40:40 +02:00
pc_keyb.h [Strange. I _did_ check these in before. Seems SF restored an old 2004-01-16 00:30:56 +00:00
pci.h Make MPC8641's PCI/PCI-E driver a common driver for many FSL parts. 2007-08-06 00:22:24 +02:00
pci_ids.h Change Id to symbolic name for RTL8139 2006-06-28 08:43:56 -05:00
pcmcia.h cpu/ rtc/ include/: Remove lingering references to CFG_CMD_* symbols. 2007-07-10 10:27:39 -05:00
post.h POST: Add ECC POST for the lwmon5 board 2007-07-20 15:03:03 +02:00
ppc4xx.h ppc4xx: Consolidate some of the 405 and 440 macros/structs into 4xx 2007-10-31 21:20:50 +01:00
ppc4xx_enet.h ppc4xx: Change 4xx ethernet driver to handle cached memory too 2007-10-31 21:21:47 +01:00
ppc405.h ppc4xx: Enable 440 GPIO init table CFG_440_GPIO_TABLE for 405 platforms 2007-11-15 14:23:55 +01:00
ppc440.h ppc4xx: Enable hardware-fix for PCI/DMA errata on AMCC 440SP/SPe boards 2007-12-06 05:58:43 +01:00
ppc_asm.tmpl e500 needs ppc_asm.tmp MCK_EXCEPTION 2007-08-14 01:21:22 -05:00
ppc_defs.h Initial revision 2000-07-19 14:09:16 +00:00
ps2mult.h * The PS/2 mux on the BMS2003 board needs 450 ms after power on 2004-01-20 23:12:12 +00:00
radeon.h Coding style cleanup. Update CHANGELOG. 2007-08-06 02:17:36 +02:00
reiserfs.h Code cleanup 2004-03-25 15:14:43 +00:00
rtc.h Initial revision 2001-04-09 21:43:07 +00:00
s3c24x0.h * Code cleanup: 2003-06-27 21:31:46 +00:00
s3c2400.h Cleanup trab board for GCC-4.x 2006-06-26 10:54:52 +02:00
s3c2410.h Fix compiler warning in include/s3c2410.h 2007-08-29 02:05:53 +02:00
s_record.h Initial revision 2001-04-28 17:59:11 +00:00
SA-1100.h * Code cleanup: 2003-06-27 21:31:46 +00:00
sa1100.h Initial revision 2002-03-27 13:48:44 +00:00
sata.h Fix S-ATA support. 2007-06-30 18:50:48 +02:00
scsi.h * Code cleanup: 2003-06-27 21:31:46 +00:00
sed156x.h * Patches by Pantelis Antoniou, 30 Mar 2004: 2004-04-15 21:16:42 +00:00
sed13806.h * Code cleanup: 2003-06-27 21:31:46 +00:00
serial.h ppc4xx: Add PPC405EX support 2007-10-31 21:20:49 +01:00
sha1.h Coding style cleanup; update CHANGELOG. 2007-07-10 00:01:28 +02:00
sm501.h Add SM501 support to HH405 board. 2005-09-22 09:04:17 +02:00
smiLynxEM.h * Code cleanup: 2003-06-27 21:31:46 +00:00
spartan2.h * Patch by Kurt Stremerch, 03 Sep 2004: 2005-01-09 17:19:34 +00:00
spartan3.h add image size and descriptors for Spartan 3E FPGA chips 2007-08-11 00:34:03 +02:00
spd.h Fix style issues primarily in 85xx and 83xx boards. 2005-08-01 13:20:47 -05:00
spd_sdram.h Support for DDR with 32-data path. Addotional notes on injecting 2006-03-16 17:46:46 +01:00
spi.h Initial revision 2002-09-26 02:01:47 +00:00
status_led.h Coding Style cleanup. 2007-10-13 21:15:39 +02:00
sym53c8xx.h * Code cleanup: 2003-06-27 21:31:46 +00:00
systemace.h * CVS add missing files 2004-02-23 16:11:30 +00:00
tsi108.h Clean up the code according to codestyle: 2006-12-01 11:47:36 +08:00
universe.h Code cleanup. 2004-12-16 21:44:03 +00:00
usb.h USB event poll support 2007-06-06 10:08:13 +02:00
usb_cdc_acm.h Code cleanup 2006-06-14 18:14:56 +02:00
usb_defs.h Remove unnecessary defines from usb_defs.h again. 2005-08-02 15:08:46 +02:00
usbdcore.h Various USB related patches 2006-06-14 17:45:53 +02:00
usbdcore_ep0.h Add support for Siemens SX1 mobile phone; 2004-03-12 00:14:09 +00:00
usbdcore_mpc8xx.h Code cleanup 2006-06-14 18:14:56 +02:00
usbdcore_omap1510.h Various USB related patches 2006-06-14 17:45:53 +02:00
usbdescriptors.h Code cleanup 2006-06-14 18:14:56 +02:00
version.h Add GIT version information (commid ID) to untagged U-Boot versions 2006-02-21 17:33:04 +01:00
vfd_logo.h * Add support for arbitrary bitmaps for TRAB's VFD command 2003-05-20 20:49:01 +00:00
video.h Initial revision 2001-11-03 22:21:15 +00:00
video_ad7176.h * Patches by Yuli Barcohen, 13 Jul 2003: 2003-07-14 22:13:32 +00:00
video_ad7177.h * Patches by Yuli Barcohen, 13 Jul 2003: 2003-07-14 22:13:32 +00:00
video_ad7179.h * Add support for IceCube board (with MGT5100 and MPC5200 CPUs) 2003-07-16 21:53:01 +00:00
video_easylogo.h Initial revision 2001-11-03 22:21:15 +00:00
video_fb.h * Code cleanup: 2003-06-27 21:31:46 +00:00
video_font.h Initial revision 2000-10-25 11:24:22 +00:00
video_logo.h Initial revision 2002-11-03 00:38:21 +00:00
virtex2.h Initial revision 2002-11-03 00:24:07 +00:00
w83c553f.h Initial revision 2002-03-08 21:31:05 +00:00
watchdog.h Cleanup (PPC4xx is AMCC now) 2005-09-23 11:05:55 +02:00
xilinx.h Add Xilinx Spartan3 family FPGA support 2005-09-25 16:44:21 +02:00
xyzModem.h More code cleanup 2006-07-21 15:24:56 +02:00
zlib.h * Code cleanup: 2003-06-27 21:31:46 +00:00