CC26xx Driver Library
rf_mailbox.h File Reference
#include <stdint.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  dataQueue_t
 Type definition for a data queue. More...
 

Macros

RF mode values

Defines used to indicate mode of operation to radio core.

#define RF_MODE_BLE   0x01
 
#define RF_MODE_IEEE_15_4   0x02
 
#define RF_MODE_PROPRIETARY_2_4   0x03
 
#define RF_MODE_PROPRIETARY   RF_MODE_PROPRIETARY_2_4
 
#define RF_MODE_MULTIPLE   0x05
 
CPE interrupt definitions

Interrupt masks for the CPE interrupt in RDBELL.

#define IRQN_COMMAND_DONE   0
 Radio operation command finished. More...
 
#define IRQN_LAST_COMMAND_DONE   1
 Last radio operation command in a chain finished. More...
 
#define IRQN_FG_COMMAND_DONE   2
 FG level Radio operation command finished. More...
 
#define IRQN_LAST_FG_COMMAND_DONE   3
 Last FG level radio operation command in a chain finished. More...
 
#define IRQN_TX_DONE   4
 Packet transmitted. More...
 
#define IRQN_TX_ACK   5
 ACK packet transmitted. More...
 
#define IRQN_TX_CTRL   6
 Control packet transmitted. More...
 
#define IRQN_TX_CTRL_ACK   7
 Acknowledgement received on a transmitted control packet. More...
 
#define IRQN_TX_CTRL_ACK_ACK   8
 Acknowledgement received on a transmitted control packet, and acknowledgement transmitted for that packet. More...
 
#define IRQN_TX_RETRANS   9
 Packet retransmitted. More...
 
#define IRQN_TX_ENTRY_DONE   10
 Tx queue data entry state changed to Finished. More...
 
#define IRQN_TX_BUFFER_CHANGED   11
 A buffer change is complete. More...
 
#define IRQN_RX_OK   16
 Packet received with CRC OK, payload, and not to be ignored. More...
 
#define IRQN_RX_NOK   17
 Packet received with CRC error. More...
 
#define IRQN_RX_IGNORED   18
 Packet received with CRC OK, but to be ignored. More...
 
#define IRQN_RX_EMPTY   19
 Packet received with CRC OK, not to be ignored, no payload. More...
 
#define IRQN_RX_CTRL   20
 Control packet received with CRC OK, not to be ignored. More...
 
#define IRQN_RX_CTRL_ACK   21
 Control packet received with CRC OK, not to be ignored, then ACK sent. More...
 
#define IRQN_RX_BUF_FULL   22
 Packet received that did not fit in the Rx queue. More...
 
#define IRQN_RX_ENTRY_DONE   23
 Rx queue data entry changing state to Finished. More...
 
#define IRQN_RX_DATA_WRITTEN   24
 Data written to partial read Rx buffer. More...
 
#define IRQN_RX_N_DATA_WRITTEN   25
 Specified number of bytes written to partial read Rx buffer. More...
 
#define IRQN_RX_ABORTED   26
 Packet reception stopped before packet was done. More...
 
#define IRQN_RX_COLLISION_DETECTED   27
 A collision was indicated during packet reception. More...
 
#define IRQN_SYNTH_NO_LOCK   28
 The synth has gone out of lock after calibration. More...
 
#define IRQN_MODULES_UNLOCKED   29
 As part of the boot process, the CM0 has opened access to RF core modules and memories. More...
 
#define IRQN_BOOT_DONE   30
 The RF core CPU boot is finished. More...
 
#define IRQN_INTERNAL_ERROR   31
 Internal error observed. More...
 
#define IRQ_COMMAND_DONE   (1U << IRQN_COMMAND_DONE)
 
#define IRQ_LAST_COMMAND_DONE   (1U << IRQN_LAST_COMMAND_DONE)
 
#define IRQ_FG_COMMAND_DONE   (1U << IRQN_FG_COMMAND_DONE)
 
#define IRQ_LAST_FG_COMMAND_DONE   (1U << IRQN_LAST_FG_COMMAND_DONE)
 
#define IRQ_TX_DONE   (1U << IRQN_TX_DONE)
 
#define IRQ_TX_ACK   (1U << IRQN_TX_ACK)
 
#define IRQ_TX_CTRL   (1U << IRQN_TX_CTRL)
 
#define IRQ_TX_CTRL_ACK   (1U << IRQN_TX_CTRL_ACK)
 
#define IRQ_TX_CTRL_ACK_ACK   (1U << IRQN_TX_CTRL_ACK_ACK)
 
#define IRQ_TX_RETRANS   (1U << IRQN_TX_RETRANS)
 
#define IRQ_TX_ENTRY_DONE   (1U << IRQN_TX_ENTRY_DONE)
 
#define IRQ_TX_BUFFER_CHANGED   (1U << IRQN_TX_BUFFER_CHANGED)
 
#define IRQ_RX_OK   (1U << IRQN_RX_OK)
 
#define IRQ_RX_NOK   (1U << IRQN_RX_NOK)
 
#define IRQ_RX_IGNORED   (1U << IRQN_RX_IGNORED)
 
#define IRQ_RX_EMPTY   (1U << IRQN_RX_EMPTY)
 
#define IRQ_RX_CTRL   (1U << IRQN_RX_CTRL)
 
#define IRQ_RX_CTRL_ACK   (1U << IRQN_RX_CTRL_ACK)
 
#define IRQ_RX_BUF_FULL   (1U << IRQN_RX_BUF_FULL)
 
#define IRQ_RX_ENTRY_DONE   (1U << IRQN_RX_ENTRY_DONE)
 
#define IRQ_RX_DATA_WRITTEN   (1U << IRQN_RX_DATA_WRITTEN)
 
#define IRQ_RX_N_DATA_WRITTEN   (1U << IRQN_RX_N_DATA_WRITTEN)
 
#define IRQ_RX_ABORTED   (1U << IRQN_RX_ABORTED)
 
#define IRQ_RX_COLLISION_DETECTED   (1U << IRQN_RX_COLLISION_DETECTED)
 
#define IRQ_SYNTH_NO_LOCK   (1U << IRQN_SYNTH_NO_LOCK)
 
#define IRQ_MODULES_UNLOCKED   (1U << IRQN_MODULES_UNLOCKED)
 
#define IRQ_BOOT_DONE   (1U << IRQN_BOOT_DONE)
 
#define IRQ_INTERNAL_ERROR   (1U << IRQN_INTERNAL_ERROR)
 
CMDSTA values

Values returned in result byte of CMDSTA

#define CMDSTA_Pending   0x00
 The command has not yet been parsed. More...
 
#define CMDSTA_Done   0x01
 Command successfully parsed. More...
 
#define CMDSTA_IllegalPointer   0x81
 The pointer signaled in CMDR is not valid. More...
 
#define CMDSTA_UnknownCommand   0x82
 The command number in the command structure is unknown. More...
 
#define CMDSTA_UnknownDirCommand   0x83
 command is not a direct command More...
 
#define CMDSTA_ContextError   0x85
 where it is not supported More...
 
#define CMDSTA_SchedulingError   0x86
 while another operation was already running in the RF core More...
 
#define CMDSTA_ParError   0x87
 on submission. More...
 
#define CMDSTA_QueueError   0x88
 not supported by the queue in its current state More...
 
#define CMDSTA_QueueBusy   0x89
 
Macros for sending direct commands

Direct command with no parameter

#define CMDR_DIR_CMD(cmdId)   (((cmdId) << 16) | 1)
 
#define CMDR_DIR_CMD_1BYTE(cmdId, par)   (((cmdId) << 16) | ((par) << 8) | 1)
 Direct command with 1-byte parameter. More...
 
#define CMDR_DIR_CMD_2BYTE(cmdId, par)   (((cmdId) << 16) | ((par) & 0xFFFC) | 1)
 Direct command with 2-byte parameter. More...
 
Definitions for trigger types
#define TRIG_NOW   0
 Triggers immediately. More...
 
#define TRIG_NEVER   1
 Never trigs. More...
 
#define TRIG_ABSTIME   2
 Trigs at an absolute time. More...
 
#define TRIG_REL_SUBMIT   3
 Trigs at a time relative to the command was submitted. More...
 
#define TRIG_REL_START   4
 Trigs at a time relative to the command started. More...
 
#define TRIG_REL_PREVSTART   5
 Trigs at a time relative to the previous command in the chain started. More...
 
#define TRIG_REL_FIRSTSTART   6
 Trigs at a time relative to the first command in the chain started. More...
 
#define TRIG_REL_PREVEND   7
 Trigs at a time relative to the previous command in the chain ended. More...
 
#define TRIG_REL_EVT1   8
 Trigs at a time relative to the context defined "Event 1". More...
 
#define TRIG_REL_EVT2   9
 Trigs at a time relative to the context defined "Event 2". More...
 
#define TRIG_EXTERNAL   10
 Trigs at an external event to the radio timer. More...
 
#define TRIG_PAST_BM   0x80
 
Definitions for conditional execution
#define COND_ALWAYS   0
 Always run next command (except in case of Abort) More...
 
#define COND_NEVER   1
 Never run next command. More...
 
#define COND_STOP_ON_FALSE   2
 False. More...
 
#define COND_STOP_ON_TRUE   3
 False. More...
 
#define COND_SKIP_ON_FALSE   4
 commands if it returned False More...
 
#define COND_SKIP_ON_TRUE   5
 
Operation not finished
#define IDLE   0x0000
 Operation not started. More...
 
#define PENDING   0x0001
 Start of command is pending. More...
 
#define ACTIVE   0x0002
 Running. More...
 
#define SKIPPED   0x0003
 
Operation finished normally
#define DONE_OK   0x0400
 Operation ended normally. More...
 
#define DONE_COUNTDOWN   0x0401
 Counter reached zero. More...
 
#define DONE_RXERR   0x0402
 Operation ended with CRC error. More...
 
#define DONE_TIMEOUT   0x0403
 Operation ended with timeout. More...
 
#define DONE_STOPPED   0x0404
 Operation stopped after CMD_STOP command. More...
 
#define DONE_ABORT   0x0405
 Operation aborted by CMD_ABORT command. More...
 
#define DONE_FAILED   0x0406
 
Operation finished with error
#define ERROR_PAST_START   0x0800
 The start trigger occurred in the past. More...
 
#define ERROR_START_TRIG   0x0801
 Illegal start trigger parameter. More...
 
#define ERROR_CONDITION   0x0802
 Illegal condition for next operation. More...
 
#define ERROR_PAR   0x0803
 Error in a command specific parameter. More...
 
#define ERROR_POINTER   0x0804
 Invalid pointer to next operation. More...
 
#define ERROR_CMDID   0x0805
 operation command More...
 
#define ERROR_WRONG_BG   0x0806
 FG level command not compatible with running BG level command. More...
 
#define ERROR_NO_SETUP   0x0807
 Operation using Rx or Tx attemted without CMD_RADIO_SETUP. More...
 
#define ERROR_NO_FS   0x0808
 Operation using Rx or Tx attemted without frequency synth configured. More...
 
#define ERROR_SYNTH_PROG   0x0809
 Synthesizer calibration failed. More...
 
#define ERROR_TXUNF   0x080A
 Tx underflow observed. More...
 
#define ERROR_RXOVF   0x080B
 Rx overflow observed. More...
 
#define ERROR_NO_RX   0x080C
 Attempted to access data from Rx when no such data was yet received. More...
 
#define ERROR_PENDING   0x080D
 
Data entry types
#define DATA_ENTRY_TYPE_GEN   0
 General type: Tx entry or single element Rx entry. More...
 
#define DATA_ENTRY_TYPE_MULTI   1
 Multi-element Rx entry type. More...
 
#define DATA_ENTRY_TYPE_PTR   2
 Pointer entry type. More...
 
#define DATA_ENTRY_TYPE_PARTIAL   3
 
Data entry statuses

@

#define DATA_ENTRY_PENDING   0
 Entry not yet used. More...
 
#define DATA_ENTRY_ACTIVE   1
 Entry in use by radio CPU. More...
 
#define DATA_ENTRY_BUSY   2
 Entry being updated. More...
 
#define DATA_ENTRY_FINISHED   3
 Radio CPU is finished accessing the entry. More...
 
#define DATA_ENTRY_UNFINISHED   4
 
Macros for RF register override

Macro for ADI half-size value-mask combination

#define ADI_VAL_MASK(addr, mask, value)
 
#define HW_REG_OVERRIDE(addr, val)   ((((uintptr_t) (addr)) & 0xFFFC) | ((uint32_t)(val) << 16))
 32-bit write of 16-bit value More...
 
#define ADI_REG_OVERRIDE(adiNo, addr, val)
 ADI register, full-size write. More...
 
#define ADI_2REG_OVERRIDE(adiNo, addr, val, addr2, val2)
 2 ADI registers, full-size write More...
 
#define ADI_HALFREG_OVERRIDE(adiNo, addr, mask, val)
 ADI register, half-size read-modify-write. More...
 
#define ADI_2HALFREG_OVERRIDE(adiNo, addr, mask, val, addr2, mask2, val2)
 2 ADI registers, half-size read-modify-write More...
 
#define SW_REG_OVERRIDE(cmd, field, val)   (3 | ((_POSITION_##cmd##_##field) << 4) | ((uint32_t)(val) << 16))
 16-bit SW register as defined in radio_par_def.txt More...
 
#define SW_REG_IND_OVERRIDE(cmd, field, offset, val)
 SW register as defined in radio_par_def.txt with added index (for use with registers > 16 bits). More...
 
#define SW_REG_BYTE_OVERRIDE(cmd, field, val)
 8-bit SW register as defined in radio_par_def.txt More...
 
#define SW_REG_2BYTE_OVERRIDE(cmd, field, val0, val1)
 Two 8-bit SW registers as defined in radio_par_def.txt; the one given by field and the next byte. More...
 
#define HW16_ARRAY_OVERRIDE(addr, length)   (1 | (((uintptr_t) (addr)) & 0xFFFC) | ((uint32_t)(length) << 16))
 
#define HW32_ARRAY_OVERRIDE(addr, length)
 
#define ADI_ARRAY_OVERRIDE(adiNo, addr, bHalfSize, length)
 
#define SW_ARRAY_OVERRIDE(cmd, firstfield, length)
 
#define MCE_RFE_OVERRIDE(bMceRam, mceRomBank, mceMode, bRfeRam, rfeRomBank, rfeMode)
 
#define NEW_OVERRIDE_SEGMENT(address)
 
#define END_OVERRIDE   0xFFFFFFFF
 End of string for override register. More...
 
#define ADI_ADDR_VAL(addr, value)   ((((addr) & 0x7F) << 8) | ((value) & 0xFF))
 ADI address-value pair. More...
 
#define ADI_ADDR_VAL_MASK(addr, mask, value)   ((((addr) & 0x7F) << 8) | ADI_VAL_MASK(addr, mask, value))
 
#define LOWORD(value)   ((value) & 0xFFFF)
 Low half-word. More...
 
#define HIWORD(value)   ((value) >> 16)
 High half-word. More...
 

Typedefs

typedef uint32_t ratmr_t
 Type definition for RAT. More...
 

Macro Definition Documentation

#define ACTIVE   0x0002

Running.

Definition at line 217 of file rf_mailbox.h.

#define ADI_2HALFREG_OVERRIDE (   adiNo,
  addr,
  mask,
  val,
  addr2,
  mask2,
  val2 
)
Value:
(2 | (ADI_VAL_MASK(addr2, mask2, val2) << 2) | (((addr2) & 0x3F) << 10) | \
(ADI_VAL_MASK(addr, mask, val) << 16) | (((addr) & 0x3F) << 24) | (1U << 30) | (((adiNo) ? 1U : 0) << 31))
#define ADI_VAL_MASK(addr, mask, value)
Definition: rf_mailbox.h:274

2 ADI registers, half-size read-modify-write

Definition at line 290 of file rf_mailbox.h.

#define ADI_2REG_OVERRIDE (   adiNo,
  addr,
  val,
  addr2,
  val2 
)
Value:
(2 | ((uint32_t)(val2) << 2) | (((addr2) & 0x3F) << 10) | ((uint32_t)(val) << 16) | \
(((addr) & 0x3F) << 24) | (((adiNo) ? 1U : 0) << 31))

2 ADI registers, full-size write

Definition at line 283 of file rf_mailbox.h.

#define ADI_ADDR_VAL (   addr,
  value 
)    ((((addr) & 0x7F) << 8) | ((value) & 0xFF))

ADI address-value pair.

Definition at line 330 of file rf_mailbox.h.

#define ADI_ADDR_VAL_MASK (   addr,
  mask,
  value 
)    ((((addr) & 0x7F) << 8) | ADI_VAL_MASK(addr, mask, value))

Definition at line 331 of file rf_mailbox.h.

#define ADI_ARRAY_OVERRIDE (   adiNo,
  addr,
  bHalfSize,
  length 
)
Value:
(1 | ((((addr) & 0x3F) << 2)) | \
((!!(bHalfSize)) << 8) | ((!!(adiNo)) << 9) | ((uint32_t)(length) << 16) | (2U << 30))

Definition at line 308 of file rf_mailbox.h.

#define ADI_HALFREG_OVERRIDE (   adiNo,
  addr,
  mask,
  val 
)
Value:
(2 | (ADI_VAL_MASK(addr, mask, val) << 16) | \
(((addr) & 0x3F) << 24) | (1U << 30) | (((adiNo) ? 1U : 0) << 31))
#define ADI_VAL_MASK(addr, mask, value)
Definition: rf_mailbox.h:274

ADI register, half-size read-modify-write.

Definition at line 287 of file rf_mailbox.h.

#define ADI_REG_OVERRIDE (   adiNo,
  addr,
  val 
)
Value:
(2 | ((uint32_t)(val) << 16) | \
(((addr) & 0x3F) << 24) | (((adiNo) ? 1U : 0) << 31))

ADI register, full-size write.

Definition at line 280 of file rf_mailbox.h.

#define ADI_VAL_MASK (   addr,
  mask,
  value 
)
Value:
(((addr) & 1) ? (((mask) & 0x0F) | (((value) & 0x0F) << 4)) : \
((((mask) & 0x0F) << 4) | ((value) & 0x0F)))

Definition at line 274 of file rf_mailbox.h.

#define CMDR_DIR_CMD (   cmdId)    (((cmdId) << 16) | 1)

Definition at line 165 of file rf_mailbox.h.

#define CMDR_DIR_CMD_1BYTE (   cmdId,
  par 
)    (((cmdId) << 16) | ((par) << 8) | 1)

Direct command with 1-byte parameter.

Definition at line 168 of file rf_mailbox.h.

#define CMDR_DIR_CMD_2BYTE (   cmdId,
  par 
)    (((cmdId) << 16) | ((par) & 0xFFFC) | 1)

Direct command with 2-byte parameter.

Definition at line 171 of file rf_mailbox.h.

#define CMDSTA_ContextError   0x85

where it is not supported

An immediate or direct command was issued in a context

Definition at line 148 of file rf_mailbox.h.

#define CMDSTA_Done   0x01

Command successfully parsed.

Definition at line 142 of file rf_mailbox.h.

#define CMDSTA_IllegalPointer   0x81

The pointer signaled in CMDR is not valid.

Definition at line 144 of file rf_mailbox.h.

#define CMDSTA_ParError   0x87

on submission.

There were errors in the command parameters that are parsed

Definition at line 152 of file rf_mailbox.h.

#define CMDSTA_Pending   0x00

The command has not yet been parsed.

Definition at line 141 of file rf_mailbox.h.

#define CMDSTA_QueueBusy   0x89

An operation on a data entry was attempted while that entry was busy

Definition at line 156 of file rf_mailbox.h.

#define CMDSTA_QueueError   0x88

not supported by the queue in its current state

An operation on a data entry queue was attempted that was

Definition at line 154 of file rf_mailbox.h.

#define CMDSTA_SchedulingError   0x86

while another operation was already running in the RF core

A radio operation command was attempted to be scheduled

Definition at line 150 of file rf_mailbox.h.

#define CMDSTA_UnknownCommand   0x82

The command number in the command structure is unknown.

Definition at line 145 of file rf_mailbox.h.

#define CMDSTA_UnknownDirCommand   0x83

command is not a direct command

The command number for a direct command is unknown, or the

Definition at line 146 of file rf_mailbox.h.

#define COND_ALWAYS   0

Always run next command (except in case of Abort)

Definition at line 197 of file rf_mailbox.h.

#define COND_NEVER   1

Never run next command.

Definition at line 198 of file rf_mailbox.h.

#define COND_SKIP_ON_FALSE   4

commands if it returned False

Run next command if this command returned True, skip a number of

Definition at line 203 of file rf_mailbox.h.

#define COND_SKIP_ON_TRUE   5

Skip a number of commands if this command returned True, run next command if it returned False

Definition at line 205 of file rf_mailbox.h.

#define COND_STOP_ON_FALSE   2

False.

Run next command if this command returned True, stop if it returned

Definition at line 199 of file rf_mailbox.h.

#define COND_STOP_ON_TRUE   3

False.

Stop if this command returned True, run next command if it returned

Definition at line 201 of file rf_mailbox.h.

#define DATA_ENTRY_ACTIVE   1

Entry in use by radio CPU.

Definition at line 263 of file rf_mailbox.h.

#define DATA_ENTRY_BUSY   2

Entry being updated.

Definition at line 264 of file rf_mailbox.h.

#define DATA_ENTRY_FINISHED   3

Radio CPU is finished accessing the entry.

Definition at line 265 of file rf_mailbox.h.

#define DATA_ENTRY_PENDING   0

Entry not yet used.

Definition at line 262 of file rf_mailbox.h.

#define DATA_ENTRY_TYPE_GEN   0

General type: Tx entry or single element Rx entry.

Definition at line 253 of file rf_mailbox.h.

#define DATA_ENTRY_TYPE_MULTI   1

Multi-element Rx entry type.

Definition at line 254 of file rf_mailbox.h.

#define DATA_ENTRY_TYPE_PARTIAL   3

Partial read entry type

Definition at line 256 of file rf_mailbox.h.

#define DATA_ENTRY_TYPE_PTR   2

Pointer entry type.

Definition at line 255 of file rf_mailbox.h.

#define DATA_ENTRY_UNFINISHED   4

Radio CPU is finished accessing the entry, but packet could not be finished

Definition at line 266 of file rf_mailbox.h.

#define DONE_ABORT   0x0405

Operation aborted by CMD_ABORT command.

Definition at line 227 of file rf_mailbox.h.

#define DONE_COUNTDOWN   0x0401

Counter reached zero.

Definition at line 223 of file rf_mailbox.h.

#define DONE_FAILED   0x0406

Scheduled immediate command failed

Definition at line 228 of file rf_mailbox.h.

#define DONE_OK   0x0400

Operation ended normally.

Definition at line 222 of file rf_mailbox.h.

#define DONE_RXERR   0x0402

Operation ended with CRC error.

Definition at line 224 of file rf_mailbox.h.

#define DONE_STOPPED   0x0404

Operation stopped after CMD_STOP command.

Definition at line 226 of file rf_mailbox.h.

#define DONE_TIMEOUT   0x0403

Operation ended with timeout.

Definition at line 225 of file rf_mailbox.h.

#define END_OVERRIDE   0xFFFFFFFF

End of string for override register.

Definition at line 326 of file rf_mailbox.h.

#define ERROR_CMDID   0x0805

operation command

Next operation has a command ID that is undefined or not a radio

Definition at line 237 of file rf_mailbox.h.

#define ERROR_CONDITION   0x0802

Illegal condition for next operation.

Definition at line 234 of file rf_mailbox.h.

#define ERROR_NO_FS   0x0808

Operation using Rx or Tx attemted without frequency synth configured.

Definition at line 241 of file rf_mailbox.h.

#define ERROR_NO_RX   0x080C

Attempted to access data from Rx when no such data was yet received.

Definition at line 245 of file rf_mailbox.h.

#define ERROR_NO_SETUP   0x0807

Operation using Rx or Tx attemted without CMD_RADIO_SETUP.

Definition at line 240 of file rf_mailbox.h.

#define ERROR_PAR   0x0803

Error in a command specific parameter.

Definition at line 235 of file rf_mailbox.h.

#define ERROR_PAST_START   0x0800

The start trigger occurred in the past.

Definition at line 232 of file rf_mailbox.h.

#define ERROR_PENDING   0x080D

Command submitted in the future with another command at different level pending

Definition at line 246 of file rf_mailbox.h.

#define ERROR_POINTER   0x0804

Invalid pointer to next operation.

Definition at line 236 of file rf_mailbox.h.

#define ERROR_RXOVF   0x080B

Rx overflow observed.

Definition at line 244 of file rf_mailbox.h.

#define ERROR_START_TRIG   0x0801

Illegal start trigger parameter.

Definition at line 233 of file rf_mailbox.h.

#define ERROR_SYNTH_PROG   0x0809

Synthesizer calibration failed.

Definition at line 242 of file rf_mailbox.h.

#define ERROR_TXUNF   0x080A

Tx underflow observed.

Definition at line 243 of file rf_mailbox.h.

#define ERROR_WRONG_BG   0x0806

FG level command not compatible with running BG level command.

Definition at line 239 of file rf_mailbox.h.

#define HIWORD (   value)    ((value) >> 16)

High half-word.

Definition at line 336 of file rf_mailbox.h.

#define HW16_ARRAY_OVERRIDE (   addr,
  length 
)    (1 | (((uintptr_t) (addr)) & 0xFFFC) | ((uint32_t)(length) << 16))

Definition at line 305 of file rf_mailbox.h.

#define HW32_ARRAY_OVERRIDE (   addr,
  length 
)
Value:
(1 | (((uintptr_t) (addr)) & 0xFFFC) | \
((uint32_t)(length) << 16) | (1U << 30))

Definition at line 306 of file rf_mailbox.h.

#define HW_REG_OVERRIDE (   addr,
  val 
)    ((((uintptr_t) (addr)) & 0xFFFC) | ((uint32_t)(val) << 16))

32-bit write of 16-bit value

Definition at line 278 of file rf_mailbox.h.

#define IDLE   0x0000

Operation not started.

Definition at line 215 of file rf_mailbox.h.

#define IRQ_BOOT_DONE   (1U << IRQN_BOOT_DONE)

Definition at line 132 of file rf_mailbox.h.

#define IRQ_COMMAND_DONE   (1U << IRQN_COMMAND_DONE)

Definition at line 103 of file rf_mailbox.h.

#define IRQ_FG_COMMAND_DONE   (1U << IRQN_FG_COMMAND_DONE)

Definition at line 105 of file rf_mailbox.h.

#define IRQ_INTERNAL_ERROR   (1U << IRQN_INTERNAL_ERROR)

Definition at line 133 of file rf_mailbox.h.

#define IRQ_LAST_COMMAND_DONE   (1U << IRQN_LAST_COMMAND_DONE)

Definition at line 104 of file rf_mailbox.h.

#define IRQ_LAST_FG_COMMAND_DONE   (1U << IRQN_LAST_FG_COMMAND_DONE)

Definition at line 106 of file rf_mailbox.h.

#define IRQ_MODULES_UNLOCKED   (1U << IRQN_MODULES_UNLOCKED)

Definition at line 131 of file rf_mailbox.h.

#define IRQ_RX_ABORTED   (1U << IRQN_RX_ABORTED)

Definition at line 128 of file rf_mailbox.h.

#define IRQ_RX_BUF_FULL   (1U << IRQN_RX_BUF_FULL)

Definition at line 124 of file rf_mailbox.h.

#define IRQ_RX_COLLISION_DETECTED   (1U << IRQN_RX_COLLISION_DETECTED)

Definition at line 129 of file rf_mailbox.h.

#define IRQ_RX_CTRL   (1U << IRQN_RX_CTRL)

Definition at line 122 of file rf_mailbox.h.

#define IRQ_RX_CTRL_ACK   (1U << IRQN_RX_CTRL_ACK)

Definition at line 123 of file rf_mailbox.h.

#define IRQ_RX_DATA_WRITTEN   (1U << IRQN_RX_DATA_WRITTEN)

Definition at line 126 of file rf_mailbox.h.

#define IRQ_RX_EMPTY   (1U << IRQN_RX_EMPTY)

Definition at line 121 of file rf_mailbox.h.

#define IRQ_RX_ENTRY_DONE   (1U << IRQN_RX_ENTRY_DONE)

Definition at line 125 of file rf_mailbox.h.

#define IRQ_RX_IGNORED   (1U << IRQN_RX_IGNORED)

Definition at line 120 of file rf_mailbox.h.

#define IRQ_RX_N_DATA_WRITTEN   (1U << IRQN_RX_N_DATA_WRITTEN)

Definition at line 127 of file rf_mailbox.h.

#define IRQ_RX_NOK   (1U << IRQN_RX_NOK)

Definition at line 119 of file rf_mailbox.h.

#define IRQ_RX_OK   (1U << IRQN_RX_OK)

Definition at line 118 of file rf_mailbox.h.

#define IRQ_SYNTH_NO_LOCK   (1U << IRQN_SYNTH_NO_LOCK)

Definition at line 130 of file rf_mailbox.h.

#define IRQ_TX_ACK   (1U << IRQN_TX_ACK)

Definition at line 109 of file rf_mailbox.h.

#define IRQ_TX_BUFFER_CHANGED   (1U << IRQN_TX_BUFFER_CHANGED)

Definition at line 116 of file rf_mailbox.h.

#define IRQ_TX_CTRL   (1U << IRQN_TX_CTRL)

Definition at line 110 of file rf_mailbox.h.

#define IRQ_TX_CTRL_ACK   (1U << IRQN_TX_CTRL_ACK)

Definition at line 111 of file rf_mailbox.h.

#define IRQ_TX_CTRL_ACK_ACK   (1U << IRQN_TX_CTRL_ACK_ACK)

Definition at line 112 of file rf_mailbox.h.

#define IRQ_TX_DONE   (1U << IRQN_TX_DONE)

Definition at line 108 of file rf_mailbox.h.

#define IRQ_TX_ENTRY_DONE   (1U << IRQN_TX_ENTRY_DONE)

Definition at line 115 of file rf_mailbox.h.

#define IRQ_TX_RETRANS   (1U << IRQN_TX_RETRANS)

Definition at line 113 of file rf_mailbox.h.

#define IRQN_BOOT_DONE   30

The RF core CPU boot is finished.

Definition at line 99 of file rf_mailbox.h.

#define IRQN_COMMAND_DONE   0

Radio operation command finished.

Definition at line 73 of file rf_mailbox.h.

#define IRQN_FG_COMMAND_DONE   2

FG level Radio operation command finished.

Definition at line 75 of file rf_mailbox.h.

#define IRQN_INTERNAL_ERROR   31

Internal error observed.

Definition at line 101 of file rf_mailbox.h.

#define IRQN_LAST_COMMAND_DONE   1

Last radio operation command in a chain finished.

Definition at line 74 of file rf_mailbox.h.

#define IRQN_LAST_FG_COMMAND_DONE   3

Last FG level radio operation command in a chain finished.

Definition at line 76 of file rf_mailbox.h.

#define IRQN_MODULES_UNLOCKED   29

As part of the boot process, the CM0 has opened access to RF core modules and memories.

Definition at line 98 of file rf_mailbox.h.

#define IRQN_RX_ABORTED   26

Packet reception stopped before packet was done.

Definition at line 95 of file rf_mailbox.h.

#define IRQN_RX_BUF_FULL   22

Packet received that did not fit in the Rx queue.

Definition at line 91 of file rf_mailbox.h.

#define IRQN_RX_COLLISION_DETECTED   27

A collision was indicated during packet reception.

Definition at line 96 of file rf_mailbox.h.

#define IRQN_RX_CTRL   20

Control packet received with CRC OK, not to be ignored.

Definition at line 89 of file rf_mailbox.h.

#define IRQN_RX_CTRL_ACK   21

Control packet received with CRC OK, not to be ignored, then ACK sent.

Definition at line 90 of file rf_mailbox.h.

#define IRQN_RX_DATA_WRITTEN   24

Data written to partial read Rx buffer.

Definition at line 93 of file rf_mailbox.h.

#define IRQN_RX_EMPTY   19

Packet received with CRC OK, not to be ignored, no payload.

Definition at line 88 of file rf_mailbox.h.

#define IRQN_RX_ENTRY_DONE   23

Rx queue data entry changing state to Finished.

Definition at line 92 of file rf_mailbox.h.

#define IRQN_RX_IGNORED   18

Packet received with CRC OK, but to be ignored.

Definition at line 87 of file rf_mailbox.h.

#define IRQN_RX_N_DATA_WRITTEN   25

Specified number of bytes written to partial read Rx buffer.

Definition at line 94 of file rf_mailbox.h.

#define IRQN_RX_NOK   17

Packet received with CRC error.

Definition at line 86 of file rf_mailbox.h.

#define IRQN_RX_OK   16

Packet received with CRC OK, payload, and not to be ignored.

Definition at line 85 of file rf_mailbox.h.

#define IRQN_SYNTH_NO_LOCK   28

The synth has gone out of lock after calibration.

Definition at line 97 of file rf_mailbox.h.

#define IRQN_TX_ACK   5

ACK packet transmitted.

Definition at line 78 of file rf_mailbox.h.

#define IRQN_TX_BUFFER_CHANGED   11

A buffer change is complete.

Definition at line 84 of file rf_mailbox.h.

#define IRQN_TX_CTRL   6

Control packet transmitted.

Definition at line 79 of file rf_mailbox.h.

#define IRQN_TX_CTRL_ACK   7

Acknowledgement received on a transmitted control packet.

Definition at line 80 of file rf_mailbox.h.

#define IRQN_TX_CTRL_ACK_ACK   8

Acknowledgement received on a transmitted control packet, and acknowledgement transmitted for that packet.

Definition at line 81 of file rf_mailbox.h.

#define IRQN_TX_DONE   4

Packet transmitted.

Definition at line 77 of file rf_mailbox.h.

#define IRQN_TX_ENTRY_DONE   10

Tx queue data entry state changed to Finished.

Definition at line 83 of file rf_mailbox.h.

#define IRQN_TX_RETRANS   9

Packet retransmitted.

Definition at line 82 of file rf_mailbox.h.

#define LOWORD (   value)    ((value) & 0xFFFF)

Low half-word.

Definition at line 334 of file rf_mailbox.h.

#define MCE_RFE_OVERRIDE (   bMceRam,
  mceRomBank,
  mceMode,
  bRfeRam,
  rfeRomBank,
  rfeMode 
)
Value:
(7 | ((!!(bMceRam)) << 8) | (((mceRomBank) & 0x07) << 9) | ((!!(bRfeRam)) << 12) | (((rfeRomBank) & 0x07) << 13) | \
(((mceMode) & 0x00FF) << 16) | (((rfeMode) & 0x00FF) << 24))

Definition at line 312 of file rf_mailbox.h.

#define NEW_OVERRIDE_SEGMENT (   address)
Value:
(((((uintptr_t)(address)) & 0x03FFFFFC) << 6) | 0x000F | \
(((((uintptr_t)(address) >> 24) == 0x20) ? 0x01 : \
(((uintptr_t)(address) >> 24) == 0x21) ? 0x02 : \
(((uintptr_t)(address) >> 24) == 0xA0) ? 0x03 : \
(((uintptr_t)(address) >> 24) == 0x00) ? 0x04 : \
(((uintptr_t)(address) >> 24) == 0x10) ? 0x05 : \
(((uintptr_t)(address) >> 24) == 0x11) ? 0x06 : \
(((uintptr_t)(address) >> 24) == 0x40) ? 0x07 : \
(((uintptr_t)(address) >> 24) == 0x50) ? 0x08 : \
0x09) << 4))

Definition at line 315 of file rf_mailbox.h.

#define PENDING   0x0001

Start of command is pending.

Definition at line 216 of file rf_mailbox.h.

#define RF_MODE_BLE   0x01

Definition at line 49 of file rf_mailbox.h.

#define RF_MODE_IEEE_15_4   0x02

Definition at line 50 of file rf_mailbox.h.

#define RF_MODE_MULTIPLE   0x05

Definition at line 53 of file rf_mailbox.h.

#define RF_MODE_PROPRIETARY   RF_MODE_PROPRIETARY_2_4

Definition at line 52 of file rf_mailbox.h.

#define RF_MODE_PROPRIETARY_2_4   0x03

Definition at line 51 of file rf_mailbox.h.

#define SKIPPED   0x0003

Operation skipped due to condition in another command

Definition at line 218 of file rf_mailbox.h.

#define SW_ARRAY_OVERRIDE (   cmd,
  firstfield,
  length 
)
Value:
(1 | (((_POSITION_##cmd##_##firstfield)) << 2) | \
((uint32_t)(length) << 16) | (3U << 30))

Definition at line 310 of file rf_mailbox.h.

#define SW_REG_2BYTE_OVERRIDE (   cmd,
  field,
  val0,
  val1 
)
Value:
(3 | (((_POSITION_##cmd##_##field) & 0xFFFE) << 4) | \
(((uint32_t)(val0) << 16) & 0x00FF0000) | ((uint32_t)(val1) << 24))

Two 8-bit SW registers as defined in radio_par_def.txt; the one given by field and the next byte.

Definition at line 303 of file rf_mailbox.h.

#define SW_REG_BYTE_OVERRIDE (   cmd,
  field,
  val 
)
Value:
(0x8003 | ((_POSITION_##cmd##_##field) << 4) | \
((uint32_t)(val) << 16))

8-bit SW register as defined in radio_par_def.txt

Definition at line 300 of file rf_mailbox.h.

#define SW_REG_IND_OVERRIDE (   cmd,
  field,
  offset,
  val 
)
Value:
(3 | \
(((_POSITION_##cmd##_##field) + ((offset) << 1)) << 4) | ((uint32_t)(val) << 16))

SW register as defined in radio_par_def.txt with added index (for use with registers > 16 bits).

Definition at line 297 of file rf_mailbox.h.

#define SW_REG_OVERRIDE (   cmd,
  field,
  val 
)    (3 | ((_POSITION_##cmd##_##field) << 4) | ((uint32_t)(val) << 16))

16-bit SW register as defined in radio_par_def.txt

Definition at line 295 of file rf_mailbox.h.

#define TRIG_ABSTIME   2

Trigs at an absolute time.

Definition at line 181 of file rf_mailbox.h.

#define TRIG_EXTERNAL   10

Trigs at an external event to the radio timer.

Definition at line 189 of file rf_mailbox.h.

#define TRIG_NEVER   1

Never trigs.

Definition at line 180 of file rf_mailbox.h.

#define TRIG_NOW   0

Triggers immediately.

Definition at line 179 of file rf_mailbox.h.

#define TRIG_PAST_BM   0x80

Bitmask for setting pastTrig bit in order to trig immediately if trigger happened in the past

Definition at line 190 of file rf_mailbox.h.

#define TRIG_REL_EVT1   8

Trigs at a time relative to the context defined "Event 1".

Definition at line 187 of file rf_mailbox.h.

#define TRIG_REL_EVT2   9

Trigs at a time relative to the context defined "Event 2".

Definition at line 188 of file rf_mailbox.h.

#define TRIG_REL_FIRSTSTART   6

Trigs at a time relative to the first command in the chain started.

Definition at line 185 of file rf_mailbox.h.

#define TRIG_REL_PREVEND   7

Trigs at a time relative to the previous command in the chain ended.

Definition at line 186 of file rf_mailbox.h.

#define TRIG_REL_PREVSTART   5

Trigs at a time relative to the previous command in the chain started.

Definition at line 184 of file rf_mailbox.h.

#define TRIG_REL_START   4

Trigs at a time relative to the command started.

Definition at line 183 of file rf_mailbox.h.

#define TRIG_REL_SUBMIT   3

Trigs at a time relative to the command was submitted.

Definition at line 182 of file rf_mailbox.h.

Typedef Documentation

typedef uint32_t ratmr_t

Type definition for RAT.

Definition at line 58 of file rf_mailbox.h.