You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
soc: cyw20829: Initial integrate Cypress MCUBoot for 20829
Added custom mcuboot cmake for sign/encrypt by using cysecuretools
Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
The AIROC™ CYW20829 Bluetooth® LE MCU Evaluation Kit (CYW920829M2EVK-02) with its included on-board peripherals enables evaluation, prototyping, and development of a wide array of Bluetooth® Low Energy applications, all on Infineon's low power, high performance AIROC™ CYW20829. The AIROC™ CYW20829's robust RF performance and 10 dBm TX output power without an external power amplifier (PA). This provides enough link budget for the entire spectrum of Bluetooth® LE use cases including industrial IoT applications, smart home, asset tracking, beacons and sensors, and medical devices.
7
-
8
-
The system features Dual Arm® Cortex® - M33s for powering the MCU and Bluetooth subsystem with programmable and reconfigurable analog and digital blocks. In addition, on the kit, there is a suite of on-board peripherals including six-axis inertial measurement unit (IMU), thermistor, analog mic, user programmable buttons (2), LEDs (2), and RGB LED. There is also extensive GPIO support with extended headers and Arduino Uno R3 compatibility for third-party shields.
6
+
The AIROC™ CYW20829 Bluetooth® LE MCU Evaluation Kit (CYW920829M2EVK-02) with its included on-board
7
+
peripherals enables evaluation, prototyping, and development of a wide array of
8
+
Bluetooth® Low Energy applications, all on Infineon's low power, high performance AIROC™ CYW20829.
9
+
The AIROC™ CYW20829's robust RF performance and 10 dBm TX output power without an external power
10
+
amplifier (PA). This provides enough link budget for the entire spectrum of Bluetooth® LE use cases
11
+
including industrial IoT applications, smart home, asset tracking, beacons and sensors, and
12
+
medical devices.
13
+
14
+
The system features Dual Arm® Cortex® - M33s for powering the MCU and Bluetooth subsystem with
15
+
programmable and reconfigurable analog and digital blocks. In addition, on the kit, there is a
16
+
suite of on-board peripherals including six-axis inertial measurement unit (IMU), thermistor,
17
+
analog mic, user programmable buttons (2), LEDs (2), and RGB LED. There is also extensive GPIO
18
+
support with extended headers and Arduino Uno R3 compatibility for third-party shields.
9
19
10
20
Hardware
11
21
********
@@ -20,7 +30,8 @@ Kit Features:
20
30
21
31
- AIROC™ CYW20829 Bluetooth® LE MCU in 56 pin QFN package
22
32
- Arduino compatible headers for hardware expansion
23
-
- On-board sensors - 6-axis IMU, Thermistor, Infineon analog microphone, and Infineon digital microphone
33
+
- On-board sensors - 6-axis IMU, Thermistor, Infineon analog microphone,
34
+
and Infineon digital microphone
24
35
- User switches, RGB LED and user LEDs
25
36
- USB connector for power, programming and USB-UART bridge
26
37
@@ -71,24 +82,38 @@ Programming and Debugging
71
82
72
83
.. zephyr:board-supported-runners::
73
84
74
-
The CYW920829M2EVK-02 includes an onboard programmer/debugger (`KitProg3`_) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
85
+
The CYW920829M2EVK-02 includes an onboard programmer/debugger (`KitProg3`_) to provide debugging,
86
+
flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and
87
+
require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
75
88
76
-
The CYW920829M2EVK-02 supports RTT via a SEGGER JLink device, under the target name cyw20829_tm. This can be enabled for an application by building with the rtt-console snippet or setting the following config values: CONFIG_UART_CONSOLE=n, CONFIG_RTT_CONSOLE=y, and CONFIG_USE_SEGGER_RTT=y.
89
+
The CYW920829M2EVK-02 supports RTT via a SEGGER JLink device, under the target name cyw20829_tm.
90
+
This can be enabled for an application by building with the rtt-console snippet or setting the
91
+
following config values: CONFIG_UART_CONSOLE=n, CONFIG_RTT_CONSOLE=y, and CONFIG_USE_SEGGER_RTT=y.
77
92
e.g. west build -p always -b cyw920829m2evk_02 samples/basic/blinky -S rtt-console
78
93
79
-
As an additional note there is currently a discrepancy in RAM address between SEGGER and the CYW920829M2EVK-02 device. So, for RTT control block, do not use "Auto Detection". Instead, set the search range to something reflecting: RAM RangeStart at 0x20000000 and RAM RangeSize of 0x3d000.
94
+
As an additional note there is currently a discrepancy in RAM address between SEGGER and the
95
+
CYW920829M2EVK-02 device. So, for RTT control block, do not use "Auto Detection". Instead, set
96
+
the search range to something reflecting: RAM RangeStart at 0x20000000 and RAM RangeSize of 0x3d000.
80
97
81
98
Infineon OpenOCD Installation
82
99
=============================
83
100
84
-
Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD. Installing either of these packages will also install Infineon OpenOCD. If neither package is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for your system and manually extract the files to a location of your choice.
101
+
Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon
102
+
OpenOCD. Installing either of these packages will also install Infineon OpenOCD. If neither package
103
+
is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for
104
+
your system and manually extract the files to a location of your choice.
85
105
86
-
.. note:: Linux requires device access rights to be set up for KitProg3. This is handled automatically by the ModusToolbox and ModusToolbox Programming Tools installations. When doing a minimal installation, this can be done manually by executing the script ``openocd/udev_rules/install_rules.sh``.
106
+
.. note:: Linux requires device access rights to be set up for KitProg3. This is handled
107
+
automatically by the ModusToolbox and ModusToolbox Programming Tools installations.
108
+
When doing a minimal installation, this can be done manually by executing the
109
+
script ``openocd/udev_rules/install_rules.sh``.
87
110
88
111
West Commands
89
112
=============
90
113
91
-
The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool commands. There are multiple ways of doing this. The example below uses a permanent CMake argument to set the CMake variable ``OPENOCD``.
114
+
The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool
115
+
commands. There are multiple ways of doing this. The example below uses a permanent CMake argument
116
+
to set the CMake variable ``OPENOCD``.
92
117
93
118
.. tabs::
94
119
.. group-tab:: Windows
@@ -117,7 +142,101 @@ The path to the installed Infineon OpenOCD executable must be available to the `
117
142
west flash
118
143
west debug
119
144
120
-
Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the CYW20829 CM33 core.
145
+
Once the gdb console starts after executing the west debug command, you may now set breakpoints and
146
+
perform other standard GDB debugging on the CYW20829 CM33 core.
147
+
148
+
Operate in SECURE Lifecycle Stage
149
+
*********************************
150
+
151
+
The device lifecycle stage (LCS) is a key aspect of the security of the AIROC™
152
+
CYW20829 Bluetooth® MCU. The lifecycle stages follow a strict, irreversible progression dictated by
153
+
the programming of the eFuse bits (changing the value from "0" to "1"). This system is used to
154
+
protect the device's data and code at the level required by the user.
155
+
SECURE is the lifecycle stage of a secured device.
156
+
Follow the instructions in `AN239590 Provision CYW20829 to SECURE LCS`_ to transition the device
157
+
to SECURE LCS. In the SECURE LCS stage, the protection state is set to secure. A secured device
158
+
will only boot if the authentication of its flash content is successful.
159
+
160
+
The following configuration options can be used to build for a device which has been provisioned
161
+
to SECURE LCS and configured to use an encrypted flash interface:
162
+
163
+
- :kconfig:option:`CONFIG_INFINEON_SECURE_LCS`: Enable if the target device is in SECURE LCS
164
+
- :kconfig:option:`CONFIG_INFINEON_SECURE_POLICY`: Path to the policy JSON file,
165
+
which was created for provisioning the device to SECURE LCS (refer to section 3.2 "Key creation"
166
+
of `AN239590 Provision CYW20829 to SECURE LCS`_)
167
+
- :kconfig:option:`CONFIG_INFINEON_SMIF_ENCRYPTION`: Enable to use encrypted flash interface when provisioned to
168
+
SECURE LCS.
169
+
170
+
Here is an example for building the :zephyr:code-sample:`blinky` sample application for SECURE LCS.
0 commit comments