139aa1a73SJon Loeliger /* 239aa1a73SJon Loeliger * Copyright 2008 Freescale Semiconductor, Inc. 339aa1a73SJon Loeliger * 439aa1a73SJon Loeliger * This program is free software; you can redistribute it and/or 539aa1a73SJon Loeliger * modify it under the terms of the GNU General Public License 639aa1a73SJon Loeliger * Version 2 as published by the Free Software Foundation. 739aa1a73SJon Loeliger */ 839aa1a73SJon Loeliger 939aa1a73SJon Loeliger #include <common.h> 1039aa1a73SJon Loeliger 11*5614e71bSYork Sun #include <fsl_ddr_sdram.h> 12*5614e71bSYork Sun #include <fsl_ddr_dimm_params.h> 1339aa1a73SJon Loeliger 14dfb49108SHaiying Wang void fsl_ddr_board_options(memctl_options_t *popts, 15dfb49108SHaiying Wang dimm_params_t *pdimm, 16dfb49108SHaiying Wang unsigned int ctrl_num) 1739aa1a73SJon Loeliger { 1839aa1a73SJon Loeliger /* 1939aa1a73SJon Loeliger * Factors to consider for clock adjust: 2039aa1a73SJon Loeliger * - number of chips on bus 2139aa1a73SJon Loeliger * - position of slot 2239aa1a73SJon Loeliger * - DDR1 vs. DDR2? 2339aa1a73SJon Loeliger * - ??? 2439aa1a73SJon Loeliger * 2539aa1a73SJon Loeliger * This needs to be determined on a board-by-board basis. 2639aa1a73SJon Loeliger * 0110 3/4 cycle late 2739aa1a73SJon Loeliger * 0111 7/8 cycle late 2839aa1a73SJon Loeliger */ 2939aa1a73SJon Loeliger popts->clk_adjust = 7; 3039aa1a73SJon Loeliger 3139aa1a73SJon Loeliger /* 3239aa1a73SJon Loeliger * Factors to consider for CPO: 3339aa1a73SJon Loeliger * - frequency 3439aa1a73SJon Loeliger * - ddr1 vs. ddr2 3539aa1a73SJon Loeliger */ 3639aa1a73SJon Loeliger popts->cpo_override = 10; 3739aa1a73SJon Loeliger 3839aa1a73SJon Loeliger /* 3939aa1a73SJon Loeliger * Factors to consider for write data delay: 4039aa1a73SJon Loeliger * - number of DIMMs 4139aa1a73SJon Loeliger * 4239aa1a73SJon Loeliger * 1 = 1/4 clock delay 4339aa1a73SJon Loeliger * 2 = 1/2 clock delay 4439aa1a73SJon Loeliger * 3 = 3/4 clock delay 4539aa1a73SJon Loeliger * 4 = 1 clock delay 4639aa1a73SJon Loeliger * 5 = 5/4 clock delay 4739aa1a73SJon Loeliger * 6 = 3/2 clock delay 4839aa1a73SJon Loeliger */ 4939aa1a73SJon Loeliger popts->write_data_delay = 3; 5039aa1a73SJon Loeliger 51b4983e16SDave Liu /* 2T timing enable */ 520dd38a35SPriyanka Jain popts->twot_en = 1; 53b4983e16SDave Liu 5439aa1a73SJon Loeliger /* 5539aa1a73SJon Loeliger * Factors to consider for half-strength driver enable: 5639aa1a73SJon Loeliger * - number of DIMMs installed 5739aa1a73SJon Loeliger */ 5839aa1a73SJon Loeliger popts->half_strength_driver_enable = 0; 5939aa1a73SJon Loeliger } 60