MCUXpresso SDK API Reference Manual  Rev 2.16.000
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
SOC_SRC Driver

Overview

The MCUXpresso SDK provides APIs for MCUXpresso SDK devices' src operation.

The System Reset Controller(SRC) is responsible for generation of all reset signals and the boot argument latching. To get the latched boot arguments, the driver provides "Latched Boot Arguments Related Interfaces" function group, all APIs in this group can be used to get the latched boot arguments. There are four situations cause an certain reset event:

Enumerations

enum  src_core_name_t {
  kSRC_CM33Core = 0x1U,
  kSRC_CM7Core = 0x2U
}
 System core. More...
 
enum  src_boot_fuse_selection_t {
  kSRC_SerialDownloaderBootFlow = 0U,
  kSRC_NormalBootFlow = 1U
}
 The enumeration of the boot fuse selection. More...
 
enum  src_reset_source_t {
  kSRC_Wdog1Reset = 0U,
  kSRC_Wdog2Reset = 1U,
  kSRC_Wdog3Reset = 2U,
  kSRC_Wdog4Reset = 3U,
  kSRC_Wdog5Reset = 4U,
  kSRC_TempsenseReset = 5U,
  kSRC_SentinelReset = 6U,
  kSRC_JtagSoftwareReset = 7U,
  kSRC_CM33LockUpReset = 8U,
  kSRC_CM33RequestReset = 9U,
  kSRC_CM7LockUpReset = 10U,
  kSRC_CM7RequestReset = 11U,
  kSRC_DcdcOverVoltageReset = 12U,
  kSRC_EcatResetOutputReset = 13U
}
 The enumeration of global system reset sources. More...
 
enum  _src_reset_status_flags {
  kSRC_PORResetFlag = 1UL << 0UL,
  kSRC_Wdog1ResetFlag = 1UL << 1UL,
  kSRC_Wdog2ResetFlag = 1UL << 2UL,
  kSRC_Wdog3ResetFlag = 1UL << 3UL,
  kSRC_Wdog4ResetFlag = 1UL << 4UL,
  kSRC_Wdog5ResetFlag = 1UL << 5UL,
  kSRC_TempsenseResetFlag = 1UL << 6UL,
  kSRC_SentinelResetFlag = 1UL << 7UL,
  kSRC_JtagSoftwareResetFlag = 1UL << 8UL,
  kSRC_CM33RequestResetFlag = 1UL << 9UL,
  kSRC_CM33LockUpResetFlag = 1UL << 10UL,
  kSRC_CM7RequestResetFlag = 1UL << 11UL,
  kSRC_CM7LockUpResetFlag = 1UL << 12UL,
  kSRC_DcdcOverVoltageResetFlag = 1UL << 13UL,
  kSRC_EcatResetOutputResetFlag = 1UL << 14UL,
  kSRC_IppResetFlag = 1UL << 16UL
}
 The enumeration of reset status flags. More...
 
enum  src_reset_mode_t {
  kSRC_ResetSystem = 0x0U,
  kSRC_DoNotResetSystem = 0x1U
}
 The enumeration of global system reset mode. More...
 
enum  src_general_purpose_register_index_t {
  kSRC_GeneralPurposeRegister0 = 0U,
  kSRC_GeneralPurposeRegister1,
  kSRC_GeneralPurposeRegister2,
  kSRC_GeneralPurposeRegister3,
  kSRC_GeneralPurposeRegister4,
  kSRC_GeneralPurposeRegister5,
  kSRC_GeneralPurposeRegister6,
  kSRC_GeneralPurposeRegister7,
  kSRC_GeneralPurposeRegister8,
  kSRC_GeneralPurposeRegister9,
  kSRC_GeneralPurposeRegister10,
  kSRC_GeneralPurposeRegister11,
  kSRC_GeneralPurposeRegister12,
  kSRC_GeneralPurposeRegister13,
  kSRC_GeneralPurposeRegister14,
  kSRC_GeneralPurposeRegister15,
  kSRC_GeneralPurposeRegister16,
  kSRC_GeneralPurposeRegister17,
  kSRC_GeneralPurposeRegister18,
  kSRC_GeneralPurposeRegister19
}
 The index of each general purpose register. More...
 
enum  src_power_ctrl_step_t {
  kSRC_PDN_EdgelockHandshake = 0UL,
  kSRC_PDN_IsolationOn = 1UL,
  kSRC_PDN_ResetAssert = 2UL,
  kSRC_PDN_PowerSwitchOff = 3UL,
  kSRC_PUP_PowerSwitchOn = 4UL,
  kSRC_PUP_ResetRelease = 5UL,
  kSRC_PUP_IsolationOff = 6UL,
  kSRC_PUP_EdgeLockHandshake = 7UL
}
 software power control step in power on/off sequence. More...
 
enum  src_power_level_t { ,
  kSRC_PowerLevel2 = 0x2UL,
  kSRC_PowerLevel3 = 0x3UL,
  kSRC_PowerLevel4 = 0x4UL
}
 The power level of low power mode setting. More...
 

Driver version

#define FSL_SRC_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
 SRC driver version 2.0.1. More...
 

Core Reset release

void SRC_ReleaseCM7 (SRC_GENERAL_Type *base)
 Releases related core reset operation. More...
 

Latched Boot Arguments Related Interfaces

static uint32_t SRC_GetBootConfig (SRC_GENERAL_Type *base)
 Gets Boot configuration. More...
 
static uint8_t SRC_GetBootMode (SRC_GENERAL_Type *base)
 Gets the latched state of the BOOT_MODE1 and BOOT_MODE0 signals. More...
 

Global System Related Interfaces

void SRC_SetGlobalSystemResetMode (SRC_GENERAL_Type *base, src_reset_source_t resetSource, src_reset_mode_t resetMode)
 Sets the reset mode of global system reset source. More...
 
static uint32_t SRC_GetResetStatusFlags (SRC_GENERAL_Type *base)
 Gets global system reset status flags. More...
 
static void SRC_ClearGlobalSystemResetStatus (SRC_GENERAL_Type *base, uint32_t mask)
 Clears the status of global reset. More...
 

General Purpose Registers Related Interfaces

static void SRC_SetGeneralPurposeRegister (SRC_GENERAL_Type *base, src_general_purpose_register_index_t index, uint32_t value)
 Sets value to general purpose registers. More...
 
static uint32_t SRC_GetGeneralPurposeRegister (SRC_GENERAL_Type *base, src_general_purpose_register_index_t index)
 Gets the value from general purpose registers. More...
 

SRC Mix Slice Related Interfaces

static void SRC_SLICE_AllowUserModeAccess (SRC_MIX_SLICE_Type *base, bool enable)
 Allows/disallows user mode access. More...
 
static void SRC_SLICE_AllowNonSecureModeAccess (SRC_MIX_SLICE_Type *base, bool enable)
 Allows/disallows non secure mode access. More...
 
static void SRC_SLICE_LockAccessSetting (SRC_MIX_SLICE_Type *base)
 Locks the setting of user mode access and non secure mode access. More...
 
static void SRC_SLICE_SetWhiteList (SRC_MIX_SLICE_Type *base, uint8_t domainId)
 Sets the domain ID white list for the selected slice. More...
 
static void SRC_SLICE_LockWhiteList (SRC_MIX_SLICE_Type *base)
 Locks the value of white list. More...
 
void SRC_SLICE_SoftwareControl (SRC_MIX_SLICE_Type *base, src_power_ctrl_step_t step)
 brief Set software control step for slice power on/off sequence. More...
 
void SRC_SLICE_PowerDown (SRC_MIX_SLICE_Type *base, bool powerOff)
 brief Power on/off slice. More...
 
void SRC_SLICE_ControlByCpuLowPowerMode (SRC_MIX_SLICE_Type *base, uint32_t domainMap, src_power_level_t level)
 

Macro Definition Documentation

#define FSL_SRC_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))

Enumeration Type Documentation

Enumerator
kSRC_CM33Core 

System Core CM33.

kSRC_CM7Core 

System Core CM7.

Enumerator
kSRC_SerialDownloaderBootFlow 

The Boot flow jumps directly to the serial downloader.

kSRC_NormalBootFlow 

The Boot flow follows the Normal Boot flow.

Enumerator
kSRC_Wdog1Reset 

WDOG1 triggers the global system reset.

kSRC_Wdog2Reset 

WDOG2 triggers the global system reset.

kSRC_Wdog3Reset 

WDOG3 triggers the global system reset.

kSRC_Wdog4Reset 

WODG4 triggers the global system reset.

kSRC_Wdog5Reset 

WDOG5 triggers the global system reset.

kSRC_TempsenseReset 

Tempsense trigggers the global system reset.

kSRC_SentinelReset 

Sentiel trigggers the global system reset.

kSRC_JtagSoftwareReset 

JTAG software triggers the global system reset.

kSRC_CM33LockUpReset 

CM33 lockup triggers the global system reset.

kSRC_CM33RequestReset 

CM33 request triggers the global system reset.

kSRC_CM7LockUpReset 

CM7 lockup triggers the global system reset.

kSRC_CM7RequestReset 

CM7 request triggers the global system reset.

kSRC_DcdcOverVoltageReset 

DCDC over voltage triggers the global system reset.

kSRC_EcatResetOutputReset 

EtherCAT reset output triggers the global system reset.

Enumerator
kSRC_PORResetFlag 

Reset is the result of POR.

kSRC_Wdog1ResetFlag 

Reset is the result of watchdog1 time-out event.

kSRC_Wdog2ResetFlag 

Reset is the result of watchdog2 time-out event.

kSRC_Wdog3ResetFlag 

Reset is the result of watchdog3 time-out event.

kSRC_Wdog4ResetFlag 

Reset is the result of watchdog4 time-out event.

kSRC_Wdog5ResetFlag 

Reset is the result of watchdog5 time-out event.

kSRC_TempsenseResetFlag 

Reset is the result of software reset from temperature sensor.

kSRC_SentinelResetFlag 

Reset is the result of the Sentinel's reset event.

kSRC_JtagSoftwareResetFlag 

Reset is the result of software reset from JTAG.

kSRC_CM33RequestResetFlag 

Reset is the result of CM33 reset request.

kSRC_CM33LockUpResetFlag 

Reset is the result of CM33 CPU lockup.

kSRC_CM7RequestResetFlag 

Reset is the result of CM7 reset request.

kSRC_CM7LockUpResetFlag 

Reset is the result of CM7 CPU lockup.

kSRC_DcdcOverVoltageResetFlag 

Reset is the result of DCDC over voltage.

kSRC_EcatResetOutputResetFlag 

Reset is the result of ECAT reset output.

kSRC_IppResetFlag 

Reset is the result of chip PAD POR_B.

Enumerator
kSRC_ResetSystem 

Generate the global system reset.

kSRC_DoNotResetSystem 

Do not generate the global system reset.

Enumerator
kSRC_GeneralPurposeRegister0 

The index of General Purpose Register0.

kSRC_GeneralPurposeRegister1 

The index of General Purpose Register1.

kSRC_GeneralPurposeRegister2 

The index of General Purpose Register2.

kSRC_GeneralPurposeRegister3 

The index of General Purpose Register3.

kSRC_GeneralPurposeRegister4 

The index of General Purpose Register4.

kSRC_GeneralPurposeRegister5 

The index of General Purpose Register5.

kSRC_GeneralPurposeRegister6 

The index of General Purpose Register6.

kSRC_GeneralPurposeRegister7 

The index of General Purpose Register7.

kSRC_GeneralPurposeRegister8 

The index of General Purpose Register8.

kSRC_GeneralPurposeRegister9 

The index of General Purpose Register9.

kSRC_GeneralPurposeRegister10 

The index of General Purpose Register10.

kSRC_GeneralPurposeRegister11 

The index of General Purpose Register11.

kSRC_GeneralPurposeRegister12 

The index of General Purpose Register12.

kSRC_GeneralPurposeRegister13 

The index of General Purpose Register13.

kSRC_GeneralPurposeRegister14 

The index of General Purpose Register14.

kSRC_GeneralPurposeRegister15 

The index of General Purpose Register15.

kSRC_GeneralPurposeRegister16 

The index of General Purpose Register16.

kSRC_GeneralPurposeRegister17 

The index of General Purpose Register17.

kSRC_GeneralPurposeRegister18 

The index of General Purpose Register18.

kSRC_GeneralPurposeRegister19 

The index of General Purpose Register19.

Enumerator
kSRC_PDN_EdgelockHandshake 

Power down Edgelock handshake step.

kSRC_PDN_IsolationOn 

Power down isolation on step.

kSRC_PDN_ResetAssert 

Power down reset assert step.

kSRC_PDN_PowerSwitchOff 

Power down power switch off step.

kSRC_PUP_PowerSwitchOn 

Power up power switch on step.

kSRC_PUP_ResetRelease 

Power up reset release step.

kSRC_PUP_IsolationOff 

Power up isolation off step.

kSRC_PUP_EdgeLockHandshake 

Power up Edgelock handshake step.

Enumerator
kSRC_PowerLevel2 

power on when domain n is in RUN, off in WAIT/STOP/SUSPEND

kSRC_PowerLevel3 

power on when domain n is in RUN/WAIT, off in STOP/SUSPEND

kSRC_PowerLevel4 

power on when domain n is in RUN/WAIT/STOP, off in SUSPEND

Function Documentation

void SRC_ReleaseCM7 ( SRC_GENERAL_Type *  base)

The core reset will be held until the boot core to release it.

Parameters
baseSRC peripheral base address.
static uint32_t SRC_GetBootConfig ( SRC_GENERAL_Type *  base)
inlinestatic
Parameters
baseSRC peripheral base address.
Returns
Boot configuration. Please refer to fusemap.
static uint8_t SRC_GetBootMode ( SRC_GENERAL_Type *  base)
inlinestatic
Parameters
baseSRC peripheral base address.
Returns
Boot mode. Please refer to the Boot mode pin setting section of System Boot.
void SRC_SetGlobalSystemResetMode ( SRC_GENERAL_Type *  base,
src_reset_source_t  resetSource,
src_reset_mode_t  resetMode 
)

This function sets the selected mode of the input global system reset sources.

Parameters
baseSRC peripheral base address.
resetSourceThe global system reset source. See src_reset_source_t for more details.
resetModeThe reset mode of each reset source. See src_reset_mode_t for more details.
static uint32_t SRC_GetResetStatusFlags ( SRC_GENERAL_Type *  base)
inlinestatic
Parameters
baseSRC peripheral base address.
Returns
The status of global system reset status. See _src_reset_status_flags for more details.
static void SRC_ClearGlobalSystemResetStatus ( SRC_GENERAL_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
baseSRC peripheral base address.
maskThe reset status flag to be cleared. See _src_reset_status_flags for more details.
static void SRC_SetGeneralPurposeRegister ( SRC_GENERAL_Type *  base,
src_general_purpose_register_index_t  index,
uint32_t  value 
)
inlinestatic
Parameters
baseSRC peripheral base address.
indexThe index of GPRx register array. Please refer to src_general_purpose_register_index_t.
valueSetting value for GPRx register.
static uint32_t SRC_GetGeneralPurposeRegister ( SRC_GENERAL_Type *  base,
src_general_purpose_register_index_t  index 
)
inlinestatic
Parameters
baseSRC peripheral base address.
indexThe index of GPRx register array. Please refer to src_general_purpose_register_index_t.
Returns
The setting value for GPRx register.
static void SRC_SLICE_AllowUserModeAccess ( SRC_MIX_SLICE_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseSRC peripheral base address.
enableUsed to control user mode access.
  • true Allow user mode access.
  • false Disallow user mode access.
static void SRC_SLICE_AllowNonSecureModeAccess ( SRC_MIX_SLICE_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseSRC peripheral base address.
enableUsed to control non secure mode access.
  • true Allow non secure mode access.
  • false Disallow non secure mode access.
static void SRC_SLICE_LockAccessSetting ( SRC_MIX_SLICE_Type *  base)
inlinestatic
Note
Once locked only reset can unlock related settings.
Parameters
baseSRC peripheral base address.
static void SRC_SLICE_SetWhiteList ( SRC_MIX_SLICE_Type *  base,
uint8_t  domainId 
)
inlinestatic
Parameters
baseSRC peripheral base address.
domainIdThe core to access registers, should be the OR'ed value of src_core_name_t.
static void SRC_SLICE_LockWhiteList ( SRC_MIX_SLICE_Type *  base)
inlinestatic
Note
Once locked only reset can unlock related settings.
Parameters
baseSRC peripheral base address.
void SRC_SLICE_SoftwareControl ( SRC_MIX_SLICE_Type *  base,
src_power_ctrl_step_t  step 
)

param base SRC peripheral base address. param step Slice power on/off sequence step. See src_power_ctrl_step_t for more details.

void SRC_SLICE_PowerDown ( SRC_MIX_SLICE_Type *  base,
bool  powerOff 
)

param base SRC peripheral base address. param powerOff Used to trigger slice power on/off sequence.

  • true Trigger a power off sequence.
  • false Trigger a power on sequence.