Product Specs

Table Of Contents
30 AAR Accelerated address resolver
Page
276
LSB
MSB
random
1 0
30 AAR Accelerated address resolver
Accelerated address resolver is a cryptographic support function for implementing the "Resolvable Private
Address Resolution Procedure" described in the Bluetooth Core specification v4.0. "Resolvable private
address generation" should be achieved using ECB and is not supported by AAR.
The procedure allows two devices that share a secret key to generate and resolve a hash based on their
device address. The AAR block enables real-time address resolution on incoming packets when configured
as described in this chapter. This allows real-time packet filtering (whitelisting) using a list of known shared
keys (Identity Resolving Keys (IRK) in Bluetooth).
30.1 Shared resources
The AAR shares registers and other resources with the peripherals that have the same ID as the AAR.
The user must therefore disable all peripherals that have the same ID as the AAR before the AAR can be
configured and used.
Disabling a peripheral that have the same ID as the AAR will not reset any of the registers that are shared
with the AAR. It is therefore important to configure all relevant AAR registers explicitly to secure that it
operates correctly.
See the Instantiation table in Instantiation on page 24 for details on peripherals and their IDs.
30.2 EasyDMA
The AAR implements EasyDMA for reading and writing to the RAM. The EasyDMA will have finished
accessing the RAM when the END, RESOLVED, and NOTRESOLVED events are generated.
If the IRKPTR, ADDRPTR and the SCRATCHPTR is not pointing to the Data RAM region, an EasyDMA
transfer may result in a HardFault or RAM corruption. See Memory on page 23 for more information about
the different memory regions.
30.3 Resolving a resolvable address
As per Bluetooth specification, a private resolvable address is composed of six bytes.
hash prand
(24-bit) (24-bit)
Figure 66: Resolvable address
To resolve an address the ADDRPTR register must point to the start of packet. The resolver is started by
triggering the START task. A RESOLVED event is generated when the AAR manages to resolve the address
using one of the Identity Resolving Keys (IRK) found in the IRK data structure. The AAR will use the IRK
specified in the register IRK0 to IRK15 starting from IRK0. How many to be used is specified by the NIRK
register. The AAR module will generate a NOTRESOLVED event if it is not able to resolve the address using
the specified list of IRKs.
The AAR will go through the list of available IRKs in the IRK data structure and for each IRK try to resolve
the address according to the Resolvable Private Address Resolution Procedure described in the Bluetooth
Specification
24
. The time it takes to resolve an address may vary depending on where in the list the
24
Bluetooth Specification Version 4.0 [Vol 3] chapter 10.8.2.3.