Provisioning information
This section describes all of the information and parameters that you must provision to the device so it can connect to Device Management. We call a collection of such parameters a bundle.
This section covers:
- General device information.
- Connection configurations.
- Update auth.
- Ownership claiming (or first to claim).
- Secure device access.
- Custom properties.
Parameter rules
Parameters can be in one of the following formats:
- String: A collection of bytes (typically printable characters) of arbitrary size. The String is not a null-terminated string.
- Integer: A number, represented in exactly the specified amount of bytes, expressed in machine endianness.
- DER: A key or certificate in format X.509 DER.
To avoid conflicts, all the Arm Device Management defined device parameters listed below are prefixed with mbed.
. For example, mbed.UseBootstrap
. If you define your own custom properties, you should use your own prefixes, with the pattern customerName.parameterName
.
Injection requirements
At a minimum, the provisioning information injected to the device must contain all of the mandatory parameters (as detailed in the tables below).
KCM stores these as key-value pairs. You need to format the provisioning information in a way that your factory tool understands and the delivery protocol supports. Then, parse and process it yourself on the device. Pay special attention to the following (detailed for each parameter in the tables below):
- Name on the device: You need to inject to KCM the parameter with the name the device expects.
- KCM type: KCM uses the type to determine how to save the parameter on the device storage, which verification to perform and how to retrieve the parameter.
- Format in KCM: Ensure that you create parameters in the correct format.
If you are using FCU, the provisioning information is formatted by FCU in a bundle and parsed by FCC on the device. The bundle's format is internal - you don't need to manipulate it. In the tables below, pay special attention to:
- FCU configuration source: Defines where the FCU takes the parameter's value from.
- FCU parameter name: This is the name by which FCU knows that parameter; it is the name of either a configuration option or an API parameter.
Understanding the tables
Whether or not you are using FCU, the tables below contain information you'll need for your factory process:
- If you are using your own tools to generate and inject all parameters to the device, please use these tables to ensure that you pass the required parameters in the correct format.
- If you are using FCU to generate all parameters, you may still find these tables useful for your own understanding.
- In all cases, you may need to refer to these tables while debugging the parameter generation process.
Endpoint name
Tip: For more information on endpoint names, see the device identity section.
FCU parameter name |
endpoint_name |
Name on the device |
mbed.EndpointName |
Details |
Unique identifier of the device you give to your device in the factory. FCU uses the endpoint name as the Common Name (CN) of the device certificate. We recommend using only the characters a-z, A-Z, ' () +,-.?:/= and SPACE for the endpoint name. |
Mandatory/optional |
Mandatory |
FCU configuration source |
API parameter |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present and not empty |
Validations in FCC |
Present and not empty |
Entropy
FCU parameter name |
N/A |
Name on the device |
Entropy |
Details |
Determines the entropy source. Devices without a strong source of entropy are considered insecure. A reliable source of entropy must be provided, so that any keys and credentials generated on the device are not predictable to an attacker. |
Mandatory/optional |
Optional |
FCU configuration source |
Depends on entropy-generation-mode : | by_device | Entropy does not exist in the bundle | by_tool | FCU generates internally | externally_supplied | File entropy.bin in the device configuration folder (derived from API parameter device_keys_location ) |
|
KCM type |
N/A |
Format in KCM |
N/A |
Validations in FCU |
Present if entropy-generation-mode is not by_device , binary, size of 48 bytes |
Validations in FCC |
If present - size of 48 bytes |
Verify device configuration on device
FCU parameter name |
verify-on-device |
Name on the device |
Verify |
Details |
True/False. |
Mandatory/optional |
Optional |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
Integer, 4 bytes, machine endianity, 1 (true), 0 (false) |
Validations in FCU |
Present only when configured true |
Validations in FCC |
N/A |
Disable factory flow
FCU parameter name |
factory_fcc_disable |
Name on the device |
Disable |
Details |
True/False. |
Mandatory/optional |
Optional |
FCU configuration source |
API parameter |
KCM type |
Configuration parameter |
Format in KCM |
Integer, 4 bytes, machine endianity, 1 (true), 0 (false) |
Validations in FCU |
Present only when configured true |
Validations in FCC |
N/A |
LwM2M Device Object
Manufacturer
FCU parameter name |
manufacturer-name |
Name on the device |
mbed.Manufacturer |
Details |
Manufacturer name as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present |
Validations in FCC |
Present |
Model number
FCU parameter name |
model-number |
Name on the device |
mbed.ModelNumber |
Details |
Device model number as specified in the OMA LwM2M 1.0. |
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present |
Validations in FCC |
Present |
Serial number
FCU parameter name |
serial_number |
Name on the device |
mbed.SerialNumber |
Details |
Device serial number, as specified in the OMA LwM2M 1.0 standard. We recommend using the same value as the endpoint name. |
Mandatory/optional |
Mandatory |
FCU configuration source |
API parameter |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present |
Validations in FCC |
Present |
Device type
FCU parameter name |
device-type |
Name on the device |
mbed.DeviceType |
Details |
Device type, as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present |
Validations in FCC |
Present |
Hardware version
FCU parameter name |
hardware-version |
Name on the device |
mbed.HardwareVersion |
Details |
Hardware version, as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
String |
Validations in FCU |
Present |
Validations in FCC |
Present |
Memory total size
FCU parameter name |
memory-total |
Name on the device |
mbed.MemoryTotalKB |
Details |
Total device memory as specified in the OMA LwM2M 1.0 standard. In kilobytes.
|
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
Integer, 4 bytes, machine endianity |
Validations in FCU |
Present |
Validations in FCC |
Present |
Time synchronization (part of LwM2M Device Object)
Synchronize device time
FCU parameter name |
time-sync |
Name on the device |
N/A |
Details |
True/False. |
Mandatory/optional |
Mandatory |
FCU configuration source |
Configuration file |
KCM type |
N/A |
Format in KCM |
N/A |
Validations in FCU |
Present, boolean |
Validations in FCC |
N/A |
Device current Unix time (UTC)
FCU parameter name |
N/A |
Name on the device |
mbed.CurrentTime |
Details |
Used to initialize the device RTC clock, as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Optional |
FCU configuration source |
System Time, if time-sync=true |
KCM type |
Configuration parameter |
Format in KCM |
Integer, 8 bytes, machine endianity, seconds since 1 January 1970 |
Validations in FCU |
N/A |
Validations in FCC |
N/A |
Time zone of the device
FCU parameter name |
timezone |
Name on the device |
mbed.Timezone |
Details |
Device time zone, as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Optional |
FCU configuration source |
Configuration file |
KCM type |
Configuration parameter |
Format in KCM |
String (IANA time zone, for example Europe/Paris ) |
Validations in FCU |
Valid IANA time zone |
Validations in FCC |
N/A |
Offset of the device time zone from UTC
FCU parameter name |
N/A |
Name on the device |
mbed.UTCOffset |
Details |
Offset from UTC, as specified in the OMA LwM2M 1.0 standard. |
Mandatory/optional |
Optional |
FCU configuration source |
UTC offset for given time zone |
KCM type |
Configuration parameter |
Format in KCM |
String (ISO-8601, for example +02:00 ) |
Validations in FCU |
Valid time format ISO-8601 |
Validations in FCC |
N/A |