1056 lines
37 KiB
C
1056 lines
37 KiB
C
/******************************************************************************
|
|
* Filename: rom.h
|
|
* Revised: 2020-02-14 11:30:20 +0100 (Fri, 14 Feb 2020)
|
|
* Revision: 56760
|
|
*
|
|
* Description: Prototypes for the ROM utility functions.
|
|
*
|
|
* Copyright (c) 2015 - 2017, Texas Instruments Incorporated
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* 1) Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2) Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
*
|
|
* 3) Neither the name of the ORGANIZATION nor the names of its contributors may
|
|
* be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef __ROM_H__
|
|
#define __ROM_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// If building with a C++ compiler, make all of the definitions in this header
|
|
// have a C binding.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "../inc/hw_types.h"
|
|
|
|
#ifndef __HAPI_H__
|
|
#define __HAPI_H__
|
|
|
|
// Start address of the ROM hard API access table (located after the ROM FW rev field)
|
|
#define ROM_HAPI_TABLE_ADDR 0x10000048
|
|
|
|
// ROM Hard-API function interface types
|
|
typedef uint32_t (* FPTR_CRC32_T) ( uint8_t* /* pui8Data */,\
|
|
uint32_t /* ui32ByteCount */,\
|
|
uint32_t /* ui32RepeatCount */);
|
|
|
|
typedef uint32_t (* FPTR_GETFLSIZE_T) ( void );
|
|
|
|
typedef uint32_t (* FPTR_GETCHIPID_T) ( void );
|
|
|
|
typedef uint32_t (* FPTR_RESERVED1_T) ( uint32_t );
|
|
|
|
typedef uint32_t (* FPTR_RESERVED2_T) ( void );
|
|
|
|
typedef uint32_t (* FPTR_RESERVED3_T) ( uint8_t* ,\
|
|
uint32_t ,\
|
|
uint32_t );
|
|
typedef void (* FPTR_RESETDEV_T) ( void );
|
|
|
|
typedef uint32_t (* FPTR_FLETCHER32_T) ( uint16_t* /* pui16Data */,\
|
|
uint16_t /* ui16WordCount */,\
|
|
uint16_t /* ui16RepeatCount */);
|
|
|
|
typedef uint32_t (* FPTR_MINVAL_T) ( uint32_t* /* ulpDataBuffer */,\
|
|
uint32_t /* ui32DataCount */);
|
|
|
|
typedef uint32_t (* FPTR_MAXVAL_T) ( uint32_t* /* pui32DataBuffer */,\
|
|
uint32_t /* ui32DataCount */);
|
|
|
|
typedef uint32_t (* FPTR_MEANVAL_T) ( uint32_t* /* pui32DataBuffer */,\
|
|
uint32_t /* ui32DataCount */);
|
|
|
|
typedef uint32_t (* FPTR_STDDVAL_T) ( uint32_t* /* pui32DataBuffer */,\
|
|
uint32_t /* ui32DataCount */);
|
|
|
|
typedef void (* FPTR_HFSOURCESAFESWITCH_T) ( void );
|
|
|
|
typedef void (* FPTR_RESERVED4_T) ( uint32_t );
|
|
|
|
typedef void (* FPTR_RESERVED5_T) ( uint32_t );
|
|
|
|
typedef void (* FPTR_COMPAIN_T) ( uint8_t /* ut8Signal */);
|
|
|
|
typedef void (* FPTR_COMPAREF_T) ( uint8_t /* ut8Signal */);
|
|
|
|
typedef void (* FPTR_ADCCOMPBIN_T) ( uint8_t /* ut8Signal */);
|
|
|
|
typedef void (* FPTR_DACVREF_T) ( uint8_t /* ut8Signal */);
|
|
|
|
extern uint32_t MemBusWrkAroundHapiProgramFlash(uint8_t *pui8DataBuffer,
|
|
uint32_t ui32Address,
|
|
uint32_t ui32Count);
|
|
|
|
extern uint32_t MemBusWrkAroundHapiEraseSector(uint32_t ui32Address);
|
|
|
|
// ROM Hard-API access table type
|
|
typedef struct
|
|
{
|
|
FPTR_CRC32_T Crc32;
|
|
FPTR_GETFLSIZE_T FlashGetSize;
|
|
FPTR_GETCHIPID_T GetChipId;
|
|
FPTR_RESERVED1_T ReservedLocation1;
|
|
FPTR_RESERVED2_T ReservedLocation2;
|
|
FPTR_RESERVED3_T ReservedLocation3;
|
|
FPTR_RESETDEV_T ResetDevice;
|
|
FPTR_FLETCHER32_T Fletcher32;
|
|
FPTR_MINVAL_T MinValue;
|
|
FPTR_MAXVAL_T MaxValue;
|
|
FPTR_MEANVAL_T MeanValue;
|
|
FPTR_STDDVAL_T StandDeviationValue;
|
|
FPTR_RESERVED4_T ReservedLocation4;
|
|
FPTR_RESERVED5_T ReservedLocation5;
|
|
FPTR_HFSOURCESAFESWITCH_T HFSourceSafeSwitch;
|
|
FPTR_COMPAIN_T SelectCompAInput;
|
|
FPTR_COMPAREF_T SelectCompARef;
|
|
FPTR_ADCCOMPBIN_T SelectADCCompBInput;
|
|
FPTR_DACVREF_T SelectDACVref;
|
|
} HARD_API_T;
|
|
|
|
// Pointer to the ROM HAPI table
|
|
#define P_HARD_API ((HARD_API_T*) ROM_HAPI_TABLE_ADDR)
|
|
|
|
#define HapiCrc32(a,b,c) P_HARD_API->Crc32(a,b,c)
|
|
#define HapiGetFlashSize() P_HARD_API->FlashGetSize()
|
|
#define HapiGetChipId() P_HARD_API->GetChipId()
|
|
#define HapiSectorErase(a) MemBusWrkAroundHapiEraseSector(a)
|
|
#define HapiProgramFlash(a,b,c) MemBusWrkAroundHapiProgramFlash(a,b,c)
|
|
#define HapiResetDevice() P_HARD_API->ResetDevice()
|
|
#define HapiFletcher32(a,b,c) P_HARD_API->Fletcher32(a,b,c)
|
|
#define HapiMinValue(a,b) P_HARD_API->MinValue(a,b)
|
|
#define HapiMaxValue(a,b) P_HARD_API->MaxValue(a,b)
|
|
#define HapiMeanValue(a,b) P_HARD_API->MeanValue(a,b)
|
|
#define HapiStandDeviationValue(a,b) P_HARD_API->StandDeviationValue(a,b)
|
|
#define HapiHFSourceSafeSwitch() P_HARD_API->HFSourceSafeSwitch()
|
|
#define HapiSelectCompAInput(a) P_HARD_API->SelectCompAInput(a)
|
|
#define HapiSelectCompARef(a) P_HARD_API->SelectCompARef(a)
|
|
#define HapiSelectADCCompBInput(a) P_HARD_API->SelectADCCompBInput(a)
|
|
#define HapiSelectDACVref(a) P_HARD_API->SelectDACVref(a)
|
|
|
|
// Defines for input parameter to the HapiSelectCompAInput function.
|
|
#define COMPA_IN_NC 0x00
|
|
// Defines used in CC13x0/CC26x0 devices
|
|
#define COMPA_IN_AUXIO7 0x09
|
|
#define COMPA_IN_AUXIO6 0x0A
|
|
#define COMPA_IN_AUXIO5 0x0B
|
|
#define COMPA_IN_AUXIO4 0x0C
|
|
#define COMPA_IN_AUXIO3 0x0D
|
|
#define COMPA_IN_AUXIO2 0x0E
|
|
#define COMPA_IN_AUXIO1 0x0F
|
|
#define COMPA_IN_AUXIO0 0x10
|
|
// Defines used in CC13x2/CC26x2 devices
|
|
#define COMPA_IN_AUXIO26 COMPA_IN_AUXIO7
|
|
#define COMPA_IN_AUXIO25 COMPA_IN_AUXIO6
|
|
#define COMPA_IN_AUXIO24 COMPA_IN_AUXIO5
|
|
#define COMPA_IN_AUXIO23 COMPA_IN_AUXIO4
|
|
#define COMPA_IN_AUXIO22 COMPA_IN_AUXIO3
|
|
#define COMPA_IN_AUXIO21 COMPA_IN_AUXIO2
|
|
#define COMPA_IN_AUXIO20 COMPA_IN_AUXIO1
|
|
#define COMPA_IN_AUXIO19 COMPA_IN_AUXIO0
|
|
|
|
// Defines for input parameter to the HapiSelectCompARef function.
|
|
#define COMPA_REF_NC 0x00
|
|
#define COMPA_REF_DCOUPL 0x01
|
|
#define COMPA_REF_VSS 0x02
|
|
#define COMPA_REF_VDDS 0x03
|
|
#define COMPA_REF_ADCVREFP 0x04
|
|
// Defines used in CC13x0/CC26x0 devices
|
|
#define COMPA_REF_AUXIO7 0x09
|
|
#define COMPA_REF_AUXIO6 0x0A
|
|
#define COMPA_REF_AUXIO5 0x0B
|
|
#define COMPA_REF_AUXIO4 0x0C
|
|
#define COMPA_REF_AUXIO3 0x0D
|
|
#define COMPA_REF_AUXIO2 0x0E
|
|
#define COMPA_REF_AUXIO1 0x0F
|
|
#define COMPA_REF_AUXIO0 0x10
|
|
// Defines used in CC13x2/CC26x2 devices
|
|
#define COMPA_REF_AUXIO26 COMPA_REF_AUXIO7
|
|
#define COMPA_REF_AUXIO25 COMPA_REF_AUXIO6
|
|
#define COMPA_REF_AUXIO24 COMPA_REF_AUXIO5
|
|
#define COMPA_REF_AUXIO23 COMPA_REF_AUXIO4
|
|
#define COMPA_REF_AUXIO22 COMPA_REF_AUXIO3
|
|
#define COMPA_REF_AUXIO21 COMPA_REF_AUXIO2
|
|
#define COMPA_REF_AUXIO20 COMPA_REF_AUXIO1
|
|
#define COMPA_REF_AUXIO19 COMPA_REF_AUXIO0
|
|
|
|
// Defines for input parameter to the HapiSelectADCCompBInput function.
|
|
#define ADC_COMPB_IN_NC 0x00
|
|
#define ADC_COMPB_IN_DCOUPL 0x03
|
|
#define ADC_COMPB_IN_VSS 0x04
|
|
#define ADC_COMPB_IN_VDDS 0x05
|
|
// Defines used in CC13x0/CC26x0 devices
|
|
#define ADC_COMPB_IN_AUXIO7 0x09
|
|
#define ADC_COMPB_IN_AUXIO6 0x0A
|
|
#define ADC_COMPB_IN_AUXIO5 0x0B
|
|
#define ADC_COMPB_IN_AUXIO4 0x0C
|
|
#define ADC_COMPB_IN_AUXIO3 0x0D
|
|
#define ADC_COMPB_IN_AUXIO2 0x0E
|
|
#define ADC_COMPB_IN_AUXIO1 0x0F
|
|
#define ADC_COMPB_IN_AUXIO0 0x10
|
|
// Defines used in CC13x2/CC26x2 devices
|
|
#define ADC_COMPB_IN_AUXIO26 ADC_COMPB_IN_AUXIO7
|
|
#define ADC_COMPB_IN_AUXIO25 ADC_COMPB_IN_AUXIO6
|
|
#define ADC_COMPB_IN_AUXIO24 ADC_COMPB_IN_AUXIO5
|
|
#define ADC_COMPB_IN_AUXIO23 ADC_COMPB_IN_AUXIO4
|
|
#define ADC_COMPB_IN_AUXIO22 ADC_COMPB_IN_AUXIO3
|
|
#define ADC_COMPB_IN_AUXIO21 ADC_COMPB_IN_AUXIO2
|
|
#define ADC_COMPB_IN_AUXIO20 ADC_COMPB_IN_AUXIO1
|
|
#define ADC_COMPB_IN_AUXIO19 ADC_COMPB_IN_AUXIO0
|
|
|
|
// Defines for input parameter to the HapiSelectDACVref function.
|
|
// The define values can not be changed!
|
|
#define DAC_REF_NC 0x00
|
|
#define DAC_REF_DCOUPL 0x01
|
|
#define DAC_REF_VSS 0x02
|
|
#define DAC_REF_VDDS 0x03
|
|
|
|
#endif // __HAPI_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Pointers to the main API tables.
|
|
//
|
|
//*****************************************************************************
|
|
#define ROM_API_TABLE ((uint32_t *) 0x10000180)
|
|
#define ROM_VERSION (ROM_API_TABLE[0])
|
|
|
|
|
|
#define ROM_API_AON_EVENT_TABLE ((uint32_t*) (ROM_API_TABLE[1]))
|
|
#define ROM_API_AON_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[2]))
|
|
#define ROM_API_AON_RTC_TABLE ((uint32_t*) (ROM_API_TABLE[3]))
|
|
#define ROM_API_AUX_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[5]))
|
|
#define ROM_API_AUX_TDC_TABLE ((uint32_t*) (ROM_API_TABLE[6]))
|
|
#define ROM_API_DDI_TABLE ((uint32_t*) (ROM_API_TABLE[9]))
|
|
#define ROM_API_FLASH_TABLE ((uint32_t*) (ROM_API_TABLE[10]))
|
|
#define ROM_API_I2C_TABLE ((uint32_t*) (ROM_API_TABLE[11]))
|
|
#define ROM_API_INTERRUPT_TABLE ((uint32_t*) (ROM_API_TABLE[12]))
|
|
#define ROM_API_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[13]))
|
|
#define ROM_API_PRCM_TABLE ((uint32_t*) (ROM_API_TABLE[14]))
|
|
#define ROM_API_SMPH_TABLE ((uint32_t*) (ROM_API_TABLE[15]))
|
|
#define ROM_API_SSI_TABLE ((uint32_t*) (ROM_API_TABLE[17]))
|
|
#define ROM_API_TIMER_TABLE ((uint32_t*) (ROM_API_TABLE[18]))
|
|
#define ROM_API_TRNG_TABLE ((uint32_t*) (ROM_API_TABLE[19]))
|
|
#define ROM_API_UART_TABLE ((uint32_t*) (ROM_API_TABLE[20]))
|
|
#define ROM_API_UDMA_TABLE ((uint32_t*) (ROM_API_TABLE[21]))
|
|
#define ROM_API_VIMS_TABLE ((uint32_t*) (ROM_API_TABLE[22]))
|
|
#define ROM_API_CRYPTO_TABLE ((uint32_t*) (ROM_API_TABLE[23]))
|
|
#define ROM_API_OSC_TABLE ((uint32_t*) (ROM_API_TABLE[24]))
|
|
#define ROM_API_AUX_ADC_TABLE ((uint32_t*) (ROM_API_TABLE[25]))
|
|
#define ROM_API_SYS_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[26]))
|
|
#define ROM_API_AON_BATMON_TABLE ((uint32_t*) (ROM_API_TABLE[27]))
|
|
#define ROM_API_SETUP_ROM_TABLE ((uint32_t*) (ROM_API_TABLE[28]))
|
|
#define ROM_API_I2S_TABLE ((uint32_t*) (ROM_API_TABLE[29]))
|
|
#define ROM_API_PWR_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[30]))
|
|
#define ROM_API_AES_TABLE ((uint32_t*) (ROM_API_TABLE[31]))
|
|
#define ROM_API_PKA_TABLE ((uint32_t*) (ROM_API_TABLE[32]))
|
|
#define ROM_API_SHA2_TABLE ((uint32_t*) (ROM_API_TABLE[33]))
|
|
|
|
// AON_EVENT FUNCTIONS
|
|
#define ROM_AONEventMcuWakeUpSet \
|
|
((void (*)(uint32_t ui32MCUWUEvent, uint32_t ui32EventSrc)) \
|
|
ROM_API_AON_EVENT_TABLE[0])
|
|
|
|
#define ROM_AONEventMcuWakeUpGet \
|
|
((uint32_t (*)(uint32_t ui32MCUWUEvent)) \
|
|
ROM_API_AON_EVENT_TABLE[1])
|
|
|
|
#define ROM_AONEventMcuSet \
|
|
((void (*)(uint32_t ui32MCUEvent, uint32_t ui32EventSrc)) \
|
|
ROM_API_AON_EVENT_TABLE[4])
|
|
|
|
#define ROM_AONEventMcuGet \
|
|
((uint32_t (*)(uint32_t ui32MCUEvent)) \
|
|
ROM_API_AON_EVENT_TABLE[5])
|
|
|
|
|
|
// AON_RTC FUNCTIONS
|
|
#define ROM_AONRTCCurrent64BitValueGet \
|
|
((uint64_t (*)(void)) \
|
|
ROM_API_AON_RTC_TABLE[12])
|
|
|
|
|
|
// AUX_TDC FUNCTIONS
|
|
#define ROM_AUXTDCConfigSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32StartCondition, uint32_t ui32StopCondition)) \
|
|
ROM_API_AUX_TDC_TABLE[0])
|
|
|
|
#define ROM_AUXTDCMeasurementDone \
|
|
((uint32_t (*)(uint32_t ui32Base)) \
|
|
ROM_API_AUX_TDC_TABLE[1])
|
|
|
|
|
|
// DDI FUNCTIONS
|
|
#define ROM_DDI16BitWrite \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData)) \
|
|
ROM_API_DDI_TABLE[0])
|
|
|
|
#define ROM_DDI16BitfieldWrite \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift, uint16_t ui32Data)) \
|
|
ROM_API_DDI_TABLE[1])
|
|
|
|
#define ROM_DDI16BitRead \
|
|
((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask)) \
|
|
ROM_API_DDI_TABLE[2])
|
|
|
|
#define ROM_DDI16BitfieldRead \
|
|
((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift)) \
|
|
ROM_API_DDI_TABLE[3])
|
|
|
|
#define ROM_DDI32RegWrite \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)) \
|
|
ROM_API_DDI_TABLE[4])
|
|
|
|
|
|
// FLASH FUNCTIONS
|
|
#define ROM_FlashPowerModeSet \
|
|
((void (*)(uint32_t ui32PowerMode, uint32_t ui32BankGracePeriod, uint32_t ui32PumpGracePeriod)) \
|
|
ROM_API_FLASH_TABLE[0])
|
|
|
|
#define ROM_FlashPowerModeGet \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_FLASH_TABLE[1])
|
|
|
|
#define ROM_FlashProtectionSet \
|
|
((void (*)(uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)) \
|
|
ROM_API_FLASH_TABLE[2])
|
|
|
|
#define ROM_FlashProtectionGet \
|
|
((uint32_t (*)(uint32_t ui32SectorAddress)) \
|
|
ROM_API_FLASH_TABLE[3])
|
|
|
|
#define ROM_FlashProtectionSave \
|
|
((uint32_t (*)(uint32_t ui32SectorAddress)) \
|
|
ROM_API_FLASH_TABLE[4])
|
|
|
|
#define ROM_FlashEfuseReadRow \
|
|
((bool (*)(uint32_t *pui32EfuseData, uint32_t ui32RowAddress)) \
|
|
ROM_API_FLASH_TABLE[8])
|
|
|
|
#define ROM_FlashDisableSectorsForWrite \
|
|
((void (*)(void)) \
|
|
ROM_API_FLASH_TABLE[9])
|
|
|
|
|
|
// I2C FUNCTIONS
|
|
#define ROM_I2CMasterInitExpClk \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32I2CClk, bool bFast)) \
|
|
ROM_API_I2C_TABLE[0])
|
|
|
|
#define ROM_I2CMasterErr \
|
|
((uint32_t (*)(uint32_t ui32Base)) \
|
|
ROM_API_I2C_TABLE[1])
|
|
|
|
|
|
// INTERRUPT FUNCTIONS
|
|
#define ROM_IntPriorityGroupingSet \
|
|
((void (*)(uint32_t ui32Bits)) \
|
|
ROM_API_INTERRUPT_TABLE[0])
|
|
|
|
#define ROM_IntPriorityGroupingGet \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_INTERRUPT_TABLE[1])
|
|
|
|
#define ROM_IntPrioritySet \
|
|
((void (*)(uint32_t ui32Interrupt, uint8_t ui8Priority)) \
|
|
ROM_API_INTERRUPT_TABLE[2])
|
|
|
|
#define ROM_IntPriorityGet \
|
|
((int32_t (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[3])
|
|
|
|
#define ROM_IntEnable \
|
|
((void (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[4])
|
|
|
|
#define ROM_IntDisable \
|
|
((void (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[5])
|
|
|
|
#define ROM_IntPendSet \
|
|
((void (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[6])
|
|
|
|
#define ROM_IntPendGet \
|
|
((bool (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[7])
|
|
|
|
#define ROM_IntPendClear \
|
|
((void (*)(uint32_t ui32Interrupt)) \
|
|
ROM_API_INTERRUPT_TABLE[8])
|
|
|
|
|
|
// IOC FUNCTIONS
|
|
#define ROM_IOCPortConfigureSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)) \
|
|
ROM_API_IOC_TABLE[0])
|
|
|
|
#define ROM_IOCPortConfigureGet \
|
|
((uint32_t (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[1])
|
|
|
|
#define ROM_IOCIOShutdownSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32IOShutdown)) \
|
|
ROM_API_IOC_TABLE[2])
|
|
|
|
#define ROM_IOCIOModeSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32IOMode)) \
|
|
ROM_API_IOC_TABLE[4])
|
|
|
|
#define ROM_IOCIOIntSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)) \
|
|
ROM_API_IOC_TABLE[5])
|
|
|
|
#define ROM_IOCIOPortPullSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32Pull)) \
|
|
ROM_API_IOC_TABLE[6])
|
|
|
|
#define ROM_IOCIOHystSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32Hysteresis)) \
|
|
ROM_API_IOC_TABLE[7])
|
|
|
|
#define ROM_IOCIOInputSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32Input)) \
|
|
ROM_API_IOC_TABLE[8])
|
|
|
|
#define ROM_IOCIOSlewCtrlSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32SlewEnable)) \
|
|
ROM_API_IOC_TABLE[9])
|
|
|
|
#define ROM_IOCIODrvStrengthSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)) \
|
|
ROM_API_IOC_TABLE[10])
|
|
|
|
#define ROM_IOCIOPortIdSet \
|
|
((void (*)(uint32_t ui32IOId, uint32_t ui32PortId)) \
|
|
ROM_API_IOC_TABLE[11])
|
|
|
|
#define ROM_IOCIntEnable \
|
|
((void (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[12])
|
|
|
|
#define ROM_IOCIntDisable \
|
|
((void (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[13])
|
|
|
|
#define ROM_IOCPinTypeGpioInput \
|
|
((void (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[14])
|
|
|
|
#define ROM_IOCPinTypeGpioOutput \
|
|
((void (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[15])
|
|
|
|
#define ROM_IOCPinTypeUart \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)) \
|
|
ROM_API_IOC_TABLE[16])
|
|
|
|
#define ROM_IOCPinTypeSsiMaster \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
|
|
ROM_API_IOC_TABLE[17])
|
|
|
|
#define ROM_IOCPinTypeSsiSlave \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
|
|
ROM_API_IOC_TABLE[18])
|
|
|
|
#define ROM_IOCPinTypeI2c \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)) \
|
|
ROM_API_IOC_TABLE[19])
|
|
|
|
#define ROM_IOCPinTypeAux \
|
|
((void (*)(uint32_t ui32IOId)) \
|
|
ROM_API_IOC_TABLE[21])
|
|
|
|
|
|
// PRCM FUNCTIONS
|
|
#define ROM_PRCMInfClockConfigureSet \
|
|
((void (*)(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)) \
|
|
ROM_API_PRCM_TABLE[0])
|
|
|
|
#define ROM_PRCMInfClockConfigureGet \
|
|
((uint32_t (*)(uint32_t ui32PowerMode)) \
|
|
ROM_API_PRCM_TABLE[1])
|
|
|
|
#define ROM_PRCMAudioClockConfigSet \
|
|
((void (*)(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)) \
|
|
ROM_API_PRCM_TABLE[4])
|
|
|
|
#define ROM_PRCMPowerDomainOn \
|
|
((void (*)(uint32_t ui32Domains)) \
|
|
ROM_API_PRCM_TABLE[5])
|
|
|
|
#define ROM_PRCMPowerDomainOff \
|
|
((void (*)(uint32_t ui32Domains)) \
|
|
ROM_API_PRCM_TABLE[6])
|
|
|
|
#define ROM_PRCMPeripheralRunEnable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[7])
|
|
|
|
#define ROM_PRCMPeripheralRunDisable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[8])
|
|
|
|
#define ROM_PRCMPeripheralSleepEnable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[9])
|
|
|
|
#define ROM_PRCMPeripheralSleepDisable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[10])
|
|
|
|
#define ROM_PRCMPeripheralDeepSleepEnable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[11])
|
|
|
|
#define ROM_PRCMPeripheralDeepSleepDisable \
|
|
((void (*)(uint32_t ui32Peripheral)) \
|
|
ROM_API_PRCM_TABLE[12])
|
|
|
|
#define ROM_PRCMPowerDomainStatus \
|
|
((uint32_t (*)(uint32_t ui32Domains)) \
|
|
ROM_API_PRCM_TABLE[13])
|
|
|
|
#define ROM_PRCMDeepSleep \
|
|
((void (*)(void)) \
|
|
ROM_API_PRCM_TABLE[14])
|
|
|
|
#define ROM_PRCMAudioClockConfigSetOverride \
|
|
((void (*)(uint32_t ui32ClkConfig, uint32_t ui32MstDiv, uint32_t ui32BitDiv, uint32_t ui32WordDiv)) \
|
|
ROM_API_PRCM_TABLE[17])
|
|
|
|
|
|
// SMPH FUNCTIONS
|
|
#define ROM_SMPHAcquire \
|
|
((void (*)(uint32_t ui32Semaphore)) \
|
|
ROM_API_SMPH_TABLE[0])
|
|
|
|
|
|
// SSI FUNCTIONS
|
|
#define ROM_SSIConfigSetExpClk \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32SSIClk, uint32_t ui32Protocol, uint32_t ui32Mode, uint32_t ui32BitRate, uint32_t ui32DataWidth)) \
|
|
ROM_API_SSI_TABLE[0])
|
|
|
|
#define ROM_SSIDataPut \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Data)) \
|
|
ROM_API_SSI_TABLE[1])
|
|
|
|
#define ROM_SSIDataPutNonBlocking \
|
|
((int32_t (*)(uint32_t ui32Base, uint32_t ui32Data)) \
|
|
ROM_API_SSI_TABLE[2])
|
|
|
|
#define ROM_SSIDataGet \
|
|
((void (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
|
|
ROM_API_SSI_TABLE[3])
|
|
|
|
#define ROM_SSIDataGetNonBlocking \
|
|
((int32_t (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
|
|
ROM_API_SSI_TABLE[4])
|
|
|
|
|
|
// TIMER FUNCTIONS
|
|
#define ROM_TimerConfigure \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Config)) \
|
|
ROM_API_TIMER_TABLE[0])
|
|
|
|
#define ROM_TimerLevelControl \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)) \
|
|
ROM_API_TIMER_TABLE[1])
|
|
|
|
#define ROM_TimerStallControl \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bStall)) \
|
|
ROM_API_TIMER_TABLE[3])
|
|
|
|
#define ROM_TimerWaitOnTriggerControl \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bWait)) \
|
|
ROM_API_TIMER_TABLE[4])
|
|
|
|
#define ROM_TimerIntervalLoadMode \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)) \
|
|
ROM_API_TIMER_TABLE[5])
|
|
|
|
#define ROM_TimerMatchUpdateMode \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)) \
|
|
ROM_API_TIMER_TABLE[6])
|
|
|
|
|
|
// TRNG FUNCTIONS
|
|
#define ROM_TRNGConfigure \
|
|
((void (*)(uint32_t ui32MinSamplesPerCycle, uint32_t ui32MaxSamplesPerCycle, uint32_t ui32ClocksPerSample)) \
|
|
ROM_API_TRNG_TABLE[0])
|
|
|
|
#define ROM_TRNGNumberGet \
|
|
((uint32_t (*)(uint32_t ui32Word)) \
|
|
ROM_API_TRNG_TABLE[1])
|
|
|
|
|
|
// UART FUNCTIONS
|
|
#define ROM_UARTFIFOLevelGet \
|
|
((void (*)(uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)) \
|
|
ROM_API_UART_TABLE[0])
|
|
|
|
#define ROM_UARTConfigSetExpClk \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)) \
|
|
ROM_API_UART_TABLE[1])
|
|
|
|
#define ROM_UARTConfigGetExpClk \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)) \
|
|
ROM_API_UART_TABLE[2])
|
|
|
|
#define ROM_UARTDisable \
|
|
((void (*)(uint32_t ui32Base)) \
|
|
ROM_API_UART_TABLE[3])
|
|
|
|
#define ROM_UARTCharGetNonBlocking \
|
|
((int32_t (*)(uint32_t ui32Base)) \
|
|
ROM_API_UART_TABLE[4])
|
|
|
|
#define ROM_UARTCharGet \
|
|
((int32_t (*)(uint32_t ui32Base)) \
|
|
ROM_API_UART_TABLE[5])
|
|
|
|
#define ROM_UARTCharPutNonBlocking \
|
|
((bool (*)(uint32_t ui32Base, uint8_t ui8Data)) \
|
|
ROM_API_UART_TABLE[6])
|
|
|
|
#define ROM_UARTCharPut \
|
|
((void (*)(uint32_t ui32Base, uint8_t ui8Data)) \
|
|
ROM_API_UART_TABLE[7])
|
|
|
|
|
|
// UDMA FUNCTIONS
|
|
#define ROM_uDMAChannelAttributeEnable \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
|
|
ROM_API_UDMA_TABLE[0])
|
|
|
|
#define ROM_uDMAChannelAttributeDisable \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
|
|
ROM_API_UDMA_TABLE[1])
|
|
|
|
#define ROM_uDMAChannelAttributeGet \
|
|
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelNum)) \
|
|
ROM_API_UDMA_TABLE[2])
|
|
|
|
#define ROM_uDMAChannelControlSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Control)) \
|
|
ROM_API_UDMA_TABLE[3])
|
|
|
|
#define ROM_uDMAChannelTransferSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Mode, void *pvSrcAddr, void *pvDstAddr, uint32_t ui32TransferSize)) \
|
|
ROM_API_UDMA_TABLE[4])
|
|
|
|
#define ROM_uDMAChannelScatterGatherSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32TaskCount, void *pvTaskList, uint32_t ui32IsPeriphSG)) \
|
|
ROM_API_UDMA_TABLE[5])
|
|
|
|
#define ROM_uDMAChannelSizeGet \
|
|
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
|
|
ROM_API_UDMA_TABLE[6])
|
|
|
|
#define ROM_uDMAChannelModeGet \
|
|
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
|
|
ROM_API_UDMA_TABLE[7])
|
|
|
|
|
|
// VIMS FUNCTIONS
|
|
#define ROM_VIMSConfigure \
|
|
((void (*)(uint32_t ui32Base, bool bRoundRobin, bool bPrefetch)) \
|
|
ROM_API_VIMS_TABLE[0])
|
|
|
|
#define ROM_VIMSModeSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32Mode)) \
|
|
ROM_API_VIMS_TABLE[1])
|
|
|
|
#define ROM_VIMSModeGet \
|
|
((uint32_t (*)(uint32_t ui32Base)) \
|
|
ROM_API_VIMS_TABLE[2])
|
|
|
|
#define ROM_VIMSModeSafeSet \
|
|
((void (*)(uint32_t ui32Base, uint32_t ui32NewMode, bool blocking)) \
|
|
ROM_API_VIMS_TABLE[3])
|
|
|
|
|
|
// OSC FUNCTIONS
|
|
#define ROM_OSCClockSourceGet \
|
|
((uint32_t (*)(uint32_t ui32SrcClk)) \
|
|
ROM_API_OSC_TABLE[0])
|
|
|
|
#define ROM_OSCClockSourceSet \
|
|
((void (*)(uint32_t ui32SrcClk, uint32_t ui32Osc)) \
|
|
ROM_API_OSC_TABLE[1])
|
|
|
|
#define ROM_OSC_HPOSCRelativeFrequencyOffsetToRFCoreFormatConvert \
|
|
((int16_t (*)(int32_t HPOSC_RelFreqOffset)) \
|
|
ROM_API_OSC_TABLE[3])
|
|
|
|
|
|
// AUX_ADC FUNCTIONS
|
|
#define ROM_AUXADCAdjustValueForGainAndOffset \
|
|
((int32_t (*)(int32_t adcValue, int32_t gain, int32_t offset)) \
|
|
ROM_API_AUX_ADC_TABLE[0])
|
|
|
|
#define ROM_AUXADCDisable \
|
|
((void (*)(void)) \
|
|
ROM_API_AUX_ADC_TABLE[1])
|
|
|
|
#define ROM_AUXADCDisableInputScaling \
|
|
((void (*)(void)) \
|
|
ROM_API_AUX_ADC_TABLE[2])
|
|
|
|
#define ROM_AUXADCEnableAsync \
|
|
((void (*)(uint32_t refSource, uint32_t trigger)) \
|
|
ROM_API_AUX_ADC_TABLE[3])
|
|
|
|
#define ROM_AUXADCEnableSync \
|
|
((void (*)(uint32_t refSource, uint32_t sampleTime, uint32_t trigger)) \
|
|
ROM_API_AUX_ADC_TABLE[4])
|
|
|
|
#define ROM_AUXADCFlushFifo \
|
|
((void (*)(void)) \
|
|
ROM_API_AUX_ADC_TABLE[5])
|
|
|
|
#define ROM_AUXADCGetAdjustmentGain \
|
|
((int32_t (*)(uint32_t refSource)) \
|
|
ROM_API_AUX_ADC_TABLE[6])
|
|
|
|
#define ROM_AUXADCGetAdjustmentOffset \
|
|
((int32_t (*)(uint32_t refSource)) \
|
|
ROM_API_AUX_ADC_TABLE[7])
|
|
|
|
#define ROM_AUXADCMicrovoltsToValue \
|
|
((int32_t (*)(int32_t fixedRefVoltage, int32_t microvolts)) \
|
|
ROM_API_AUX_ADC_TABLE[8])
|
|
|
|
#define ROM_AUXADCPopFifo \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_AUX_ADC_TABLE[9])
|
|
|
|
#define ROM_AUXADCReadFifo \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_AUX_ADC_TABLE[10])
|
|
|
|
#define ROM_AUXADCUnadjustValueForGainAndOffset \
|
|
((int32_t (*)(int32_t adcValue, int32_t gain, int32_t offset)) \
|
|
ROM_API_AUX_ADC_TABLE[11])
|
|
|
|
#define ROM_AUXADCValueToMicrovolts \
|
|
((int32_t (*)(int32_t fixedRefVoltage, int32_t adcValue)) \
|
|
ROM_API_AUX_ADC_TABLE[12])
|
|
|
|
|
|
// SYS_CTRL FUNCTIONS
|
|
#define ROM_SysCtrlResetSourceGet \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SYS_CTRL_TABLE[0])
|
|
|
|
#define ROM_SysCtrl_DCDC_VoltageConditionalControl \
|
|
((void (*)(void)) \
|
|
ROM_API_SYS_CTRL_TABLE[1])
|
|
|
|
|
|
// AON_BATMON FUNCTIONS
|
|
#define ROM_AONBatMonTemperatureGetDegC \
|
|
((int32_t (*)(void)) \
|
|
ROM_API_AON_BATMON_TABLE[0])
|
|
|
|
|
|
// SETUP_ROM FUNCTIONS
|
|
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg1 \
|
|
((void (*)(uint32_t ccfg_ModeConfReg)) \
|
|
ROM_API_SETUP_ROM_TABLE[0])
|
|
|
|
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg2 \
|
|
((void (*)(uint32_t ui32Fcfg1Revision, uint32_t ccfg_ModeConfReg)) \
|
|
ROM_API_SETUP_ROM_TABLE[1])
|
|
|
|
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg3 \
|
|
((void (*)(uint32_t ccfg_ModeConfReg)) \
|
|
ROM_API_SETUP_ROM_TABLE[2])
|
|
|
|
#define ROM_SetupGetTrimForAdcShModeEn \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[3])
|
|
|
|
#define ROM_SetupGetTrimForAdcShVbufEn \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[4])
|
|
|
|
#define ROM_SetupGetTrimForAmpcompCtrl \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[5])
|
|
|
|
#define ROM_SetupGetTrimForAmpcompTh1 \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[6])
|
|
|
|
#define ROM_SetupGetTrimForAmpcompTh2 \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[7])
|
|
|
|
#define ROM_SetupGetTrimForAnabypassValue1 \
|
|
((uint32_t (*)(uint32_t ccfg_ModeConfReg)) \
|
|
ROM_API_SETUP_ROM_TABLE[8])
|
|
|
|
#define ROM_SetupGetTrimForDblrLoopFilterResetVoltage \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[9])
|
|
|
|
#define ROM_SetupGetTrimForRadcExtCfg \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[10])
|
|
|
|
#define ROM_SetupGetTrimForRcOscLfIBiasTrim \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[11])
|
|
|
|
#define ROM_SetupGetTrimForRcOscLfRtuneCtuneTrim \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[12])
|
|
|
|
#define ROM_SetupGetTrimForXoscHfCtl \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[13])
|
|
|
|
#define ROM_SetupGetTrimForXoscHfFastStart \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[14])
|
|
|
|
#define ROM_SetupGetTrimForXoscHfIbiastherm \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[15])
|
|
|
|
#define ROM_SetupGetTrimForXoscLfRegulatorAndCmirrwrRatio \
|
|
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
|
|
ROM_API_SETUP_ROM_TABLE[16])
|
|
|
|
#define ROM_SetupSetAonRtcSubSecInc \
|
|
((void (*)(uint32_t subSecInc)) \
|
|
ROM_API_SETUP_ROM_TABLE[17])
|
|
|
|
#define ROM_SetupSetCacheModeAccordingToCcfgSetting \
|
|
((void (*)(void)) \
|
|
ROM_API_SETUP_ROM_TABLE[18])
|
|
|
|
#define ROM_SetupStepVddrTrimTo \
|
|
((void (*)(uint32_t toCode)) \
|
|
ROM_API_SETUP_ROM_TABLE[19])
|
|
|
|
|
|
// I2S FUNCTIONS
|
|
#define ROM_I2SPointerSet \
|
|
((void (*)(uint32_t ui32Base, bool bInput, void * pNextPointer)) \
|
|
ROM_API_I2S_TABLE[0])
|
|
|
|
#define ROM_I2SSampleStampGet \
|
|
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32Channel)) \
|
|
ROM_API_I2S_TABLE[1])
|
|
|
|
|
|
// PWR_CTRL FUNCTIONS
|
|
#define ROM_PowerCtrlSourceSet \
|
|
((void (*)(uint32_t ui32PowerConfig)) \
|
|
ROM_API_PWR_CTRL_TABLE[0])
|
|
|
|
|
|
// AES FUNCTIONS
|
|
#define ROM_AESConfigureCCMCtrl \
|
|
((void (*)(uint32_t nonceLength, uint32_t macLength, bool encrypt)) \
|
|
ROM_API_AES_TABLE[0])
|
|
|
|
#define ROM_AESReadFromKeyStore \
|
|
((uint32_t (*)(uint32_t keyStoreArea)) \
|
|
ROM_API_AES_TABLE[1])
|
|
|
|
#define ROM_AESReadTag \
|
|
((uint32_t (*)(uint8_t *tag, uint32_t tagLength)) \
|
|
ROM_API_AES_TABLE[2])
|
|
|
|
#define ROM_AESSetInitializationVector \
|
|
((void (*)(const uint32_t *initializationVector)) \
|
|
ROM_API_AES_TABLE[3])
|
|
|
|
#define ROM_AESStartDMAOperation \
|
|
((void (*)(const uint8_t *channel0Addr, uint32_t channel0Length, uint8_t *channel1Addr, uint32_t channel1Length)) \
|
|
ROM_API_AES_TABLE[4])
|
|
|
|
#define ROM_AESVerifyTag \
|
|
((uint32_t (*)(const uint8_t *tag, uint32_t tagLength)) \
|
|
ROM_API_AES_TABLE[5])
|
|
|
|
#define ROM_AESWaitForIRQFlags \
|
|
((uint32_t (*)(uint32_t irqFlags)) \
|
|
ROM_API_AES_TABLE[6])
|
|
|
|
#define ROM_AESWriteCCMInitializationVector \
|
|
((void (*)(const uint8_t *nonce, uint32_t nonceLength)) \
|
|
ROM_API_AES_TABLE[7])
|
|
|
|
#define ROM_AESWriteToKeyStore \
|
|
((uint32_t (*)(const uint8_t *aesKey, uint32_t aesKeyLength, uint32_t keyStoreArea)) \
|
|
ROM_API_AES_TABLE[8])
|
|
|
|
|
|
// PKA FUNCTIONS
|
|
#define ROM_PKABigNumAddGetResult \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[0])
|
|
|
|
#define ROM_PKABigNumCmpGetResult \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_PKA_TABLE[1])
|
|
|
|
#define ROM_PKABigNumInvModGetResult \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t length, uint32_t resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[2])
|
|
|
|
#define ROM_PKABigNumModGetResult \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t length, uint32_t resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[3])
|
|
|
|
#define ROM_PKABigNumMultGetResult \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[4])
|
|
|
|
#define ROM_PKAEccAddGetResult \
|
|
((uint32_t (*)(uint8_t *curvePointX, uint8_t *curvePointY, uint32_t resultPKAMemAddr, uint32_t length)) \
|
|
ROM_API_PKA_TABLE[5])
|
|
|
|
#define ROM_PKAEccAddStart \
|
|
((uint32_t (*)(const uint8_t *curvePoint1X, const uint8_t *curvePoint1Y, const uint8_t *curvePoint2X, const uint8_t *curvePoint2Y, const uint8_t *prime, const uint8_t *a, uint32_t length, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[6])
|
|
|
|
#define ROM_PKAEccMultiplyGetResult \
|
|
((uint32_t (*)(uint8_t *curvePointX, uint8_t *curvePointY, uint32_t resultPKAMemAddr, uint32_t length)) \
|
|
ROM_API_PKA_TABLE[7])
|
|
|
|
#define ROM_PKAEccMultiplyStart \
|
|
((uint32_t (*)(const uint8_t *scalar, const uint8_t *curvePointX, const uint8_t *curvePointY, const uint8_t *prime, const uint8_t *a, const uint8_t *b, uint32_t length, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[8])
|
|
|
|
#define ROM_PKAGetOpsStatus \
|
|
((uint32_t (*)(void)) \
|
|
ROM_API_PKA_TABLE[9])
|
|
|
|
#define ROM_PKABigNumAddStart \
|
|
((uint32_t (*)(const uint8_t *bigNum1, uint32_t bigNum1Length, const uint8_t *bigNum2, uint32_t bigNum2Length, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[10])
|
|
|
|
#define ROM_PKABigNumCmpStart \
|
|
((uint32_t (*)(const uint8_t *bigNum1, const uint8_t *bigNum2, uint32_t length)) \
|
|
ROM_API_PKA_TABLE[11])
|
|
|
|
#define ROM_PKABigNumInvModStart \
|
|
((uint32_t (*)(const uint8_t *bigNum, uint32_t bigNumLength, const uint8_t *modulus, uint32_t modulusLength, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[12])
|
|
|
|
#define ROM_PKABigNumModStart \
|
|
((uint32_t (*)(const uint8_t *bigNum, uint32_t bigNumLength, const uint8_t *modulus, uint32_t modulusLength, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[13])
|
|
|
|
#define ROM_PKABigNumMultiplyStart \
|
|
((uint32_t (*)(const uint8_t *multiplicand, uint32_t multiplicandLength, const uint8_t *multiplier, uint32_t multiplierLength, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[14])
|
|
|
|
#define ROM_PKABigNumSubGetResult \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[15])
|
|
|
|
#define ROM_PKABigNumSubStart \
|
|
((uint32_t (*)(const uint8_t *minuend, uint32_t minuendLength, const uint8_t *subtrahend, uint32_t subtrahendLength, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[16])
|
|
|
|
#define ROM_PKAArrayAllZeros \
|
|
((bool (*)(const uint8_t *array, uint32_t arrayLength)) \
|
|
ROM_API_PKA_TABLE[17])
|
|
|
|
#define ROM_PKABigNumDivideGetQuotient \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t *length, uint32_t resultQuotientMemAddr)) \
|
|
ROM_API_PKA_TABLE[18])
|
|
|
|
#define ROM_PKABigNumDivideGetRemainder \
|
|
((uint32_t (*)(uint8_t *resultBuf, uint32_t *length, uint32_t resultRemainderMemAddr)) \
|
|
ROM_API_PKA_TABLE[19])
|
|
|
|
#define ROM_PKABigNumDivideStart \
|
|
((uint32_t (*)(const uint8_t *dividend, uint32_t dividendLength, const uint8_t *divisor, uint32_t divisorLength, uint32_t *resultQuotientMemAddr, uint32_t *resultRemainderMemAddr)) \
|
|
ROM_API_PKA_TABLE[20])
|
|
|
|
#define ROM_PKAEccVerifyPublicKeyWeierstrassStart \
|
|
((uint32_t (*)(const uint8_t *curvePointX, const uint8_t *curvePointY, const uint8_t *prime, const uint8_t *a, const uint8_t *b, const uint8_t *order, uint32_t length)) \
|
|
ROM_API_PKA_TABLE[21])
|
|
|
|
#define ROM_PKAZeroOutArray \
|
|
((void (*)(const uint8_t *array, uint32_t arrayLength)) \
|
|
ROM_API_PKA_TABLE[22])
|
|
|
|
#define ROM_PKAEccMontgomeryMultiplyStart \
|
|
((uint32_t (*)(const uint8_t *scalar, const uint8_t *curvePointX, const uint8_t *prime, const uint8_t *a, uint32_t length, uint32_t *resultPKAMemAddr)) \
|
|
ROM_API_PKA_TABLE[23])
|
|
|
|
|
|
// SHA2 FUNCTIONS
|
|
#define ROM_SHA2ComputeFinalHash \
|
|
((uint32_t (*)(const uint8_t *message, uint8_t *resultDigest, uint32_t *intermediateDigest, uint32_t totalMsgLength, uint32_t messageLength, uint32_t hashAlgorithm)) \
|
|
ROM_API_SHA2_TABLE[0])
|
|
|
|
#define ROM_SHA2ComputeHash \
|
|
((uint32_t (*)(const uint8_t *message, uint8_t *resultDigest, uint32_t totalMsgLength, uint32_t hashAlgorithm)) \
|
|
ROM_API_SHA2_TABLE[1])
|
|
|
|
#define ROM_SHA2ComputeInitialHash \
|
|
((uint32_t (*)(const uint8_t *message, uint32_t *intermediateDigest, uint32_t hashAlgorithm, uint32_t initialMessageLength)) \
|
|
ROM_API_SHA2_TABLE[2])
|
|
|
|
#define ROM_SHA2ComputeIntermediateHash \
|
|
((uint32_t (*)(const uint8_t *message, uint32_t *intermediateDigest, uint32_t hashAlgorithm, uint32_t intermediateMessageLength)) \
|
|
ROM_API_SHA2_TABLE[3])
|
|
|
|
#define ROM_SHA2StartDMAOperation \
|
|
((void (*)(uint8_t *channel0Addr, uint32_t channel0Length, uint8_t *channel1Addr, uint32_t channel1Length)) \
|
|
ROM_API_SHA2_TABLE[4])
|
|
|
|
#define ROM_SHA2WaitForIRQFlags \
|
|
((uint32_t (*)(uint32_t irqFlags)) \
|
|
ROM_API_SHA2_TABLE[5])
|
|
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Mark the end of the C bindings section for C++ compilers.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __ROM_H__
|