PATTGEN Device Interface Functions More...
#include <stdbool.h>#include <stdint.h>#include "sw/device/lib/base/macros.h"#include "sw/device/lib/base/mmio.h"#include "sw/device/lib/dif/dif_base.h"#include "hw/top/dt/dt_pattgen.h"Go to the source code of this file.
| Data Structures | |
| struct | dif_pattgen | 
| A handle to pattgen.  More... | |
| Macros | |
| #define | kDifPattgenIrqDoneCh0 kDtPattgenIrqDoneCh0 | 
| A pattgen interrupt request type. | |
| #define | kDifPattgenIrqDoneCh1 kDtPattgenIrqDoneCh1 | 
| Raise if pattern generation on Channel 1 is complete. | |
| Typedefs | |
| typedef struct dif_pattgen | dif_pattgen_t | 
| A handle to pattgen. | |
| typedef enum dif_pattgen_alert | dif_pattgen_alert_t | 
| A pattgen alert type. | |
| typedef dt_pattgen_irq_t | dif_pattgen_irq_t | 
| typedef uint32_t | dif_pattgen_irq_state_snapshot_t | 
| A snapshot of the state of the interrupts for this IP. | |
| typedef uint32_t | dif_pattgen_irq_enable_snapshot_t | 
| A snapshot of the enablement state of the interrupts for this IP. | |
| Enumerations | |
| enum | dif_pattgen_alert { kDifPattgenAlertFatalFault = 0 } | 
| A pattgen alert type.  More... | |
| Functions | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_init (mmio_region_t base_addr, dif_pattgen_t *pattgen) | 
| Creates a new handle for a(n) pattgen peripheral. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_init_from_dt (dt_pattgen_t dt, dif_pattgen_t *pattgen) | 
| Creates a new handle for a(n) pattgen peripheral. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_get_dt (const dif_pattgen_t *pattgen, dt_pattgen_t *dt) | 
| Get the DT handle from this DIF. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_alert_force (const dif_pattgen_t *pattgen, dif_pattgen_alert_t alert) | 
| Forces a particular alert, causing it to be escalated as if the hardware had raised it. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_get_type (const dif_pattgen_t *pattgen, dif_pattgen_irq_t, dif_irq_type_t *type) | 
| Returns the type of a given interrupt (i.e., event or status) for this IP. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_get_state (const dif_pattgen_t *pattgen, dif_pattgen_irq_state_snapshot_t *snapshot) | 
| Returns the state of all interrupts (i.e., pending or not) for this IP. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_is_pending (const dif_pattgen_t *pattgen, dif_pattgen_irq_t, bool *is_pending) | 
| Returns whether a particular interrupt is currently pending. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_acknowledge_state (const dif_pattgen_t *pattgen, dif_pattgen_irq_state_snapshot_t snapshot) | 
| Acknowledges all interrupts that were pending at the time of the state snapshot. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_acknowledge_all (const dif_pattgen_t *pattgen) | 
| Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_acknowledge (const dif_pattgen_t *pattgen, dif_pattgen_irq_t) | 
| Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_force (const dif_pattgen_t *pattgen, dif_pattgen_irq_t, const bool val) | 
| Forces a particular interrupt, causing it to be serviced as if hardware had asserted it. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_get_enabled (const dif_pattgen_t *pattgen, dif_pattgen_irq_t, dif_toggle_t *state) | 
| Checks whether a particular interrupt is currently enabled or disabled. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_set_enabled (const dif_pattgen_t *pattgen, dif_pattgen_irq_t, dif_toggle_t state) | 
| Sets whether a particular interrupt is currently enabled or disabled. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_disable_all (const dif_pattgen_t *pattgen, dif_pattgen_irq_enable_snapshot_t *snapshot) | 
| Disables all interrupts, optionally snapshotting all enable states for later restoration. | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_pattgen_irq_restore_all (const dif_pattgen_t *pattgen, const dif_pattgen_irq_enable_snapshot_t *snapshot) | 
| Restores interrupts from the given (enable) snapshot. | |
PATTGEN Device Interface Functions
Definition in file dif_pattgen_autogen.h.
| struct dif_pattgen | 
A handle to pattgen.
This type should be treated as opaque by users.
Definition at line 37 of file dif_pattgen_autogen.h.
| Data Fields | ||
|---|---|---|
| mmio_region_t | base_addr | The base address for the pattgen hardware registers. | 
| dt_pattgen_t | dt | The instance, set to kDtPattgenCountif not initialized throughdif_pattgen_init_from_dt. | 
| #define kDifPattgenIrqDoneCh0 kDtPattgenIrqDoneCh0 | 
A pattgen interrupt request type.
DEPRECATED Use dt_pattgen_irq_t instead. This enumeration exists solely for the transition to dt-based interrupt numbers and will be removed in the future.
The following are defines to keep the types consistent with DT. Raise if pattern generation on Channel 0 is complete
Definition at line 134 of file dif_pattgen_autogen.h.
| #define kDifPattgenIrqDoneCh1 kDtPattgenIrqDoneCh1 | 
Raise if pattern generation on Channel 1 is complete.
Definition at line 138 of file dif_pattgen_autogen.h.
| typedef uint32_t dif_pattgen_irq_enable_snapshot_t | 
A snapshot of the enablement state of the interrupts for this IP.
This is an opaque type, to be used with the dif_pattgen_irq_disable_all() and dif_pattgen_irq_restore_all() functions. 
Definition at line 248 of file dif_pattgen_autogen.h.
| typedef uint32_t dif_pattgen_irq_state_snapshot_t | 
A snapshot of the state of the interrupts for this IP.
This is an opaque type, to be used with the dif_pattgen_irq_get_state() and dif_pattgen_irq_acknowledge_state() functions. 
Definition at line 146 of file dif_pattgen_autogen.h.
| typedef dt_pattgen_irq_t dif_pattgen_irq_t | 
Definition at line 120 of file dif_pattgen_autogen.h.
| typedef struct dif_pattgen dif_pattgen_t | 
A handle to pattgen.
This type should be treated as opaque by users.
| enum dif_pattgen_alert | 
A pattgen alert type.
| Enumerator | |
|---|---|
| kDifPattgenAlertFatalFault | This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected. | 
Definition at line 98 of file dif_pattgen_autogen.h.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_alert_force | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_alert_t | alert ) | 
Forces a particular alert, causing it to be escalated as if the hardware had raised it.
| pattgen | A pattgen handle. | 
| alert | The alert to force. | 
Definition at line 62 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_get_dt | ( | const dif_pattgen_t * | pattgen, | 
| dt_pattgen_t * | dt ) | 
Get the DT handle from this DIF.
If this DIF was initialized by dif_pattgen_init_from_dt(dt, ..) then this function will return dt. Otherwise it will return an error.
| pattgen | A pattgen handle. | |
| [out] | dt | DT handle. | 
kDifBadArg if the DIF has no DT information, kDifOk otherwise. Definition at line 52 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_init | ( | mmio_region_t | base_addr, | 
| dif_pattgen_t * | pattgen ) | 
Creates a new handle for a(n) pattgen peripheral.
This function does not actuate the hardware.
| base_addr | The MMIO base address of the pattgen peripheral. | |
| [out] | pattgen | Out param for the initialized handle. | 
DEPRECATED This function exists solely for the transition to dt-based DIFs and will be removed in the future.
Definition at line 25 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_init_from_dt | ( | dt_pattgen_t | dt, | 
| dif_pattgen_t * | pattgen ) | 
Creates a new handle for a(n) pattgen peripheral.
This function does not actuate the hardware.
| dt | The devicetable description of the device. | |
| [out] | pattgen | Out param for the initialized handle. | 
Definition at line 39 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_acknowledge | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq ) | 
Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced.
| pattgen | A pattgen handle. | 
| irq | An interrupt request. | 
Definition at line 213 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_acknowledge_all | ( | const dif_pattgen_t * | pattgen | ) | 
Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced.
| pattgen | A pattgen handle. | 
Definition at line 194 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_acknowledge_state | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_state_snapshot_t | snapshot ) | 
Acknowledges all interrupts that were pending at the time of the state snapshot.
| pattgen | A pattgen handle. | 
| snapshot | Interrupt state snapshot. | 
Definition at line 152 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_disable_all | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_enable_snapshot_t * | snapshot ) | 
Disables all interrupts, optionally snapshotting all enable states for later restoration.
| pattgen | A pattgen handle. | |
| [out] | snapshot | Out-param for the snapshot; may be NULL. | 
Definition at line 321 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_force | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq, | ||
| const bool | val ) | 
Forces a particular interrupt, causing it to be serviced as if hardware had asserted it.
| pattgen | A pattgen handle. | 
| irq | An interrupt request. | 
| val | Value to be set. | 
Definition at line 238 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_get_enabled | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq, | ||
| dif_toggle_t * | state ) | 
Checks whether a particular interrupt is currently enabled or disabled.
| pattgen | A pattgen handle. | |
| irq | An interrupt request. | |
| [out] | state | Out-param toggle state of the interrupt. | 
Definition at line 263 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_get_state | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_state_snapshot_t * | snapshot ) | 
Returns the state of all interrupts (i.e., pending or not) for this IP.
| pattgen | A pattgen handle. | |
| [out] | snapshot | Out-param for interrupt state snapshot. | 
Definition at line 135 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_get_type | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq, | ||
| dif_irq_type_t * | type ) | 
Returns the type of a given interrupt (i.e., event or status) for this IP.
| pattgen | A pattgen handle. | |
| irq | An interrupt request. | |
| [out] | type | Out-param for the interrupt type. | 
Definition at line 116 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_is_pending | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq, | ||
| bool * | is_pending ) | 
Returns whether a particular interrupt is currently pending.
| pattgen | A pattgen handle. | |
| irq | An interrupt request. | |
| [out] | is_pending | Out-param for whether the interrupt is pending. | 
Definition at line 169 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_restore_all | ( | const dif_pattgen_t * | pattgen, | 
| const dif_pattgen_irq_enable_snapshot_t * | snapshot ) | 
Restores interrupts from the given (enable) snapshot.
| pattgen | A pattgen handle. | 
| snapshot | A snapshot to restore from. | 
Definition at line 348 of file dif_pattgen_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_pattgen_irq_set_enabled | ( | const dif_pattgen_t * | pattgen, | 
| dif_pattgen_irq_t | irq, | ||
| dif_toggle_t | state ) | 
Sets whether a particular interrupt is currently enabled or disabled.
| pattgen | A pattgen handle. | 
| irq | An interrupt request. | 
| state | The new toggle state for the interrupt. | 
Definition at line 290 of file dif_pattgen_autogen.c.