IPC module. More...
#include <string.h>#include "rwnx_config.h"#include "dbg_assert.h"#include "co_math.h"#include "ke_mem.h"#include "ke_msg.h"#include "ke_task.h"#include "ke_event.h"#include "tx_swdesc.h"#include "rxl_cntrl.h"#include "txl_buffer.h"#include "dma.h"#include "ipc_emb.h"#include "ipc_shared.h"#include "sysctrl.h"#include "dbg.h"#include "txl_cntrl.h"#include "txl_agg.h"#include "txu_cntrl.h"Go to the source code of this file.
Defines | |
| #define | MSG_LLICTRL(irqenable) ( (irqenable)?(IPC_DMA_LLI_IRQ_EN|(IPC_DMA_LLI_MSG << IPC_DMA_LLI_IRQ_POS)) : 0) |
| Configure the DMA control field for a kernel message upload. | |
| #define | DBG_LLICTRL(irqenable) ( (irqenable)?(IPC_DMA_LLI_IRQ_EN|(IPC_DMA_LLI_DBG << IPC_DMA_LLI_IRQ_POS)) : 0) |
| Configure the DMA control field for a debug message upload. | |
| #define | ALL_EVENTS_TX |
| Bit field containing all IPC TX event bits. | |
| #define | HIGH_PRIO_EVT (KE_EVT_RXREADY_BIT | KE_EVT_PRIMARY_TBTT_BIT | KE_EVT_MACIF_TXDESC_BCN_BIT) |
| High priority kernel that should interrupt the IPC TX event. | |
Functions | |
| __INLINE void | ipc_emb_txdesc_copy (struct txdesc *dst_local, volatile struct txdesc_host *src_shared) |
| Copy a TX descriptor from its shared RAM location to the CPU data memory. | |
| uint8_t | ipc_emb_tx_q_len (int queue_idx, int vif_idx) |
| Check how many tx descriptors are available on the requested queue for a VIF. | |
| void | ipc_emb_init (void) |
| Initialize the IPC on the embedded side. | |
| void | ipc_emb_tx_flow_off (void) |
| Stop the TX flow between the upper layers and the LMAC software. | |
| void | ipc_emb_tx_flow_on (void) |
| Restart the TX flow between the upper layers and the LMAC software. | |
| void | ipc_emb_tx_irq (void) |
| Handle Tx packet interrupt on the emb side. | |
| void | ipc_emb_tx_evt (int queue_idx) |
| Kernel event handler for the handling of the TX descriptor pushed by the host. | |
| void | ipc_emb_cfmback_irq (void) |
| IRQ handler. | |
| static uint32_t | ipc_emb_hostmsgbuf_get (void) |
| Retrieve a hostbuf address for future DMA transfer of a MSG. | |
| static uint32_t | ipc_emb_hostdbgbuf_get (void) |
| Retrieve a hostbuf address for future DMA transfer of a debug buffer. | |
| uint32_t | ipc_emb_hostdbgdumpbuf_get (void) |
| Retrieve a hostbuf address for debug dump transfer. | |
| bool | ipc_emb_hostrxbuf_check (void) |
| Checks if a host buffer is currently available. | |
| uint32_t | ipc_emb_hostrxbuf_get (uint32_t *host_id) |
| Retrieve a hostbuf address for future DMA transfer. | |
| bool | ipc_emb_hostrxdesc_check (void) |
| Check if a RX descriptor is available. | |
| uint32_t | ipc_emb_hostrxdesc_get (void) |
| Retrieve a host RX descriptor address for future DMA transfer. | |
| uint32_t | ipc_emb_hostradarbuf_get (void) |
| Retrieve a hostbuf address for future radar event DMA transfer. | |
| void | ipc_emb_rxdata_ind (void) |
| Sends an Data Reception Indication to the upper layer. | |
| void | ipc_emb_radar_event_ind (void) |
| Indicate to the upper side that at least one radar event is pending. | |
| void | ipc_emb_txcfm_ind (uint32_t queue_bits) |
| Indicate to the upper side that at least on confirmation is pending. | |
| void | ipc_emb_prim_tbtt_ind (void) |
| Indicate to the upper side that the primary TBTT is pending. | |
| void | ipc_emb_sec_tbtt_ind (void) |
| Indicate to the upper side that the secondary TBTT is pending. | |
| static void | ipc_emb_kmsg_hdlr (struct ke_msg *kmsg_ipc) |
| Copy and forward kernel messages received from the IPC to the destination task. | |
| void | ipc_emb_msg_irq (void) |
| IRQ handler. | |
| void | ipc_emb_msg_evt (int dummy) |
| EVT handler. | |
| void | ipc_emb_kmsg_fwd (const struct ke_msg *ke_msg) |
| Forward a kernel message to the host side (emb side). | |
| void | ipc_emb_msg_dma_int_handler (void) |
| Handles the DMA interrupt generated when the MSG from Embedded side to Application has been transferred. | |
| void | ipc_emb_print_fwd (bool poll, const uint32_t len, char *string) |
| Send an EMB string to the APP - IPC API function. | |
| void | ipc_emb_dbg_dma_int_handler (void) |
| Handles the DMA interrupt generated when the Debug message from Embedded side to Application has been transferred. | |
Variables | |
| const uint32_t | ipc_emb_evt_bit [NX_TXQ_CNT] |
| Array of bits event to be triggered per TX queue index. | |
| struct ipc_emb_env_tag | ipc_emb_env |
| Global variable containing the IPC_EMB environment. | |
| const int | nx_txdesc_cnt_msk [] |
| Mask for the indexes of the different queues. | |
IPC module.
Copyright C) RivieraWaves 2011-2019
Definition in file ipc_emb.c.
1.6.1