u-boot/cpu/ppc4xx
Adam Graham 075d0b81e8 ppc4xx: IBM Memory Controller DDR autocalibration routines
Alternate SDRAM DDR autocalibration routine that can be generically used
for any PPC4xx chips that have the IBM SDRAM Controller core allowing for
support of more DIMM/memory chip vendors and gets the DDR autocalibration
values which give the best read latency performance (SDRAM0_RDCC.[RDSS]).

Two alternate SDRAM DDR autocalibration algoritm are provided in this patch,
"Method_A" and "Method_B".  DDR autocalibration Method_A scans the full range
of possible PPC4xx  SDRAM Controller DDR autocalibration values and takes a
lot longer to run than Method_B.  Method_B executes in the same amount of time
as the currently existing DDR autocalibration routine, i.e. 1 second or so.
Normally Method_B is used and it is set as the default method.

The current U-Boot PPC4xx DDR autocalibration code calibrates the IBM SDRAM
Controller registers.[bit-field]:
1)  SDRAM0_RQDC.[RQFD]
2)  SDRAM0_RFDC.[RFFD]

This alternate PPC4xx DDR autocalibration code calibrates the following
IBM SDRAM Controller registers.[bit-field]:

1)  SDRAM0_WRDTR.[WDTR]
2)  SDRAM0_CLKTR.[CKTR]
3)  SDRAM0_RQDC.[RQFD]
4)  SDRAM0_RFDC.[RFFD]

and will also use the calibrated settings of the above four registers that
produce the best "Read Sample Cycle Select" value in the SDRAM0_RDCC.[RDSS]
register.[bit-field].

Signed-off-by: Adam Graham <agraham@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-09-05 12:03:44 +02:00
..
4xx_enet.c ppc4xx: Rework 440GX UIC handling 2008-07-11 13:18:14 +02:00
4xx_ibm_ddr2_autocalib.c ppc4xx: IBM Memory Controller DDR autocalibration routines 2008-09-05 12:03:44 +02:00
4xx_pci.c Big white-space cleanup. 2008-05-21 00:14:08 +02:00
4xx_pcie.c ppc4xx: AMCC PPC460GT/EX PCI-E de-emphasis adjustment fix 2008-08-22 10:31:41 +02:00
4xx_uart.c ppc4xx: Consolidate PPC4xx UIC defines 2008-07-11 13:18:13 +02:00
40x_spd_sdram.c Code cleanup: fix old style assignment ambiguities like "=-" etc. 2008-07-14 15:19:07 +02:00
44x_spd_ddr.c ppc4xx: Consolidate PPC4xx SDRAM/DDR/DDR2 defines, part1 2008-06-03 20:21:53 +02:00
44x_spd_ddr2.c ppc4xx: Optimizations/Cleanups for IBM DDR2 Memory Controller 2008-08-29 10:01:36 +02:00
bedbug_405.c cpu/[7a-ln-z]*: Remove obsolete references to CONFIG_COMMANDS 2007-07-09 18:57:22 -05:00
cache.S ppc4xx: Add dcache_enable() for 440 2008-04-22 12:26:33 +02:00
commproc.c PPC4xx: Simplified post_word_{load, store} 2008-06-03 20:20:01 +02:00
config.mk cpu/ppc4xx/config.mk: Make a needlessly deffered expansion immediate. 2008-02-23 09:44:54 +01:00
cpu.c ppc4xx: CPU PPC440x5 on Virtex5 FX 2008-07-18 12:30:50 +02:00
cpu_init.c ppc4xx: Cleanup of "ppc4xx: Optimize PLB4 Arbiter..." patch 2008-08-21 11:05: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 ppc4xx: Remove weak binding from common Denali data-eye search code 2008-01-05 10:14:56 +01:00
denali_spd_ddr2.c ppc4xx: Fix printf format warnings now visible with the updated format check 2008-07-10 09:58:06 +02:00
ecc.c ppc4xx: Use new 4xx SDRAM controller enable defines in common ECC code 2008-06-03 20:22:13 +02:00
ecc.h ppc4xx: Fix common ECC generation code for 440GP style platforms 2008-06-03 20:22:08 +02:00
fdt.c fdt: rework fdt_fixup_ethernet() to use env instead of bd_t 2008-08-21 02:07:43 +02:00
gpio.c ppc4xx: Fix problem in gpio_config() 2008-06-23 11:15:09 +02:00
i2c.c Big white-space cleanup. 2008-05-21 00:14:08 +02: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 ppc4xx: CPU PPC440x5 on Virtex5 FX 2008-07-18 12:30:50 +02:00
miiphy.c ppc4xx: miiphy.c reworked 2008-03-15 07:28:03 +01:00
ndfc.c ppc4xx/NAND: Add select_chip function to 4xx NDFC driver 2008-08-30 11:24:54 +02:00
resetvec.S * Code cleanup: 2003-06-27 21:31:46 +00:00
sdram.c Change initdram() return type to phys_size_t 2008-06-12 08:50:18 +02:00
sdram.h ppc4xx: Add initial Zeus (PPC405EP) board support 2007-08-14 14:44:41 +02:00
speed.c ppc4xx: CPU PPC440x5 on Virtex5 FX 2008-07-18 12:30:50 +02:00
start.S ppc4xx: Add initial 460SX defines for the cpu/ppc4xx directory. 2008-07-11 13:18:12 +02: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 ppc4xx: Make USB working with CONFIG_4xx_DCACHE defined 2007-11-09 16:42:15 +01:00
usb_ohci.c Big white-space cleanup. 2008-05-21 00:14:08 +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 Add support for AMCC PPC440EP/GR eval boards Yosemite and Yellowstone. 2005-08-01 16:41:48 +02:00
xilinx_irq.c ppc4xx: CPU PPC440x5 on Virtex5 FX 2008-07-18 12:30:50 +02:00