100 lines
2.1 KiB
C
Executable File
100 lines
2.1 KiB
C
Executable File
/**
|
|
Header file for DMA module.
|
|
|
|
This file is the header file that define the API for DMA module.
|
|
|
|
@file DMA.h
|
|
@ingroup mIDrvDMA_DMA
|
|
@note Nothing.
|
|
|
|
Copyright Novatek Microelectronics Corp. 2014. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _DMA_H
|
|
#define _DMA_H
|
|
|
|
#include <stdint.h>
|
|
#include <kwrap/nvt_type.h>
|
|
|
|
/**
|
|
@addtogroup mIDrvDMA_DMA
|
|
*/
|
|
|
|
/**
|
|
DMA controller ID
|
|
|
|
*/
|
|
typedef enum {
|
|
DMA_ID_1, ///< DMA Controller
|
|
DMA_ID_2, ///< DMA Controller 2
|
|
|
|
DMA_ID_COUNT, //< DMA controller count
|
|
|
|
ENUM_DUMMY4WORD(DMA_ID)
|
|
} DMA_ID;
|
|
|
|
/**
|
|
Check DRAM address is cacheable or not
|
|
|
|
Check DRAM address is cacheable or not.
|
|
|
|
@param[in] addr DRAM address
|
|
|
|
@return Cacheable or not
|
|
- @b TRUE : Cacheable
|
|
- @b FALSE : Non-cacheable
|
|
*/
|
|
#define dma_isCacheAddr(addr) (((UINT32)(addr) >= 0x60000000UL) ? FALSE : TRUE)
|
|
|
|
/**
|
|
Check (virtual) DRAM address is valid or not
|
|
|
|
@param[in] addr DRAM address
|
|
|
|
@return valid or not
|
|
- @b TRUE : valid
|
|
- @b FALSE : Not valid
|
|
*/
|
|
#define dma_is_valid_addr(addr) ((((UINT32)(addr))<0xC0000000UL)? \
|
|
((addr)!=0?TRUE:FALSE) \
|
|
:FALSE)
|
|
|
|
/**
|
|
Translate DRAM address to cacheable address.
|
|
|
|
Translate DRAM address to cacheable address.
|
|
|
|
@param[in] addr DRAM address
|
|
|
|
@return Cacheable DRAM address
|
|
*/
|
|
#define dma_getCacheAddr(addr) ((((UINT32)(addr))>=0x60000000UL)?((UINT32)(addr)-0x60000000UL):(UINT32)(addr))
|
|
|
|
|
|
/**
|
|
DRAM type encoding
|
|
|
|
DRAM type encoding returned by dma_getDramType()
|
|
*/
|
|
typedef enum {
|
|
DDR_TYPE_DDR2, ///< DDR2 DRAM
|
|
DDR_TYPE_DDR3, ///< DDR3 DRAM
|
|
ENUM_DUMMY4WORD(DMA_DDR_TYPE)
|
|
} DMA_DDR_TYPE;
|
|
|
|
extern DMA_DDR_TYPE dma_getDramType(void);
|
|
extern UINT32 dma_getDramBaseAddr(DMA_ID id);
|
|
|
|
/*
|
|
Get DRAM capacity
|
|
|
|
Get DRAM capacity of DMA controller configuration
|
|
|
|
@return DRAM capacity
|
|
*/
|
|
extern UINT32 dma_getDramCapacity(DMA_ID id);
|
|
|
|
//@}
|
|
|
|
#endif
|