OpenSSD Cosmos+ Platform Firmware
0.0.2
The firmware of Cosmos+ OpenSSD Platform for TOSHIBA nand flash module.
|
Go to the source code of this file.
Data Structures | |
struct | _DEV_IRQ_REG |
struct | _PCIE_STATUS_REG |
struct | _PCIE_FUNC_REG |
struct | _NVME_STATUS_REG |
struct | _NVME_CMD_FIFO_REG |
struct | _NVME_CPL_FIFO_REG |
struct | _NVME_ADMIN_QUEUE_SET_REG |
struct | _NVME_IO_SQ_SET_REG |
struct | _NVME_IO_CQ_SET_REG |
struct | _HOST_DMA_FIFO_CNT_REG |
struct | _HOST_DMA_CMD_FIFO_REG |
struct | _NVME_CMD_SRAM |
struct | _HOST_DMA_STATUS |
struct | _HOST_DMA_ASSIST_STATUS |
Typedefs | |
typedef struct _DEV_IRQ_REG | DEV_IRQ_REG |
typedef struct _PCIE_STATUS_REG | PCIE_STATUS_REG |
typedef struct _PCIE_FUNC_REG | PCIE_FUNC_REG |
typedef struct _NVME_STATUS_REG | NVME_STATUS_REG |
typedef struct _NVME_CMD_FIFO_REG | NVME_CMD_FIFO_REG |
typedef struct _NVME_CPL_FIFO_REG | NVME_CPL_FIFO_REG |
typedef struct _NVME_ADMIN_QUEUE_SET_REG | NVME_ADMIN_QUEUE_SET_REG |
typedef struct _NVME_IO_SQ_SET_REG | NVME_IO_SQ_SET_REG |
typedef struct _NVME_IO_CQ_SET_REG | NVME_IO_CQ_SET_REG |
typedef struct _HOST_DMA_FIFO_CNT_REG | HOST_DMA_FIFO_CNT_REG |
typedef struct _HOST_DMA_CMD_FIFO_REG | HOST_DMA_CMD_FIFO_REG |
typedef struct _NVME_CMD_SRAM | _NVME_CMD_SRAM |
typedef struct _HOST_DMA_STATUS | HOST_DMA_STATUS |
typedef struct _HOST_DMA_ASSIST_STATUS | HOST_DMA_ASSIST_STATUS |
Functions | |
void | dev_irq_init () |
void | dev_irq_handler () |
unsigned int | check_nvme_cc_en () |
void | set_nvme_csts_rdy () |
void | set_nvme_csts_shst (unsigned int shst) |
void | set_nvme_admin_queue (unsigned int sqValid, unsigned int cqValid, unsigned int cqIrqEn) |
unsigned int | get_nvme_cmd (unsigned short *qID, unsigned short *cmdSlotTag, unsigned int *cmdSeqNum, unsigned int *cmdDword) |
void | set_auto_nvme_cpl (unsigned int cmdSlotTag, unsigned int specific, unsigned int statusFieldWord) |
void | set_nvme_slot_release (unsigned int cmdSlotTag) |
void | set_nvme_cpl (unsigned int sqId, unsigned int cid, unsigned int specific, unsigned int statusFieldWord) |
void | set_io_sq (unsigned int ioSqIdx, unsigned int valid, unsigned int cqVector, unsigned int qSzie, unsigned int pcieBaseAddrL, unsigned int pcieBaseAddrH) |
void | set_io_cq (unsigned int ioCqIdx, unsigned int valid, unsigned int irqEn, unsigned int irqVector, unsigned int qSzie, unsigned int pcieBaseAddrL, unsigned int pcieBaseAddrH) |
void | set_direct_tx_dma (unsigned int devAddr, unsigned int pcieAddrH, unsigned int pcieAddrL, unsigned int len) |
void | set_direct_rx_dma (unsigned int devAddr, unsigned int pcieAddrH, unsigned int pcieAddrL, unsigned int len) |
void | set_auto_tx_dma (unsigned int cmdSlotTag, unsigned int cmd4KBOffset, unsigned int devAddr, unsigned int autoCompletion) |
void | set_auto_rx_dma (unsigned int cmdSlotTag, unsigned int cmd4KBOffset, unsigned int devAddr, unsigned int autoCompletion) |
void | set_link_width (unsigned int linkNum) |
void | pcie_async_reset (unsigned int rstCnt) |
void | check_direct_tx_dma_done () |
void | check_direct_rx_dma_done () |
void | check_auto_tx_dma_done () |
void | check_auto_rx_dma_done () |
unsigned int | check_auto_tx_dma_partial_done (unsigned int tailIndex, unsigned int tailAssistIndex) |
unsigned int | check_auto_rx_dma_partial_done (unsigned int tailIndex, unsigned int tailAssistIndex) |
Variables | |
HOST_DMA_STATUS | g_hostDmaStatus |
HOST_DMA_ASSIST_STATUS | g_hostDmaAssistStatus |
#define AUTO_CPL_TYPE (1) |
Definition at line 85 of file host_lld.h.
#define CMD_SLOT_RELEASE_TYPE (2) |
Definition at line 86 of file host_lld.h.
#define DEV_IRQ_CLEAR_REG_ADDR (HOST_IP_ADDR + 0x8) |
Definition at line 60 of file host_lld.h.
#define DEV_IRQ_MASK_REG_ADDR (HOST_IP_ADDR + 0x4) |
Definition at line 59 of file host_lld.h.
#define DEV_IRQ_STATUS_REG_ADDR (HOST_IP_ADDR + 0xC) |
Definition at line 61 of file host_lld.h.
#define HOST_DMA_AUTO_TYPE (0) |
Definition at line 79 of file host_lld.h.
#define HOST_DMA_CMD_FIFO_REG_ADDR (HOST_IP_ADDR + 0x310) |
Definition at line 74 of file host_lld.h.
#define HOST_DMA_DIRECT_TYPE (1) |
Definition at line 78 of file host_lld.h.
#define HOST_DMA_FIFO_CNT_REG_ADDR (HOST_IP_ADDR + 0x204) |
Definition at line 67 of file host_lld.h.
#define HOST_DMA_RX_DIRECTION (0) |
Definition at line 82 of file host_lld.h.
#define HOST_DMA_TX_DIRECTION (1) |
Definition at line 81 of file host_lld.h.
#define HOST_IP_ADDR (XPAR_NVME_CTRL_0_BASEADDR) |
Definition at line 57 of file host_lld.h.
#define NVME_ADMIN_QUEUE_SET_REG_ADDR (HOST_IP_ADDR + 0x21C) |
Definition at line 68 of file host_lld.h.
#define NVME_CMD_FIFO_REG_ADDR (HOST_IP_ADDR + 0x300) |
Definition at line 72 of file host_lld.h.
#define NVME_CMD_SRAM_ADDR (HOST_IP_ADDR + 0x10000) |
Definition at line 76 of file host_lld.h.
#define NVME_CPL_FIFO_REG_ADDR (HOST_IP_ADDR + 0x304) |
Definition at line 73 of file host_lld.h.
#define NVME_IO_CQ_SET_REG_ADDR (HOST_IP_ADDR + 0x260) |
Definition at line 70 of file host_lld.h.
#define NVME_IO_SQ_SET_REG_ADDR (HOST_IP_ADDR + 0x220) |
Definition at line 69 of file host_lld.h.
#define NVME_STATUS_REG_ADDR (HOST_IP_ADDR + 0x200) |
Definition at line 66 of file host_lld.h.
#define ONLY_CPL_TYPE (0) |
Definition at line 84 of file host_lld.h.
#define P_SLOT_TAG_WIDTH (10) |
Definition at line 87 of file host_lld.h.
#define PCIE_FUNC_REG_ADDR (HOST_IP_ADDR + 0x104) |
Definition at line 64 of file host_lld.h.
#define PCIE_STATUS_REG_ADDR (HOST_IP_ADDR + 0x100) |
Definition at line 63 of file host_lld.h.
typedef struct _NVME_CMD_SRAM _NVME_CMD_SRAM |
typedef struct _DEV_IRQ_REG DEV_IRQ_REG |
typedef struct _HOST_DMA_ASSIST_STATUS HOST_DMA_ASSIST_STATUS |
typedef struct _HOST_DMA_CMD_FIFO_REG HOST_DMA_CMD_FIFO_REG |
typedef struct _HOST_DMA_FIFO_CNT_REG HOST_DMA_FIFO_CNT_REG |
typedef struct _HOST_DMA_STATUS HOST_DMA_STATUS |
typedef struct _NVME_ADMIN_QUEUE_SET_REG NVME_ADMIN_QUEUE_SET_REG |
typedef struct _NVME_CMD_FIFO_REG NVME_CMD_FIFO_REG |
typedef struct _NVME_CPL_FIFO_REG NVME_CPL_FIFO_REG |
typedef struct _NVME_IO_CQ_SET_REG NVME_IO_CQ_SET_REG |
typedef struct _NVME_IO_SQ_SET_REG NVME_IO_SQ_SET_REG |
typedef struct _NVME_STATUS_REG NVME_STATUS_REG |
typedef struct _PCIE_FUNC_REG PCIE_FUNC_REG |
typedef struct _PCIE_STATUS_REG PCIE_STATUS_REG |
void check_auto_rx_dma_done | ( | ) |
Definition at line 477 of file host_lld.c.
unsigned int check_auto_rx_dma_partial_done | ( | unsigned int | tailIndex, |
unsigned int | tailAssistIndex | ||
) |
Definition at line 524 of file host_lld.c.
void check_auto_tx_dma_done | ( | ) |
Definition at line 469 of file host_lld.c.
unsigned int check_auto_tx_dma_partial_done | ( | unsigned int | tailIndex, |
unsigned int | tailAssistIndex | ||
) |
Definition at line 485 of file host_lld.c.
void check_direct_rx_dma_done | ( | ) |
Definition at line 461 of file host_lld.c.
void check_direct_tx_dma_done | ( | ) |
Definition at line 453 of file host_lld.c.
unsigned int check_nvme_cc_en | ( | ) |
Definition at line 177 of file host_lld.c.
void dev_irq_handler | ( | ) |
Definition at line 86 of file host_lld.c.
void dev_irq_init | ( | ) |
Definition at line 66 of file host_lld.c.
unsigned int get_nvme_cmd | ( | unsigned short * | qID, |
unsigned short * | cmdSlotTag, | ||
unsigned int * | cmdSeqNum, | ||
unsigned int * | cmdDword | ||
) |
Definition at line 237 of file host_lld.c.
void pcie_async_reset | ( | unsigned int | rstCnt | ) |
Definition at line 186 of file host_lld.c.
void set_auto_nvme_cpl | ( | unsigned int | cmdSlotTag, |
unsigned int | specific, | ||
unsigned int | statusFieldWord | ||
) |
Definition at line 260 of file host_lld.c.
void set_auto_rx_dma | ( | unsigned int | cmdSlotTag, |
unsigned int | cmd4KBOffset, | ||
unsigned int | devAddr, | ||
unsigned int | autoCompletion | ||
) |
Definition at line 419 of file host_lld.c.
void set_auto_tx_dma | ( | unsigned int | cmdSlotTag, |
unsigned int | cmd4KBOffset, | ||
unsigned int | devAddr, | ||
unsigned int | autoCompletion | ||
) |
Definition at line 385 of file host_lld.c.
void set_direct_rx_dma | ( | unsigned int | devAddr, |
unsigned int | pcieAddrH, | ||
unsigned int | pcieAddrL, | ||
unsigned int | len | ||
) |
Definition at line 361 of file host_lld.c.
void set_direct_tx_dma | ( | unsigned int | devAddr, |
unsigned int | pcieAddrH, | ||
unsigned int | pcieAddrL, | ||
unsigned int | len | ||
) |
Definition at line 336 of file host_lld.c.
void set_io_cq | ( | unsigned int | ioCqIdx, |
unsigned int | valid, | ||
unsigned int | irqEn, | ||
unsigned int | irqVector, | ||
unsigned int | qSzie, | ||
unsigned int | pcieBaseAddrL, | ||
unsigned int | pcieBaseAddrH | ||
) |
Definition at line 318 of file host_lld.c.
void set_io_sq | ( | unsigned int | ioSqIdx, |
unsigned int | valid, | ||
unsigned int | cqVector, | ||
unsigned int | qSzie, | ||
unsigned int | pcieBaseAddrL, | ||
unsigned int | pcieBaseAddrH | ||
) |
Definition at line 301 of file host_lld.c.
void set_link_width | ( | unsigned int | linkNum | ) |
Definition at line 195 of file host_lld.c.
void set_nvme_admin_queue | ( | unsigned int | sqValid, |
unsigned int | cqValid, | ||
unsigned int | cqIrqEn | ||
) |
Definition at line 225 of file host_lld.c.
void set_nvme_cpl | ( | unsigned int | sqId, |
unsigned int | cid, | ||
unsigned int | specific, | ||
unsigned int | statusFieldWord | ||
) |
Definition at line 286 of file host_lld.c.
void set_nvme_csts_rdy | ( | ) |
void set_nvme_csts_shst | ( | unsigned int | shst | ) |
Definition at line 215 of file host_lld.c.
void set_nvme_slot_release | ( | unsigned int | cmdSlotTag | ) |
Definition at line 274 of file host_lld.c.
|
extern |
Definition at line 64 of file host_lld.c.
|
extern |
Definition at line 63 of file host_lld.c.