blob: 879cb6133cd07d2ddca438594844823e75c31f5b [file] [log] [blame]
Googlera8fd56b2024-10-24 14:04:51 +08001/*
2 * (C) Copyright 2001
3 * Erik Theisen, Wave 7 Optics, etheisen@mindspring.com
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#include <common.h>
9#include <command.h>
10
11#if defined(CONFIG_CMD_BSP)
12
13#include "vpd.h"
14
15/* ======================================================================
16 * Interpreter command to retrieve board specific Vital Product Data, "VPD"
17 * ======================================================================
18 */
19int do_vpd (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
20{
21 VPD vpd; /* Board specific data struct */
22 uchar dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR;
23
24 /* Validate usage */
25 if (argc > 2)
26 return cmd_usage(cmdtp);
27
28 /* Passed in EEPROM address */
29 if (argc == 2)
30 dev_addr = (uchar) simple_strtoul (argv[1], NULL, 16);
31
32 /* Read VPD and output it */
33 if (!vpd_get_data (dev_addr, &vpd)) {
34 vpd_print (&vpd);
35 return 0;
36 }
37
38 return 1;
39}
40
41U_BOOT_CMD(
42 vpd, 2, 1, do_vpd,
43 "Read Vital Product Data",
44 "[dev_addr]\n"
45 " - Read VPD Data from default address, or device address 'dev_addr'."
46);
47
48#endif