PSKEYS.TXT
==========
Stack version: 0x10b5 bc3k_8unified_fl_bt2.0_22_0702091828_encr56 2007-02-09
This file describes the firmware's pskeys. (This single file replaces
the files user_keys.txt, developer_keys.txt and csr_keys.txt provided
with previous builds.)
==============================================================================
NAME
PSKEY_BDADDR (0x0001)
SUMMARY
Bluetooth address
TYPE
bdaddr
DEFAULT VALUE
{ 0x00A5A5, 0x5b, 0x0002 }
DESCRIPTION
The local device's Bluetooth address. This should be unique to this
device - allocated during manufacturing.
The type bdaddr can be viewed as a uint16[4] array:
1st uint16: The top 8 bits of the LAP are in the bottom 8
bits of this word. The top 8 bits of this word
must be zero.
2nd uint16: lower 16 bits of the LAP
3rd uint16: The 8 bit UAP is in the bottom 8 bits of this
word. The top 8 bits of this word must be
zero.
4th uint16: 16 bit NAP
For example, the Bluetooth address 123456789abc is encoded as 0078,
9abc, 0056, 1234.
The default value of this key is one of CSR's legal addresses:
00025b00a5a5.
As stated in the Bluetooth specification, LAP values from 9e8b00 up
to, and including, 9e8b3f must not be used as this range is reserved
for inquiry access codes (IACs).
Bluetooth module manufacturers must obtain their own block of
addresses from the Bluetooth SIG/IEEE. If CSR's experience is
typical, these authorities define the NAP and UAP, allowing
manufacturers to set the 24 bit LAP.
==============================================================================
NAME
PSKEY_COUNTRYCODE (0x0002)
SUMMARY
Country code
TYPE
uint16
DEFAULT VALUE
(0)
DESCRIPTION
North America and most of Europe use a particular block of 79
radio frequencies for Bluetooth, but not all countries allow use
of these frequencies. Some countries allow the use of different
blocks of frequencies. This key selects the frequency blocks used
by these exceptional countries.
Over time most countries are adopting the default 79 frequency block,
so the need for this value is diminishing. At the time of writing
this comment it is expected that France, Spain and Japan will use
the default frequency block by January 2001.
0 North America and Europe, except ...
1 France
2 Spain
3 Japan
==============================================================================
NAME
PSKEY_CLASSOFDEVICE (0x0003)
SUMMARY
Class of device
TYPE
bdcod
DEFAULT VALUE
(0)
DESCRIPTION
The local device's default Bluetooth "class of Device" or CoD.
Type bdcod is really a uint32. The class of device is a 24 bit
value stored in a uint32; the highest byte must be zero.
This is the device's default class of device, used when the device
boots. The device's class of device may subsequently be changed by
an HCI command. The HCI command does not change the value stored
under this pskey.
The least significant two bits reveal the format of the other 22
bits. The only format currently defined is for where the two
bits are zero:
Bits Content
1 - 0 Format Type (0)
2 - 7 Minor Dev Class (in the context of the Major Dev Class)
8 - 12 Major Dev Class
13 - 23 Major Service Class
At the time of writing this comment the firmware makes no use of
this knowledge.
==============================================================================
NAME
PSKEY_DEVICE_DRIFT (0x0004)
SUMMARY
Device drift
TYPE
uint16
DEFAULT VALUE
(250)
DESCRIPTION
This should hold the local device's radio drift in parts
per million. The maximum value allowed by the Bluetooth specification
is 250.
This value is used in LMP_timing_accuracy_res messages sent to
peers, as described in Bluetooth version 1.1, LMP specification,
section 5.2. It is also used in calculations in low power modes
to decide for how long the radio on a slave device must be turned on
in order to resynchronise with a remote master: reducing the value
therefore allows power saving.
The default value is appropriate when BlueCore's internal low power
oscillator is in use to maintain timing during low power modes. This
is true for the default PS settings. There are two occasions on which
this key might usefully be decreased.
- If PSKEY_DEEP_SLEEP_STATE is not set to its default value 1
(use deep sleep whenever possible), the low power oscillator will
not be used and the value of this PS key can be set to 20 to reflect
normal Bluetooth connection accuracy in low power modes.
- If PSKEY_DEEP_SLEEP_USE_EXTERNAL_CLOCK is set to TRUE, then the
value of this PS key may be set to the worst-case accuracy of
the external clock in use, in parts per million.
==============================================================================
NAME
PSKEY_DEVICE_JITTER (0x0005)
SUMMARY
Device jitter
TYPE
uint16
DEFAULT VALUE
(10)
DESCRIPTION
This should hold the local device's radio jitter in microseconds.
(LMP v1.1, section 5.2.)
This value is used in LMP_timing_accuracy_res messages sent to
peers. This is the only use made of this pskey.
==============================================================================
NAME
PSKEY_MAX_ACLS (0x000d)
SUMMARY
Maximum ACL links
TYPE
uint16
DEFAULT VALUE
(7)
DESCRIPTION
The maximum number of concurrent ACL connections to other devices.
Links to remote devices use substantial amounts of RAM to maintain
connection state, so this value should be kept modest. It is
advisable to trim this value to match the application, allowing any
liberated RAM to be used elsewhere. The value must be reduced
if the chip is running any of the higher layers of the Bluetooth
stack as these take from the common supply of RAM.
==============================================================================
NAME
PSKEY_MAX_SCOS (0x000e)
SUMMARY
Maximum SCO links
TYPE
uint16
DEFAULT VALUE
(3)
DESCRIPTION
The maximum number of SCO links to (all) other devices.
The firmware may use a value lower than 3, e.g., because
SCO data can only flow over the BlueCore01b's single PCM interface.
==============================================================================
NAME
PSKEY_MAX_REMOTE_MASTERS (0x000f)
SUMMARY
Maximum remote masters
TYPE
uint16
DEFAULT VALUE
(2)
DESCRIPTION
The local device's maximum number of remote piconet masters.
Connecting to multiple remote masters implies the use of scatternets.
The current firmware supports one permanent remote master, plus a
second remote master in a temporary state either for performing a
remote name request or in order to connect by a role switch to become
a slave.
See the description of PSKEY_ENABLE_MASTERY_WITH_SLAVERY.
==============================================================================
NAME
PSKEY_ENABLE_MASTERY_WITH_SLAVERY (0x0010)
SUMMARY
Support master and slave roles simultaneously
TYPE
bool
DEFAULT VALUE
(TRUE)
DESCRIPTION
If set TRUE (value 1) then the firmware is configured to support
being a master of its own piconet at the same time as being a slave
in one or more other piconets. This implies the use of scatternets.
This value is constrained by the value of the pskey
PSKEY_MAX_REMOTE_MASTERS.
The "barge-in" connection sequence (an existing master page-scans,
it is paged by new a device, then the new device's link performs
a master/slave switch) implies a temporary scatternet. This pskey
does not affect this behaviour.
See the description of PSKEY_MAX_REMOTE_MASTERS.
(Type bool is fundamentally a uint16 with values 0 and 1 mapping to
FALSE and TRUE.)
==============================================================================
NAME
PSKEY_H_HC_FC_MAX_ACL_PKT_LEN (0x0011)
SUMMARY
Maximum HCI ACL packet length
TYPE
uint16
DEFAULT