AM275 FreeRTOS SDK  11.02.00
hyperbus/v0/hyperbus.h File Reference

Introduction

HYPERBUS Driver API/interface file.

Go to the source code of this file.

Data Structures

struct  HYPERBUS_ECCErrorInfo
 ECC Error Information structure. More...
 
struct  HYPERBUS_ECCRegions
 ECC region The structure specifies the ECC region start address and size. More...
 
struct  HYPERBUS_ECCRegion
 Structure containing ECC region params. More...
 
struct  HYPERBUS_MemCfg
 Memory Configuration Structure. More...
 
struct  HYPERBUS_fssDataIf
 FSS Data Interface Structure. More...
 
struct  HYPERBUS_fssHandle
 FSS Handle Structure. More...
 
struct  HYPERBUS_MemTiming
 Register structure for the Memory Timing Register. More...
 
struct  HYPERBUS_Params
 HYPERBUS Parameters. More...
 
struct  HYPERBUS_Attrs
 HYPERBUS instance attributes - used during init time. More...
 
struct  HYPERBUS_Object
 HYPERBUS driver object. More...
 
struct  HYPERBUS_Config
 HYPERBUS driver configuration structure. More...
 

Macros

#define HYPERBUS_MEM_OFFSET   0U
 Memory offset for HYPERBUS controller. More...
 
#define HYPERBUS_MCR_CONFIGURABLE_CS_LOW_TIME   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_CONFIGURABLE_CS_LOW_TIME   0x0U
 
#define HYPERBUS_MCR_MAXLEN_2_BYTE   0x0U
 Maximum Length defines. More...
 
#define HYPERBUS_MCR_MAXLEN_4_BYTE   0x1U
 
#define HYPERBUS_MCR_MAXLEN_6_BYTE   0x2U
 
#define HYPERBUS_MCR_MAXLEN_1024_BYTE   0x1FFU
 
#define HYPERBUS_MCR_MERGE_WRAP_INCR   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_MERGE_WRAP_INCR   0x0U
 
#define HYPERBUS_MCR_ASYMM_CACHE_SUPPORT   0x1U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_NO_ASYMM_CACHE_SUPPORT   0x0U
 
#define HYPERBUS_MCR_MEM_SPACE   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_CR_SPACE   0x1U
 
#define HYPERBUS_MCR_HYPERFLASH   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_HYPERRAM   0x1U
 
#define HYPERBUS_MCR_WRAPSIZE_NONE   0x0U
 Memory Configuration Register defines. More...
 
#define HYPERBUS_MCR_WRAPSIZE_64B   0x1U
 
#define HYPERBUS_MCR_WRAPSIZE_16B   0x2U
 
#define HYPERBUS_MCR_WRAPSIZE_32B   0x3U
 
#define HYPERBUS_DMA_CH_INVALID   (-1)
 Invalid DMA channel index value. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_SYSCONFIG_ECC_ENABLE   (0x00000001U)
 Value to enable ECC in SYSCONFIG register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_SYSCONFIG_ECC_DISABLE   (0x00000000U)
 Value to disable ECC in SYSCONFIG register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_WRITE_NONALIGN_ERR_MASK   (0x4U)
 Mask for write non-aligned error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_WRITE_NONALIGN_ERR_SHIFT   (0x2U)
 Shift for write non-aligned error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_DOUBLE_BIT_ERR_MASK   (0x2U)
 Mask for double bit error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_DOUBLE_BIT_ERR_SHIFT   (0x1U)
 Shift for double bit error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_SINGLE_BIT_ERR_MASK   (0x1U)
 Mask for single bit error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_ECC_SINGLE_BIT_ERR_SHIFT   (0x0U)
 Shift for single bit error field in STATUS_RAW register. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_ERR_ECC_TYPE_OFFSET   (0x00000074U)
 Offset of ECC error type register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_ERR_WRT_TYPE_OFFSET   (0x00000078U)
 Offset of write error type register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_ECC_ERR_CLEAR_VALUE   (0x80000000U)
 Value to clear ECC error in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_EOI_OFFSET   (0x00000010U)
 Offset of EOI register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_EOI_VECTOR   (0x00000001U)
 Value to write to EOI register to clear interrupt in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_STATUS_RAW_OFFSET   (0x00000014U)
 Offset of STATUS_RAW register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_STATUS_OFFSET   (0x00000018U)
 Offset of IRQ status register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_ENABLE_SET_OFFSET   (0x0000001cU)
 Offset of IRQ enable set register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_ENABLE_CLR_OFFSET   (0x00000020U)
 Offset of IRQ enable clear register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_ENABLE_SET_VALUE   (0x00000007U)
 Value to write to IRQ enable set register to enable interrupts in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_GENREGS_IRQ_ENABLE_CLR_VALUE   (0x00000007U)
 Value to write to IRQ enable clear register to disable interrupts in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION_START_OFFSET   (0x00000030U)
 Offset of ECC region start address register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION_SIZE_OFFSET   (0x00000034U)
 Offset of ECC region size register in Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION_OFFSET_STEP   (0x00000008U)
 Offset step to access ECC region start address and size registers. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION_START_ADDR_SHIFT   (0x0000000cU)
 Shift value to get ECC region start address in 4KBytes steps. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION_SIZE_SHIFT   (0x0000000cU)
 Shift value to get ECC region size in 4KBytes steps. More...
 
#define HYPERBUS_FSS_FSAS_NUM_ECC_REGIONS   (0x4U)
 Number of ECC regions supported by the Hyperbus FSS module. More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION0   (0U)
 First ECC region in Hyperbus FSS module (region 0) More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION1   (1U)
 Second ECC region in Hyperbus FSS module (region 1) More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION2   (2U)
 Third ECC region in Hyperbus FSS module (region 2) More...
 
#define HYPERBUS_FSS_FSAS_ECC_REGION3   (3U)
 Fourth ECC region in Hyperbus FSS module (region 3) More...
 
Chip Selects

Chip selects

#define HYPERBUS_CS0   (0U)
 
#define HYPERBUS_CS1   (1U)
 
HYPERBUS ECC error type

#define HYPERBUS_ECC_1B_ERROR   (0U)
 
#define HYPERBUS_ECC_2B_ERROR   (1U)
 
#define HYPERBUS_ECC_WRITE_NONALIGN_ERROR   (2U)
 
#define HYPERBUS_ECC_ERR_ALL   (3U)
 

Typedefs

typedef void * HYPERBUS_Handle
 A handle that is returned from a HYPERBUS_open() call. More...
 
typedef void(* HYPERBUS_ECCCallbackFxn) (HYPERBUS_Handle hyperbusHandle, uint8_t errorType)
 The definition of a callback function used by the HYPERBUS driver when ECC error interrupts occur. More...
 

Enumerations

enum  HYPERBUS_Devicetype { HYPERBUS_DEVICETYPE_HYPERRAM, HYPERBUS_DEVICETYPE_NONE, HYPERBUS_DEVICETYPE_HYPERFLASH }
 Enum for device type. More...
 

Functions

void HYPERBUS_init (void)
 This function initializes the HYPERBUS module. More...
 
void HYPERBUS_deinit (void)
 This function de-initializes the HYPERBUS module. More...
 
HYPERBUS_Handle HYPERBUS_open (uint32_t index)
 This function opens a given HYPERBUS peripheral. More...
 
void HYPERBUS_close (HYPERBUS_Handle handle)
 Function to close a HYPERBUS peripheral specified by the HYPERBUS handle. More...
 
HYPERBUS_Handle HYPERBUS_getHandle (uint32_t index)
 This function returns the handle of an open HYPERBUS Instance from the instance index. More...
 
uint32_t HYPERBUS_getHyperBusDataBaseAddr (HYPERBUS_Handle handle)
 This function gets the SOC mapped data base address of the HyperRam. More...
 
static uint32_t HYPERBUS_makeMemCfg (HYPERBUS_Handle handle, HYPERBUS_MemCfg *pHyperBusMemCfg)
 This function returns the memory configuration of the HYPERBUS Instance. More...
 
static uint32_t HYPERBUS_makeMemTiming (HYPERBUS_Handle handle, HYPERBUS_MemTiming *pHyperBusMemTiming)
 This function returns the memory Timings of the HYPERBUS Instance. More...
 
static void HYPERBUS_isr (void *args)
 This function is called by the HwiP module to service interrupts generated by the FSS of the HYPERBUS controller. More...
 
int32_t HYPERBUS_configureECC (HYPERBUS_Handle handle)
 This function configures the ECC regions for the HYPERBUS Instance. More...
 
int32_t HYPERBUS_setECCRegion (HYPERBUS_Handle handle, uint8_t region)
 This function sets the ECC region for the HYPERBUS Instance. More...
 
int32_t HYPERBUS_enableECC (HYPERBUS_Handle handle, uint8_t enableFlag)
 This function enables or disables ECC for the HYPERBUS Instance. More...
 
int32_t HYPERBUS_clearECCError (HYPERBUS_Handle handle, uint8_t errorType)
 This function clears the ECC error for the HYPERBUS Instance. More...
 
int32_t HYPERBUS_getECCErrorInfo (HYPERBUS_Handle handle, HYPERBUS_ECCErrorInfo *ECCErrorInfo)
 This function returns the ECC error information for the HYPERBUS Instance. More...
 

Variables

HYPERBUS_Config gHyperBusConfig []
 Externally defined driver configuration array. More...
 
uint32_t gHyperBusConfigNum
 Externally defined driver configuration array size. More...
 
HYPERBUS_ECCRegion gHyperBusEccRegion [HYPERBUS_FSS_FSAS_NUM_ECC_REGIONS]