ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_reset.h
Go to the documentation of this file.
1
61
62#pragma once
63
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68#include <stdint.h>
69
70#include "ra8_err.h"
71#include "ra8_reset_regs.h"
72
73/* =============================================================================
74 * Reset cause enumeration
75 * =============================================================================
76 */
77
118
131typedef struct {
132 uint8_t rstsr0;
133 uint32_t rstsr1;
134 uint8_t rstsr2;
135 uint8_t rstsr3;
137
138/* =============================================================================
139 * Lifecycle
140 * =============================================================================
141 */
142
173[[nodiscard]] ra8_err_t ra8_reset_init(void);
174
192
193/* =============================================================================
194 * Cause introspection
195 * =============================================================================
196 */
197
229
252
295[[nodiscard]] ra8_err_t ra8_reset_clear_cause(uint32_t mask);
296
297/* =============================================================================
298 * Security attribution
299 * =============================================================================
300 */
301
327[[nodiscard]] ra8_err_t ra8_reset_get_attribution(uint32_t* out);
328
329/* =============================================================================
330 * Software reset
331 * =============================================================================
332 */
333
371void ra8_reset_software_reset(void);
372
373/* =============================================================================
374 * Reset-source masking (SYRSTMSK0/1/2)
375 * =============================================================================
376 */
377
406
439[[nodiscard]] ra8_err_t ra8_reset_set_source_mask(ra8_reset_source_t source, bool disable);
440
465[[nodiscard]] ra8_err_t ra8_reset_get_source_mask(ra8_reset_source_t source, bool* disabled);
466
467#ifdef __cplusplus
468}
469#endif
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
ra8_err_t ra8_reset_get_cause(ra8_reset_cause_t *out)
Decode the latched RSTSRn flags into a single primary cause.
Definition ra8_reset.c:326
ra8_err_t ra8_reset_get_source_mask(ra8_reset_source_t source, bool *disabled)
Read whether a specific reset source is currently masked (disabled).
Definition ra8_reset.c:537
ra8_err_t ra8_reset_init(void)
Snapshot the reset cause at boot.
Definition ra8_reset.c:310
ra8_reset_cause_t
Decoded reset-cause taxonomy.
Definition ra8_reset.h:93
@ k_ra8_reset_cause_common_memory
RSTSR1.CMRF.
Definition ra8_reset.h:111
@ k_ra8_reset_cause_lockup0
RSTSR1.CLURF.
Definition ra8_reset.h:108
@ k_ra8_reset_cause_lvd4
RSTSR0.LVD4RF.
Definition ra8_reset.h:99
@ k_ra8_reset_cause_power_on
RSTSR0.PORF.
Definition ra8_reset.h:95
@ k_ra8_reset_cause_temperature
RSTSR3.TEMPRF.
Definition ra8_reset.h:104
@ k_ra8_reset_cause_wdt0
RSTSR1.WDTRF.
Definition ra8_reset.h:106
@ k_ra8_reset_cause_local_memory1
RSTSR1.LM1RF.
Definition ra8_reset.h:114
@ k_ra8_reset_cause_lockup1
RSTSR1.CLU1RF.
Definition ra8_reset.h:113
@ k_ra8_reset_cause_bus_peripheral_mpu
RSTSR1.BUSSRF.
Definition ra8_reset.h:110
@ k_ra8_reset_cause_overcurrent
RSTSR3.OCPRF.
Definition ra8_reset.h:103
@ k_ra8_reset_cause_software
RSTSR1.SWRF.
Definition ra8_reset.h:107
@ k_ra8_reset_cause_lvd5
RSTSR0.LVD5RF.
Definition ra8_reset.h:100
@ k_ra8_reset_cause_local_memory0
RSTSR1.LM0RF.
Definition ra8_reset.h:109
@ k_ra8_reset_cause_deep_sw_standby
RSTSR0.DPSRSTF.
Definition ra8_reset.h:101
@ k_ra8_reset_cause_wdt1
RSTSR1.WDT1RF.
Definition ra8_reset.h:112
@ k_ra8_reset_cause_network
RSTSR1.NWRF.
Definition ra8_reset.h:115
@ k_ra8_reset_cause_core_voltage
RSTSR3.CVMRF.
Definition ra8_reset.h:102
@ k_ra8_reset_cause_warm_start
RSTSR2.CWSF == 1.
Definition ra8_reset.h:116
@ k_ra8_reset_cause_lvd0
RSTSR0.LVD0RF.
Definition ra8_reset.h:96
@ k_ra8_reset_cause_lvd2
RSTSR0.LVD2RF.
Definition ra8_reset.h:98
@ k_ra8_reset_cause_unknown
No flag latched.
Definition ra8_reset.h:94
@ k_ra8_reset_cause_iwdt
RSTSR1.IWDTRF.
Definition ra8_reset.h:105
@ k_ra8_reset_cause_lvd1
RSTSR0.LVD1RF.
Definition ra8_reset.h:97
void ra8_reset_test_only_reset_state(void)
Reset the cached reset-cause snapshot for host tests.
Definition ra8_reset.c:319
void ra8_reset_software_reset(void)
Trigger a software-initiated system reset.
Definition ra8_reset.c:394
ra8_err_t ra8_reset_get_raw(ra8_reset_raw_t *out)
Read the raw RSTSR0 / RSTSR1 / RSTSR2 / RSTSR3 register words.
Definition ra8_reset.c:339
ra8_err_t ra8_reset_set_source_mask(ra8_reset_source_t source, bool disable)
Enable or disable the occurrence of a specific reset source.
Definition ra8_reset.c:505
ra8_err_t ra8_reset_get_attribution(uint32_t *out)
Read the RSTSAR (Reset Security Attribution) register.
Definition ra8_reset.c:386
ra8_err_t ra8_reset_clear_cause(uint32_t mask)
Clear (write 0 to) the requested set of latched RSTSRn flags.
Definition ra8_reset.c:350
ra8_reset_source_t
Reset sources whose occurrence can be individually disabled.
Definition ra8_reset.h:391
@ k_ra8_reset_source_pvd1
Voltage-monitor-1 reset (SYRSTMSK2).
Definition ra8_reset.h:402
@ k_ra8_reset_source_bus
Bus error reset (SYRSTMSK0).
Definition ra8_reset.h:398
@ k_ra8_reset_source_count
Sentinel: number of maskable sources.
Definition ra8_reset.h:404
@ k_ra8_reset_source_pvd2
Voltage-monitor-2 reset (SYRSTMSK2).
Definition ra8_reset.h:403
@ k_ra8_reset_source_iwdt
Independent watchdog reset (SYRSTMSK0).
Definition ra8_reset.h:392
@ k_ra8_reset_source_lm1
Local-memory-1 error reset (SYRSTMSK1).
Definition ra8_reset.h:401
@ k_ra8_reset_source_cm
Common-memory error reset (SYRSTMSK0).
Definition ra8_reset.h:397
@ k_ra8_reset_source_sw
Software reset (SYRSTMSK0).
Definition ra8_reset.h:394
@ k_ra8_reset_source_wdt1
CPU1 watchdog reset (SYRSTMSK1).
Definition ra8_reset.h:399
@ k_ra8_reset_source_lm0
Local-memory-0 error reset (SYRSTMSK0).
Definition ra8_reset.h:396
@ k_ra8_reset_source_clu1
CPU1 lockup reset (SYRSTMSK1).
Definition ra8_reset.h:400
@ k_ra8_reset_source_wdt0
CPU0 watchdog reset (SYRSTMSK0).
Definition ra8_reset.h:393
@ k_ra8_reset_source_clu0
CPU0 lockup reset (SYRSTMSK0).
Definition ra8_reset.h:395
Reset block register layout (offsets, bit masks, accessors)for the Renesas RA8D2.
Raw register snapshot returned by ra8_reset_get_raw.
Definition ra8_reset.h:131
uint32_t rstsr1
Raw RSTSR1 word.
Definition ra8_reset.h:133
uint8_t rstsr0
Raw RSTSR0 byte.
Definition ra8_reset.h:132
uint8_t rstsr3
Raw RSTSR3 byte.
Definition ra8_reset.h:135
uint8_t rstsr2
Raw RSTSR2 byte.
Definition ra8_reset.h:134