u-boot/cpu/ppc4xx
Adam Graham c645012aef ppc4xx: Autocalibration can set RDCC to over aggressive value.
The criteria of the AMCC SDRAM Controller DDR autocalibration
U-Boot code is to pick the largest passing write/read/compare
window that also has the smallest SDRAM_RDCC.[RDSS] Read Sample
Cycle Select value.

On some Kilauea boards the DDR autocalibration algorithm can
find a large passing write/read/compare window with a small
SDRAM_RDCC.[RDSS] aggressive value of Read Sample Cycle Select
value "T1 Sample".

This SDRAM_RDCC.[RDSS] Read Sample Cycle Select value of
"T1 Sample" proves to be to aggressive when later on U-Boot
relocates into DDR memory and executes.

The memory traces on the Kilauea board are short so on some
Kilauea boards the SDRAM_RDCC.[RDSS] Read Sample Cycle Select
value of "T1 Sample" shows up as a potentially valid value for
the DDR autocalibratiion algorithm.

The fix is to define a weak default function which provides
the minimum SDRAM_RDCC.[RDSS] Read Sample Cycle Select value
to accept for DDR autocalibration.  The default will be the
"T2 Sample" value.  A board developer who has a well defined
board and chooses to be more aggressive can always provide
their own board specific string function with the more
aggressive "T1 Sample" value or stick with the default
minimum SDRAM_RDCC.[RDSS] value of "T2".

Also put in a autocalibration loop fix for case where current
write/read/compare passing window size is the same as a prior
window size, then in this case choose the write/read/compare
result that has the associated smallest RDCC T-Sample value.

Signed-off-by: Adam Graham <agraham@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2009-02-12 06:08:07 +01:00
..
4xx_ibm_ddr2_autocalib.c ppc4xx: Autocalibration can set RDCC to over aggressive value. 2009-02-12 06:08:07 +01:00
4xx_pci.c pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
4xx_pcie.c ppc4xx: Make PCIE support selectable 2009-02-06 11:06:19 +01:00
4xx_uart.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
40x_spd_sdram.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
44x_spd_ddr.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
44x_spd_ddr2.c ppc: Move CONFIG_MAX_MEM_MAPPED to common config.h 2009-02-10 00:44:13 +01:00
bedbug_405.c Standardize command usage messages with cmd_usage() 2009-01-28 08:43:45 +01:00
cache.S rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
commproc.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
config.mk cpu/ppc4xx/config.mk: Make a needlessly deffered expansion immediate. 2008-02-23 09:44:54 +01:00
cpu.c Coding style cleanup, update CHANGELOG. 2008-12-16 01:02:17 +01:00
cpu_init.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
dcr.S cpu/ rtc/ include/: Remove lingering references to CFG_CMD_* symbols. 2007-07-10 10:27:39 -05:00
denali_data_eye.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
denali_spd_ddr2.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ecc.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ecc.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
fdt.c ppc4xx: Only fixup opb attached UARTs 2009-02-06 10:53:15 +01:00
gpio.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
i2c.c i2c: merge all i2c_reg_read() and i2c_reg_write() into inline functions 2008-12-15 23:46:21 +01:00
interrupts.c ppc4xx: Minor coding style cleanup of Xilinx Virtex5 ml507 support 2008-07-18 12:31:25 +02:00
iop480_uart.c ppc4xx: Consolidate PPC4xx UIC defines 2008-07-11 13:18:13 +02:00
kgdb.S Big white-space cleanup. 2008-05-21 00:14:08 +02:00
Makefile Moved PPC4xx EMAC driver to drivers/net 2008-11-09 21:38:04 -08:00
miiphy.c Cleanup: fix "MHz" spelling 2008-10-21 11:25:39 +02:00
ndfc.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
resetvec.S * Code cleanup: 2003-06-27 21:31:46 +00:00
sdram.c ppc4xx: Improve DDR autodetect 2009-01-26 10:13:11 +01:00
sdram.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
speed.c Cleanup: fix "MHz" spelling 2008-10-21 11:25:39 +02:00
start.S Coding style cleanup, update CHANGELOG. 2008-12-16 01:02:17 +01:00
tlb.c ppc4xx: Fix printf format warnings now visible with the updated format check 2008-07-10 09:58:06 +02:00
traps.c ppc4xx: Fix printf format warnings now visible with the updated format check 2008-07-10 09:58:06 +02:00
uic.c ppc4xx: fix UIC external_interrupt hang on UIC0 2008-08-29 10:13:59 +02:00
usb.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
usb_ohci.c Merge git://git.denx.de/u-boot into x1 2008-10-21 09:18:01 +02:00
usb_ohci.h Add support for AMCC PPC440EP/GR eval boards Yosemite and Yellowstone. 2005-08-01 16:41:48 +02:00
usbdev.c ppc4xx: Consolidate PPC4xx UIC defines 2008-07-11 13:18:14 +02:00
usbdev.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
xilinx_irq.c ppc4xx: CPU PPC440x5 on Virtex5 FX 2008-07-18 12:30:50 +02:00