int print_version()

in meta-facebook/meta-fby2/recipes-fby2/fw-util/files/vr.cpp [27:202]


  int print_version() {
    uint8_t ver[32] = {0};
    if (fby2_get_slot_type(slot_id) == SLOT_TYPE_GPV2) {
      try {
        server.ready();
        // Print 3V3_VR VR Version
        if (bic_get_fw_ver(slot_id, FW_3V3_VR, ver)) {
          printf("3V3 VR Version: NA\n");
        } else {
          printf("3V3 VR Version: 0x%02x\n", ver[0]);
        }

        // Print 3V3_VR VR Version
        if (bic_get_fw_ver(slot_id, FW_0V92, ver)) {
          printf("0V92 VR Version: NA\n");
        } else {
          printf("0V92 VR Version: 0x%02x\n", ver[0]);
        }
      } catch (const string& err) {
        printf("3V3 VR Version: NA (%s)\n", err.c_str());
        printf("0V92 VR Version: NA (%s)\n", err.c_str());
      }
      return 0;
    }

    int ret;
    uint8_t server_type = 0xFF;
    ret = fby2_get_server_type(slot_id, &server_type);
    if (ret) {
      syslog(LOG_ERR, "%s, Get server type failed\n", __func__);
    }

    switch (server_type) {
      case SERVER_TYPE_ND:
        try {
          server.ready();
          if (bic_get_fw_ver(slot_id, FW_PVDDCR_CPU_VR, ver)) {
            printf("PVDDCR_CPU VR Version: NA\n");
          } else {
            printf(
                "PVDDCR_CPU VR Version: %02X%02X%02X%02X, Remaining Writes: %u\n",
                ver[3], ver[2], ver[1], ver[0], ver[4]);
          }

          if (bic_get_fw_ver(slot_id, FW_PVDDCR_SOC_VR, ver)) {
            printf("PVDDCR_SOC VR Version: NA\n");
          } else {
            printf(
                "PVDDCR_SOC VR Version: %02X%02X%02X%02X, Remaining Writes: %u\n",
                ver[3], ver[2], ver[1], ver[0], ver[4]);
          }

          if (bic_get_fw_ver(slot_id, FW_PVDDIO_ABCD_VR, ver)) {
            printf("PVDDIO_ABCD VR Version: NA\n");
          } else {
            printf(
                "PVDDIO_ABCD VR Version: %02X%02X%02X%02X, Remaining Writes: %u\n",
                ver[3], ver[2], ver[1], ver[0], ver[4]);
          }

          if (bic_get_fw_ver(slot_id, FW_PVDDIO_EFGH_VR, ver)) {
            printf("PVDDIO_EFGH VR Version: NA\n");
          } else {
            printf(
                "PVDDIO_EFGH VR Version: %02X%02X%02X%02X, Remaining Writes: %u\n",
                ver[3], ver[2], ver[1], ver[0], ver[4]);
          }
        } catch (const string& err) {
          printf("PVDDCR_CPU VR Version: NA (%s)\n", err.c_str());
          printf("PVDDCR_SOC VR Version: NA (%s)\n", err.c_str());
          printf("PVDDIO_ABCD VR Version: NA (%s)\n", err.c_str());
          printf("PVDDIO_EFGH VR Version: NA (%s)\n", err.c_str());
        }
        break;

      case SERVER_TYPE_TL:
      default:
        try {
          server.ready();
          // Print PVCCIO VR Version
          if (bic_get_fw_ver(slot_id, FW_PVCCIO_VR, ver)) {
            printf("PVCCIO VR Version: NA\n");
          } else {
            printf(
                "PVCCIO VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print PVCCIN VR Version
          if (bic_get_fw_ver(slot_id, FW_PVCCIN_VR, ver)) {
            printf("PVCCIN VR Version: NA\n");
          } else {
            printf(
                "PVCCIN VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print PVCCSA VR Version
          if (bic_get_fw_ver(slot_id, FW_PVCCSA_VR, ver)) {
            printf("PVCCSA VR Version: NA\n");
          } else {
            printf(
                "PVCCSA VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print DDRAB VR Version
          if (bic_get_fw_ver(slot_id, FW_DDRAB_VR, ver)) {
            printf("DDRAB VR Version: NA\n");
          } else {
            printf(
                "DDRAB VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print DDRDE VR Version
          if (bic_get_fw_ver(slot_id, FW_DDRDE_VR, ver)) {
            printf("DDRDE VR Version: NA\n");
          } else {
            printf(
                "DDRDE VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print PVNNPCH VR Version
          if (bic_get_fw_ver(slot_id, FW_PVNNPCH_VR, ver)) {
            printf("PVNNPCH VR Version: NA\n");
          } else {
            printf(
                "PVNNPCH VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }

          // Print P1V05 VR Version
          if (bic_get_fw_ver(slot_id, FW_P1V05_VR, ver)) {
            printf("P1V05 VR Version: NA\n");
          } else {
            printf(
                "P1V05 VR Version: 0x%02x%02x, 0x%02x%02x\n",
                ver[0],
                ver[1],
                ver[2],
                ver[3]);
          }
        } catch (const string& err) {
          printf("PVCCIO VR Version: NA (%s)\n", err.c_str());
          printf("PVCCIN VR Version: NA (%s)\n", err.c_str());
          printf("PVCCSA VR Version: NA (%s)\n", err.c_str());
          printf("DDRAB VR Version: NA (%s)\n", err.c_str());
          printf("DDRDE VR Version: NA (%s)\n", err.c_str());
          printf("PVNNPCH VR Version: NA (%s)\n", err.c_str());
          printf("P1V05 VR Version: NA (%s)\n", err.c_str());
        }
        break;
    }

    return 0;
  }