1 /*
2 * Copyright (c) 2003-2017 Cavium Inc. ([email protected]). All rights
3 * reserved.
4 * Copyright 2018-present Facebook, Inc.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 *
8 * This file consists of data imported from bdk-config.c
9 */
10
11 #include <bdk.h>
12 #include <libbdk-hal/bdk-config.h>
13 #include <stdlib.h>
14 #include <string.h>
15 #include <assert.h>
16 #include <lame_string.h>
17 #include <stdio.h>
18
19 static struct bdk_devicetree_key_value *config_fdt;
20
bdk_config_duplicate(const struct bdk_devicetree_key_value * old,size_t free_space)21 static struct bdk_devicetree_key_value *bdk_config_duplicate(
22 const struct bdk_devicetree_key_value *old,
23 size_t free_space)
24 {
25 struct bdk_devicetree_key_value *new;
26 size_t len = sizeof(struct bdk_devicetree_key_value) + free_space;
27 const struct bdk_devicetree_key_value *iter = old;
28 while (iter->key) {
29 iter++;
30 len += sizeof(struct bdk_devicetree_key_value);
31 }
32 new = malloc(len);
33 if (!new)
34 return NULL;
35
36 memcpy(new, old, len);
37
38 return new;
39 }
40
41 /**
42 * Set the device tree used for configuration
43 *
44 * @param fdt Device tree to use. Memory is assumed to be from malloc() and bdk_config takes
45 * over ownership on success
46 *
47 * @return Zero on success, negative on failure
48 */
bdk_config_set_fdt(const struct bdk_devicetree_key_value * fdt)49 int bdk_config_set_fdt(const struct bdk_devicetree_key_value *fdt)
50 {
51 if (ENV_HAS_HEAP_SECTION)
52 config_fdt = bdk_config_duplicate(fdt, 0);
53 else
54 config_fdt = (void *)fdt;
55
56 return 0;
57 }
58
59 /**
60 * Look up a configuration item in the environment and replace it.
61 *
62 * @param name
63 *
64 * @return
65 */
set_value(const char * name,const char * val)66 static void set_value(const char *name, const char *val)
67 {
68 struct bdk_devicetree_key_value *iter;
69 char n[64];
70
71 strncpy(n, name, sizeof(n));
72 n[sizeof(n)-1] = '\0';
73
74 iter = config_fdt;
75 while (iter->key) {
76 if (strcmp(iter->key, n) == 0) {
77 // we are leaking memory here...
78 iter->value = (const char *)strdup(val);
79 return;
80 }
81 iter++;
82 }
83 /* Not found: Create one */
84 iter = bdk_config_duplicate(config_fdt,
85 sizeof(struct bdk_devicetree_key_value));
86 if (!iter)
87 return;
88
89 free(config_fdt);
90 config_fdt = iter;
91 while (iter->key) {
92 iter++;
93 }
94 iter->key = (const char *)strdup(name);
95 iter->value = (const char *)strdup(val);
96 iter++;
97 iter->key = 0;
98 iter->value = 0;
99 }
100
101 /**
102 * Look up a configuration item in the environment.
103 *
104 * @param name
105 *
106 * @return
107 */
get_value(const char * name)108 static const char *get_value(const char *name)
109 {
110 const struct bdk_devicetree_key_value *iter;
111 char n[64];
112
113 strncpy(n, name, sizeof(n));
114 n[sizeof(n)-1] = '\0';
115
116 while (*n) {
117 iter = config_fdt;
118 while (iter->key) {
119 if (strcmp(iter->key, n) == 0)
120 return iter->value;
121 iter++;
122 }
123
124 char *p = strrchr(n, '.');
125 if (p)
126 *p = '\0';
127 else
128 break;
129 }
130 return NULL;
131 }
132
133 /**
134 * Get an integer configuration item
135 *
136 * @param cfg_item Config item to get. If the item takes parameters (see bdk_config_t), then the
137 * parameters are listed following cfg_item.
138 *
139 * @return The value of the configuration item, or def_value if the item is not set
140 */
bdk_config_get_int(bdk_config_t cfg_item,...)141 int64_t bdk_config_get_int(bdk_config_t cfg_item, ...)
142 {
143 char name[64];
144 size_t count;
145 int64_t tmp;
146
147 assert(cfg_item < __BDK_CONFIG_END);
148
149 /* Make sure the correct access function was called */
150 assert(config_info[cfg_item].ctype == BDK_CONFIG_TYPE_INT);
151
152 if (!config_fdt)
153 return config_info[cfg_item].default_value;
154
155 va_list args;
156 va_start(args, cfg_item);
157 vsnprintf(name, sizeof(name)-1, config_info[cfg_item].format, args);
158 va_end(args);
159
160 const char *val = get_value(name);
161 if (!val)
162 return config_info[cfg_item].default_value;
163
164 #if 0
165 if ((val[0] == '0') && (val[1] == 'x'))
166 count = sscanf(val + 2, "%lx", &tmp);
167 else
168 count = sscanf(val, "%li", &tmp);
169 #endif
170
171 if ((val[0] == '0') && (val[1] == 'x'))
172 count = str_to_hex(val + 2, &tmp);
173 else
174 count = str_to_int(val, &tmp);
175 if (count == 1) {
176 if ((tmp < config_info[cfg_item].min_value) ||
177 (tmp > config_info[cfg_item].max_value)) {
178 printk(BIOS_WARNING, "Out of range for %s = %s, using "
179 "default\n", name, val);
180 return config_info[cfg_item].default_value;
181 }
182 return tmp;
183 }
184
185 printk(BIOS_WARNING, "Failed to parse %s = %s, using default\n",
186 name, val);
187 return config_info[cfg_item].default_value;
188 }
189
190 /**
191 * Set an integer configuration item. Note this only sets the item in memory,
192 * persistent storage is not updated.
193 *
194 * @param value Configuration item value
195 * @param cfg_item Config item to set. If the item takes parameters (see bdk_config_t), then the
196 * parameters are listed following cfg_item.
197 */
bdk_config_set_int(int64_t value,bdk_config_t cfg_item,...)198 void bdk_config_set_int(int64_t value, bdk_config_t cfg_item, ...)
199 {
200 char name[64], val[32];
201
202 assert(cfg_item < __BDK_CONFIG_END);
203
204 /* Make sure the correct access function was called */
205 assert(config_info[cfg_item].ctype == BDK_CONFIG_TYPE_INT);
206
207 if (!ENV_HAS_HEAP_SECTION)
208 return;
209
210 if (!config_fdt)
211 return;
212
213 va_list args;
214 va_start(args, cfg_item);
215 vsnprintf(name, sizeof(name)-1, config_info[cfg_item].format, args);
216 va_end(args);
217
218 snprintf(val, sizeof(val), "0x%016llx", value);
219 set_value(name, val);
220 }
221
222 /**
223 * Get a string configuration item
224 *
225 * @param cfg_item Config item to get. If the item takes parameters (see bdk_config_t), then the
226 * parameters are listed following cfg_item.
227 *
228 * @return The value of the configuration item, or def_value if the item is not set
229 */
bdk_config_get_str(bdk_config_t cfg_item,...)230 const char *bdk_config_get_str(bdk_config_t cfg_item, ...)
231 {
232 char name[64];
233
234 /* Make sure the correct access function was called */
235 assert(config_info[cfg_item].ctype == BDK_CONFIG_TYPE_STR);
236
237 if (!config_fdt)
238 return (const char *)config_info[cfg_item].default_value;
239
240 va_list args;
241 va_start(args, cfg_item);
242 vsnprintf(name, sizeof(name)-1, config_info[cfg_item].format, args);
243
244 if (BDK_CONFIG_QLM_MODE == cfg_item) {
245 char name2[64];
246 vsnprintf(name2, sizeof(name2)-1,"QLM-MODE.N%d.DLM%d" , args);
247 const char *val = get_value(name2);
248 if (val)
249 printk(BIOS_WARNING, "%s: QLM-MODE.N%%d.DLM%%d format "
250 "depricated. Please use QLM-MODE.N%%d.QLM%%d "
251 "instead\n", name2);
252 }
253 va_end(args);
254
255 const char *val = get_value(name);
256 if (val)
257 return val;
258 else
259 return (const char *)config_info[cfg_item].default_value;
260 }
261
262 bdk_config_info_t config_info[] = {
263 /* Board manufacturing data */
264 [BDK_CONFIG_BOARD_MODEL] = {
265 .format = "BOARD-MODEL", /* String, No parameters */
266 .ctype = BDK_CONFIG_TYPE_STR,
267 .default_value = (long)"unknown",
268 },
269 [BDK_CONFIG_BOARD_REVISION] = {
270 .format = "BOARD-REVISION", /* String, No parameters */
271 .ctype = BDK_CONFIG_TYPE_STR,
272 .default_value = (long)"unknown",
273 },
274 [BDK_CONFIG_BOARD_SERIAL] = {
275 .format = "BOARD-SERIAL", /* String, No parameters */
276 .ctype = BDK_CONFIG_TYPE_STR,
277 .default_value = (long)"unknown",
278 },
279 [BDK_CONFIG_MAC_ADDRESS] = {
280 .format = "BOARD-MAC-ADDRESS", /* Int64, No parameters */
281 .ctype = BDK_CONFIG_TYPE_INT,
282 .default_value = 0, /* Default updated at boot based on fuses */
283 .min_value = 0,
284 .max_value = 0xffffffffffffll,
285 },
286 [BDK_CONFIG_MAC_ADDRESS_NUM] = {
287 .format = "BOARD-MAC-ADDRESS-NUM", /* Int, No parameters */
288 .ctype = BDK_CONFIG_TYPE_INT,
289 .default_value = 0,
290 .min_value = 0,
291 .max_value = 256,
292 },
293 [BDK_CONFIG_MAC_ADDRESS_NUM_OVERRIDE] = {
294 .format = "BOARD-MAC-ADDRESS-NUM-OVERRIDE", /* Int, No parameters */
295 .ctype = BDK_CONFIG_TYPE_INT,
296 .default_value = -1,
297 .min_value = -1,
298 .max_value = 256,
299 },
300
301 /* Board generic */
302 [BDK_CONFIG_BMC_TWSI] = {
303 .format = "BMC-TWSI", /* No parameters */
304 .ctype = BDK_CONFIG_TYPE_INT,
305 .default_value = -1, /* TWSI bus number, -1 = disabled */
306 .min_value = -1,
307 .max_value = 5,
308 },
309 [BDK_CONFIG_WATCHDOG_TIMEOUT] = {
310 .format = "WATCHDOG-TIMEOUT", /* No parameters */
311 .ctype = BDK_CONFIG_TYPE_INT,
312 .default_value = 0, /* 0 = disabled */
313 .min_value = 0,
314 .max_value = 10000,
315 },
316 [BDK_CONFIG_TWSI_WRITE] = {
317 .format = "TWSI-WRITE", /* No parameters */
318 .ctype = BDK_CONFIG_TYPE_STR_LIST,
319 },
320 [BDK_CONFIG_MDIO_WRITE] = {
321 .format = "MDIO-WRITE", /* No parameters */
322 .ctype = BDK_CONFIG_TYPE_STR_LIST,
323 },
324
325 /* Board wiring of network ports and PHYs */
326 [BDK_CONFIG_PHY_ADDRESS] = {
327 .format = "PHY-ADDRESS.N%d.BGX%d.P%d", /* Parameters: Node, Interface, Port */
328 .ctype = BDK_CONFIG_TYPE_INT,
329 .default_value = -1, /* Default to no PHY */
330 .min_value = -1,
331 .max_value = 0xffffffffll,
332 },
333 [BDK_CONFIG_BGX_ENABLE] = {
334 .format = "BGX-ENABLE.N%d.BGX%d.P%d", /* Parameters: Node, BGX, Port */
335 .ctype = BDK_CONFIG_TYPE_INT,
336 .default_value = 1, /* 0 = disable, 1 = enable */
337 .min_value = 0,
338 .max_value = 1,
339 },
340 /* Non-EBB specific SFF8104 board and alike */
341 [BDK_CONFIG_AQUANTIA_PHY] = {
342 .format = "AQUANTIA-PHY.N%d.BGX%d.P%d", /*Parameters: Node, BGX, Port */
343 .default_value = 0,
344 .min_value = 0,
345 .max_value = 0xffffll,
346 },
347
348
349 /* BDK Configuration params */
350 [BDK_CONFIG_VERSION] = {
351 .format = "BDK-VERSION",
352 .ctype = BDK_CONFIG_TYPE_STR,
353 },
354 [BDK_CONFIG_NUM_PACKET_BUFFERS] = {
355 .format = "BDK-NUM-PACKET-BUFFERS",
356 .ctype = BDK_CONFIG_TYPE_INT,
357 .default_value = 0, /* Default updated at boot */
358 .min_value = 0,
359 .max_value = 1000000,
360 },
361 [BDK_CONFIG_PACKET_BUFFER_SIZE] = {
362 .format = "BDK-PACKET-BUFFER-SIZE",
363 .ctype = BDK_CONFIG_TYPE_INT,
364 .default_value = 1024, /* bytes */
365 .min_value = 128,
366 .max_value = 32768,
367 },
368 [BDK_CONFIG_SHOW_LINK_STATUS] = {
369 .format = "BDK-SHOW-LINK-STATUS",
370 .ctype = BDK_CONFIG_TYPE_INT,
371 .default_value = 1, /* 0 = off, 1 = on */
372 .min_value = 0,
373 .max_value = 1,
374 },
375 [BDK_CONFIG_COREMASK] = {
376 .format = "BDK-COREMASK",
377 .ctype = BDK_CONFIG_TYPE_INT,
378 .default_value = 0, /* Zero means all cores */
379 .min_value = 0,
380 .max_value = 0xffffffffffffll,
381 },
382 [BDK_CONFIG_BOOT_MENU_TIMEOUT] = {
383 .format = "BDK-BOOT-MENU-TIMEOUT",
384 .ctype = BDK_CONFIG_TYPE_INT,
385 .default_value = 10, /* seconds */
386 .min_value = 0,
387 .max_value = 300,
388 },
389 [BDK_CONFIG_BOOT_PATH_OPTION] = {
390 .format = "BDK-BOOT-PATH-OPTION",
391 .ctype = BDK_CONFIG_TYPE_INT,
392 .default_value = 0, /* 0 = normal, 1 = diagnostics */
393 .min_value = 0,
394 .max_value = 1,
395 },
396 [BDK_CONFIG_BOOT_NEXT_STAGE] = {
397 .format = "BDK-CONFIG-BOOT-NEXT-STAGE-%s",
398 .ctype = BDK_CONFIG_TYPE_STR,
399 },
400 [BDK_CONFIG_TRACE] = {
401 .format = "BDK-CONFIG-TRACE",
402 .ctype = BDK_CONFIG_TYPE_INT,
403 .default_value = 0, /* bitmask */
404 .min_value = 0,
405 .max_value = 0x7fffffffffffffffull,
406 },
407
408 /* Chip feature items */
409 [BDK_CONFIG_MULTI_NODE] = {
410 .format = "MULTI-NODE", /* No parameters */
411 .ctype = BDK_CONFIG_TYPE_INT,
412 .default_value = 2, /* 2 = Auto */
413 .min_value = 0,
414 .max_value = 2,
415 },
416 [BDK_CONFIG_PCIE_EA] = {
417 .format = "PCIE-ENHANCED-ALLOCATION", /* No parameters */
418 .ctype = BDK_CONFIG_TYPE_INT,
419 .default_value = 1, /* 1 = EA supported, 0 = EA not supported */
420 .min_value = 0,
421 .max_value = 1,
422 },
423 [BDK_CONFIG_PCIE_ORDERING] = {
424 .format = "PCIE-ORDERING", /* No parameters */
425 .ctype = BDK_CONFIG_TYPE_INT,
426 .default_value = 0, /* 1 = Wait for commit, 0 = Don't wait for commit */
427 .min_value = 0,
428 .max_value = 1,
429 },
430 [BDK_CONFIG_PCIE_PRESET_REQUEST_VECTOR] = {
431 .format = "PCIE-PRESET-REQUEST-VECTOR.N%d.PORT%d", /* Parameters: Node, Port */
432 .ctype = BDK_CONFIG_TYPE_INT,
433 .default_value = 0x593, /* Value for PCIERCX_CFG554[PRV] */
434 .min_value = 0,
435 .max_value = 0xffff,
436 },
437 [BDK_CONFIG_PCIE_WIDTH] = {
438 .format = "PCIE-WIDTH.N%d.PORT%d", /* Parameters: Node, Port */
439 .ctype = BDK_CONFIG_TYPE_INT,
440 .default_value = -1, /* Width override for PCIe links */
441 .min_value = -1,
442 .max_value = 16,
443 },
444 [BDK_CONFIG_PCIE_PHYSICAL_SLOT] = {
445 .format = "PCIE-PHYSICAL-SLOT.N%d.PORT%d", /* Parameters: Node, Port */
446 .ctype = BDK_CONFIG_TYPE_INT,
447 .default_value = -1, /* Define which physical slot we connect to on the board */
448 .min_value = -1,
449 .max_value = 8191,
450 },
451 [BDK_CONFIG_PCIE_SKIP_LINK_TRAIN] = {
452 .format = "PCIE-SKIP-LINK-TRAIN.N%d.PORT%d", /* Parameters: Node, Port */
453 .ctype = BDK_CONFIG_TYPE_INT,
454 .default_value = 0, /* Define which physical slot we connect to on the board */
455 .min_value = 0,
456 .max_value = 1,
457 },
458 [BDK_CONFIG_PCIE_FLASH] = {
459 .format = "PCIE-FLASH.N%d.PORT%d", /* Parameters: Node, Port */
460 .ctype = BDK_CONFIG_TYPE_STR_LIST,
461 },
462 [BDK_CONFIG_CCPI_LANE_REVERSE] = {
463 .format = "CCPI-LANE-REVERSE", /* No parameters */
464 .ctype = BDK_CONFIG_TYPE_INT,
465 .default_value = 0, /* 0 = No forced lane reversal, 1 = forced lane reversal */
466 .min_value = 0,
467 .max_value = 1,
468 },
469 [BDK_CONFIG_CHIP_SKU] = {
470 .format = "CHIP-SKU.NODE%d", /* Parameter: Node */
471 .ctype = BDK_CONFIG_TYPE_STR,
472 .default_value = (long)"TBD",
473 },
474 [BDK_CONFIG_CHIP_SERIAL] = {
475 .format = "CHIP-SERIAL.NODE%d", /* Parameter: Node */
476 .ctype = BDK_CONFIG_TYPE_STR,
477 .default_value = (long)"TBD",
478 },
479 [BDK_CONFIG_CHIP_UNIQUE_ID] = {
480 .format = "CHIP-UNIQUE-ID.NODE%d", /* Parameter: Node */
481 .ctype = BDK_CONFIG_TYPE_STR,
482 .default_value = (long)"TBD",
483 },
484
485 /* QLM related config */
486 [BDK_CONFIG_QLM_AUTO_CONFIG] = {
487 .format = "QLM-AUTO-CONFIG", /* Parameters: Node */
488 .ctype = BDK_CONFIG_TYPE_INT,
489 .default_value = 0, /* 0 = off, 1 = on */
490 .min_value = 0,
491 .max_value = 1,
492 },
493 /* SFF8104 related QLM config */
494 [BDK_CONFIG_QLM_DIP_AUTO_CONFIG] = {
495 .format = "QLM-DIP-AUTO-CONFIG", /* Parameters: Node */
496 .ctype = BDK_CONFIG_TYPE_INT,
497 .default_value = 0, /* 0 = off, 1 = on */
498 .min_value = 0,
499 .max_value = 1,
500 },
501
502 [BDK_CONFIG_QLM_MODE] = {
503 .format = "QLM-MODE.N%d.QLM%d", /* Parameters: Node, QLM */
504 .ctype = BDK_CONFIG_TYPE_STR,
505 },
506 [BDK_CONFIG_QLM_FREQ] = {
507 .format = "QLM-FREQ.N%d.QLM%d", /* Parameters: Node, QLM */
508 .ctype = BDK_CONFIG_TYPE_INT,
509 .default_value = 0, /* Mhz */
510 .min_value = 0,
511 .max_value = 10312,
512 },
513 [BDK_CONFIG_QLM_CLK] = {
514 .format = "QLM-CLK.N%d.QLM%d", /* Parameters: Node, QLM */
515 .ctype = BDK_CONFIG_TYPE_INT,
516 .default_value = 2, /* 2 = External */
517 .min_value = 0,
518 .max_value = 2,
519 },
520 [BDK_CONFIG_QLM_TUNING_TX_SWING] = {
521 .format = "QLM-TUNING-TX-SWING.N%d.QLM%d.LANE%d", /* Parameters: Node, QLM, Lane */
522 .ctype = BDK_CONFIG_TYPE_INT,
523 .default_value = -1, /* Default of no tuning */
524 .min_value = -1,
525 .max_value = 31,
526 },
527 [BDK_CONFIG_QLM_TUNING_TX_PREMPTAP] = {
528 .format = "QLM-TUNING-TX-PREMPTAP.N%d.QLM%d.LANE%d", /* Parameters: Node, QLM, Lane */
529 .ctype = BDK_CONFIG_TYPE_INT,
530 .default_value = -1, /* Default of no tuning */
531 .min_value = -1,
532 .max_value = 511,
533 },
534 [BDK_CONFIG_QLM_TUNING_TX_GAIN] = {
535 .format = "QLM-TUNING-TX-GAIN.N%d.QLM%d.LANE%d", /* Parameters: Node, QLM, Lane */
536 .ctype = BDK_CONFIG_TYPE_INT,
537 .default_value = -1, /* Default of no tuning */
538 .min_value = -1,
539 .max_value = 7,
540 },
541 [BDK_CONFIG_QLM_TUNING_TX_VBOOST] = {
542 .format = "QLM-TUNING-TX-VBOOST.N%d.QLM%d.LANE%d", /* Parameters: Node, QLM, Lane */
543 .ctype = BDK_CONFIG_TYPE_INT,
544 .default_value = -1, /* Default of no tuning */
545 .min_value = -1,
546 .max_value = 1,
547 },
548 [BDK_CONFIG_QLM_CHANNEL_LOSS] = {
549 .format = "QLM-CHANNEL-LOSS.N%d.QLM%d", /* Parameters: Node, QLM */
550 .ctype = BDK_CONFIG_TYPE_INT,
551 .default_value = -1, /* Default will use Cavium defaults */
552 .min_value = -1,
553 .max_value = 40,
554 },
555 /* DRAM configuration options */
556 [BDK_CONFIG_DDR_SPEED] = {
557 .format = "DDR-SPEED.N%d", /* Parameters: Node */
558 .ctype = BDK_CONFIG_TYPE_INT,
559 .default_value = 0, /* In MT/s */
560 .min_value = 0,
561 .max_value = 2400,
562 },
563 [BDK_CONFIG_DDR_ALT_REFCLK] = {
564 .format = "DDR-ALT-REFCLK.N%d", /* Parameters: Node */
565 .ctype = BDK_CONFIG_TYPE_INT,
566 .default_value = 0, /* Mhz */
567 .min_value = 0,
568 .max_value = 100,
569 },
570 [BDK_CONFIG_DDR_SPD_ADDR] = {
571 .format = "DDR-CONFIG-SPD-ADDR.DIMM%d.LMC%d.N%d", /* Parameters: DIMM, LMC, Node */
572 .ctype = BDK_CONFIG_TYPE_INT,
573 .default_value = 0,
574 .min_value = 0,
575 .max_value = 0xffff,
576 },
577 [BDK_CONFIG_DDR_SPD_DATA] = {
578 .format = "DDR-CONFIG-SPD-DATA.DIMM%d.LMC%d.N%d", /* Parameters: DIMM, LMC, Node */
579 .ctype = BDK_CONFIG_TYPE_BINARY,
580 },
581 [BDK_CONFIG_DDR_RANKS_DQX_CTL] = {
582 .format = "DDR-CONFIG-DQX-CTL.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
583 .ctype = BDK_CONFIG_TYPE_INT,
584 .default_value = 0,
585 .min_value = 0,
586 .max_value = 0xf,
587 },
588 [BDK_CONFIG_DDR_RANKS_WODT_MASK] = {
589 .format = "DDR-CONFIG-WODT-MASK.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
590 .ctype = BDK_CONFIG_TYPE_INT,
591 .default_value = 0,
592 .min_value = 0,
593 .max_value = 0xfffffff,
594 },
595 [BDK_CONFIG_DDR_RANKS_MODE1_PASR] = {
596 .format = "DDR-CONFIG-MODE1-PASR.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
597 .ctype = BDK_CONFIG_TYPE_INT,
598 .default_value = 0,
599 .min_value = 0,
600 .max_value = 0x7,
601 },
602 [BDK_CONFIG_DDR_RANKS_MODE1_ASR] = {
603 .format = "DDR-CONFIG-MODE1-ASR.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
604 .ctype = BDK_CONFIG_TYPE_INT,
605 .default_value = 0,
606 .min_value = 0,
607 .max_value = 1,
608 },
609 [BDK_CONFIG_DDR_RANKS_MODE1_SRT] = {
610 .format = "DDR-CONFIG-MODE1-SRT.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
611 .ctype = BDK_CONFIG_TYPE_INT,
612 .default_value = 0,
613 .min_value = 0,
614 .max_value = 1,
615 },
616 [BDK_CONFIG_DDR_RANKS_MODE1_RTT_WR] = {
617 .format = "DDR-CONFIG-MODE1-RTT-WR.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
618 .ctype = BDK_CONFIG_TYPE_INT, // Split for extension bit
619 .default_value = 0,
620 .min_value = 0,
621 .max_value = 0x7,
622 },
623 [BDK_CONFIG_DDR_RANKS_MODE1_DIC] = {
624 .format = "DDR-CONFIG-MODE1-DIC.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
625 .ctype = BDK_CONFIG_TYPE_INT,
626 .default_value = 0,
627 .min_value = 0,
628 .max_value = 0x3,
629 },
630 [BDK_CONFIG_DDR_RANKS_MODE1_RTT_NOM] = {
631 .format = "DDR-CONFIG-MODE1-RTT-NOM.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
632 .ctype = BDK_CONFIG_TYPE_INT,
633 .default_value = 0,
634 .min_value = 0,
635 .max_value = 0x7,
636 },
637 [BDK_CONFIG_DDR_RANKS_MODE1_DB_OUTPUT_IMPEDANCE] = {
638 .format = "DDR-CONFIG-MODE1-DB-OUTPUT-IMPEDANCE.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
639 .ctype = BDK_CONFIG_TYPE_INT, // Not per RANK, only one
640 .default_value = 0,
641 .min_value = 0,
642 .max_value = 0x7,
643 },
644 [BDK_CONFIG_DDR_RANKS_MODE2_RTT_PARK] = {
645 .format = "DDR-CONFIG-MODE2-RTT-PARK.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
646 .ctype = BDK_CONFIG_TYPE_INT,
647 .default_value = 0,
648 .min_value = 0,
649 .max_value = 0x7,
650 },
651 [BDK_CONFIG_DDR_RANKS_MODE2_VREF_VALUE] = {
652 .format = "DDR-CONFIG-MODE2-VREF-VALUE.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
653 .ctype = BDK_CONFIG_TYPE_INT,
654 .default_value = 0,
655 .min_value = 0,
656 .max_value = 0x3f,
657 },
658 [BDK_CONFIG_DDR_RANKS_MODE2_VREF_RANGE] = {
659 .format = "DDR-CONFIG-MODE2-VREF-RANGE.RANKS%d.DIMMS%d.RANK%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, Rank, LMC, Node */
660 .ctype = BDK_CONFIG_TYPE_INT,
661 .default_value = 0,
662 .min_value = 0,
663 .max_value = 1,
664 },
665 [BDK_CONFIG_DDR_RANKS_MODE2_VREFDQ_TRAIN_EN] = {
666 .format = "DDR-CONFIG-MODE2-VREFDQ-TRAIN-EN.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
667 .ctype = BDK_CONFIG_TYPE_INT, // Not per RANK, only one
668 .default_value = 0,
669 .min_value = 0,
670 .max_value = 1,
671 },
672
673 [BDK_CONFIG_DDR_RANKS_RODT_CTL] = {
674 .format = "DDR-CONFIG-RODT-CTL.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
675 .ctype = BDK_CONFIG_TYPE_INT,
676 .default_value = 0,
677 .min_value = 0,
678 .max_value = 0xf,
679 },
680 [BDK_CONFIG_DDR_RANKS_RODT_MASK] = {
681 .format = "DDR-CONFIG-RODT-MASK.RANKS%d.DIMMS%d.LMC%d.N%d", /* Parameters: Num Ranks, Num DIMMs, LMC, Node */
682 .ctype = BDK_CONFIG_TYPE_INT,
683 .default_value = 0,
684 .min_value = 0,
685 .max_value = 0xfffffff,
686 },
687 [BDK_CONFIG_DDR_CUSTOM_MIN_RTT_NOM_IDX] = {
688 .format = "DDR-CONFIG-CUSTOM-MIN-RTT-NOM-IDX.LMC%d.N%d", /* Parameters: LMC, Node */
689 .ctype = BDK_CONFIG_TYPE_INT,
690 .default_value = 1,
691 .min_value = 0,
692 .max_value = 7,
693 },
694 [BDK_CONFIG_DDR_CUSTOM_MAX_RTT_NOM_IDX] = {
695 .format = "DDR-CONFIG-CUSTOM-MAX-RTT-NOM-IDX.LMC%d.N%d", /* Parameters: LMC, Node */
696 .ctype = BDK_CONFIG_TYPE_INT,
697 .default_value = 5,
698 .min_value = 0,
699 .max_value = 7,
700 },
701 [BDK_CONFIG_DDR_CUSTOM_MIN_RODT_CTL] = {
702 .format = "DDR-CONFIG-CUSTOM-MIN-RODT-CTL.LMC%d.N%d", /* Parameters: LMC, Node */
703 .ctype = BDK_CONFIG_TYPE_INT,
704 .default_value = 1,
705 .min_value = 0,
706 .max_value = 7,
707 },
708 [BDK_CONFIG_DDR_CUSTOM_MAX_RODT_CTL] = {
709 .format = "DDR-CONFIG-CUSTOM-MAX-RODT-CTL.LMC%d.N%d", /* Parameters: LMC, Node */
710 .ctype = BDK_CONFIG_TYPE_INT,
711 .default_value = 5,
712 .min_value = 0,
713 .max_value = 7,
714 },
715 [BDK_CONFIG_DDR_CUSTOM_CK_CTL] = {
716 .format = "DDR-CONFIG-CUSTOM-CK-CTL.LMC%d.N%d", /* Parameters: LMC, Node */
717 .ctype = BDK_CONFIG_TYPE_INT,
718 .default_value = 0,
719 .min_value = 0,
720 .max_value = 0xffff,
721 },
722 [BDK_CONFIG_DDR_CUSTOM_CMD_CTL] = {
723 .format = "DDR-CONFIG-CUSTOM-CMD-CTL.LMC%d.N%d", /* Parameters: LMC, Node */
724 .ctype = BDK_CONFIG_TYPE_INT,
725 .default_value = 0,
726 .min_value = 0,
727 .max_value = 0xffff,
728 },
729 [BDK_CONFIG_DDR_CUSTOM_CTL_CTL] = {
730 .format = "DDR-CONFIG-CUSTOM-CTL-CTL.LMC%d.N%d", /* Parameters: LMC, Node */
731 .ctype = BDK_CONFIG_TYPE_INT,
732 .default_value = 0,
733 .min_value = 0,
734 .max_value = 0xf,
735 },
736 [BDK_CONFIG_DDR_CUSTOM_MIN_CAS_LATENCY] = {
737 .format = "DDR-CONFIG-CUSTOM-MIN-CAS-LATENCY.LMC%d.N%d", /* Parameters: LMC, Node */
738 .ctype = BDK_CONFIG_TYPE_INT,
739 .default_value = 0,
740 .min_value = 0,
741 .max_value = 0xffff,
742 },
743 [BDK_CONFIG_DDR_CUSTOM_OFFSET_EN] = {
744 .format = "DDR-CONFIG-CUSTOM-OFFSET-EN.LMC%d.N%d", /* Parameters: LMC, Node */
745 .ctype = BDK_CONFIG_TYPE_INT,
746 .default_value = 1,
747 .min_value = 0,
748 .max_value = 1,
749 },
750 [BDK_CONFIG_DDR_CUSTOM_OFFSET] = {
751 .format = "DDR-CONFIG-CUSTOM-OFFSET.%s.LMC%d.N%d", /* Parameters: Type(UDIMM,RDIMM), LMC, Node */
752 .ctype = BDK_CONFIG_TYPE_INT, // UDIMM or RDIMM
753 .default_value = 0,
754 .min_value = 0,
755 .max_value = 0xf,
756 },
757 [BDK_CONFIG_DDR_CUSTOM_RLEVEL_COMPUTE] = {
758 .format = "DDR-CONFIG-CUSTOM-RLEVEL-COMPUTE.LMC%d.N%d", /* Parameters: LMC, Node */
759 .ctype = BDK_CONFIG_TYPE_INT,
760 .default_value = 0,
761 .min_value = 0,
762 .max_value = 1,
763 },
764 [BDK_CONFIG_DDR_CUSTOM_RLEVEL_COMP_OFFSET] = {
765 .format = "DDR-CONFIG-CUSTOM-RLEVEL-COMP-OFFSET.%s.LMC%d.N%d", /* Parameters: Type(UDIMM,RDIMM), LMC, Node */
766 .ctype = BDK_CONFIG_TYPE_INT, // UDIMM or RDIMM
767 .default_value = 2,
768 .min_value = 0,
769 .max_value = 0xffff,
770 },
771 [BDK_CONFIG_DDR_CUSTOM_DDR2T] = {
772 .format = "DDR-CONFIG-CUSTOM-DDR2T.%s.LMC%d.N%d", /* Parameters: Type(UDIMM,RDIMM), LMC, Node */
773 .ctype = BDK_CONFIG_TYPE_INT, // UDIMM or RDIMM
774 .default_value = 0,
775 .min_value = 0,
776 .max_value = 1,
777 },
778 [BDK_CONFIG_DDR_CUSTOM_DISABLE_SEQUENTIAL_DELAY_CHECK] = {
779 .format = "DDR-CONFIG-CUSTOM-DISABLE-SEQUENTIAL-DELAY-CHECK.LMC%d.N%d", /* Parameters: LMC, Node */
780 .ctype = BDK_CONFIG_TYPE_INT,
781 .default_value = 0,
782 .min_value = 0,
783 .max_value = 1,
784 },
785 [BDK_CONFIG_DDR_CUSTOM_MAXIMUM_ADJACENT_RLEVEL_DELAY_INCREMENT] = {
786 .format = "DDR-CONFIG-CUSTOM-MAXIMUM-ADJACENT-RLEVEL-DELAY-INCREMENT.LMC%d.N%d", /* Parameters: LMC, Node */
787 .ctype = BDK_CONFIG_TYPE_INT,
788 .default_value = 0,
789 .min_value = 0,
790 .max_value = 0xffff,
791 },
792 [BDK_CONFIG_DDR_CUSTOM_PARITY] = {
793 .format = "DDR-CONFIG-CUSTOM-PARITY.LMC%d.N%d", /* Parameters: LMC, Node */
794 .ctype = BDK_CONFIG_TYPE_INT,
795 .default_value = 0,
796 .min_value = 0,
797 .max_value = 1,
798 },
799 [BDK_CONFIG_DDR_CUSTOM_FPRCH2] = {
800 .format = "DDR-CONFIG-CUSTOM-FPRCH2.LMC%d.N%d", /* Parameters: LMC, Node */
801 .ctype = BDK_CONFIG_TYPE_INT,
802 .default_value = 0,
803 .min_value = 0,
804 .max_value = 0xf,
805 },
806 [BDK_CONFIG_DDR_CUSTOM_MODE32B] = {
807 .format = "DDR-CONFIG-CUSTOM-MODE32B.LMC%d.N%d", /* Parameters: LMC, Node */
808 .ctype = BDK_CONFIG_TYPE_INT,
809 .default_value = 0,
810 .min_value = 0,
811 .max_value = 1,
812 },
813 [BDK_CONFIG_DDR_CUSTOM_MEASURED_VREF] = {
814 .format = "DDR-CONFIG-CUSTOM-MEASURED-VREF.LMC%d.N%d", /* Parameters: LMC, Node */
815 .ctype = BDK_CONFIG_TYPE_INT,
816 .default_value = 0,
817 .min_value = 0,
818 .max_value = 1,
819 },
820 [BDK_CONFIG_DDR_CUSTOM_DLL_WRITE_OFFSET] = {
821 .format = "DDR-CONFIG-CUSTOM-DLL-WRITE-OFFSET.BYTE%d.LMC%d.N%d", /* Parameters: Byte, LMC, Node */
822 .ctype = BDK_CONFIG_TYPE_INT,
823 .default_value = 0,
824 .min_value = -63,
825 .max_value = 63,
826 },
827 [BDK_CONFIG_DDR_CUSTOM_DLL_READ_OFFSET] = {
828 .format = "DDR-CONFIG-CUSTOM-DLL-READ-OFFSET.BYTE%d.LMC%d.N%d", /* Parameters: Byte, LMC, Node */
829 .ctype = BDK_CONFIG_TYPE_INT,
830 .default_value = 0,
831 .min_value = -63,
832 .max_value = 63,
833 },
834
835 /* High level DRAM options */
836 [BDK_CONFIG_DRAM_VERBOSE] = {
837 .format = "DDR-VERBOSE", /* Parameters: Node */
838 .ctype = BDK_CONFIG_TYPE_INT,
839 .default_value = 0, /* 0 = off */
840 .min_value = 0,
841 .max_value = 255,
842 },
843 [BDK_CONFIG_DRAM_BOOT_TEST] = {
844 .format = "DDR-TEST-BOOT", /* No parameters */
845 .ctype = BDK_CONFIG_TYPE_INT,
846 .default_value = 0, /* 0 = off, 1 = on */
847 .min_value = 0,
848 .max_value = 1,
849 },
850 [BDK_CONFIG_DRAM_CONFIG_GPIO] = {
851 .format = "DDR-CONFIG-GPIO", /* No parameters */
852 .ctype = BDK_CONFIG_TYPE_INT,
853 .default_value = -1, /* -1 = disabled, otherwise GPIO number */
854 .min_value = -1,
855 .max_value = 63,
856 },
857 [BDK_CONFIG_DRAM_SCRAMBLE] = {
858 .format = "DDR-CONFIG-SCRAMBLE", /* No parameters */
859 .ctype = BDK_CONFIG_TYPE_INT,
860 .default_value = 2, /* 0=off, 1=on, 2=trust on, non-trust off */
861 .min_value = 0,
862 .max_value = 2,
863 },
864
865 /* USB */
866 [BDK_CONFIG_USB_PWR_GPIO] = {
867 .format = "USB-PWR-GPIO.N%d.PORT%d", /* Parameters: Node, Port */
868 .ctype = BDK_CONFIG_TYPE_INT,
869 .default_value = -1, /* GPIO number, or -1 for none */
870 .min_value = -1,
871 .max_value = 49,
872 },
873 [BDK_CONFIG_USB_PWR_GPIO_POLARITY] = {
874 .format = "USB-PWR-GPIO-POLARITY.N%d.PORT%d", /* Parameters: Node, Port */
875 .ctype = BDK_CONFIG_TYPE_INT,
876 .default_value = 1, /* GPIO polarity: 1=high, 0=low */
877 .min_value = 0,
878 .max_value = 1,
879 },
880 [BDK_CONFIG_USB_REFCLK_SRC] = {
881 .format = "USB-REFCLK-SRC.N%d.PORT%d", /* Parameters: Node, Port */
882 .ctype = BDK_CONFIG_TYPE_INT,
883 .default_value = 0, /* Clock Source (SS:HS)
884 ** 0 - SS(USB_REF_CLK) HS(USB_REF_CLK)
885 ** 1 - SS(DLMC_REF_CLK0) HS(DLMC_REF_CLK0)
886 ** 2 - SS(DLMC_REF_CLK1) HS(DLMC_REF_CLK1)
887 ** 3 - SS(USB_REF_CLK) HS(PLL_REF_CLK)
888 ** 4 - SS(DLMC_REF_CLK0) HS(PLL_REF_CLK)
889 ** 5 - SS(DLMC_REF_CLK1) HS(PLL_REF_CLK)
890 */
891 .min_value = 0,
892 .max_value = 5,
893 },
894
895 /* Nitrox reset - For CN88XX SC and SNT part. High drives Nitrox DC_OK high */
896 [BDK_CONFIG_NITROX_GPIO] = {
897 .format = "NITROX-GPIO.N%d", /* Parameters: Node */
898 .ctype = BDK_CONFIG_TYPE_INT,
899 .default_value = -1, /* GPIO number, or -1 for none */
900 .min_value = -1,
901 .max_value = 49,
902 },
903
904 /* How EYE diagrams are captured from a QLM */
905 [BDK_CONFIG_EYE_ZEROS] = {
906 .format = "QLM-EYE-NUM-ZEROS", /* No parameters */
907 .ctype = BDK_CONFIG_TYPE_INT,
908 .default_value = 2,
909 .min_value = 1,
910 .max_value = 63,
911 },
912 [BDK_CONFIG_EYE_SAMPLE_TIME] = {
913 .format = "QLM-EYE-SAMPLE-TIME", /* No parameters */
914 .ctype = BDK_CONFIG_TYPE_INT,
915 .default_value = 400, /* us */
916 .min_value = 20, /* us */
917 .max_value = 10000000, /* us */
918 },
919 [BDK_CONFIG_EYE_SETTLE_TIME] = {
920 .format = "QLM-EYE-SETTLE-TIME", /* No parameters */
921 .ctype = BDK_CONFIG_TYPE_INT,
922 .default_value = 50, /* us */
923 .min_value = 20, /* us */
924 .max_value = 100000, /* us */
925 },
926
927 /* SGPIO */
928 [BDK_CONFIG_SGPIO_SCLOCK_FREQ] = {
929 .format = "SGPIO-SCLOCK-FREQ.N%d", /* Parameters: Node */
930 .ctype = BDK_CONFIG_TYPE_INT,
931 .default_value = 10000, /* Hz */
932 .min_value = 128, /* Hz */
933 .max_value = 100000, /* Hz */
934 },
935 [BDK_CONFIG_SGPIO_PIN_POWER] = {
936 .format = "SGPIO-PIN-POWER.N%d", /* Parameters: Node */
937 .ctype = BDK_CONFIG_TYPE_INT,
938 .default_value = -1, /* GPIO number, or -1 for none */
939 .min_value = -1,
940 .max_value = 50,
941 },
942 [BDK_CONFIG_SGPIO_PIN_SCLOCK] = {
943 .format = "SGPIO-PIN-SCLOCK.N%d", /* Parameters: Node */
944 .ctype = BDK_CONFIG_TYPE_INT,
945 .default_value = -1, /* GPIO number, or -1 for none */
946 .min_value = -1,
947 .max_value = 50,
948 },
949 [BDK_CONFIG_SGPIO_PIN_SLOAD] = {
950 .format = "SGPIO-PIN-SLOAD.N%d", /* Parameters: Node */
951 .ctype = BDK_CONFIG_TYPE_INT,
952 .default_value = -1, /* GPIO number, or -1 for none */
953 .min_value = -1,
954 .max_value = 50,
955 },
956 [BDK_CONFIG_SGPIO_PIN_SDATAOUT] = {
957 .format = "SGPIO-PIN-SDATAOUT.N%d.D%d", /* Parameters: Node, Dataline */
958 .ctype = BDK_CONFIG_TYPE_INT,
959 .default_value = -1, /* GPIO number, or -1 for none */
960 .min_value = -1,
961 .max_value = 50,
962 },
963
964 /* VRM temperature throttling */
965 [BDK_CONFIG_VRM_TEMP_TRIP] = {
966 .format = "VRM-TEMP-TRIP.N%d", /* Parameters: Node */
967 .ctype = BDK_CONFIG_TYPE_INT,
968 .default_value = 110, /* Degrees C */
969 .min_value = 0, /* Degrees C */
970 .max_value = 110, /* Degrees C. Max die temp plus 5 for uncertainty of measurement */
971 },
972 [BDK_CONFIG_VRM_TEMP_HIGH] = {
973 .format = "VRM-TEMP-HIGH.N%d", /* Parameters: Node */
974 .ctype = BDK_CONFIG_TYPE_INT,
975 .default_value = 110, /* Degrees C */
976 .min_value = 0, /* Degrees C */
977 .max_value = 110, /* Degrees C. Max die temp plus 5 for uncertainty of measurement */
978 },
979 [BDK_CONFIG_VRM_TEMP_LOW] = {
980 .format = "VRM-TEMP-LOW.N%d", /* Parameters: Node */
981 .ctype = BDK_CONFIG_TYPE_INT,
982 .default_value = 100, /* Degrees C */
983 .min_value = 0, /* Degrees C */
984 .max_value = 110, /* Degrees C. Max die temp plus 5 for uncertainty of measurement */
985 },
986 [BDK_CONFIG_VRM_THROTTLE_NORMAL] = {
987 .format = "VRM-THROTTLE-NORMAL.N%d", /* Parameters: Node */
988 .ctype = BDK_CONFIG_TYPE_INT,
989 .default_value = 65, /* Percentage */
990 .min_value = 1, /* Percentage */
991 .max_value = 100, /* Percentage */
992 },
993 [BDK_CONFIG_VRM_THROTTLE_THERM] = {
994 .format = "VRM-THROTTLE-THERM.N%d", /* Parameters: Node */
995 .ctype = BDK_CONFIG_TYPE_INT,
996 .default_value = 15, /* Percentage */
997 .min_value = 1, /* Percentage */
998 .max_value = 100, /* Percentage */
999 },
1000
1001 /* Generic GPIO, unrelated to a specific block */
1002 [BDK_CONFIG_GPIO_PIN_SELECT] = {
1003 .format = "GPIO-PIN-SELECT-GPIO%d.N%d", /* Parameters: GPIO, Node */
1004 .ctype = BDK_CONFIG_TYPE_INT,
1005 .default_value = -1, /* Hardware default, normal GPIO pin */
1006 .min_value = 0, /* GPIO_PIN_SEL_E enumeration */
1007 .max_value = 65535, /* GPIO_PIN_SEL_E enumeration */
1008 },
1009 [BDK_CONFIG_GPIO_POLARITY] = {
1010 .format = "GPIO-POLARITY-GPIO%d.N%d", /* Parameters: GPIO, Node */
1011 .ctype = BDK_CONFIG_TYPE_INT,
1012 .default_value = 0, /* Hardware default, not inverted */
1013 .min_value = 0, /* Not inverted */
1014 .max_value = 1, /* Inverted */
1015 },
1016
1017 /* PBUS */
1018 [BDK_CONFIG_PBUS_CFG] = {
1019 .format = "PBUS-CFG.REGION%d.N%d", /* Parameters: Region, Node */
1020 .ctype = BDK_CONFIG_TYPE_INT,
1021 .default_value = 0, /* Hardware default */
1022 .min_value = 0, /* No change */
1023 .max_value = 0x0000ffffffffffffll, /* PBUS_REGX_CFG value */
1024 },
1025 [BDK_CONFIG_PBUS_TIM] = {
1026 .format = "PBUS-TIM.REGION%d.N%d", /* Parameters: Region, Node */
1027 .ctype = BDK_CONFIG_TYPE_INT,
1028 .default_value = 0, /* Hardware default, not inverted */
1029 .min_value = 0x8000000000000000ll, /* PBUS_REGX_TIM value, zero is no change */
1030 .max_value = 0x7fffffffffffffffll, /* PBUS_REGX_TIM value */
1031 },
1032
1033 /* Trusted boot information */
1034 [BDK_CONFIG_TRUST_CSIB] = {
1035 .format = "TRUST-CSIB", /* No parameters */
1036 .ctype = BDK_CONFIG_TYPE_BINARY,
1037 .default_value = 0, /* Hardware default */
1038 },
1039 [BDK_CONFIG_TRUST_ROT_ADDR] = {
1040 .format = "TRUST-ROT-ADDR", /* No parameters */
1041 .ctype = BDK_CONFIG_TYPE_INT,
1042 .default_value = 0, /* Non-trusted */
1043 .min_value = 0, /* No key */
1044 .max_value = 0x0000ffffffffffffll, /* Address in key memory */
1045 },
1046 [BDK_CONFIG_TRUST_BSSK_ADDR] = {
1047 .format = "TRUST-BSSK-ADDR", /* No parameters */
1048 .ctype = BDK_CONFIG_TYPE_INT,
1049 .default_value = 0, /* No HUK, so no BSSK */
1050 .min_value = 0, /* No HUK, so no BSSK */
1051 .max_value = 0x0000ffffffffffffll, /* Address in key memory */
1052 },
1053 };
1054
1055