Skip to content

Commit 7ddb257

Browse files
LipinskiPNordicSemiLuDuda
authored andcommitted
[nrfconnect] Versioning with VERSION file for matter implemented
This commit adds posibility to use VERSION file which will work properly for DFU SMP and Matter OTA. Signed-off-by: Patryk Lipinski <patryk.lipinski@nordicsemi.no>
1 parent 040e5bf commit 7ddb257

File tree

3 files changed

+47
-12
lines changed

3 files changed

+47
-12
lines changed

config/zephyr/Kconfig

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ config CHIP_DEVICE_HARDWARE_VERSION_STRING
9595
hardware version string is exposed as an attribute of the Basic
9696
Information cluster.
9797

98+
if "$(APPVERSION)"=""
9899
config CHIP_DEVICE_SOFTWARE_VERSION
99100
int "Software version"
100101
default 0
@@ -116,6 +117,7 @@ config CHIP_DEVICE_SOFTWARE_VERSION_STRING
116117
software version string is exposed as an attribute of the Basic
117118
Information cluster, and included in the header of the generated Matter
118119
over-the-air (OTA) update image.
120+
endif
119121

120122
config CHIP_DEVICE_MANUFACTURING_DATE
121123
string "Manufacturing date (ISO 8601 format)"

config/zephyr/ota-image.cmake

+27-12
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,33 @@ function(chip_ota_image TARGET_NAME)
3131
endif()
3232

3333
# Prepare ota_image_tool.py argument list
34-
set(OTA_ARGS
35-
"--vendor-id"
36-
${CONFIG_CHIP_DEVICE_VENDOR_ID}
37-
"--product-id"
38-
${CONFIG_CHIP_DEVICE_PRODUCT_ID}
39-
"--version"
40-
${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION}
41-
"--version-str"
42-
${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING}
43-
"--digest-algorithm"
44-
"sha256"
45-
)
34+
if(DEFINED APPVERSION)
35+
set(OTA_ARGS
36+
"--vendor-id"
37+
${CONFIG_CHIP_DEVICE_VENDOR_ID}
38+
"--product-id"
39+
${CONFIG_CHIP_DEVICE_PRODUCT_ID}
40+
"--version"
41+
${APPVERSION}
42+
"--version-str"
43+
${APP_VERSION_STRING}
44+
"--digest-algorithm"
45+
"sha256"
46+
)
47+
else()
48+
set(OTA_ARGS
49+
"--vendor-id"
50+
${CONFIG_CHIP_DEVICE_VENDOR_ID}
51+
"--product-id"
52+
${CONFIG_CHIP_DEVICE_PRODUCT_ID}
53+
"--version"
54+
${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION}
55+
"--version-str"
56+
${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING}
57+
"--digest-algorithm"
58+
"sha256"
59+
)
60+
endif()
4661

4762
separate_arguments(OTA_EXTRA_ARGS NATIVE_COMMAND "${CHIP_OTA_IMAGE_EXTRA_ARGS}")
4863

src/platform/nrfconnect/CHIPDevicePlatformConfig.h

+18
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
#pragma once
2525

26+
#ifndef CONFIG_CHIP_DEVICE_SOFTWARE_VERSION
27+
#include "app_version.h"
28+
#endif
2629
#include "autoconf.h"
2730

2831
// ==================== Platform Adaptations ====================
@@ -33,8 +36,23 @@
3336
#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME CONFIG_CHIP_DEVICE_PRODUCT_NAME
3437
#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION CONFIG_CHIP_DEVICE_HARDWARE_VERSION
3538
#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING CONFIG_CHIP_DEVICE_HARDWARE_VERSION_STRING
39+
40+
#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION
41+
#ifdef CONFIG_CHIP_DEVICE_SOFTWARE_VERSION
3642
#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION CONFIG_CHIP_DEVICE_SOFTWARE_VERSION
43+
#else
44+
#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION APPVERSION
45+
#endif
46+
#endif
47+
48+
#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
49+
#ifdef CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING
3750
#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING
51+
#else
52+
#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING APP_VERSION_STRING
53+
#endif
54+
#endif
55+
3856
#define CHIP_DEVICE_CONFIG_TEST_MANUFACTURING_DATE CONFIG_CHIP_DEVICE_MANUFACTURING_DATE
3957
#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER CONFIG_CHIP_DEVICE_SERIAL_NUMBER
4058
#define CHIP_DEVICE_CONFIG_DEVICE_TYPE CONFIG_CHIP_DEVICE_TYPE

0 commit comments

Comments
 (0)