1e31d2c1eSJon Loeliger /* 2e31d2c1eSJon Loeliger * Copyright 2008 Freescale Semiconductor, Inc. 3e31d2c1eSJon Loeliger * 4*5b8031ccSTom Rini * SPDX-License-Identifier: GPL-2.0 5e31d2c1eSJon Loeliger */ 6e31d2c1eSJon Loeliger 7e31d2c1eSJon Loeliger #include <common.h> 8e31d2c1eSJon Loeliger 95614e71bSYork Sun #include <fsl_ddr_sdram.h> 105614e71bSYork Sun #include <fsl_ddr_dimm_params.h> 11e31d2c1eSJon Loeliger fsl_ddr_board_options(memctl_options_t * popts,dimm_params_t * pdimm,unsigned int ctrl_num)12dfb49108SHaiying Wangvoid fsl_ddr_board_options(memctl_options_t *popts, 13dfb49108SHaiying Wang dimm_params_t *pdimm, 14dfb49108SHaiying Wang unsigned int ctrl_num) 15e31d2c1eSJon Loeliger { 16e31d2c1eSJon Loeliger /* 17e31d2c1eSJon Loeliger * Factors to consider for clock adjust: 18e31d2c1eSJon Loeliger * - number of chips on bus 19e31d2c1eSJon Loeliger * - position of slot 20e31d2c1eSJon Loeliger * - DDR1 vs. DDR2? 21e31d2c1eSJon Loeliger * - ??? 22e31d2c1eSJon Loeliger * 23e31d2c1eSJon Loeliger * This needs to be determined on a board-by-board basis. 24e31d2c1eSJon Loeliger * 0110 3/4 cycle late 25e31d2c1eSJon Loeliger * 0111 7/8 cycle late 26e31d2c1eSJon Loeliger */ 27e31d2c1eSJon Loeliger popts->clk_adjust = 7; 28e31d2c1eSJon Loeliger 29e31d2c1eSJon Loeliger /* 30e31d2c1eSJon Loeliger * Factors to consider for CPO: 31e31d2c1eSJon Loeliger * - frequency 32e31d2c1eSJon Loeliger * - ddr1 vs. ddr2 33e31d2c1eSJon Loeliger */ 34e31d2c1eSJon Loeliger popts->cpo_override = 10; 35e31d2c1eSJon Loeliger 36e31d2c1eSJon Loeliger /* 37e31d2c1eSJon Loeliger * Factors to consider for write data delay: 38e31d2c1eSJon Loeliger * - number of DIMMs 39e31d2c1eSJon Loeliger * 40e31d2c1eSJon Loeliger * 1 = 1/4 clock delay 41e31d2c1eSJon Loeliger * 2 = 1/2 clock delay 42e31d2c1eSJon Loeliger * 3 = 3/4 clock delay 43e31d2c1eSJon Loeliger * 4 = 1 clock delay 44e31d2c1eSJon Loeliger * 5 = 5/4 clock delay 45e31d2c1eSJon Loeliger * 6 = 3/2 clock delay 46e31d2c1eSJon Loeliger */ 47e31d2c1eSJon Loeliger popts->write_data_delay = 3; 48e31d2c1eSJon Loeliger 49e31d2c1eSJon Loeliger /* 50e31d2c1eSJon Loeliger * Factors to consider for half-strength driver enable: 51e31d2c1eSJon Loeliger * - number of DIMMs installed 52e31d2c1eSJon Loeliger */ 53e31d2c1eSJon Loeliger popts->half_strength_driver_enable = 0; 54e31d2c1eSJon Loeliger } 55