1/** @file
2*
3*  Memory Config form at Oem Config fromset.
4*
5*  Copyright (c) 2017 - 2018, Hisilicon Limited. All rights reserved.
6*  Copyright (c) 2017 - 2018, Linaro Limited. All rights reserved.
7*
8*  SPDX-License-Identifier: BSD-2-Clause-Patent
9*
10**/
11
12form formid = MEMORY_CONFIG_FORM_ID,
13  title  = STRING_TOKEN(STR_MEMORY_CONFIG_FORM_TITLE);
14
15  oneof varid  = OEM_CONFIG_DATA.DdrDebugLevel,
16        prompt   = STRING_TOKEN (STR_MEM_PRINT_LEVEL_PROMPT),
17        help     = STRING_TOKEN (STR_MEM_PRINT_LEVEL_HELP),
18        option text = STRING_TOKEN (STR_MEM_PRINT_LEVEL_DISABLE),  value = 0, flags = RESET_REQUIRED;
19        option text = STRING_TOKEN (STR_MEM_PRINT_LEVEL_MINIMUM), value = 1, flags = RESET_REQUIRED | MANUFACTURING | DEFAULT;
20        option text = STRING_TOKEN (STR_MEM_PRINT_LEVEL_MINMAX),  value = 2, flags = RESET_REQUIRED;
21        option text = STRING_TOKEN (STR_MEM_PRINT_LEVEL_MAXIMUM),  value = 3, flags = RESET_REQUIRED;
22  endoneof;
23
24  oneof varid = OEM_CONFIG_DATA.DdrFreqLimit,
25        prompt  = STRING_TOKEN(STR_XMP_DDR_FREQ_LIMIT_PROMPT),
26        help    = STRING_TOKEN(STR_XMP_DDR_FREQ_LIMIT_HELP),
27        option text = STRING_TOKEN(STR_AUTO), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
28        option text = STRING_TOKEN(STR_DDR_FREQ_1333_STRING), value = 5, flags = RESET_REQUIRED;
29        option text = STRING_TOKEN(STR_DDR_FREQ_1600_STRING), value = 7, flags = RESET_REQUIRED;
30        option text = STRING_TOKEN(STR_DDR_FREQ_1866_STRING), value = 9, flags = RESET_REQUIRED;
31        option text = STRING_TOKEN(STR_DDR_FREQ_2133_STRING), value = 11, flags = RESET_REQUIRED ;
32        option text = STRING_TOKEN(STR_DDR_FREQ_2400_STRING), value = 13, flags = RESET_REQUIRED ;
33        option text = STRING_TOKEN(STR_DDR_FREQ_2667_STRING), value = 15, flags = RESET_REQUIRED ;
34        option text = STRING_TOKEN(STR_DDR_FREQ_2933_STRING), value = 17, flags = RESET_REQUIRED ;
35        option text = STRING_TOKEN(STR_DDR_FREQ_3200_STRING), value = 19, flags = RESET_REQUIRED ;
36  endoneof;
37
38  suppressif TRUE;
39    oneof varid = OEM_CONFIG_DATA.DdrRefreshSupport,
40          prompt  = STRING_TOKEN(STR_DDR_REFRESH_SUPPORT_PROMPT),
41          help    = STRING_TOKEN(STR_DDR_REFRESH_SUPPORT_HELP),
42          option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
43          option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED;
44    endoneof;
45
46    suppressif ideqval OEM_CONFIG_DATA.DdrRefreshSupport == 0;
47      oneof varid = OEM_CONFIG_DATA.DdrRefreshRate,
48            prompt  = STRING_TOKEN(STR_DDR_REFRESH_PROMPT),
49            help    = STRING_TOKEN(STR_DDR_REFRESH_HELP),
50            option text = STRING_TOKEN(STR_32MS), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
51            option text = STRING_TOKEN(STR_64MS), value = 1, flags = RESET_REQUIRED;
52      endoneof;
53    endif;
54
55    oneof varid  = OEM_CONFIG_DATA.RankMargin,
56          prompt   = STRING_TOKEN (STR_RMT_PROMPT),
57          help     = STRING_TOKEN (STR_RMT_HELP),
58          option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
59          option text = STRING_TOKEN (STR_ENABLE),  value = 1, flags = RESET_REQUIRED;
60    endoneof;
61
62    suppressif  ideqval OEM_CONFIG_DATA.RankMargin == 0;
63      oneof varid  = OEM_CONFIG_DATA.RankMarginMode,
64            prompt   = STRING_TOKEN (STR_RMTM_PROMPT),
65            help     = STRING_TOKEN (STR_RMTM_HELP),
66            option text = STRING_TOKEN (STR_RMTM_SFC),     value = 1, flags = RESET_REQUIRED;
67            option text = STRING_TOKEN (STR_RMTM_EXMBIST), value = 2, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED;
68      endoneof;
69
70      numeric varid = OEM_CONFIG_DATA.rmtPatternLength,
71              prompt    = STRING_TOKEN (STR_RMT_PATTERN_PROMPT),
72              help      = STRING_TOKEN (STR_RMT_PATTERN_HELP),
73              flags     = RESET_REQUIRED,
74              minimum   = 1,
75              maximum   = 32767,
76              step      = 1,
77              default   = RMT_PATTERN_LENGTH,
78      endnumeric;
79
80      oneof varid  = OEM_CONFIG_DATA.perbitmargin,
81            prompt   = STRING_TOKEN (STR_PER_BIT_MARGIN_PROMPT),
82            help     = STRING_TOKEN (STR_PER_BIT_MARGIN_HELP),
83            option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
84            option text = STRING_TOKEN (STR_ENABLE),  value = 1, flags = RESET_REQUIRED;
85      endoneof;
86
87      oneof varid  = OEM_CONFIG_DATA.CaMargin,
88            prompt   = STRING_TOKEN (STR_CA_MARGINS_PROMPT),
89            help     = STRING_TOKEN (STR_CA_MARGINS_HELP),
90            option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
91            option text = STRING_TOKEN (STR_ENABLE),  value = 1, flags = RESET_REQUIRED;
92      endoneof;
93
94      oneof varid  = OEM_CONFIG_DATA.CaVrefMarginOption,
95            prompt   = STRING_TOKEN (STR_CAVREF_MARGINS_PROMPT),
96            help     = STRING_TOKEN (STR_CAVREF_MARGINS_HELP),
97            option text = STRING_TOKEN (STR_CAVREF_MARGINS_OPTION0), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
98            option text = STRING_TOKEN (STR_CAVREF_MARGINS_OPTION2),  value = 1, flags = RESET_REQUIRED;
99      endoneof;
100    endif;
101
102    oneof varid = OEM_CONFIG_DATA.DieInterleaving,
103          prompt  = STRING_TOKEN(STR_DIE_INTERLEAVING_PROMPT),
104          help    = STRING_TOKEN(STR_DIE_INTERLEAVING_HELP),
105          option text = STRING_TOKEN(STR_DISABLE),               value = 0, flags = RESET_REQUIRED | MANUFACTURING | DEFAULT;
106          option text = STRING_TOKEN(STR_ENABLE),                value = 1, flags = RESET_REQUIRED;
107    endoneof;
108
109    oneof varid = OEM_CONFIG_DATA.ChannelInterleaving,
110          prompt  = STRING_TOKEN(STR_CHANNEL_INTERLEAVING_PROMPT),
111          help    = STRING_TOKEN(STR_CHANNEL_INTERLEAVING_HELP),
112          option text = STRING_TOKEN(STR_DISABLE),               value = 0, flags = RESET_REQUIRED;
113          option text = STRING_TOKEN(STR_ENABLE),                value = 1, flags = RESET_REQUIRED | MANUFACTURING | DEFAULT;
114    endoneof;
115
116    oneof varid = OEM_CONFIG_DATA.RankInterleaving,
117          prompt  = STRING_TOKEN(STR_RANK_INTERLEAVING_PROMPT),
118          help    = STRING_TOKEN(STR_RANK_INTERLEAVING_HELP),
119          option text = STRING_TOKEN(STR_1WAY_STRING),           value = 1, flags = RESET_REQUIRED;
120          option text = STRING_TOKEN(STR_2WAY_STRING),           value = 2, flags = RESET_REQUIRED | MANUFACTURING | DEFAULT;
121          option text = STRING_TOKEN(STR_4WAY_STRING),           value = 4, flags = RESET_REQUIRED;
122    endoneof;
123
124    oneof varid = OEM_CONFIG_DATA.NumaEn,
125          prompt  = STRING_TOKEN(STR_NUMA_PROMPT),
126          help    = STRING_TOKEN(STR_NUMA_HELP),
127          option text = STRING_TOKEN(STR_DISABLE),      value = 0,  flags = RESET_REQUIRED;
128          option text = STRING_TOKEN(STR_ENABLE),       value = 1,  flags = RESET_REQUIRED | MANUFACTURING | DEFAULT;
129    endoneof;
130
131    oneof varid  = OEM_CONFIG_DATA.HwMemTest,
132          prompt   = STRING_TOKEN (STR_MEM_TEST_PROMPT),
133          help     = STRING_TOKEN (STR_MEM_TEST_HELP),
134          option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
135          option text = STRING_TOKEN (STR_ENABLE),  value = 1, flags = RESET_REQUIRED;
136    endoneof;
137
138    oneof varid  = OEM_CONFIG_DATA.EccSupport,
139          prompt   = STRING_TOKEN (STR_ECC_SUPPORT_PROMPT),
140          help     = STRING_TOKEN (STR_ECC_SUPPORT_HELP),
141          option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED;
142          option text = STRING_TOKEN (STR_ECC_EN),  value = 1, flags = RESET_REQUIRED;
143          option text = STRING_TOKEN (STR_SDEC_EN),  value = 2, flags = RESET_REQUIRED;
144    endoneof;
145  endif;
146
147endform;
148
149