#
# $Id: arad_dram.soc,v 1.0 Broadcom SDK $
#
# $Copyright: Copyright 2012 Broadcom Corporation.
# This program is the proprietary software of Broadcom Corporation
# and/or its licensors, and may only be used, duplicated, modified
# or distributed pursuant to the terms and conditions of a separate,
# written license agreement executed between you and Broadcom
# (an "Authorized License").  Except as set forth in an Authorized
# License, Broadcom grants no license (express or implied), right
# to use, or waiver of any kind with respect to the Software, and
# Broadcom expressly reserves all rights in and to the Software
# and all intellectual property rights therein.  IF YOU HAVE
# NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
# IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
# ALL USE OF THE SOFTWARE.  
#  
# Except as expressly set forth in the Authorized License,
#  
# 1.     This program, including its structure, sequence and organization,
# constitutes the valuable trade secrets of Broadcom, and you shall use
# all reasonable efforts to protect the confidentiality thereof,
# and to use this information only in connection with your use of
# Broadcom integrated circuit products.
#  
# 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS
# PROVIDED "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
# REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY,
# OR OTHERWISE, WITH RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY
# DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
# NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
# ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
# CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
# OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
# 
# 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
# BROADCOM OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL,
# INCIDENTAL, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER
# ARISING OUT OF OR IN ANY WAY RELATING TO YOUR USE OF OR INABILITY
# TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF
# THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR USD 1.00,
# WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING
# ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.$
#

if $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_800 "\
  config add ext_ram_freq=800; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=21; \
  config add ext_ram_t_rrd=7500; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=8; \
  config add ext_ram_t_faw=40000; \
  config add ext_ram_c_cas_latency=11; \
  config add ddr3_mem_grade=0x111111"
    
if $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_933 "\
  config add ext_ram_freq=933; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=25; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=9; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=13; \
  config add ddr3_mem_grade=0x131313"
   
if $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_1066 "\
  config add ext_ram_freq=1066; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=29; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=10; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=14; \
  config add ddr3_mem_grade=0x141414"

if $?dram_type_DDR3_MICRON_MT41J256M16_4GBIT_1066 "\
  config add ext_ram_freq=1066; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=29; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46130; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=260000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=10; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=14; \
  config add ddr3_mem_grade=0x141414"
  
if $?dram_type_DDR3_MICRON_MT42J64M16LA_15E_667 "\
  config add ext_ram_freq=667; \
  config add ext_ram_rows=8192; \
  config add ext_ram_jedec=21; \
  config add ext_ram_t_rrd=7500; \
  config add ext_ram_t_rc=49500; \
  config add ext_ram_t_rcd_rd=13500; \
  config add ext_ram_t_rcd_wr=13500; \
  config add ext_ram_t_rp=13500; \
  config add ext_ram_t_rfc=110000; \
  config add ext_ram_t_ras=36000; \
  config add ext_ram_c_wr_latency=7; \
  config add ext_ram_t_faw=45000; \
  config add ext_ram_c_cas_latency=9; \
  config add ddr3_mem_grade=0x090909"

if $?dram_type_DDR3_MICRON_MT41J128M16HA_125_800 "\
  config add ext_ram_freq=800; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=21; \
  config add ext_ram_t_rrd=7500; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=8; \
  config add ext_ram_t_faw=40000; \
  config add ext_ram_c_cas_latency=11; \
  config add ddr3_mem_grade=0x111111"
  
if $?dram_type_DDR3_MICRON_MT41J128M16HA_125_933 "\
  config add ext_ram_freq=933; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=25; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=9; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=13; \
  config add ddr3_mem_grade=0x131313"
  
if $?dram_type_DDR3_MICRON_MT41J128M16HA_125_1066 "\
  config add ext_ram_freq=1066; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=29; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=160000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=10; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=14; \
  config add ddr3_mem_grade=0x141414"
  
if $?dram_type_DDR3_SAMSUNG_K4B4G1646B_4GBIT_1066 "\
  config add ext_ram_freq=1066; \
  config add ext_ram_rows=16384; \
  config add ext_ram_jedec=29; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=46090; \
  config add ext_ram_t_rcd_rd=13090; \
  config add ext_ram_t_rcd_wr=13090; \
  config add ext_ram_t_rp=13090; \
  config add ext_ram_t_rfc=260000; \
  config add ext_ram_t_ras=33000; \
  config add ext_ram_c_wr_latency=10; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=14; \
  config add ddr3_mem_grade=0x141414"
  
if $?dram_type_DDR3_SAMSUNG_K4B1G1646G_800 "\
  config add ext_ram_freq=800; \
  config add ext_ram_rows=8192; \
  config add ext_ram_jedec=25; \
  config add ext_ram_t_rrd=7500; \
  config add ext_ram_t_rc=47910; \
  config add ext_ram_t_rcd_rd=13910; \
  config add ext_ram_t_rcd_wr=13910; \
  config add ext_ram_t_rp=13910; \
  config add ext_ram_t_rfc=110000; \
  config add ext_ram_t_ras=34000; \
  config add ext_ram_c_wr_latency=8; \
  config add ext_ram_t_faw=40000; \
  config add ext_ram_c_cas_latency=11; \
  config add ddr3_mem_grade=0x111111"
  
if $?dram_type_DDR3_SAMSUNG_K4B1G1646G_933 "\
  config add ext_ram_freq=933; \
  config add ext_ram_rows=8192; \
  config add ext_ram_jedec=25; \
  config add ext_ram_t_rrd=6000; \
  config add ext_ram_t_rc=47910; \
  config add ext_ram_t_rcd_rd=13910; \
  config add ext_ram_t_rcd_wr=13910; \
  config add ext_ram_t_rp=13910; \
  config add ext_ram_t_rfc=110000; \
  config add ext_ram_t_ras=34000; \
  config add ext_ram_c_wr_latency=9; \
  config add ext_ram_t_faw=35000; \
  config add ext_ram_c_cas_latency=13; \
  config add ddr3_mem_grade=0x131313"
  
if $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_800 || \
   $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_933 || \
   $?dram_type_DDR3_HYNIX_H5TQ2G63BFR_TEC_1066 || \
   $?dram_type_DDR3_MICRON_MT41J256M16_4GBIT_1066 || \
   $?dram_type_DDR3_MICRON_MT41J128M16HA_125_800 || \
   $?dram_type_DDR3_MICRON_MT41J128M16HA_125_933 || \
   $?dram_type_DDR3_MICRON_MT41J128M16HA_125_1066 || \
   $?dram_type_DDR3_MICRON_MT42J64M16LA_15E_667 || \
   $?dram_type_DDR3_SAMSUNG_K4B4G1646B_4GBIT_1066 || \
   $?dram_type_DDR3_SAMSUNG_K4B1G1646G_933 || \
   $?dram_type_DDR3_SAMSUNG_K4B1G1646G_800 "\
  config add ext_ram_type=DDR3; \
  config add ext_ram_columns=1024; \
  config add ext_ram_banks=8; \
  config add ext_ram_ap_bit_pos=10; \
  config add ext_ram_burst_size=32; \
  config add ext_ram_t_ref=3900000; \
  config add ext_ram_t_wr=15000; \
  config add ext_ram_t_wtr=7500; \
  config add ext_ram_t_rtp=7500"
