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 }