Path: blob/main/sys/contrib/ena-com/ena_defs/ena_regs_defs.h
48266 views
/*-1* SPDX-License-Identifier: BSD-3-Clause2*3* Copyright (c) 2015-2023 Amazon.com, Inc. or its affiliates.4* All rights reserved.5*6* Redistribution and use in source and binary forms, with or without7* modification, are permitted provided that the following conditions8* are met:9*10* * Redistributions of source code must retain the above copyright11* notice, this list of conditions and the following disclaimer.12* * Redistributions in binary form must reproduce the above copyright13* notice, this list of conditions and the following disclaimer in14* the documentation and/or other materials provided with the15* distribution.16* * Neither the name of copyright holder nor the names of its17* contributors may be used to endorse or promote products derived18* from this software without specific prior written permission.19*20* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS21* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT22* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR23* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT24* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,25* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT26* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,27* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY28* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT29* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE30* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.31*/3233#ifndef _ENA_REGS_H_34#define _ENA_REGS_H_3536enum ena_regs_reset_reason_types {37ENA_REGS_RESET_NORMAL = 0,38ENA_REGS_RESET_KEEP_ALIVE_TO = 1,39ENA_REGS_RESET_ADMIN_TO = 2,40ENA_REGS_RESET_MISS_TX_CMPL = 3,41ENA_REGS_RESET_INV_RX_REQ_ID = 4,42ENA_REGS_RESET_INV_TX_REQ_ID = 5,43ENA_REGS_RESET_TOO_MANY_RX_DESCS = 6,44ENA_REGS_RESET_INIT_ERR = 7,45ENA_REGS_RESET_DRIVER_INVALID_STATE = 8,46ENA_REGS_RESET_OS_TRIGGER = 9,47ENA_REGS_RESET_OS_NETDEV_WD = 10,48ENA_REGS_RESET_SHUTDOWN = 11,49ENA_REGS_RESET_USER_TRIGGER = 12,50ENA_REGS_RESET_GENERIC = 13,51ENA_REGS_RESET_MISS_INTERRUPT = 14,52ENA_REGS_RESET_SUSPECTED_POLL_STARVATION = 15,53ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED = 16,54ENA_REGS_RESET_TX_DESCRIPTOR_MALFORMED = 17,55ENA_REGS_RESET_MISSING_ADMIN_INTERRUPT = 18,56ENA_REGS_RESET_DEVICE_REQUEST = 19,57ENA_REGS_RESET_LAST,58};5960/* ena_registers offsets */6162/* 0 base */63#define ENA_REGS_VERSION_OFF 0x064#define ENA_REGS_CONTROLLER_VERSION_OFF 0x465#define ENA_REGS_CAPS_OFF 0x866#define ENA_REGS_CAPS_EXT_OFF 0xc67#define ENA_REGS_AQ_BASE_LO_OFF 0x1068#define ENA_REGS_AQ_BASE_HI_OFF 0x1469#define ENA_REGS_AQ_CAPS_OFF 0x1870#define ENA_REGS_ACQ_BASE_LO_OFF 0x2071#define ENA_REGS_ACQ_BASE_HI_OFF 0x2472#define ENA_REGS_ACQ_CAPS_OFF 0x2873#define ENA_REGS_AQ_DB_OFF 0x2c74#define ENA_REGS_ACQ_TAIL_OFF 0x3075#define ENA_REGS_AENQ_CAPS_OFF 0x3476#define ENA_REGS_AENQ_BASE_LO_OFF 0x3877#define ENA_REGS_AENQ_BASE_HI_OFF 0x3c78#define ENA_REGS_AENQ_HEAD_DB_OFF 0x4079#define ENA_REGS_AENQ_TAIL_OFF 0x4480#define ENA_REGS_INTR_MASK_OFF 0x4c81#define ENA_REGS_DEV_CTL_OFF 0x5482#define ENA_REGS_DEV_STS_OFF 0x5883#define ENA_REGS_MMIO_REG_READ_OFF 0x5c84#define ENA_REGS_MMIO_RESP_LO_OFF 0x6085#define ENA_REGS_MMIO_RESP_HI_OFF 0x6486#define ENA_REGS_RSS_IND_ENTRY_UPDATE_OFF 0x688788/* phc_registers offsets */8990/* 100 base */91#define ENA_REGS_PHC_DB_OFF 0x1009293/* version register */94#define ENA_REGS_VERSION_MINOR_VERSION_MASK 0xff95#define ENA_REGS_VERSION_MAJOR_VERSION_SHIFT 896#define ENA_REGS_VERSION_MAJOR_VERSION_MASK 0xff009798/* controller_version register */99#define ENA_REGS_CONTROLLER_VERSION_SUBMINOR_VERSION_MASK 0xff100#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_SHIFT 8101#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK 0xff00102#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT 16103#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK 0xff0000104#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_SHIFT 24105#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_MASK 0xff000000106107/* caps register */108#define ENA_REGS_CAPS_CONTIGUOUS_QUEUE_REQUIRED_MASK 0x1109#define ENA_REGS_CAPS_RESET_TIMEOUT_SHIFT 1110#define ENA_REGS_CAPS_RESET_TIMEOUT_MASK 0x3e111#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_SHIFT 8112#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_MASK 0xff00113#define ENA_REGS_CAPS_ADMIN_CMD_TO_SHIFT 16114#define ENA_REGS_CAPS_ADMIN_CMD_TO_MASK 0xf0000115116/* aq_caps register */117#define ENA_REGS_AQ_CAPS_AQ_DEPTH_MASK 0xffff118#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_SHIFT 16119#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_MASK 0xffff0000120121/* acq_caps register */122#define ENA_REGS_ACQ_CAPS_ACQ_DEPTH_MASK 0xffff123#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_SHIFT 16124#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_MASK 0xffff0000125126/* aenq_caps register */127#define ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK 0xffff128#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_SHIFT 16129#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_MASK 0xffff0000130131/* dev_ctl register */132#define ENA_REGS_DEV_CTL_DEV_RESET_MASK 0x1133#define ENA_REGS_DEV_CTL_AQ_RESTART_SHIFT 1134#define ENA_REGS_DEV_CTL_AQ_RESTART_MASK 0x2135#define ENA_REGS_DEV_CTL_QUIESCENT_SHIFT 2136#define ENA_REGS_DEV_CTL_QUIESCENT_MASK 0x4137#define ENA_REGS_DEV_CTL_IO_RESUME_SHIFT 3138#define ENA_REGS_DEV_CTL_IO_RESUME_MASK 0x8139#define ENA_REGS_DEV_CTL_RESET_REASON_EXT_SHIFT 24140#define ENA_REGS_DEV_CTL_RESET_REASON_EXT_MASK 0xf000000141#define ENA_REGS_DEV_CTL_RESET_REASON_SHIFT 28142#define ENA_REGS_DEV_CTL_RESET_REASON_MASK 0xf0000000143144/* dev_sts register */145#define ENA_REGS_DEV_STS_READY_MASK 0x1146#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_SHIFT 1147#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_MASK 0x2148#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_SHIFT 2149#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_MASK 0x4150#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_SHIFT 3151#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_MASK 0x8152#define ENA_REGS_DEV_STS_RESET_FINISHED_SHIFT 4153#define ENA_REGS_DEV_STS_RESET_FINISHED_MASK 0x10154#define ENA_REGS_DEV_STS_FATAL_ERROR_SHIFT 5155#define ENA_REGS_DEV_STS_FATAL_ERROR_MASK 0x20156#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_SHIFT 6157#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_MASK 0x40158#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_SHIFT 7159#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_MASK 0x80160161/* mmio_reg_read register */162#define ENA_REGS_MMIO_REG_READ_REQ_ID_MASK 0xffff163#define ENA_REGS_MMIO_REG_READ_REG_OFF_SHIFT 16164#define ENA_REGS_MMIO_REG_READ_REG_OFF_MASK 0xffff0000165166/* rss_ind_entry_update register */167#define ENA_REGS_RSS_IND_ENTRY_UPDATE_INDEX_MASK 0xffff168#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_SHIFT 16169#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_MASK 0xffff0000170171/* phc_db_req_id register */172#define ENA_REGS_PHC_DB_REQ_ID_MASK 0xffff173174#endif /* _ENA_REGS_H_ */175176177