VPR — RISC-V CPU

VPR is a small, efficient CPU developed by Nordic Semiconductor.

The VPR implementation is the Fast Lightweight Peripheral Processor (FLPR), optimized to implement coprocessor functions, and operating at the same frequency as the application processor.

VPR is compatible with the RISC-V instruction set and implements the following extensions:

VPR implements the machine mode CPU mode as well as the RISC-V CLIC specification for the interrupt controller.

VPR does not start on its own, but must be started by the application core processor by performing the following steps:
  1. Configure VPR program counter (PC) to point to the peripheral binary image by using register INITPC.
  2. Start VPR by using register CPURUN.

Registers

Instances

InstanceDomainBase addressTrustZoneSplit accessDescription
MapAttDMA

VPR00 : S
VPR00 : NS

GLOBAL

0x5004C000
0x4004C000

USNSNSANo

FLPR - VPR peripheral registers

Configuration

InstanceDomainConfiguration

VPR00 : S
VPR00 : NS

GLOBAL

VEVIF indexes 16 through 19 maps onto DPPI channels 0 through 4

Supports RV32E (Base Integer Instruction Set embedded)

Supports M extension (Integer Multiplication and Division)

Supports C extension (compressed instructions)

Supports Zba extension (Bit Manipulation - Address generation instructions)

Supports Zbb extension (Bit Manipulation - Basic bit manipulation)

Supports Zbc extension (Bit Manipulation - Carry-less multiplication)

Supports Zbs extension (Bit Manipulation - Single bit instructions)

Supports Zcb extension (code-size saving instructions)

Does not support FENCE.I instruction (use FENCE instruction instead)

Supports CSR (Control and Status Register) instructions

Does not support CNTR (base counter) instructions

Supports M-mode CLIC (interrupt controller)

Supports MCLICCFG register

Supports external debugger

Debugger supports triggers (breakpoints)

Boot vector (INIT_PC_RESET_VALUE): 0x00000000

Self-booting (VPR_START_RESET_VALUE): 0

VPR RAM base address (RAM_BASE_ADDR): 0x20000000

VPR RAM size (RAM_SZ): 20 (Value in bytes is computed as 2^(RAM size))

Retain registers in Deep Sleep mode: 0

Restore VPR context at VPR reset using register [NRF_MEMCONF->POWER1.RET].MEM[0]

VPR context save address: 0x2003FE00

VPR context save size: 512 bytes

VPR remap address: 0x00000000

VEVIF tasks: 16..22

Mask of supported VEVIF tasks: 0x007F0000

VEVIF DPPI indices: 16..19

Mask of supported VEVIF DPPI channels: 0x000F0000

VEVIF events: 16..22

Mask of supported VEVIF events: 0x00100000

Debugger interface register offset: 0x5004C400

Register overview

RegisterOffsetTZDescription
TASKS_TRIGGER[n]0x000

VPR task [n] register

SUBSCRIBE_TRIGGER[n]0x080

Subscribe configuration for task TASKS_TRIGGER[n]

EVENTS_TRIGGERED[n]0x100

VPR event [n] register

PUBLISH_TRIGGERED[n]0x180

Publish configuration for event EVENTS_TRIGGERED[n]

INTEN0x300

Enable or disable interrupt

INTENSET0x304

Enable interrupt

INTENCLR0x308

Disable interrupt

INTPEND0x30C

Pending interrupts

DEBUGIF.DATA00x410

Abstract Data 0. Read/write data for argument 0

DEBUGIF.DATA10x414

Abstract Data 1. Read/write data for argument 1

DEBUGIF.DMCONTROL0x440

Debug Module Control

DEBUGIF.DMSTATUS0x444

Debug Module Status

DEBUGIF.HARTINFO0x448

Hart Information

DEBUGIF.HALTSUM10x44C

Halt Summary 1

DEBUGIF.HAWINDOWSEL0x450

Hart Array Window Select

DEBUGIF.HAWINDOW0x454

Hart Array Window

DEBUGIF.ABSTRACTCS0x458

Abstract Control and Status

DEBUGIF.ABSTRACTCMD0x45C

Abstract command

DEBUGIF.ABSTRACTAUTO0x460

Abstract Command Autoexec

DEBUGIF.CONFSTRPTR[n]0x464

Configuration String Pointer [n]

DEBUGIF.NEXTDM0x474

Next Debug Module

DEBUGIF.PROGBUF[n]0x480

Program Buffer [n]

DEBUGIF.AUTHDATA0x4C0

Authentication Data

DEBUGIF.HALTSUM20x4D0

Halt Summary 2

DEBUGIF.HALTSUM30x4D4

Halt Summary 3

DEBUGIF.SBADDRESS30x4DC

System Bus Addres 127:96

DEBUGIF.SBCS0x4E0

System Bus Access Control and Status

DEBUGIF.SBADDRESS00x4E4

System Bus Addres 31:0

DEBUGIF.SBADDRESS10x4E8

System Bus Addres 63:32

DEBUGIF.SBADDRESS20x4EC

System Bus Addres 95:64

DEBUGIF.SBDATA00x4F0

System Bus Data 31:0

DEBUGIF.SBDATA10x4F4

System Bus Data 63:32

DEBUGIF.SBDATA20x4F8

System Bus Data 95:64

DEBUGIF.SBDATA30x4FC

System Bus Data 127:96

DEBUGIF.HALTSUM00x500

Halt summary 0

CPURUN0x800

State of the CPU after a core reset

INITPC0x808

Initial value of the PC at CPU start.

TASKS_TRIGGER[n]

Address offset: 0x000 + (n × 0x4)

VPR task [n] register

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_TRIGGER

VPR task [n] register

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Trigger

1

Trigger task

SUBSCRIBE_TRIGGER[n]

Address offset: 0x080 + (n × 0x4)

Subscribe configuration for task TASKS_TRIGGER[n]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EN

Subscription enable bit

Its value depends on OR between bit 31 and bit 0 of previously written value

Disabled

0x0

Disable subscription

Enabled

0x1

Enable subscription

EVENTS_TRIGGERED[n]

Address offset: 0x100 + (n × 0x4)

VPR event [n] register

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_TRIGGERED

VPR event [n] register

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

NotGenerated

0

Event not generated

Generated

1

Event generated

PUBLISH_TRIGGERED[n]

Address offset: 0x180 + (n × 0x4)

Publish configuration for event EVENTS_TRIGGERED[n]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EN

Publication enable bit

Its value depends on OR between bit 31 and bit 0 of previously written value

Disabled

0x0

Disable publishing

Enabled

0x1

Enable publishing

INTEN

Address offset: 0x300

Enable or disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

RW

TRIGGERED[i] (i=16..22)

Enable or disable interrupt for event TRIGGERED[i]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Disabled

0

Disable

Enabled

1

Enable

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

RW
W1S

TRIGGERED[i] (i=16..22)

Write '1' to enable interrupt for event TRIGGERED[i]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

RW
W1C

TRIGGERED[i] (i=16..22)

Write '1' to disable interrupt for event TRIGGERED[i]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

INTPEND

Address offset: 0x30C

Pending interrupts

Bit number313029282726252423222120191817161514131211109876543210
IDGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

R

TRIGGERED[i] (i=16..22)

Read pending status of interrupt for event TRIGGERED[i]

If RTPs are not enabled: writes to registers 15..0 are ignored, other read/write accesses operate normally

If RTPs are enabled: reads or writes to these registers will be stalled if there is a simultaneous VPR CSR write access

to any CSR register.

NotPending

0

Read: Not pending

Pending

1

Read: Pending

DEBUGIF.DATA0

Address offset: 0x410

Abstract Data 0. Read/write data for argument 0

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA0

Abstract Data 0

DEBUGIF.DATA1

Address offset: 0x414

Abstract Data 1. Read/write data for argument 1

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA1

Abstract Data 1

DEBUGIF.DMCONTROL

Address offset: 0x440

Debug Module Control

Bit number313029282726252423222120191817161514131211109876543210
IDKJIHGFFFFFFFFFFEEEEEEEEEEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DMACTIVE

Reset signal for the debug module.

Disabled

0

Reset the debug module itself

Enabled

1

Normal operation

B

RW

NDMRESET

Reset signal output from the debug module to the system.

Inactive

0

Reset inactive

Active

1

Reset active

C

W

CLRRESETHALTREQ

Clear the halt on reset request.

NoOperation

0

No operation when written 0.

Clear

1

Clears the halt on reset request

D

W

SETRESETHALTREQ

Set the halt on reset request.

NoOperation

0

No operation when written 0.

Clear

1

Sets the halt on reset request

E

W

HARTSELHI

The high 10 bits of hartsel.

F

W

HARTSELLO

The low 10 bits of hartsel.

G

W

HASEL

Definition of currently selected harts.

Single

0

Single hart selected.

Multiple

1

Multiple harts selected

H

W

ACKHAVERESET

Clear the havereset.

NoOperation

0

No operation when written 0.

Clear

1

Clears the havereset for selected harts.

I

RW

HARTRESET

Reset harts.

Deasserted

0

Reset de-asserted.

Asserted

1

Reset asserted.

J

W

RESUMEREQ

Resume currently selected harts.

NoOperation

0

No operation when written 0.

Resumed

1

Currently selected harts resumed.

K

W

HALTREQ

Halt currently selected harts.

Clear

0

Clears halt request bit for all currently selected harts.

Halt

1

Currently selected harts halted.

DEBUGIF.DMSTATUS

Address offset: 0x444

Debug Module Status

Bit number313029282726252423222120191817161514131211109876543210
IDRQPONMLKJIHGFEDCBAAAA
Reset 0x0040008200000000010000000000000010000010
IDR/WFieldValue IDValueDescription
A

R

VERSION

Version of the debug module.

NotPresent

0

Debug module not present.

V011

1

There is a Debug Module and it conforms to version 0.11 of this specifcation.

V013

2

There is a Debug Module and it conforms to version 0.13 of this specifcation.

NonConform

15

There is a Debug Module but it does not conform to any available version of the spec.

B

R

CONFSTRPTRVALID

Configuration string.

NotRelevant

0

The confstrptr0..confstrptr3 holds information which is not relevant to the configuration string.

Address

1

The confstrptr0..confstrptr3 holds the address of the configuration string.

C

R

HASRESETHALTREQ

Halt-on-reset support status.

No

0

Halt-on-reset is supported.

Yes

1

Halt-on-reset is not supported.

D

R

AUTHBUSY

Authentication busy status.

No

0

The authentication module is ready.

Yes

1

The authentication module is busy.

E

R

AUTHENTICATED

Authentication status.

No

0

Authentication required before using the debug module.

Yes

1

Authentication passed.

F

R

ANYHALTED

Any currently selected harts halted status.

No

0

None of the currently selected harts halted.

Yes

1

Any of the currently selected harts halted.

G

R

ALLHALTED

All currently selected harts halted status.

No

0

Not all of the currently selected harts halted.

Yes

1

All of the currently selected harts halted.

H

R

ANYRUNNING

Any currently selected harts running status.

No

0

None of the currently selected harts running.

Yes

1

Any of the currently selected harts running.

I

R

ALLRUNNING

All currently selected harts running status.

No

0

Not all of the currently selected harts running.

Yes

1

All of the currently selected harts running.

J

R

ANYUNAVAIL

Any currently selected harts unavailable status.

No

0

None of the currently selected harts unavailable.

Yes

1

Any of the currently selected harts unavailable.

K

R

ALLUNAVAIL

All currently selected harts unavailable status.

No

0

Not all of the currently selected harts unavailable.

Yes

1

All of the currently selected harts unavailable.

L

R

ANYNONEXISTENT

Any currently selected harts nonexistent status.

No

0

None of the currently selected harts nonexistent.

Yes

1

Any of the currently selected harts nonexistent.

M

R

ALLNONEXISTENT

All currently selected harts nonexistent status.

No

0

Not all of the currently selected harts nonexistent.

Yes

1

All of the currently selected harts nonexistent.

N

R

ANYRESUMEACK

Any currently selected harts acknowledged last resume request.

No

0

None of the currently selected harts acknowledged last resume request.

Yes

1

Any of the currently selected harts acknowledged last resume request.

O

R

ALLRESUMEACK

All currently selected harts acknowledged last resume

No

0

Not all of the currently selected harts acknowledged last resume request.

Yes

1

All of the currently selected harts acknowledged last resume request.

P

R

ANYHAVERESET

Any currently selected harts have been reset and reset is not acknowledged.

No

0

None of the currently selected harts have been reset and reset is not acknowledget.

Yes

1

Any of the currently selected harts have been reset and reset is not acknowledge.

Q

R

ALLHAVERESET

All currently selected harts have been reset and reset is not acknowledge

No

0

Not all of the currently selected harts have been reset and reset is not acknowledge.

Yes

1

All of the currently selected harts have been reset and reset is not acknowledge.

R

R

IMPEBREAK

Implicit ebreak instruction at the non-existent word immediately after the Program Buffer.

No

0

No implicit ebreak instruction.

Yes

1

Implicit ebreak instruction.

DEBUGIF.HARTINFO

Address offset: 0x448

Hart Information

This register gives information about the hart currently selected by hartsel. This register is optional. If it is not present it should read all-zero. If this register is included, the debugger can do more with the Program Buffer by writing programs which explicitly access the data and/or dscratch registers

Bit number313029282726252423222120191817161514131211109876543210
IDDDDDCBBBBAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATAADDR

-2048 .. 2047

Data Address

If dataaccess is 0: The number of the first CSR dedicated to shadowing the data registers. If dataaccess is 1: Address of RAM where the data registers are shadowed. This address is sign extended and easily addressed with a load or store using x0 as the address register.

B

R

DATASIZE

0 .. 12

Data Size

If dataaccess is 0: Number of CSRs dedicated to shadowing the data registers. If dataaccess is 1: Number of 32-bit words in the memory map dedicated to shadowing the data registers. Since there are at most 12 data registers, the value in this register must be 12 or smaller

C

R

DATAACCESS

Data Access

No

0

The data registers are shadowed in the hart by CSRs. Each CSR is DXLEN bits in size, and corresponds to a single argument.

Yes

1

The data registers are shadowed in the hart’s memory map. Each register takes up 4 bytes in the memory map.

D

R

NSCRATCH

Number of dscratch registers

Number of dscratch registers available for the debugger to use during program buffer execution, starting from dscratch0. The debugger can make no assumptions about the contents of these registers between commands.

DEBUGIF.HALTSUM1

Address offset: 0x44C

Halt Summary 1

Each bit in this read-only register indicates whether any of a group of harts is halted or not. Unavailable/nonexistent harts are not considered to be halted. This register might not be present if fewer than 33 harts are connected to this DM. The LSB reflects the halt status of harts hartsel[19:10] 0x0 through 0x1f. The MSB reflects the halt status of harts hartsel[19:10] 0x3e0 through 0x3ff.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

HALTSUM1

Halt Summary 1

DEBUGIF.HAWINDOWSEL

Address offset: 0x450

Hart Array Window Select

This register selects which of the 32-bit portion of the hart array mask register is accessible in hawindow

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

HAWINDOWSEL

The high bits of this field may be tied to 0, depending on how large the array mask register is. E.g. on a system with 48 harts only bit 0 of this field may actually be writable.

DEBUGIF.HAWINDOW

Address offset: 0x454

Hart Array Window

This register provides R/W access to a 32-bit portion of the hart array mask register. The position of the window is determined by hawindowsel. I.e. bit 0 refers to hart hawindowsel x 32, while bit 31 refers to hart hawindowsel x 32 + 31. Since some bits in the hart array mask register may be constant 0, some bits in this register may be constant 0, depending on the current value of hawindowsel.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MASKDATA

Mask data.

DEBUGIF.ABSTRACTCS

Address offset: 0x458

Abstract Control and Status

Bit number313029282726252423222120191817161514131211109876543210
IDDDDDDCBBBAAAA
Reset 0x0100000200000001000000000000000000000010
IDR/WFieldValue IDValueDescription
A

R

DATACOUNT

Number of data registers that are implemented as part of the abstract command interface. Valid sizes are 1..12.

B

RW

CMDERR

Command error when the abstract command fails.

NoError

0

No error.

Busy

1

An abstract command was executing while command, abstractcs, or abstractauto was written, or when one of the data or progbuf registers was read or written. This status is only written if cmderr contains 0

NotSupported

2

The requested command is notsupported, regardless of whether the hart is running or not.

Exception

3

An exception occurred while executing the command (e.g. while executing theProgram Buffer).

HaltResume

4

The abstract command couldn't execute because the hart wasn't in the required state (running/halted). or unavailable.

Bus

5

The abstract command failed due to abus error (e.g. alignment, access size, or timeout).

Other

7

The command failed for another reason.

C

R

BUSY

Abstract command execution status.

NotBusy

0

Not busy.

Busy

1

An abstract command is currently being executed. This bit is set as soon as command is written, and is not cleared until that command has completed.

D

R

PROGBUFSIZE

Size of the Program Buffer, in 32-bit words. Valid sizes are 0 - 1.

DEBUGIF.ABSTRACTCMD

Address offset: 0x45C

Abstract command

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

CONTROL

This Field is interpreted in a command specific manner, described for each abstract command.

B

W

CMDTYPE

The type determines the overall functionality of this abstract command.

REGACCESS

0

Register Access Command

QUICKACCESS

1

Quick Access Command

MEMACCESS

2

Memory Access Command

DEBUGIF.ABSTRACTAUTO

Address offset: 0x460

Abstract Command Autoexec

This register is optional. Including it allows more efficient burst accesses. A debugger can detect whether it is support by setting bits and reading them back. Writing this register while an abstract command is executing causes cmderr to become 1 (busy) once the command completes (busy becomes 0).

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

AUTOEXECDATA

When a bit in this field is 1, read or write accesses to the corresponding data word cause the command in command to be executed again.

B

R

AUTOEXECPROGBUF

When a bit in this field is 1, read or write accesses to the corresponding progbuf word cause the command in command to be executed again.

DEBUGIF.CONFSTRPTR[n]

Address offset: 0x464 + (n × 0x4)

Configuration String Pointer [n]

When confstrptrvalid is set, reading this register returns bits 31:0 of the configuration string pointer. Reading the other confstrptr registers returns the upper bits of the address. When system bus mastering is implemented, this must be an address that can be used with the System Bus Access module. Otherwise, this must be an address that can be used to access the configuration string from the hart with ID 0.32 RISC-V External Debug Support Version 0.14.0-DRAFT If confstrptrvalid is 0, then the confstrptr registers hold identifier information.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDR

Address

DEBUGIF.NEXTDM

Address offset: 0x474

Next Debug Module

If there is more than one DM accessible on this DMI, this register contains the base address of the next one in the chain, or 0 if this is the last one in the chain.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDR

Address

DEBUGIF.PROGBUF[n]

Address offset: 0x480 + (n × 0x4)

Program Buffer [n]

progbuf0 through progbuf15 provide read/write access to the optional program buffer. progbufsize indicates how many of them are implemented starting at progbuf0, counting up. Accessing these registers while an abstract command is executing causes cmderr to be set to 1 (busy) if it is 0. Attempts to write them while busy is set does not change their value. The values in these registers may not be preserved after an abstract command is executed. The only guarantees on their contents are the ones offered by the command in question. If the command fails, no assumptions can be made about the contents of these registers.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Data

DEBUGIF.AUTHDATA

Address offset: 0x4C0

Authentication Data

This register serves as a 32-bit serial port to/from the authentication module. When authbusy is clear, the debugger can communicate with the authentication module by reading or writing this register. There is no separate mechanism to signal overflow/underflow.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Data

DEBUGIF.HALTSUM2

Address offset: 0x4D0

Halt Summary 2

Each bit in this read-only register indicates whether any of a group of harts is halted or not. Unavailable/nonexistent harts are not considered to be halted. This register might not be present if fewer than 1025 harts are connected to this DM. The LSB reflects the halt status of harts hartsel[19:15] 0x0 through hartsel[19:15] 0x3ff. The MSB reflects the halt status of harts hartsel[19:15] 0x7c00 through hartsel[19:15] 0x7fff

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

HALTSUM2

Halt Summary 2

DEBUGIF.HALTSUM3

Address offset: 0x4D4

Halt Summary 3

Each bit in this read-only register indicates whether any of a group of harts is halted or not. Unavailable/nonexistent harts are not considered to be halted. This register might not be present if fewer than 32769 harts are connected to this DM. The LSB reflects the halt status of harts 0x0 through 0x7fff. The MSB reflects the halt status of harts 0xf8000 through 0xfffff

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

HALTSUM3

Halt Summary 3

DEBUGIF.SBADDRESS3

Address offset: 0x4DC

System Bus Addres 127:96

If sbasize is less than 97, then this register is not present. When the system bus master is busy, writes to this register will set sbbusyerror and don’t do anything else.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS

Accesses bits 127:96 of the physical address in sbaddress (if the system address bus is that wide).

DEBUGIF.SBCS

Address offset: 0x4E0

System Bus Access Control and Status

Bit number313029282726252423222120191817161514131211109876543210
IDNNNMLKJJJIHGGGFFFFFFFEDCBA
Reset 0x2000000000100000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

SBACCESS8

sbaccess8

1

8-bit system bus accesses are supported.

B

R

SBACCESS16

sbaccess16

1

16-bit system bus accesses are supported.

C

R

SBACCESS32

sbaccess32

1

32-bit system bus accesses are supported.

D

R

SBACCESS64

sbaccess64

1

64-bit system bus accesses are supported.

E

R

SBACCESS128

sbaccess128

1

128-bit system bus accesses are supported.

F

R

SBASIZE

Width of system bus addresses in bits. (0 indicates there is no bus access support.)

G

R

SBERROR

When the Debug Module’s system bus master encounters an error, this field gets set. The bits in this field remain set until they are cleared by writing 1 to them. While this field is non-zero, no more system bus accesses can be initiated by the Debug Module. An implementation may report Other error (7) for any error condition.

Normal

0

There was no bus error.

Timeout

1

There was a timeout.

Address

2

A bad address was accessed.

Alignment

3

There was an alignment error.

Size

4

An access of unsupported size was requested.

Other

7

Other.

H

R

SBREADONDATA

sbreadondata

1

Every read from sbdata0 automatically triggers a system bus read at the (possibly autoincremented) address.

I

R

SBAUTOINCREMENT

sbautoincrement

1

sbaddress is incremented by the access size (in bytes) selected in sbaccess after every system bus access.

J

R

SBACCESS

Select the access size to use for system bus accesses. If sbaccess has an unsupported value when the DM starts a bus access, the access is not performed and sberror is set to 4.

size8

0

8-bit.

size16

1

16-bit.

size32

2

32-bit.

size64

3

64-bit.

size128

4

128-bit.

K

R

SBREADONADDR

sbreadonaddr

1

Every write to sbaddress0 automatically triggers a system bus read at the new address.

L

R

SBBUSY

(Whether the system bus itself is busy is related, but not the same thing.) This bit goes high immediately when a read or write is requested for any reason, and does not go low until the access is fully completed. Writes to sbcs while sbbusy is high result in undefined behavior. A debugger must not write to sbcs until it reads sbbusy as 0.

notbusy

0

System bus master is not busy.

busy

1

System bus master is busy.

M

R

SBBUSYERROR

Set when the debugger attempts to read data while a read is in progress, or when the debugger initiates a new access while one is already in progress (while sbbusy is set). It remains set until it’s explicitly cleared by the debugger. While this field is set, no more system bus accesses can be initiated by the Debug Module.

noerror

0

No error.

error

1

Debugger access attempted while one in progress.

N

R

SBVERSION

version0

0

The System Bus interface conforms to mainline drafts of thia RISC-V External Debug Support spec older than 1 January, 2018.

version1

1

The System Bus interface conforms to RISC-V External Debug Support version 0.14.0-DRAFT. Other values are reserved for future versions.

DEBUGIF.SBADDRESS0

Address offset: 0x4E4

System Bus Addres 31:0

If sbasize is 0, then this register is not present. When the system bus master is busy, writes to this register will set sbbusyerror and don’t do anything else. If sberror is 0, sbbusyerror is 0, and sbreadonaddr is set then writes to this register start the following: 1. Set sbbusy. 2. Perform a bus read from the new value of sbaddress. 3. If the read succeeded and sbautoincrement is set, increment sbaddress. 4. Clear sbbusy.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS

Accesses bits 31:0 of the physical address in sbaddress.

DEBUGIF.SBADDRESS1

Address offset: 0x4E8

System Bus Addres 63:32

If sbasize is less than 33, then this register is not present. When the system bus master is busy, writes to this register will set sbbusyerror and don’t do anything else.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS

Accesses bits 63:32 of the physical address in sbaddress (if the system address bus is that wide).

DEBUGIF.SBADDRESS2

Address offset: 0x4EC

System Bus Addres 95:64

If sbasize is less than 65, then this register is not present. When the system bus master is busy, writes to this register will set sbbusyerror and don’t do anything else.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS

Accesses bits 95:64 of the physical address in sbaddress (if the system address bus is that wide).

DEBUGIF.SBDATA0

Address offset: 0x4F0

System Bus Data 31:0

If all of the sbaccess bits in sbcs are 0, then this register is not present. Any successful system bus read updates sbdata. If the width of the read access is less than the width of sbdata, the contents of the remaining high bits may take on any value. If either sberror or sbbusyerror isn’t 0 then accesses do nothing. If the bus master is busy then accesses set sbbusyerror, and don’t do anything else. Writes to this register start the following: 1. Set sbbusy. 2. Perform a bus write of the new value of sbdata to sbaddress. 3. If the write succeeded and sbautoincrement is set, increment sbaddress. 4. Clear sbbusy. Reads from this register start the following: 1. “Return” the data. 2. Set sbbusy. 3. If sbreadondata is set: (a) Perform a system bus read from the address contained in sbaddress, placing the result in sbdata. (b) If sbautoincrement is set and the read was successful, increment sbaddress. 4. Clear sbbusy. Only sbdata0 has this behavior. The other sbdata registers have no side effects. On systems that have buses wider than 32 bits, a debugger should access sbdata0 after accessing the other sbdata registers

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Accesses bits 31:0 of sbdata

DEBUGIF.SBDATA1

Address offset: 0x4F4

System Bus Data 63:32

If sbaccess64 and sbaccess128 are 0, then this register is not present. If the bus master is busy then accesses set sbbusyerror, and don’t do anything else.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Accesses bits 63:32 of sbdata (if the system bus is that wide).

DEBUGIF.SBDATA2

Address offset: 0x4F8

System Bus Data 95:64

This register only exists if sbaccess128 is 1. If the bus master is busy then accesses set sbbusyerror, and don’t do anything else

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Accesses bits 95:64 of sbdata (if the system bus is that wide).

DEBUGIF.SBDATA3

Address offset: 0x4FC

System Bus Data 127:96

This register only exists if sbaccess128 is 1. If the bus master is busy then accesses set sbbusyerror, and don’t do anything else

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

DATA

Accesses bits 127:96 of sbdata (if the system bus is that wide).

DEBUGIF.HALTSUM0

Address offset: 0x500

Halt summary 0

Each bit in this read-only register indicates whether one specific hart is halted or not. Unavailable/nonexistent harts are not considered to be halted. This register might not be present if fewer than 2 harts are connected to this DM. The LSB reflects the halt status of hart hartsel[19:5] 0x0, and the MSB reflects halt status of hart hartsel[19:5] 0xf

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

HALTSUM0

Halt summary 0

CPURUN

Address offset: 0x800

State of the CPU after a core reset

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EN

Controls CPU running state after a core reset.

Stopped

0

CPU stopped. If this is the CPU state after a core reset, setting this bit will change the CPU state to CPU running.

Running

1

CPU running. If this is the CPU state after a core reset, clearing this bit will change the CPU state to CPU stopped after a core reset.

INITPC

Address offset: 0x808

Initial value of the PC at CPU start.

Note: This address must be 64 bit aligned

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

INITPC

Initial value of the PC at CPU start.

This value should be set before setting CPURUN.EN. After setting CPURUN.EN, this register can be reconfigured to prepare the CPU to start from a new initial PC upon receiving a reset request

Registers

Instances

InstanceDomainBase addressTrustZoneSplit accessDescription
MapAttDMA
VPRCLICFLPR0xF0000000HFNSNANo

VPR CLIC registers

Configuration

InstanceDomainConfiguration
VPRCLICFLPR

Supported interrupts (IRQNUM): 0..270

VEVIF tasks: 0..31

Mask of supported VEVIF tasks: 0xFFFFFFFF

VPR counter (CNT0) interrupt handler number (COUNTER_IRQ_NUM): 31

CLIC configuration for VPR 1.2 enabled

Register overview

RegisterOffsetTZDescription
CLIC.CLICCFG0x0000

CLIC configuration.

CLIC.CLICINFO0x0004

CLIC information.

CLIC.CLICINT[n]0x1000

Interrupt control register for IRQ number [n].

CLIC.CLICCFG

Address offset: 0x0000

CLIC configuration.

Bit number313029282726252423222120191817161514131211109876543210
IDCCBBBBA
Reset 0x0000001100000000000000000000000000010001
IDR/WFieldValue IDValueDescription
A

R

NVBITS

Selective interrupt hardware vectoring.

Implemented

1

Selective interrupt hardware vectoring is implemented

B

R

NLBITS

Interrupt level encoding.

Indicates how many upper bits are assigned to encode the interrupt level in CLICINT[n].PRIORITY

Eight

8

8 bits = interrupt levels encoded in eight bits

C

R

NMBITS

Interrupt privilege mode.

Indicates how many bits represent privilege mode

ModeM

0

All interrupts are M-mode only

CLIC.CLICINFO

Address offset: 0x0004

CLIC information.

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCCCBBBBBBBBAAAAAAAAAAAAA
Reset 0x00401FFF00000000010000000001111111111111
IDR/WFieldValue IDValueDescription
A

R

NUMINTERRUPTS

Maximum number of interrupts supported.

B

R

VERSION

Version

C

R

NUMTRIGGER

Number of maximum interrupt triggers supported

CLIC.CLICINT[n]

Address offset: 0x1000 + (n × 0x4)

Interrupt control register for IRQ number [n].

Bit number313029282726252423222120191817161514131211109876543210
IDHHHHHHHHGGFFEDDDDDDDCBBBBBBBA
Reset 0x3FC3000000111111110000110000000000000000
IDR/WFieldValue IDValueDescription
A

RW

IP

Interrupt Pending bit.

NotPending

0

Interrupt not pending

Pending

1

Interrupt pending

B

R

READ1

Read as 0, write ignored.

C

RW

IE

Interrupt enable bit.

Disabled

0

Interrupt disabled

Enabled

1

Interrupt enabled

D

R

READ2

Read as 0, write ignored.

E

R

SHV

Selective Hardware Vectoring.

Vectored

1

Hardware vectored

F

R

TRIG

Trigger type and polarity for each interrupt input.

EdgeTriggered

1

Interrupts are edge-triggered

G

R

MODE

Privilege mode.

MachineMode

3

Machine mode

H

RW

PRIORITY

Interrupt priority level

PRIOLEVEL0

0x3F

Priority level 0

PRIOLEVEL1

0x7F

Priority level 1

PRIOLEVEL2

0xBF

Priority level 2

PRIOLEVEL3

0xFF

Priority level 3

Registers

Instances

InstanceDomainBase addressDescription
VPRCSRFLPR

VPR CSR registers

Configuration

InstanceDomainConfiguration
VPRCSRFLPR

VEVIF indexes 16 through 19 maps onto DPPI channels 0 through 4

Use GPIO port P2

HARTNUM: 14

MCLICBASE: 0xF0000000

MULDIV: 2

HIBERNATE: 1

DBG: 1

Code patching (REMAP): 0

BUSWIDTH: 64

BKPT: 1

VPR can be retained.

CSR VIOPINS value: 0x0000FFFF

VEVIF tasks: 0..31

Mask of supported VEVIF tasks: 0xFFFFFFFF

VEVIF DPPI indices: 16..19

VEVIF events: 0..31

Bit-Manipulation extension: 1

CACHE available.

CACHEEXTRATAGBUF: 0

OUTMODE for shifting functionality available

INSTNUM field is not available withing CSR MIMPID

VPR does not support peripheral blocking access.

VPR does not support branch predecoding.

Register overview

RegisterOffsetDescription
MSTATUS0x300

Machine Status

MISA0x301

Machine ISA

MTVEC0x305

Machine Trap-Vector

MTVT0x307

Machine Trap Vector Table

MCOUNTINHIBIT0x320

Machine Counter-Inhibit

MSCRATCH0x340

Machine Scratch

MEPC0x341

Machine Exception Program Counter

MCAUSE0x342

Machine Cause

MTVAL0x343

Machine Trap Value

MINTSTATUS0x346

M-mode Interrupt Status

MINTTHRESH0x347

M-mode Interrupt-level Threshold

MCLICBASE0x350

Machine CLIC Base

TSELECT0x7A0

Trigger Select

TDATA10x7A1

Trigger Data 1

TDATA20x7A2

Trigger Data 2

TDATA30x7A3

Trigger Data 3

TINFO0x7A4

Trigger Info

TCONTROL0x7A5

Trigger Control

DCSR0x7B0

Debug Control and Status

DPC0x7B1

Debug PC

MCYCLE0xB00

Machine Cycle Counter

MINSTRET0xB02

Machine Instruction Counter

MCYCLEH0xB80

Machine Cycle Counter (Upper part)

MINSTRETH0xB82

Machine Instruction Counter (Upper part)

UCYCLE0xC00

User Cycle Counter

UINSTRET0xC02

User Instruction Counter

UCYCLEH0xC80

User Cycle Counter (Upper part)

UINSTRETH0xC82

User Instruction Counter (Upper part)

MVENDORID0xF11

Machine Vendor ID

MARCHID0xF12

Machine Architecture ID

MIMPID0xF13

Machine Implementation ID

MHARTID0xF14

Machine Hart ID

NORDIC.VPRNORDICCTRL0x7C0

Nordic Core Control

NORDIC.VPRNORDICSLEEPCTRL0x7C1

Nordic Sleep Control

NORDIC.VPRNORDICFEATURESDISABLE0x7C2

NORDIC.VIOPINS0x7C3

VPR pins used for Real Time Peripherals VIO

NORDIC.EXTPARAMS0x7C4

Reads values of external configuration parameters

NORDIC.CACHE.AXCACHE0x7C5

Memory type encoding

NORDIC.CACHE.CTRL0x7C8

Cache control

NORDIC.CACHE.CFG0x7C9

Cache configuration

NORDIC.CACHE.DATATAGADDR0x7CA

Cache tag base address

NORDIC.CACHE.DATABASEADDR0x7CB

Cache data base address

NORDIC.RTPERIPHCTRL0x7CC

RT peripheral control

NORDIC.CNTMODE00x7D0

CNT0 Mode

NORDIC.CNTMODE10x7D1

CNT1 Mode

NORDIC.CNT0x7D2

32-bit Counter

NORDIC.CNTTOP0x7D3

Counter Top

NORDIC.CNTADD0x7D4

CNT Add

NORDIC.CNT00x7D5

16 bit Counter 0

NORDIC.CNTADD00x7D6

CNT0 Add

NORDIC.CNT10x7D7

16-bit Counter 1

NORDIC.CNTADD10x7D8

CNT1 Add

NORDIC.WAIT00x7DA

Wait 0

NORDIC.WAIT10x7DB

Wait 1

NORDIC.WAIT0x7DC

Wait

NORDIC.TASKS0x7E0

DPPI Tasks

NORDIC.SUBSCRIBE0x7E1

Enable Task Subscription

NORDIC.EVENTS0x7E2

DPPI Events

NORDIC.PUBLISH0x7E3

Enable Event Publication

NORDIC.INTEN0x7E4

DPPI Event Interrupt Enable

NORDIC.EVENTSB0x7E5

Buffered DPPI Events

NORDIC.EVENTSBS0x7E6

EVENTSB Dirty Status

NORDIC.OUT0xBC0

GPIO Output value. Real Time Peripherals VIO.

NORDIC.DIR0xBC1

GPIO pin Direction. Real Time Peripherals VIO.

NORDIC.IN0xBC2

GPIO Input. Real Time Peripherals VIO.

NORDIC.INMODE0xBC3

Input Mode

NORDIC.OUTB0xBC4

Buffered GPIO Output

NORDIC.DIRB0xBC5

Buffered GPIO pin Direction

NORDIC.DIROUT0xBC6

DIR and OUT concatenation

NORDIC.DIROUTB0xBC7

Concatenation of DIRB and OUTB

NORDIC.OUTBRB0xBC8

Byte reversed register OUTB

NORDIC.OUTBRW0xBC9

Word reversed register OUTB

NORDIC.INBRB0xBCA

Byte reversed register INB

NORDIC.SHIFTCTRLB0xBCB

Buffered IO shift control

NORDIC.SHIFTCNTIN0xBCD

Number of frames to be shifted from INB before new data is required

NORDIC.SHIFTCNTOUT0xBCE

Number of frames to be shifted to OUTB before new data is required

NORDIC.SHIFTCNTB0xBCF

Buffered SHIFTCNTOUT and SHIFTCNTIN register

NORDIC.OUTTGL0xBD0

GPIO Output Toggle

NORDIC.DIRTGL0xBD1

GPIO pin Direction Toggle

NORDIC.OUTBTGL0xBD2

Buffered GPIO Output Toggle

NORDIC.DIRBTGL0xBD3

Buffered GPIO pin Direction Toggle

NORDIC.DIROUTTGL0xBD4

DIROUT Toggle

NORDIC.DIROUTBTGL0xBD5

DIROUTB Toggle

NORDIC.OUTBS0xBD8

Buffered GPIO Output Dirty Status

NORDIC.DIRBS0xBD9

Buffered GPIO pin Direction Dirty Status

NORDIC.DIROUTBS0xBDA

Combination of DIRB and OUTB Dirty Status

NORDIC.OUTBD0xBE0

Concatenation of Buffered GPIO Output and GPIO Output

NORDIC.OUTBDTGL0xBE1

OUTBD Toggle

NORDIC.OUTBDS0xBE2

OUTBD Dirty Status

NORDIC.OUTMODE0xBE3

Serial output mode

NORDIC.OUTMODEB0xBE4

Buffered OUTMODE register

NORDIC.INMODEB0xBE5

Buffered INMODE register

NORDIC.INB0xBE6

Buffered GPIO input

MSTATUS

Address offset: 0x300

Machine Status

Keeps track of and controls the hart current operating state. In VPR it only contains/controls information of machine privileged mode interrupts, see MIE and MPIE

Bit number313029282726252423222120191817161514131211109876543210
IDCCBA
Reset 0x0000180000000000000000000001100000000000
IDR/WFieldValue IDValueDescription
A

RW

MIE

global interrupt enable for machine privilege mode

Disabled

0

Enabled

1

B

RW

MPIE

Exists to support nested traps. Value of the interrupt-enable bit active prior to the trap for machine privilege mode

Disabled

0

Enabled

1

C

R

MPP

Exists to support nested traps. Value of the privlege mode prior to the trap for machine privilege mode

MISA

Address offset: 0x301

Machine ISA

Reports the ISA supported by the hart

Bit number313029282726252423222120191817161514131211109876543210
IDHHGFEDCBA
Reset 0x4000101601000000000000000001000000010110
IDR/WFieldValue IDValueDescription
A

R

A

Atomic extension

Indicates presence of standard A extension

Disabled

0

Enabled

1

B

R

B

Bit-Manipulation extension

Indicates presence of standard B extension. Indicates BEXT parameter option

Disabled

0

Enabled

1

C

R

C

Compressed extension

Indicates presence of standard C extension

Disabled

0

Enabled

1

D

R

E

RV32E base ISA

Indicates presence of standard E extension

Disabled

0

Enabled

1

E

R

I

RV32I/64I/128I base ISA

Indicates presence of standard I extension

Disabled

0

Enabled

1

F

R

M

Integer Multiply/Divide extension

Indicates presence of standard M extension

Disabled

0

Enabled

1

G

R

N

User-level interrupts supported

Indicates presence of standard N extension

Disabled

0

Enabled

1

H

R

MXL

Machine XLEN

Encodes the native base integer ISA width. The MXL field may be writable in implementations that support multiple base ISA widths. The effective XLEN in M-mode, MXLEN, is given by the setting of MXL, or has a fixed value if misa is zero. The MXL field is always set to the widest supported ISA variant at reset

XLEN32

1

XLEN is 32 bits

XLEN64

2

XLEN is 64 bits

XLEN128

3

XLEN is 128 bits

MTVEC

Address offset: 0x305

Machine Trap-Vector

Holds trap vector configuration, consisting of a vector base address (BASE) and a vector mode (MODE)

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAA
Reset 0x0000000300000000000000000000000000000011
IDR/WFieldValue IDValueDescription
A

R

MODE

Mode

CLIC

3

Core Local Interrupt Controller (CLIC) interrupt handling mode

B

RW

BASE

Vector base address

The value in the BASE field must always be aligned on a 8-byte boundary

MTVT

Address offset: 0x307

Machine Trap Vector Table

Holds the base address of the trap vector table, aligned on a 64-byte or greater power-of-two boundary. The actual alignment can be determined by writing ones to the low-order bits then reading them back.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Trap Vector Table base address value for CLIC vectored interrupts

MCOUNTINHIBIT

Address offset: 0x320

Machine Counter-Inhibit

Register that controls which of the hardware performance-monitoring counters increment.

Bit number313029282726252423222120191817161514131211109876543210
IDBA
Reset 0x0000000500000000000000000000000000000101
IDR/WFieldValue IDValueDescription
A

RW

CY

INCREMENT

0x0

MCYCLE increments as usual

INHIBIT

0x1

MCYCLE doesn’t increment

B

RW

IR

INCREMENT

0x0

MINSTRET increments as usual

INHIBIT

0x1

MINSTRET doesn’t increment

MSCRATCH

Address offset: 0x340

Machine Scratch

Register dedicated for use by machine mode. Typically, it is used to hold a pointer to a machine-mode hart-local context space and swapped with a user register upon entry to an M-mode trap handler.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Scratch value

MEPC

Address offset: 0x341

Machine Exception Program Counter

When a trap is taken into M-mode, mepc is written with the virtual address of the instruction that was interrupted or that encountered the exception. Otherwise, mepc is never written by the implementation, though it may be explicitly written by software

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Exception Program Counter value

MCAUSE

Address offset: 0x342

Machine Cause

When a trap is taken into M-mode, mcause is written with a code indicating the event that caused the trap. Otherwise, mcause is never written by the implementation, though it may be explicitly written by software.

Bit number313029282726252423222120191817161514131211109876543210
IDFEDDCBBBBBBBBAAAAAAAAAAAA
Reset 0x3000000000110000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EXCEPTIONCODE

Exception code

See RISC-V Instruction Set Manual Volume II: Privileged Architecture for details on the exception codes. Exception codes listed here only apply if the trap is not caused by an interrupt (Interrupt bitfield set to 0)

INSTADDRMISALIGN

0x0

Instruction Address Misaligned

INSTACCESSFAULT

0x1

Instruction Access Fault

ILLEGALINST

0x2

Illegal Instruction

BKPT

0x3

Breakpoint

LOADADDRMISALIGN

0x4

Load Address Misaligned

LOADACCESSFAULT

0x5

Load Access Fault

STOREADDRMISALIGN

0x6

Store/AMO Address Misaligned

STOREACCESSFAULT

0x7

Store/AMO Access Fault

ECALLMMODE

0xB

Environment Call M-Mode

MISALIGNSTACKING

0x18

Misaligned Stacking

BUSFAULTSTACKING

0x19

Bus Fault on Stacking

INTVECTORFAULT

0x1A

Interrupt Vector Fault

MISALIGNUNSTACKING

0x1B

Misaligned Unstacking

BUSFAULTUNSTACKING

0x1C

Bus Fault on Unstacking

STORETIMEOUTFAULT

0x1D

Store Timeout Fault

LOADTIMEOUTFAULT

0x1E

Load Timeout Fault

STACKINGEXCFAULT

0x1F

Fault on Exception Stacking

B

RW

MPIL

Previous interrupt level

C

RW

MPIE

Previous interrupt enable, same as MSTATUS.MPIE

D

R

MPP

Previous privilege mode, same as MSTATUS.MPP

E

RW

MINHV

In hardware vectoring

Set by hardware at start of hardware vectoring, cleared by hardware at end of successful hardware vectoring

F

RW

INTERRUPT

Interrupt bit

Set if the trap was caused by an interrupt

EXCEPTION

0

INTERRUPT

1

MTVAL

Address offset: 0x343

Machine Trap Value

When a trap is taken into M-mode, MTVAL is either set to zero or written with exception-specific information to assist software in handling the trap. In VPR this register is ignored by exceptions and set to zero permanently

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

Machine Trap Value

MINTSTATUS

Address offset: 0x346

M-mode Interrupt Status

Holds the active interrupt level for M-mode

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

MIL

M-Mode interrupt level

MINTTHRESH

Address offset: 0x347

M-mode Interrupt-level Threshold

Holds an 8-bit field for the threshold level of M-mode. Typical use is to implement critical sections. The current hart’s effective interrupt level would then be: effective_level = max(MINTSTATUS.MIL, MINTTHRESH.TH)

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAA
Reset 0x0000001F00000000000000000000000000011111
IDR/WFieldValue IDValueDescription
A

RW

TH

M-Mode Interrupt-level Threshold

DISABLED

0x0

Threshold disabled

THRESHLEVEL0

0x3F

Threshold level 0

This enumerator is deprecated.

THRESHLEVEL1

0x7F

Threshold level 1

This enumerator is deprecated.

THRESHLEVEL2

0xBF

Threshold level 2

This enumerator is deprecated.

THRESHLEVEL3

0xFF

Threshold level 3

This enumerator is deprecated.

MCLICBASE

Address offset: 0x350

Machine CLIC Base

Provides the base address of CLIC memory mapped registers. Its value should be configured or set up at the platform level to indicate the starting address of CLIC memory mapped registers. Since the CLIC memory map must be aligned at a 4KiB boundary, the mclicbase CSR has its 12 least-significant bits hardwired to zero. It is used to inform software about the location of CLIC memory mappped registers. CLIC Base address is unique for every VPR instance and this register's reset value is set to it

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0xF000000011110000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

CLIC base address value

TSELECT

Address offset: 0x7A0

Trigger Select

This register determines which trigger is accessible through the other trigger registers. The set of accessible triggers must start at 0, and be contiguous

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Trigger Select value

TDATA1

Address offset: 0x7A1

Trigger Data 1

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCBAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA

Trigger Specific Data

B

RW

DMODE

Debug Mode

This bit is only writable from Debug Mode

BOTH

0

Both Debug and M-mode can write the tdata registers at the selected tselect.

ONLYDEBUG

1

Only Debug Mode can write the tdata registers at the selected tselect. Writes from other modes are ignored.

C

RW

TYPE

Type

NOTRIGGER

0x0

There is no trigger at this tselect

MATCH

0x2

The trigger is an address match trigger. The remaining bits in this register act as described in mcontrol

REMAP

0xF

This trigger is a remapping trigger. The remaining bits in this register behave as described in remapping functionality

TDATA2

Address offset: 0x7A2

Trigger Data 2

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA

Trigger Specific Data

TDATA3

Address offset: 0x7A3

Trigger Data 3

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA

Trigger Specific Data

TINFO

Address offset: 0x7A4

Trigger Info

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

INFO

Trigger Info value

One bit for each possible type enumerated in tdata1. Bit N corresponds to type N. If the bit is set, then that type is supported by the currently selected trigger. If the currently selected trigger doesn’t exist, this field contains 1. If type is not writable, this register may be unimplemented, in which case reading it causes an illegal instruction exception. In this case the debugger can read the only supported type from tdata1.

TCONTROL

Address offset: 0x7A5

Trigger Control

This optional register is one solution to a problem regarding triggers with action=0 firing in M-mode trap handlers

Bit number313029282726252423222120191817161514131211109876543210
IDBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MTE

Mode Trigger Enable

DONTMATCH

0

Triggers with action=0 do not match/fire while the hart is in M-mode

MATCH

1

Triggers do match/fire while the hart is in M-mode. When a trap into M-mode is taken, mte is set to 0. When mret is executed, mte is set to the value of mpte

B

RW

MPTE

Mode Previous Trigger Enable

When a trap into M-mode is taken, mpte is set to the value of mte

DCSR

Address offset: 0x7B0

Debug Control and Status

This register is only accesible from debug mode

Bit number313029282726252423222120191817161514131211109876543210
IDFFFFEDCCCBAA
Reset 0x4000000301000000000000000000000000000011
IDR/WFieldValue IDValueDescription
A

R

PRV

Privilege level

Contains the privilege level the hart was operating in when Debug Mode was entered. VPR only supports Machine Privilege Level.

MACHINE

3

B

RW

STEP

Step

When set and not in Debug Mode, the hart will only execute a single instruction and then enter Debug Mode. If the instruction does not complete due to an exception, the hart will immediately enter Debug Mode before executing the trap handler, with appropriate exception registers set. The debugger must not change the value of this bit while the hart is running

C

R

CAUSE

Debug Mode enter cause

When there are multiple reasons to enter Debug Mode in a single cycle, hardware should set cause to the cause with the highest priority. Values other than the following are reserved for future use

EBREAK

1

An ebreak instruction was executed. (priority 3)

TRIGGER

2

The Trigger Module caused a breakpoint exception. (priority 4, highest)

HALTREQ

3

The debugger requested entry to Debug Mode using haltreq. (priority 1)

STEP

4

The hart single stepped because step was set. (priority 0, lowest)

RESETHALTREQ

5

The hart halted directly out of reset due to resethaltreq. It is also acceptable to report 3 when this happens. (priority 2)

D

RW

STEPIE

Step Interrupt Enable

The debugger must not change the value of this bit while the hart is running

Disabled

0

Interrupts are disabled during single stepping

Enabled

1

Interrupts are enabled during single stepping. Implementations may hard wire this bit to 0. In that case interrupt behavior can be emulated by the debugger.

E

RW

EBREAKM

M-mode ebreak

SPEC

0

ebreak instructions in M-mode behave as described in the Privileged Spe

ENTERDBG

1

ebreak instructions in M-mode enter Debug Mode

F

R

XDEBUGVER

External Debug version

STDDBG

4

External debug support exists as it is described in this document

DPC

Address offset: 0x7B1

Debug PC

Upon entry to debug mode, dpc is updated with the virtual address of the next instruction to be executed. When resuming, the hart’s PC is updated to the virtual address stored in dpc. A debugger may write dpc to change where the hart resumes

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Debug PC value

MCYCLE

Address offset: 0xB00

Machine Cycle Counter

Counts the number of clock cycles executed by the processor core on which the hart is running

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Cycle Counter value

MINSTRET

Address offset: 0xB02

Machine Instruction Counter

Counts the number of instructions the hart has retired

In this context retired means a successfully executed instruction

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Instruction Counter value

MCYCLEH

Address offset: 0xB80

Machine Cycle Counter (Upper part)

Counts the number of clock cycles executed by the processor core on which the hart is running

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Cycle Counter value

MINSTRETH

Address offset: 0xB82

Machine Instruction Counter (Upper part)

Counts the number of instructions the hart has retired

In this context retired means a successfully executed instruction

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

Machine Instruction Counter (Upper part) value

UCYCLE

Address offset: 0xC00

User Cycle Counter

Counts the number of clock cycles executed by the processor core on which the hart is running. This register is a read-only copy of MCYCLE

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

User Cycle Counter value

UINSTRET

Address offset: 0xC02

User Instruction Counter

Counts the number of instructions the hart has retired. This register is a read-only copy of MINSTRET

In this context retired means a successfully executed instruction

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

User Instruction Counter value

UCYCLEH

Address offset: 0xC80

User Cycle Counter (Upper part)

Counts the number of clock cycles executed by the processor core on which the hart is running. This register is a read-only copy of MCYCLEH

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

User Cycle Counter value

UINSTRETH

Address offset: 0xC82

User Instruction Counter (Upper part)

Counts the number of instructions the hart has retired. This register is a read-only copy of MINSTRETH

In this context retired means a successfully executed instruction

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

User Instruction Counter (Upper part) value

MVENDORID

Address offset: 0xF11

Machine Vendor ID

32-bit read-only register providing the JEDEC manufacturer ID of the provider of the core.

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAA
Reset 0x0000014400000000000000000000000101000100
IDR/WFieldValue IDValueDescription
A

R

OFFSET

MVENDORID encodes the final byte in the Offset field, discarding the parity bit

B

R

BANK

MVENDORID encodes the number of one-byte continuation codes in the Bank field

MARCHID

Address offset: 0xF12

Machine Architecture ID

32-bit read-only register encoding the base microarchitecture of the hart

Bit number313029282726252423222120191817161514131211109876543210
IDJIHHHGFFFFEDCBAA
Reset 0x8000006E10000000000000000000000001101110
IDR/WFieldValue IDValueDescription
A

R

MULDIV

Indicates the MULDIV parameter option

B

R

HIBERNATE

Indicates the POWEROFFSLEEP parameter option

C

R

DBG

Indicates the DBG parameter option

D

R

REMAP

Indicates the REMAP parameter option

E

R

BUSWIDTH

Indicates the BUS_WIDTH parameter option

F

R

BKPT

Indicates the BKPT parameter option

G

R

CACHE

Indicates that the CACHE is present

H

R

CACHEEXTRATAGBUF

Indicates the number of extra TAG buffers in CACHE

I

R

RETAINED

Indicates the RETAINED parameter option

J

R

IMPLEM

Indicates a non-open implementation

MIMPID

Address offset: 0xF13

Machine Implementation ID

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCCCCCBBBBBBBBAAAAAAAA
Reset 0x0001030000000000000000010000001100000000
IDR/WFieldValue IDValueDescription
A

R

PATCHREV

Indicates the number of the patch revision

B

R

MINORREV

Indicates the number of the minor revision

C

R

MAJORREV

Indicates the number of the major revison

MHARTID

Address offset: 0xF14

Machine Hart ID

Contains the integer ID of the hardware thread running the code. Hart ID is unique for every VPR instance and this register's reset value is set to it

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000E00000000000000000000000000001110
IDR/WFieldValue IDValueDescription
A

R

HARTNUM

Machine Hart ID value

NORDIC.VPRNORDICCTRL

Address offset: 0x7C0

Nordic Core Control

Bit number313029282726252423222120191817161514131211109876543210
IDEEEEEEEEEEEEEEEEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLERTPERIPH

Control bit to enable Real-Time Peripherals

When this bit is cleared, it will override the APB read value of the INTEN register to 0.

Disabled

0

Enabled

1

B

RW

ENABLEREMAP

Enable remap feature

Disabled

0

Enabled

1

C

RW

CNTIRQENABLE

Enables the generation of IRQ number COUNTER_IRQ_NUM

Disabled

0x0

Enabled

0x1

D

RW

VPRBUSPRI

Arbitration priority on bus

Setting high priority will give VPR maximum priority and can cause starvation for other bus masters trying to access the same memory. It should only be used in limited sections of code and care must be taken to avoid continuous memory accesses to ensure other bus masters can perform interleaved accesses.

LowPriority

0x0

Low priority for VPR RAM transactions on bus

HighPriority

0x1

High priority for VPR RAM transactions on bus

E

W

NORDICKEY

Used in order to protect the write to this register

Enabled

0x507D

Write enabled

NORDIC.VPRNORDICSLEEPCTRL

Address offset: 0x7C1

Nordic Sleep Control

Bit number313029282726252423222120191817161514131211109876543210
IDCBAAAA
Reset 0x0000000200000000000000000000000000000010
IDR/WFieldValue IDValueDescription
A

RW

SLEEPSTATE

Sleep State

WAIT

0x0

Sleep is not turning off the clock

RESET

0x2

Sleep state default reset value. Going to sleep with sleep state = RESET has the same effect as going to sleep with sleep state = WAIT

SLEEP

0x5

Sleep is turning the clock off

DEEPSLEEP

0x7

Sleep is turning the clock off and power is turned off

HIBERNATE

0xF

sleep is turning the clock off and all the registers are saved automatically, restart by a reset

B

RW

RETURNTOSLEEP

Return to Sleep

Forces the CPU to return to sleep when it returns in a non handler program

Disabled

0x0

Enabled

0x1

C

RW

STACKONSLEEP

Stack on Sleep

Force CPU to stack the context before going to sleep : this is used in order to have a fast wake up

Disabled

0x0

Enabled

0x1

NORDIC.VPRNORDICFEATURESDISABLE

Address offset: 0x7C2

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCCCCCCCCCCCCCBA
Reset 0x0000001000000000000000000000000000010000
IDR/WFieldValue IDValueDescription
A

RW

DISABLECLICROUNDROBIN

Disable CLIC Round Robin

Disable Round Robin arbitration in CLIC for interrupt requests

Enabled

0

Disabled

1

B

RW

UNRECOVRETURN

Unrecoverable Return

Force unrecoverable return from exception

Disabled

0

Enabled

1

C

W

NORDICKEY

Used in order to protect the write to this register

Enabled

0x507D

Write enabled

NORDIC.VIOPINS

Address offset: 0x7C3

VPR pins used for Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000FFFF00000000000000001111111111111111
IDR/WFieldValue IDValueDescription
A

R

VAL

VPR pins used for Real Time Peripherals VIO

NORDIC.EXTPARAMS

Address offset: 0x7C4

Reads values of external configuration parameters

External configuration parameters are unique for every VPR instance and this register's reset value depends on them

Bit number313029282726252423222120191817161514131211109876543210
IDDCCCCBAA
Reset 0x0000000E00000000000000000000000000001110
IDR/WFieldValue IDValueDescription
A

R

MULDIV

value of MULDIV

B

R

DBG

value of DBG

C

R

BKPT

value of BKPT

D

R

REMAP

value of REMAP

NORDIC.CACHE.AXCACHE

Address offset: 0x7C5

Memory type encoding

AXI4 protocol memory type encoding

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCBBBBAAAA
Reset 0x00000EEE00000000000000000000111011101110
IDR/WFieldValue IDValueDescription
A

RW

AWCACHE

Memory type for data stores

DEVNONBUFF

0x0

Device Non-Bufferable

DEVBUFF

0x1

Device Bufferable

NNONCACHENONBUFF

0x2

Normal Non-cacheable Non-bufferable

NNONCACHEBUFF

0x3

Normal Non-cacheable Bufferable

WRITETHNALLOC

0x6

Write-through No-allocate

WRITETHRALLOC

0x6

Write-through Read-allocate

WRITETHWALLOC

0xE

Write-through Write-allocate

WRITETHRWALLOC

0xE

Write-through Read and Write-allocate

WRITEBACKNALLOC

0x7

Write-back No-allocate

WRITEBACKRALLOC

0x7

Write-back Read-allocate

WRITEBACKWALLOC

0xF

Write-back Write-allocate

WRITEBACKRWALLOC

0xF

Write-back Read and Write-allocate

B

RW

IARCACHE

Memory type for instruction loads

DEVNONBUFF

0x0

Device Non-Bufferable

DEVBUFF

0x1

Device Bufferable

NNONCACHENONBUFF

0x2

Normal Non-cacheable Non-bufferable

NNONCACHEBUFF

0x3

Normal Non-cacheable Bufferable

WRITETHNALLOC

0xA

Write-through No-allocate

WRITETHRALLOC

0xE

Write-through Read-allocate

WRITETHWALLOC

0xA

Write-through Write-allocate

WRITETHRWALLOC

0xE

Write-through Read and Write-allocate

WRITEBACKNALLOC

0xB

Write-back No-allocate

WRITEBACKRALLOC

0xF

Write-back Read-allocate

WRITEBACKWALLOC

0xB

Write-back Write-allocate

WRITEBACKRWALLOC

0xF

Write-back Read and Write-allocate

C

RW

DARCACHE

Memory type for data loads

DEVNONBUFF

0x0

Device Non-Bufferable

DEVBUFF

0x1

Device Bufferable

NNONCACHENONBUFF

0x2

Normal Non-cacheable Non-bufferable

NNONCACHEBUFF

0x3

Normal Non-cacheable Bufferable

WRITETHNALLOC

0xA

Write-through No-allocate

WRITETHRALLOC

0xE

Write-through Read-allocate

WRITETHWALLOC

0xA

Write-through Write-allocate

WRITETHRWALLOC

0xE

Write-through Read and Write-allocate

WRITEBACKNALLOC

0xB

Write-back No-allocate

WRITEBACKRALLOC

0xF

Write-back Read-allocate

WRITEBACKWALLOC

0xB

Write-back Write-allocate

WRITEBACKRWALLOC

0xF

Write-back Read and Write-allocate

NORDIC.CACHE.CTRL

Address offset: 0x7C8

Cache control

Bit number313029282726252423222120191817161514131211109876543210
IDBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLE

Enable cache

Disabled

0

Cache disabled

Enabled

1

Cache enabled

B

RW
W1S

CACHECLR

Cache clear

Writing this bit writes the tag cache region to 0. This should be done before enabling the cache. The CPU stalls until the operation is complete. Interrupts must be disabled when performing the cache clear operation.

NoOperation

0

No Operation

Clear

1

Cache clear

NORDIC.CACHE.CFG

Address offset: 0x7C9

Cache configuration

Configures the cache region size and line size

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CACHESIZE

0..15

Cache size is 2^CACHESIZE or (1 << CACHESIZE) KB, with a maximum size of 32KB (CACHESIZE = 5)

To prevent RAM corruption or undefined behavior this field should only be modified when the cache is disabled

B

RW

CACHELINESIZE

Cache line size

To prevent RAM corruption or undefined behavior this field should only be modified when the cache is disabled

CachelineSize32B

0

Cache line size is 32 bytes (4 data units)

CachelineSize64B

1

Cache line size is 64 bytes (8 data units)

NORDIC.CACHE.DATATAGADDR

Address offset: 0x7CA

Cache tag base address

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

0x0..0xFFFFFFFC

Cache tag base address value

Defines where the tag cache region starts. The tag base address must be aligned with the data cache region size. The lower 2 bits are write ignored / read as zero, so the value must be rounded to a power of 2.

NORDIC.CACHE.DATABASEADDR

Address offset: 0x7CB

Cache data base address

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

0x0..0xFFFFFFFC

Cache data base address value

Defines where the data cache region starts. The data base address must be aligned with the data cache region size. The lower 2 bits are write ignored / read as zero, so the value must be rounded to a power of 2.

NORDIC.RTPERIPHCTRL

Address offset: 0x7CC

RT peripheral control

Bit number313029282726252423222120191817161514131211109876543210
IDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CLOCKPOLARITY

Clock polarity

This field is applicable only when OUTMODE.MODE = OutBBufToggleClk

Low

0x0

Clock polarity is low

High

0x1

Clock polarity is High

B

RW

STOPCOUNTERS

Stop counters CNT0 and CNT1 on OUTB under-run, or on INB Overflow if OUTMODE2 and INMODE2

This feature is used for clock stretching during OUTB under-run

NoStop

0

Counters do not stop on OUTB under-run

Stop

1

Counters stop on OUTB under-run

Resume the counters when OUTB is written

C

RW

INSEL

Input pin selection

SamePin

0x0

Sample on same OUT pin

SeparatePin

0x1

Sample on separate pin

NORDIC.CNTMODE0

Address offset: 0x7D0

CNT0 Mode

Real Time Peripherals VTIM

Bit number313029282726252423222120191817161514131211109876543210
IDAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CNTMODE0

CNT0 Mode

STOP

0x0

CNT0 stops at 0

WRAP

0x1

When CNT0 reaches 0 it will continue counting from 0xFFFF

RELOAD

0x2

When CNT0 reaches 0 it will continue counting from the value in CNTTOP

TRIGCOMB

0x3

When CNT0 reaches 0 it is reloaded from CNTTOP and stops. Counting will restart when a VIO event happens

NORDIC.CNTMODE1

Address offset: 0x7D1

CNT1 Mode

Real Time Peripherals VTIM

Bit number313029282726252423222120191817161514131211109876543210
IDAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CNTMODE1

CNT1 Mode

STOP

0x0

CNT1 stops at 0

WRAP

0x1

When CNT1 reaches 0 it will continue counting from 0xFFFF

RELOAD

0x2

When CNT1 reches 0 it will continue counting from the value in CNTTOP

TRIGCOMB

0x3

In combine mode mode CNT1 acts as an extension of CNT0 (16 most significant bits of the 32-bit CNT)

NORDIC.CNT

Address offset: 0x7D2

32-bit Counter

Addresses CNT0 and CNT1 in the same operation. Real Time Peripherals VTIM

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CNT0

16-bit Counter 0

This field shares a physical register with MCYCLEH (lower 16 bits)

B

RW

CNT1

16-bit Counter 1

This field shares a physical register with MCYCLEH (upper 16 bits)

NORDIC.CNTTOP

Address offset: 0x7D3

Counter Top

This register value is used when reload mode is active. Entire 32-bit value is used when CNT1 is in combined mode. Real Time Peripherals VTIM

Shares a physical register with MCYCLE.

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CNT0RELOAD

Reload value for CNT0

B

RW

CNT1RELOAD

Reload value for CNT1

NORDIC.CNTADD

Address offset: 0x7D4

CNT Add

Adds a value to 32-bit counter CNT. Real Time Peripherals VTIM

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

VAL

Value added to CNT

NORDIC.CNT0

Address offset: 0x7D5

16 bit Counter 0

Real Time Peripherals VTIM

Shares a physical register with MCYCLEH (lower 16 bits).

Read-only when the counters are in COMBINE mode.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

CNT0 value

NORDIC.CNTADD0

Address offset: 0x7D6

CNT0 Add

Adds a value to CNT0. Real Time Peripherals VTIM

Has no effect when the counters are in COMBINE mode.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

VAL

Value added to CNT0

NORDIC.CNT1

Address offset: 0x7D7

16-bit Counter 1

Real Time Peripherals VTIM

Shares a physical register with MCYCLEH (upper 16 bits).

Read-only when the counters are in COMBINE mode.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

CNT1 value

NORDIC.CNTADD1

Address offset: 0x7D8

CNT1 Add

Adds a value to CNT1. Real Time Peripherals VTIM

Has no effect when the counters are in COMBINE mode.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

VAL

Value added to CNT1

NORDIC.WAIT0

Address offset: 0x7DA

Wait 0

Writing to this register will stall the CPU until CNT0 reaches 0

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

DATA

Value to write to CNT0

B

W

WRITEDATA

WAIT

0x0

Wait until CNT0 reaches 0

WRITE

0x1

Write DATA to CNT0 and then wait until CNT0 reaches 0

NORDIC.WAIT1

Address offset: 0x7DB

Wait 1

Writing to this register will stall the CPU until CNT1 reaches 0

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

DATA

Value to write to CNT1

B

W

WRITEDATA

WAIT

0x0

Wait until CNT1 reaches 0

WRITE

0x1

Write DATA to CNT1 and then wait until CNT1 reaches 0

NORDIC.WAIT

Address offset: 0x7DC

Wait

Writing any value to register will stall the CPU until CNT reaches 0 in TRIGCOMB mode

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

VAL

NORDIC.TASKS

Address offset: 0x7E0

DPPI Tasks

CSR view of TASKS_TRIGGER[31:0] APB registers. Real Time Peripherals VEVIF

Shares a physical register with IN (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

RW

TASKS[i] (i=0..31)

Disabled

0x0

TASKS[i] diabled

Enabled

0x1

TASKS[i] enabled

NORDIC.SUBSCRIBE

Address offset: 0x7E1

Enable Task Subscription

CSR view of SUBSCRIBE_TRIGGER[31:0] APB registers (Enable bits). Real Time Peripherals VEVIF

Shares a physical register with DIRB and MINSTRETH (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

RW

SUBSCRIBE[i] (i=16..19)

Disabled

0x0

Subscribe disabled for TASK[i]

Enabled

0x1

Subscribe enabled for TASK[i]

NORDIC.EVENTS

Address offset: 0x7E2

DPPI Events

CSR view of EVENTS_TRIGGERED[31:0]APB registers. Real Time Peripherals VEVIF

Shares a physical register with MINSTRET (upper 16 bits) and OUT.

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

RW

EVENTS[i] (i=0..31)

Disabled

0x0

EVENTS[i] disabled

Enabled

0x1

EVENTS[i] enabled

NORDIC.PUBLISH

Address offset: 0x7E3

Enable Event Publication

CSR view of PUBLISH_TRIGGERED[31:0] APB registers (Enable bits). Real Time Peripherals VEVIF

Shares a physical register with DIR and MINSTRETH (upper 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription

RW

PUBLISH[i] (i=16..19)

Disabled

0x0

Publish disabled for EVENTS[i]

Enabled

0x1

Publish enabled for EVENTS[i]

NORDIC.INTEN

Address offset: 0x7E4

DPPI Event Interrupt Enable

CSR view of the INTEN APB register (also modified through INTENSET and INTENCLR). Every bit enables interrupt generation sourced by the corresponding event. Real Time Peripherals VEVIF

Shares a physical register with INMODE.

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

RW

INTEN[i] (i=0..31)

Disabled

0x0

Interrupt disabled for EVENTS[i]

Enabled

0x1

Interrupt enabled for EVENTS[i]

NORDIC.EVENTSB

Address offset: 0x7E5

Buffered DPPI Events

The value in this register is passed to EVENTS on a Counter0 event (write sets dirty status). Real Time Peripherals VEVIF

Shares a physical register with MINSTRET (lower 16 bits) and OUTB.

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

W

EVENTSB[i] (i=0..31)

Disabled

0x0

EVENTSB[i] disabled

Enabled

0x1

EVENTSB[i] enabled

NORDIC.EVENTSBS

Address offset: 0x7E6

EVENTSB Dirty Status

Reads EVENTSB dirty status. Writes EVENTSB (sets dirty status)

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

EVENTSB

Write to EVENTSB (if not dirty)

A

R

DIRTYBIT

Read EVENTSB Dirty status

CLEAN

0x0

Buffer is clean

DIRTY

0x1

Buffer is dirty

NORDIC.OUT

Address offset: 0xBC0

GPIO Output value. Real Time Peripherals VIO.

Shares a physical register with MINSTRET (upper 16 bits) and EVENTS (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

RW

PIN[i] (i=0..15)

LOW

0x0

Pin driver is low

HIGH

0x1

Pin driver is high

NORDIC.DIR

Address offset: 0xBC1

GPIO pin Direction. Real Time Peripherals VIO.

Shares a physical register with MINSTRETH (upper 16 bits) and PUBLISH (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

RW

PIN[i] (i=0..15)

INPUT

0x0

Pin is set as input

OUTPUT

0x1

Pin is set as output

NORDIC.IN

Address offset: 0xBC2

GPIO Input. Real Time Peripherals VIO.

Shares a physical register with TASKS (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

R

PIN[i] (i=0..15)

LOW

0x0

Pin is Low

HIGH

0x1

Pin is High

NORDIC.INMODE

Address offset: 0xBC3

Input Mode

Sets the sampling mode for values read through IN. Real Time Peripherals VIO

Shares a physical register with INTEN (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MODE

Input Mode

CONTINUOUS

0x0

Continuous sampling (if CPU is not sleeping)

EVENT

0x1

Sampling on Counter1 event

SHIFT

0x2

Sampling and shifting on Counter1 event synchronized with OUT

NORDIC.OUTB

Address offset: 0xBC4

Buffered GPIO Output

Bits 15:0 in this register are passed to OUT on a Counter0 event (write sets dirty status). If external paramenter RT_SHIFT_PRESENT = 1, OUTB bit width is 32 and in addition to the described behavior, OUTB[31:16] is passed to OUTB[15:0] on a Counter0 event as well. Real Time Peripherals VIO

OUTB[15:0] shares a physical register with MINSTRET (lower 16 bits) and EVENTSB (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

RW

PIN[i] (i=0..31)

LOW

0x0

Pin driver is low

HIGH

0x1

Pin driver is high

NORDIC.DIRB

Address offset: 0xBC5

Buffered GPIO pin Direction

The value in this register is passed to DIR on a Counter0 event (write sets dirty status). Real Time Peripherals VIO.

Shares a physical register with MINSTRETH (lower 16 bits) and SUBSCRIBE (lower 16 bits).

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

RW

PIN[i] (i=0..15)

INPUT

0x0

Pin is set as input

OUTPUT

0x1

Pin is set as output

NORDIC.DIROUT

Address offset: 0xBC6

DIR and OUT concatenation

Addresses DIR[15:0] and OUT[15:0] in the same operation. Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

OUT

GPIO Output

Shares a physical register with MINSTRET (upper 16 bits) and EVENTS (lower 16 bits)

B

RW

DIR

GPIO pin Direction

Shares a physical register with MINSTRETH (upper 16 bits) and PUBLISH (lower 16 bits)

NORDIC.DIROUTB

Address offset: 0xBC7

Concatenation of DIRB and OUTB

Addresses DIRB[15:0] and OUTB[15:0] in the same operation. The value in this register is passed to DIROUT on a Counter0 event (write sets dirty status of both buffers). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

OUTB

Buffered GPIO Output

Shares a physical register with MINSTRET (lower 16 bits) and EVENTSB (lower 16 bits)

B

RW

DIRB

Buffered GPIO pin Direction

Shares a physical register with MINSTRETH (lower 16 bits) and SUBSCRIBE (lower 16 bits)

NORDIC.OUTBRB

Address offset: 0xBC8

Byte reversed register OUTB

This register is shadow to register OUTB and holds frames in reversed order for each byte of OUTB

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

0x0..0xFFFFFFFF

NORDIC.OUTBRW

Address offset: 0xBC9

Word reversed register OUTB

This register is shadow to register OUTB and holds frame reversed in the whole word of OUTB

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VAL

0x0..0xFFFFFFFF

NORDIC.INBRB

Address offset: 0xBCA

Byte reversed register INB

This register is shadow to register INB and holds frame reversed in each byte of OUTB

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

VAL

0x0..0xFFFFFFFF

NORDIC.SHIFTCTRLB

Address offset: 0xBCB

Buffered IO shift control

Bit number313029282726252423222120191817161514131211109876543210
IDCACABBBBBBBBBBBABABAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

SHIFTCNTB

AA

RW

SHIFTCNTB.VALUE

0..32

Alias to SHIFTCNTB.VALUE register

B

RW

OUTMODEB

BA

RW

OUTMODEB.MODE

Alias to OUTMODEB.MODE register

NoShifting

0x0

No shifting

OutBBuf

0x2

Only OUTB used for buffering

OutBBufToggleClk

0x4

Only OUTB used for buffering, auto-toggle clock line

BB

RW

OUTMODEB.FRAMEWIDTH

0..16

Alias to OUTMODEB.FRAMEWIDTH register

C

RW

INMODEB

CA

RW

INMODEB.MODE

Alias to INMODEB.MODE register

CONTINUOUS

0x0

Continuous sampling (if CPU is not sleeping)

EVENT

0x1

Sampling on Counter1 event

SHIFT

0x2

Sampling and shifting on Counter1 event

NORDIC.SHIFTCNTIN

Address offset: 0xBCD

Number of frames to be shifted from INB before new data is required

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VALUE

0..63

Value

NORDIC.SHIFTCNTOUT

Address offset: 0xBCE

Number of frames to be shifted to OUTB before new data is required

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VALUE

0..63

Value

NORDIC.SHIFTCNTB

Address offset: 0xBCF

Buffered SHIFTCNTOUT and SHIFTCNTIN register

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

VALUE

0..63

Value

NORDIC.OUTTGL

Address offset: 0xBD0

GPIO Output Toggle

Toggles bits in OUT. Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

PIN[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.DIRTGL

Address offset: 0xBD1

GPIO pin Direction Toggle

Toggles bits in DIR. Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

PIN[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.OUTBTGL

Address offset: 0xBD2

Buffered GPIO Output Toggle

Toggles bits in OUTB[15:0] (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

PIN[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.DIRBTGL

Address offset: 0xBD3

Buffered GPIO pin Direction Toggle

Toggles bits in DIRB (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

PIN[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.DIROUTTGL

Address offset: 0xBD4

DIROUT Toggle

Toggles bits in DIR[15:0] and OUT[15:0] in the same operation. Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

OUT[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

Q-f

W

DIR[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.DIROUTBTGL

Address offset: 0xBD5

DIROUTB Toggle

Toggles bits in DIRB[15:0] and OUTB[15:0] in the same operation (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

OUTB[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

Q-f

W

DIRB[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.OUTBS

Address offset: 0xBD8

Buffered GPIO Output Dirty Status

Reads OUTB dirty status. Writes OUTB[15:0] value (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

OUTB

Write to OUTB (if not dirty)

A

R

DIRTYBIT

Read Buffer Dirty status

CLEAN

0x0

Buffer is clean

DIRTY

0x1

Buffer is dirty

NORDIC.DIRBS

Address offset: 0xBD9

Buffered GPIO pin Direction Dirty Status

Reads DIRB dirty status. Writes DIRB value (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

DIRB

Write to DIRB (if not dirty)

A

R

DIRTYBIT

Read Buffer Dirty status

CLEAN

0x0

Buffer is clean

DIRTY

0x1

Buffer is dirty

NORDIC.DIROUTBS

Address offset: 0xBDA

Combination of DIRB and OUTB Dirty Status

Reads combination (OR) of DIRB and OUTB dirty status. Writes DIRB and OUTB[15:0] in the same operation (sets dirty status of both buffers). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

DIROUTB

Write to DIROUTB (if not dirty)

A

R

DIRTYBIT

Read Combination (OR) of DIRB and OUTB Dirty status

CLEAN

0x0

Buffer is clean

DIRTY

0x1

Buffer is dirty

NORDIC.OUTBD

Address offset: 0xBE0

Concatenation of Buffered GPIO Output and GPIO Output

Addresses OUTB[15:0] and OUT in the same operation (sets OUTB dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

OUT

GPIO Output

Shares a physical register with MINSTRET (upper 16 bits) and EVENTS (lower 16 bits)

B

W

OUTB

Buffered GPIO Output

Shares a physical register with MINSTRET (lower 16 bits) and EVENTSB (lower 16 bits).

NORDIC.OUTBDTGL

Address offset: 0xBE1

OUTBD Toggle

Toggles bits in OUTB[15:0] and OUT in the same operation (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-P

W

OUT[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

Q-f

W

OUTB[i] (i=0..15)

UNCHANGED

0x0

Pin remains unchanged

TOGGLE

0x1

Pin is toggled

NORDIC.OUTBDS

Address offset: 0xBE2

OUTBD Dirty Status

Reads OUTBD Dirty status. Writes OUTBD value (sets dirty status). Real Time Peripherals VIO

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

OUTBD

Write to OUTBD register (if not dirty)

A

R

DIRTYBIT

Read OUTB and OUT parallel write Dirty status

CLEAN

0x0

Buffer is clean

DIRTY

0x1

Buffer is dirty

NORDIC.OUTMODE

Address offset: 0xBE3

Serial output mode

Bit number313029282726252423222120191817161514131211109876543210
IDCCCCCAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MODE

Mode

NoShifting

0x0

No shifting

OutBBuf

0x2

Only OUTB used for buffering

OutBBufToggleClk

0x4

Only OUTB used for buffering, auto-toggle clock line

A

RW

SHIFTMODE

Shift mode

This field is deprecated.

Disabled

0x0

Shift mode is disabled

Enabled

0x1

Shift mode is enabled

C

RW

FRAMEWIDTH

0..16

Output frame width

MODE=0x1: BITS=2^FRAMEWIDTH. Legal FRAMEWIDTH values: 0, 1, 2, 3, 4

MODE=0x2: BITS=FRAMEWIDTH. Legal values: 1, 2, 3, 4, 5, 6, 7, 8, 16 (9-15 are not legal)

MODE=0x4: BITS=FRAMEWIDTH. Legal values: 1, 2, 3, 4, 5, 6, 7, 8

C

RW

SHIFSIZE

Shift size. Only applies if Shift mode is enabled

This field is deprecated.

SHIFT1

0x0

Shift OUT by 1 bit

SHIFT2

0x1

Shift OUT by 2 bits

SHIFT4

0x2

Shift OUT by 4 bits

SHIFT8

0x3

Shift OUT by 8 bits

SHIFT16

0x4

Shift OUT by 16 bits

NORDIC.OUTMODEB

Address offset: 0xBE4

Buffered OUTMODE register

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBBAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MODE

Mode

NoShifting

0x0

No shifting

OutBBuf

0x2

Only OUTB used for buffering

OutBBufToggleClk

0x4

Only OUTB used for buffering, auto-toggle clock line

B

RW

FRAMEWIDTH

0..16

Frame width in bits

NORDIC.INMODEB

Address offset: 0xBE5

Buffered INMODE register

Bit number313029282726252423222120191817161514131211109876543210
IDAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MODE

Input Mode

CONTINUOUS

0x0

Continuous sampling (if CPU is not sleeping)

EVENT

0x1

Sampling on Counter1 event

SHIFT

0x2

Sampling and shifting on Counter1 event

NORDIC.INB

Address offset: 0xBE6

Buffered GPIO input

GPIO Input. Real Time Peripherals VIO.

Bit number313029282726252423222120191817161514131211109876543210
IDfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-f

R

PIN[i] (i=0..31)

LOW

0x0

Pin is Low

HIGH

0x1

Pin is High