TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
arc_dma.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ARC_DMA_H
7#define ARC_DMA_H
8
9#include <stdint.h>
10#include <stdbool.h>
11
12#define DMA_AUX_BASE (0xd00)
13#define DMA_C_CTRL_AUX (0xd00 + 0x0)
14#define DMA_C_CHAN_AUX (0xd00 + 0x1)
15#define DMA_C_SRC_AUX (0xd00 + 0x2)
16#define DMA_C_SRC_HI_AUX (0xd00 + 0x3)
17#define DMA_C_DST_AUX (0xd00 + 0x4)
18#define DMA_C_DST_HI_AUX (0xd00 + 0x5)
19#define DMA_C_ATTR_AUX (0xd00 + 0x6)
20#define DMA_C_LEN_AUX (0xd00 + 0x7)
21#define DMA_C_HANDLE_AUX (0xd00 + 0x8)
22#define DMA_C_STAT_AUX (0xd00 + 0xc)
23
24#define DMA_S_CTRL_AUX (0xd00 + 0x10)
25#define DMA_S_BASEC_AUX(ch) (0xd00 + 0x83 + (ch))
26#define DMA_S_LASTC_AUX(ch) (0xd00 + 0x84 + (ch))
27#define DMA_S_STATC_AUX(ch) (0xd00 + 0x86 + (ch))
28#define DMA_S_DONESTATD_AUX(d) \
29 (0xd00 + 0x20 + (d)) /* Descriptor seclection. Each D stores descriptors d*32 +: 32 */
30#define DMA_S_DONESTATD_CLR_AUX(d) (0xd00 + 0x40 + (d))
31
32#define ARC_DMA_NP_ATTR (1 << 3) /*Enable non posted writes */
33#define ARC_DMA_SET_DONE_ATTR (1 << 0) /* Set done without triggering interrupt */
34
35void ArcDmaConfig(void);
36void ArcDmaInitCh(uint32_t dma_ch, uint32_t base, uint32_t last);
37void ArcDmaStart(uint32_t dma_ch, const void *p_src, void *p_dest, uint32_t len, uint32_t attr);
38void ArcDmaNext(const void *p_src, void *p_dest, uint32_t len, uint32_t attr);
41void ArcDmaClearDone(uint32_t handle);
43bool ArcDmaTransfer(const void *src, void *dst, uint32_t size);
44#endif
uint32_t ArcDmaGetHandle(void)
Definition arc_dma.c:44
void ArcDmaNext(const void *p_src, void *p_dest, uint32_t len, uint32_t attr)
Definition arc_dma.c:36
bool ArcDmaTransfer(const void *src, void *dst, uint32_t size)
Definition arc_dma.c:71
void ArcDmaStart(uint32_t dma_ch, const void *p_src, void *p_dest, uint32_t len, uint32_t attr)
Definition arc_dma.c:30
uint32_t ArcDmaGetDone(uint32_t handle)
Definition arc_dma.c:62
void ArcDmaConfig(void)
Definition arc_dma.c:14
void ArcDmaInitCh(uint32_t dma_ch, uint32_t base, uint32_t last)
Definition arc_dma.c:23
void ArcDmaClearDone(uint32_t handle)
Definition arc_dma.c:54
uint32_t ArcDmaPollBusy(void)
Definition arc_dma.c:49
__UINT32_TYPE__ uint32_t