| |
| /******************************************************************************* |
| Copyright (C) Marvell International Ltd. and its affiliates |
| |
| This software file (the "File") is owned and distributed by Marvell |
| International Ltd. and/or its affiliates ("Marvell") under the following |
| alternative licensing terms. Once you have made an election to distribute the |
| File under one of the following license alternatives, please (i) delete this |
| introductory statement regarding license alternatives, (ii) delete the two |
| license alternatives that you have not elected to use and (iii) preserve the |
| Marvell copyright notice above. |
| |
| ******************************************************************************** |
| Marvell Commercial License Option |
| |
| If you received this File from Marvell and you have entered into a commercial |
| license agreement (a "Commercial License") with Marvell, the File is licensed |
| to you under the terms of the applicable Commercial License. |
| |
| ******************************************************************************** |
| Marvell GPL License Option |
| |
| If you received this File from Marvell, you may opt to use, redistribute and/or |
| modify this File in accordance with the terms and conditions of the General |
| Public License Version 2, June 1991 (the "GPL License"), a copy of which is |
| available along with the File in the license.txt file or by writing to the Free |
| Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or |
| on the worldwide web at http://www.gnu.org/licenses/gpl.txt. |
| |
| THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED |
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY |
| DISCLAIMED. The GPL License provides additional details about this warranty |
| disclaimer. |
| ******************************************************************************** |
| Marvell BSD License Option |
| |
| If you received this File from Marvell, you may opt to use, redistribute and/or |
| modify this File under the following licensing terms. |
| Redistribution and use in source and binary forms, with or without modification, |
| are permitted provided that the following conditions are met: |
| |
| * Redistributions of source code must retain the above copyright notice, |
| this list of conditions and the following disclaimer. |
| |
| * Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in the |
| documentation and/or other materials provided with the distribution. |
| |
| * Neither the name of Marvell nor the names of its contributors may be |
| used to endorse or promote products derived from this software without |
| specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR |
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| *******************************************************************************/ |
| #ifndef _DDR3_TOPOLOGY_CONFIG_H |
| #define _DDR3_TOPOLOGY_CONFIG_H |
| |
| #define ADDR_SIZE_512Mb 0x04000000 |
| #define ADDR_SIZE_1Gb 0x08000000 |
| #define ADDR_SIZE_2Gb 0x10000000 |
| #define ADDR_SIZE_4Gb 0x20000000 |
| #define ADDR_SIZE_8Gb 0x40000000 |
| |
| |
| /*************************TOPOLOGY*******************************************/ |
| #ifdef CONFIG_DDR3 |
| |
| |
| typedef enum |
| { |
| SPEED_BIN_DDR_800D, |
| SPEED_BIN_DDR_800E, |
| SPEED_BIN_DDR_1066E, |
| SPEED_BIN_DDR_1066F, |
| SPEED_BIN_DDR_1066G, |
| SPEED_BIN_DDR_1333F, |
| SPEED_BIN_DDR_1333G, |
| SPEED_BIN_DDR_1333H, |
| SPEED_BIN_DDR_1333J, |
| SPEED_BIN_DDR_1600G, |
| SPEED_BIN_DDR_1600H, |
| SPEED_BIN_DDR_1600J, |
| SPEED_BIN_DDR_1600K, |
| SPEED_BIN_DDR_1866J, |
| SPEED_BIN_DDR_1866K, |
| SPEED_BIN_DDR_1866L, |
| SPEED_BIN_DDR_1866M, |
| SPEED_BIN_DDR_2133K, |
| SPEED_BIN_DDR_2133L, |
| SPEED_BIN_DDR_2133M, |
| SPEED_BIN_DDR_2133N, |
| |
| SPEED_BIN_DDR_1333H_EXT, |
| SPEED_BIN_DDR_1600K_EXT, |
| SPEED_BIN_DDR_1866M_EXT |
| }MV_HWS_SPEED_BIN; |
| |
| typedef enum |
| { |
| DDR_FREQ_LOW_FREQ, |
| DDR_FREQ_400, |
| DDR_FREQ_533, |
| DDR_FREQ_667, |
| DDR_FREQ_800, |
| DDR_FREQ_933, |
| DDR_FREQ_1066, |
| DDR_FREQ_311, |
| DDR_FREQ_333, |
| DDR_FREQ_467, |
| DDR_FREQ_850, |
| DDR_FREQ_600, |
| DDR_FREQ_300, |
| DDR_FREQ_900, |
| DDR_FREQ_360, |
| DDR_FREQ_1000, |
| DDR_FREQ_LIMIT |
| }MV_HWS_DDR_FREQ; |
| |
| #else |
| typedef enum |
| { |
| SPEED_BIN_DDR_1600J, |
| SPEED_BIN_DDR_1600K, |
| SPEED_BIN_DDR_1600L, |
| SPEED_BIN_DDR_1866L, |
| SPEED_BIN_DDR_1866M, |
| SPEED_BIN_DDR_1866N, |
| SPEED_BIN_DDR_2133N, |
| SPEED_BIN_DDR_2133P, |
| SPEED_BIN_DDR_2133R, |
| SPEED_BIN_DDR_2400P, |
| SPEED_BIN_DDR_2400R, |
| SPEED_BIN_DDR_2400U, |
| }MV_HWS_SPEED_BIN; |
| |
| typedef enum |
| { |
| DDR_FREQ_LOW_FREQ, |
| DDR_FREQ_667, |
| DDR_FREQ_800, |
| DDR_FREQ_933, |
| DDR_FREQ_1066, |
| DDR_FREQ_900, |
| DDR_FREQ_1000, |
| DDR_FREQ_LIMIT |
| }MV_HWS_DDR_FREQ; |
| |
| #endif |
| |
| typedef enum |
| { |
| DDR_BOARD_ETP, |
| DDR_BOARD_FUNCTIONAL, |
| DDR_BOARD_CUSTOMER, |
| DDR_BOARD_MAX |
| |
| } MV_HWS_DDR_BOARD; |
| |
| /* bus width in bits */ |
| typedef enum |
| { |
| BUS_WIDTH_4, |
| BUS_WIDTH_8, |
| BUS_WIDTH_16, |
| BUS_WIDTH_32 |
| |
| } MV_HWS_BUS_WIDTH; |
| |
| typedef enum |
| { |
| MEM_512M, |
| MEM_1G, |
| MEM_2G, |
| MEM_4G, |
| MEM_8G, |
| |
| MEM_SIZE_LAST |
| }MV_HWS_MEM_SIZE; |
| |
| typedef enum |
| { |
| MV_HWS_TEMP_LOW, |
| MV_HWS_TEMP_NORMAL, |
| MV_HWS_TEMP_HIGH |
| |
| }MV_HWS_TEMPERTURE; |
| |
| typedef struct |
| { |
| /* Chip Select (CS) bitmask (bits 0-CS0, bit 1- CS1 ...) */ |
| MV_U8 csBitmask; |
| |
| /* mirror enable/disable (bits 0-CS0 mirroring, bit 1- CS1 mirroring ...)*/ |
| MV_BOOL mirrorEnableBitmask; |
| |
| /* DQS Swap (polarity) - true if enable*/ |
| MV_BOOL isDqsSwap; |
| |
| /* CK swap (polarity) - true if enable*/ |
| MV_BOOL isCkSwap; |
| |
| } BusParams; |
| |
| typedef struct |
| { |
| /* bus configuration */ |
| BusParams asBusParams[MAX_BUS_NUM]; |
| |
| /* Speed Bin Table*/ |
| MV_HWS_SPEED_BIN speedBinIndex; |
| |
| /* bus width of memory device*/ |
| MV_HWS_BUS_WIDTH busWidth; |
| |
| /* Bus memory size (MBit) */ |
| MV_HWS_MEM_SIZE memorySize; |
| |
| /* The DDR frequency for each interfaces */ |
| MV_HWS_DDR_FREQ memoryFreq; |
| |
| /* delay CAS Write Latency - 0 for using default value (jedec suggested) */ |
| MV_U8 casWL; |
| |
| /* delay CAS Latency - 0 for using default value (jedec suggested) */ |
| MV_U8 casL; |
| |
| /* operation temperature */ |
| MV_HWS_TEMPERTURE interfaceTemp; |
| |
| } InterfaceParams; |
| |
| /***********************************/ |
| |
| typedef struct |
| { |
| /* Number of interfaces (default is 12)*/ |
| MV_U8 interfaceActiveMask; |
| |
| /* Controller configuration per interface */ |
| InterfaceParams interfaceParams[MAX_INTERFACE_NUM]; |
| |
| /* Bit mask for active buses defined interface width and ECC configuration*/ |
| MV_U8 activeBusMask; |
| |
| } MV_HWS_TOPOLOGY_MAP; |
| |
| typedef struct |
| { |
| MV_U32 ckDelay; /*the delay between clock to C/A for by8 devices*/ |
| MV_U32 PhyReg3Val; /*Initial value of RX centralization phy reg*/ |
| |
| MV_U32 gZpriData; /*Controller Data P drive strength*/ |
| MV_U32 gZnriData; /*Controller Data N drive strength*/ |
| MV_U32 gZpriCtrl; /*Controller C/A P drive strength*/ |
| MV_U32 gZnriCtrl; /*Controller C/A N drive strength*/ |
| MV_U32 gZpodtData; /*Controller Data P ODT at the receive*/ |
| MV_U32 gZnodtData; /*Controller Data N ODT at the receive*/ |
| MV_U32 gZpodtCtrl; /*Controller C/A P ODT at the receive*/ |
| MV_U32 gZnodtCtrl; /*Controller C/A N ODT at the receive*/ |
| MV_U32 gDic; /*Memory drive strength*/ |
| MV_U32 uiODTConfig; /*ODT Pin Configuration*/ |
| MV_U32 gRttNom; /*Memory ODT at the receive*/ |
| MV_U32 gRttWR; /*Memory ODT at the receive during write*/ |
| } MV_TUNE_TRAINING_PARAMS; |
| |
| #endif /* _DDR3_TOPOLOGY_CONFIG_H */ |
| |