DDR type define, add new type into SCAN_COL for scan
#****************************************************************************
struct( DdrType => {
name => '$',
type_id => '$',
support_multi_dis => '$', # support multiple discrete dram in one load (ie. different rank size)
supported => '$',
hw_trap_defined => '$',
found_mcp => '$',
found_discrete => '$',
});
my $DDR_TYPE_DDR1 = DdrType->new(name => 'DDR1', type_id => '01');
my $DDR_TYPE_LPDDR2 = DdrType->new(name => 'LPDDR2', type_id => '02', support_multi_dis => 1);
my $DDR_TYPE_LPDDR3 = DdrType->new(name => 'LPDDR3', type_id => '03', support_multi_dis => 1);
my $DDR_TYPE_PCDDR3 = DdrType->new(name => 'PCDDR3', type_id => '04');
my $DDR_TYPE_LPDDR4 = DdrType->new(name => 'LPDDR4', type_id => '05', support_multi_dis => 1);
my $DDR_TYPE_LPDR4X = DdrType->new(name => 'LPDR4X', type_id => '06', support_multi_dis => 1);
my $DDR_TYPE_LPDR4P = DdrType->new(name => 'LPDR4P', type_id => '07', support_multi_dis => 1);
my @ALL_DDR_TYPE = ( $DDR_TYPE_DDR1, $DDR_TYPE_LPDDR2, $DDR_TYPE_LPDDR3, $DDR_TYPE_PCDDR3, $DDR_TYPE_LPDDR4, $DDR_TYPE_LPDR4X, $DDR_TYPE_LPDR4P );
#****************************************************************************************
# subroutine: emigen_support_ddr
# specify ddr type which is supported, can be called multiple times
# porting: no need
# input: $type - ddr type name (ex: "LPDR4X")
# return: void
#****************************************************************************************
sub emigen_support_ddr {
my $type = shift;
foreach my $n (@ALL_DDR_TYPE) {
if ($n->name eq $type) {
$n->supported(1);
last;
306 }
307 }
308 }