MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_com_validate_version

Function ena_com_validate_version

dpdk/drivers/net/ena/base/ena_com.c:1633–1678  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1631}
1632
1633int ena_com_validate_version(struct ena_com_dev *ena_dev)
1634{
1635 u32 ver;
1636 u32 ctrl_ver;
1637 u32 ctrl_ver_masked;
1638
1639 /* Make sure the ENA version and the controller version are at least
1640 * as the driver expects
1641 */
1642 ver = ena_com_reg_bar_read32(ena_dev, ENA_REGS_VERSION_OFF);
1643 ctrl_ver = ena_com_reg_bar_read32(ena_dev,
1644 ENA_REGS_CONTROLLER_VERSION_OFF);
1645
1646 if (unlikely((ver == ENA_MMIO_READ_TIMEOUT) ||
1647 (ctrl_ver == ENA_MMIO_READ_TIMEOUT))) {
1648 ena_trc_err(ena_dev, "Reg read timeout occurred\n");
1649 return ENA_COM_TIMER_EXPIRED;
1650 }
1651
1652 ena_trc_info(ena_dev, "ENA device version: %d.%d\n",
1653 (ver & ENA_REGS_VERSION_MAJOR_VERSION_MASK) >>
1654 ENA_REGS_VERSION_MAJOR_VERSION_SHIFT,
1655 ver & ENA_REGS_VERSION_MINOR_VERSION_MASK);
1656
1657 ena_trc_info(ena_dev, "ENA controller version: %d.%d.%d implementation version %d\n",
1658 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK)
1659 >> ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT,
1660 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK)
1661 >> ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_SHIFT,
1662 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_SUBMINOR_VERSION_MASK),
1663 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_IMPL_ID_MASK) >>
1664 ENA_REGS_CONTROLLER_VERSION_IMPL_ID_SHIFT);
1665
1666 ctrl_ver_masked =
1667 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK) |
1668 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK) |
1669 (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_SUBMINOR_VERSION_MASK);
1670
1671 /* Validate the ctrl version without the implementation ID */
1672 if (ctrl_ver_masked < MIN_ENA_CTRL_VER) {
1673 ena_trc_err(ena_dev, "ENA ctrl version is lower than the minimal ctrl version the driver supports\n");
1674 return -1;
1675 }
1676
1677 return 0;
1678}
1679
1680static void
1681ena_com_free_ena_admin_queue_comp_ctx(struct ena_com_dev *ena_dev,

Callers 1

ena_device_initFunction · 0.50

Calls 1

ena_com_reg_bar_read32Function · 0.70

Tested by

no test coverage detected