u-boot-brain/cpu
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
..
74xx_7xx Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
arm720t Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
arm920t usb.h: use standard __LITTLE_ENDIAN from Linux headers 2009-01-28 19:57:29 +01:00
arm925t Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
arm926ejs Initial support for Nomadik 8815 development board 2009-01-24 18:10:37 +01:00
arm946es Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
arm1136 Change to use "do_div" macro 2008-11-04 23:40:05 +01:00
arm1176 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
arm_cortexa8 Coding style cleanup; update CHANGELOG 2009-02-12 00:08:39 +01:00
arm_intcm Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
at32ap rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
blackfin Blackfin: dynamically update UART speed when initializing 2009-02-05 21:25:35 -05:00
i386 pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
ixp ixp: move serial to drivers/serial 2009-01-31 10:16:02 +01:00
leon2 Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
leon3 Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
lh7a40x Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
mcf52x2 Coldfire: M5271: Allow board header file to specify clock multiplier 2009-02-06 14:54:47 -07:00
mcf523x Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
mcf532x Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
mcf547x_8x pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
mcf5227x Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
mcf5445x pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
microblaze microblaze: Use cache functions (especially cache status) 2009-01-23 10:40:00 +01:00
mips usb.h: use standard __LITTLE_ENDIAN from Linux headers 2009-01-28 19:57:29 +01:00
mpc5xx Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
mpc5xxx pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
mpc8xx 8xx serial, smc: Coding-Style cleanup serial SMC driver 2009-02-11 23:18:14 +01:00
mpc8xxx/ddr fsl-ddr: use the 1T timing as default configuration 2009-01-23 17:03:14 -06:00
mpc83xx pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
mpc85xx Add secondary CPUs processor frequency for e500 core 2009-01-23 17:03:14 -06:00
mpc86xx mpc86xx: Add support to populate addr map based on BATs 2009-02-10 00:29:49 +01:00
mpc512x ADS5121 Add IC Ident Module (IIM) support 2009-02-03 15:40:20 -07:00
mpc824x pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
mpc8220 pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarity 2009-02-07 23:50:04 +01:00
mpc8260 Fix MPC8260 with ethernet on SCC 2009-02-09 22:47:06 -08:00
nios Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
nios2 Command usage cleanup 2009-01-28 08:49:52 +01:00
ppc4xx ppc4xx: Autocalibration can set RDCC to over aggressive value. 2009-02-12 06:08:07 +01:00
pxa i2c: merge all i2c_reg_read() and i2c_reg_write() into inline functions 2008-12-15 23:46:21 +01:00
s3c44b0 Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
sa1100 Remove compiler warning: target CPU does not support interworking 2008-12-13 23:41:23 +01:00
sh2 sh: Fix up rsk7203 target for out of tree build 2009-01-16 10:22:27 +09:00
sh3 sh: Update sh timer function 2008-12-10 23:11:35 +09:00
sh4 sh: sh_eth: Change new network API 2009-01-24 20:45:51 -08:00