Skip to content

Commit 94672ac

Browse files
henrikbrixandersenMaureenHelm
authored andcommitted
docs: release: migration guide: 3.6.0: add local ToC
Group related entries under subheadings and add a local table of contents to improve readability. Signed-off-by: Henrik Brix Andersen <[email protected]>
1 parent dc8dff0 commit 94672ac

File tree

1 file changed

+113
-96
lines changed

1 file changed

+113
-96
lines changed

doc/releases/migration-guide-3.6.rst

Lines changed: 113 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ Zephyr v3.6.0.
1111
Any other changes (not directly related to migrating applications) can be found in
1212
the :ref:`release notes<zephyr_3.6>`.
1313

14+
.. contents::
15+
:local:
16+
:depth: 2
17+
1418
Build System
1519
************
1620

@@ -51,8 +55,11 @@ Boards
5155
following NXP boards: ``mimxrt685_evk_cm33``, ``frdm_k64f``, ``mimxrt1050_evk``, ``frdm_kl25z``,
5256
``mimxrt1020_evk``, ``mimxrt1015_evk``
5357

58+
Modules
59+
*******
60+
5461
Optional Modules
55-
****************
62+
================
5663

5764
The following modules have been made optional and are not downloaded with `west update` by default
5865
anymore:
@@ -63,8 +70,42 @@ To enable them again use the ``west config manifest.project-filter -- +<module
6370
name>`` command, or ``west config manifest.group-filter -- +optional`` to
6471
enable all optional modules, and then run ``west update`` again.
6572

66-
Device Drivers and Device Tree
67-
******************************
73+
MCUboot
74+
=======
75+
76+
* MCUboot's deprecated ``CONFIG_ZEPHYR_TRY_MASS_ERASE`` Kconfig option has been removed. If an
77+
erase is needed when flashing MCUboot, this should now be provided directly to the ``west``
78+
command e.g. ``west flash --erase``. (:github:`64703`)
79+
80+
zcbor
81+
=====
82+
83+
* If you have zcbor-generated code that relies on the zcbor libraries through Zephyr, you must
84+
regenerate the files using zcbor 0.8.1. Note that the names of generated types and members has
85+
been overhauled, so the code using the generated code must likely be changed.
86+
For example:
87+
88+
* Leading single underscores and all double underscores are largely gone,
89+
* Names sometimes gain suffixes like ``_m`` or ``_l`` for disambiguation.
90+
* All enum (choice) names have now gained a ``_c`` suffix, so the enum name no longer matches
91+
the corresponding member name exactly (because this broke C++ namespace rules).
92+
93+
* The function :c:func:`zcbor_new_state`, :c:func:`zcbor_new_decode_state` and the macro
94+
:c:macro:`ZCBOR_STATE_D` have gained new parameters related to decoding of unordered maps.
95+
Unless you are using that new functionality, these can all be set to NULL or 0.
96+
97+
* The functions :c:func:`zcbor_bstr_put_term` and :c:func:`zcbor_tstr_put_term` have gained a new
98+
parameter ``maxlen``, referring to the maximum length of the parameter ``str``.
99+
This parameter is passed directly to :c:func:`strnlen` under the hood.
100+
101+
* The function :c:func:`zcbor_tag_encode` has been renamed to :c:func:`zcbor_tag_put`.
102+
103+
* Printing has been changed significantly, e.g. :c:func:`zcbor_print` is now called
104+
:c:func:`zcbor_log`, and :c:func:`zcbor_trace` with no parameters is gone, and in its place are
105+
:c:func:`zcbor_trace_file` and :c:func:`zcbor_trace`, both of which take a ``state`` parameter.
106+
107+
Device Drivers and Devicetree
108+
*****************************
68109

69110
* Various deprecated macros related to the deprecated devicetree label property
70111
were removed. These are listed in the following table. The table also
@@ -294,6 +335,11 @@ Device Drivers and Device Tree
294335
};
295336
};
296337
338+
* Touchscreen drivers :dtcompatible:`focaltech,ft5336` and
339+
:dtcompatible:`goodix,gt911` were using the incorrect polarity for the
340+
respective ``reset-gpios``. This has been fixed so those signals now have to
341+
be flagged as :c:macro:`GPIO_ACTIVE_LOW` in the devicetree. (:github:`64800`)
342+
297343
* Runtime configuration is now disabled by default for Nordic UART drivers. The motivation for the
298344
change is that this feature is rarely used and disabling it significantly reduces the memory
299345
footprint.
@@ -357,57 +403,6 @@ Device Drivers and Device Tree
357403
* The :dtcompatible:`st,hci-spi-v1` should be used instead of :dtcompatible:`zephyr,bt-hci-spi`
358404
for the boards which are based on ST BlueNRG-MS.
359405

360-
Shell
361-
*****
362-
363-
* The following subsystem and driver shell modules are now disabled by default. Each required shell
364-
module must now be explicitly enabled via Kconfig (:github:`65307`):
365-
366-
* :kconfig:option:`CONFIG_ACPI_SHELL`
367-
* :kconfig:option:`CONFIG_ADC_SHELL`
368-
* :kconfig:option:`CONFIG_AUDIO_CODEC_SHELL`
369-
* :kconfig:option:`CONFIG_CAN_SHELL`
370-
* :kconfig:option:`CONFIG_CLOCK_CONTROL_NRF_SHELL`
371-
* :kconfig:option:`CONFIG_DAC_SHELL`
372-
* :kconfig:option:`CONFIG_DEBUG_COREDUMP_SHELL`
373-
* :kconfig:option:`CONFIG_EDAC_SHELL`
374-
* :kconfig:option:`CONFIG_EEPROM_SHELL`
375-
* :kconfig:option:`CONFIG_FLASH_SHELL`
376-
* :kconfig:option:`CONFIG_HWINFO_SHELL`
377-
* :kconfig:option:`CONFIG_I2C_SHELL`
378-
* :kconfig:option:`CONFIG_LOG_CMDS`
379-
* :kconfig:option:`CONFIG_LORA_SHELL`
380-
* :kconfig:option:`CONFIG_MCUBOOT_SHELL`
381-
* :kconfig:option:`CONFIG_MDIO_SHELL`
382-
* :kconfig:option:`CONFIG_OPENTHREAD_SHELL`
383-
* :kconfig:option:`CONFIG_PCIE_SHELL`
384-
* :kconfig:option:`CONFIG_PSCI_SHELL`
385-
* :kconfig:option:`CONFIG_PWM_SHELL`
386-
* :kconfig:option:`CONFIG_REGULATOR_SHELL`
387-
* :kconfig:option:`CONFIG_SENSOR_SHELL`
388-
* :kconfig:option:`CONFIG_SMBUS_SHELL`
389-
* :kconfig:option:`CONFIG_STATS_SHELL`
390-
* :kconfig:option:`CONFIG_USBD_SHELL`
391-
* :kconfig:option:`CONFIG_USBH_SHELL`
392-
* :kconfig:option:`CONFIG_W1_SHELL`
393-
* :kconfig:option:`CONFIG_WDT_SHELL`
394-
395-
* The ``SHELL_UART_DEFINE`` macro now only requires a ``_name`` argument. In the meantime, the
396-
macro accepts additional arguments (ring buffer TX & RX size arguments) for compatibility with
397-
previous Zephyr version, but they are ignored, and will be removed in future release.
398-
399-
* :kconfig:option:`CONFIG_SHELL_BACKEND_SERIAL_API` now does not automatically default to
400-
:kconfig:option:`CONFIG_SHELL_BACKEND_SERIAL_API_ASYNC` when
401-
:kconfig:option:`CONFIG_UART_ASYNC_API` is enabled, :kconfig:option:`CONFIG_SHELL_ASYNC_API`
402-
also has to be enabled in order to use the asynchronous serial shell (:github: `68475`).
403-
404-
Bootloader
405-
**********
406-
407-
* MCUboot's deprecated ``CONFIG_ZEPHYR_TRY_MASS_ERASE`` Kconfig option has been removed. If an
408-
erase is needed when flashing MCUboot, this should now be provided directly to the ``west``
409-
command e.g. ``west flash --erase``. (:github:`64703`)
410-
411406
Bluetooth
412407
*********
413408

@@ -440,7 +435,8 @@ Bluetooth
440435
as well. :c:func:`bt_iso_chan_send` now always sends without timestamp. To send with a timestamp,
441436
:c:func:`bt_iso_chan_send_ts` can be used.
442437

443-
* Mesh
438+
Bluetooth Mesh
439+
==============
444440

445441
* The Bluetooth Mesh ``model`` declaration has been changed to add prefix ``const``.
446442
The ``model->user_data``, ``model->elem_idx`` and ``model->mod_idx`` field has been changed to
@@ -471,7 +467,8 @@ Bluetooth
471467
:kconfig:option:`CONFIG_BT_MESH_SAR_RX_DISCARD_TIMEOUT`,
472468
:kconfig:option:`CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT` Kconfig options.
473469

474-
* Audio
470+
Bluetooth Audio
471+
===============
475472

476473
* The ``BT_AUDIO_CODEC_LC3_*`` values from ``<zephyr/bluetooth/audio/lc3.h>`` have moved to
477474
``<zephyr/bluetooth/audio/audio.h>`` and have the ``LC3`` part of their names replaced by a
@@ -490,16 +487,6 @@ Bluetooth
490487
:c:func:`bt_cap_stream_send` now always sends without timestamp.
491488
To send with a timestamp, :c:func:`bt_cap_stream_send_ts` can be used.
492489

493-
494-
LoRaWAN
495-
*******
496-
497-
* The API to register a callback to provide battery level information to the LoRaWAN stack has been
498-
renamed from ``lorawan_set_battery_level_callback`` to
499-
:c:func:`lorawan_register_battery_level_callback` and the return type is now ``void``. This
500-
is more consistent with similar functions for downlink and data rate changed callbacks.
501-
(:github:`65103`)
502-
503490
Networking
504491
**********
505492

@@ -548,44 +535,71 @@ Networking
548535
``struct net_buf_pool_fixed`` that was specific only for buffer pools with a fixed size was
549536
removed.
550537

551-
zcbor
552-
*****
538+
Other Subsystems
539+
****************
553540

554-
* If you have zcbor-generated code that relies on the zcbor libraries through Zephyr, you must
555-
regenerate the files using zcbor 0.8.1. Note that the names of generated types and members has
556-
been overhauled, so the code using the generated code must likely be changed.
557-
For example:
541+
LoRaWAN
542+
=======
558543

559-
* Leading single underscores and all double underscores are largely gone,
560-
* Names sometimes gain suffixes like ``_m`` or ``_l`` for disambiguation.
561-
* All enum (choice) names have now gained a ``_c`` suffix, so the enum name no longer matches
562-
the corresponding member name exactly (because this broke C++ namespace rules).
544+
* The API to register a callback to provide battery level information to the LoRaWAN stack has been
545+
renamed from ``lorawan_set_battery_level_callback`` to
546+
:c:func:`lorawan_register_battery_level_callback` and the return type is now ``void``. This
547+
is more consistent with similar functions for downlink and data rate changed callbacks.
548+
(:github:`65103`)
563549

564-
* The function :c:func:`zcbor_new_state`, :c:func:`zcbor_new_decode_state` and the macro
565-
:c:macro:`ZCBOR_STATE_D` have gained new parameters related to decoding of unordered maps.
566-
Unless you are using that new functionality, these can all be set to NULL or 0.
550+
MCUmgr
551+
======
567552

568-
* The functions :c:func:`zcbor_bstr_put_term` and :c:func:`zcbor_tstr_put_term` have gained a new
569-
parameter ``maxlen``, referring to the maximum length of the parameter ``str``.
570-
This parameter is passed directly to :c:func:`strnlen` under the hood.
553+
* MCUmgr applications that make use of serial transports (shell or UART) must now select
554+
:kconfig:option:`CONFIG_CRC`, this was previously erroneously selected if MCUmgr was enabled,
555+
when for non-serial transports it was not needed. (:github:`64078`)
571556

572-
* The function :c:func:`zcbor_tag_encode` has been renamed to :c:func:`zcbor_tag_put`.
557+
Shell
558+
=====
573559

574-
* Printing has been changed significantly, e.g. :c:func:`zcbor_print` is now called
575-
:c:func:`zcbor_log`, and :c:func:`zcbor_trace` with no parameters is gone, and in its place are
576-
:c:func:`zcbor_trace_file` and :c:func:`zcbor_trace`, both of which take a ``state`` parameter.
560+
* The following subsystem and driver shell modules are now disabled by default. Each required shell
561+
module must now be explicitly enabled via Kconfig (:github:`65307`):
577562

578-
Other Subsystems
579-
****************
563+
* :kconfig:option:`CONFIG_ACPI_SHELL`
564+
* :kconfig:option:`CONFIG_ADC_SHELL`
565+
* :kconfig:option:`CONFIG_AUDIO_CODEC_SHELL`
566+
* :kconfig:option:`CONFIG_CAN_SHELL`
567+
* :kconfig:option:`CONFIG_CLOCK_CONTROL_NRF_SHELL`
568+
* :kconfig:option:`CONFIG_DAC_SHELL`
569+
* :kconfig:option:`CONFIG_DEBUG_COREDUMP_SHELL`
570+
* :kconfig:option:`CONFIG_EDAC_SHELL`
571+
* :kconfig:option:`CONFIG_EEPROM_SHELL`
572+
* :kconfig:option:`CONFIG_FLASH_SHELL`
573+
* :kconfig:option:`CONFIG_HWINFO_SHELL`
574+
* :kconfig:option:`CONFIG_I2C_SHELL`
575+
* :kconfig:option:`CONFIG_LOG_CMDS`
576+
* :kconfig:option:`CONFIG_LORA_SHELL`
577+
* :kconfig:option:`CONFIG_MCUBOOT_SHELL`
578+
* :kconfig:option:`CONFIG_MDIO_SHELL`
579+
* :kconfig:option:`CONFIG_OPENTHREAD_SHELL`
580+
* :kconfig:option:`CONFIG_PCIE_SHELL`
581+
* :kconfig:option:`CONFIG_PSCI_SHELL`
582+
* :kconfig:option:`CONFIG_PWM_SHELL`
583+
* :kconfig:option:`CONFIG_REGULATOR_SHELL`
584+
* :kconfig:option:`CONFIG_SENSOR_SHELL`
585+
* :kconfig:option:`CONFIG_SMBUS_SHELL`
586+
* :kconfig:option:`CONFIG_STATS_SHELL`
587+
* :kconfig:option:`CONFIG_USBD_SHELL`
588+
* :kconfig:option:`CONFIG_USBH_SHELL`
589+
* :kconfig:option:`CONFIG_W1_SHELL`
590+
* :kconfig:option:`CONFIG_WDT_SHELL`
580591

581-
* MCUmgr applications that make use of serial transports (shell or UART) must now select
582-
:kconfig:option:`CONFIG_CRC`, this was previously erroneously selected if MCUmgr was enabled,
583-
when for non-serial transports it was not needed. (:github:`64078`)
592+
* The ``SHELL_UART_DEFINE`` macro now only requires a ``_name`` argument. In the meantime, the
593+
macro accepts additional arguments (ring buffer TX & RX size arguments) for compatibility with
594+
previous Zephyr version, but they are ignored, and will be removed in future release.
584595

585-
* Touchscreen drivers :dtcompatible:`focaltech,ft5336` and
586-
:dtcompatible:`goodix,gt911` were using the incorrect polarity for the
587-
respective ``reset-gpios``. This has been fixed so those signals now have to
588-
be flagged as :c:macro:`GPIO_ACTIVE_LOW` in the devicetree. (:github:`64800`)
596+
* :kconfig:option:`CONFIG_SHELL_BACKEND_SERIAL_API` now does not automatically default to
597+
:kconfig:option:`CONFIG_SHELL_BACKEND_SERIAL_API_ASYNC` when
598+
:kconfig:option:`CONFIG_UART_ASYNC_API` is enabled, :kconfig:option:`CONFIG_SHELL_ASYNC_API`
599+
also has to be enabled in order to use the asynchronous serial shell (:github: `68475`).
600+
601+
ZBus
602+
====
589603

590604
* The ``CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_DYNAMIC`` and
591605
``CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC`` zbus options are renamed. Instead, the new
@@ -634,8 +648,11 @@ Userspace
634648
* ``z_object_init`` to :c:func:`k_object_init`
635649
* ``z_dynamic_object_aligned_create`` to :c:func:`k_object_create_dynamic_aligned`
636650

651+
Architectures
652+
*************
653+
637654
Xtensa
638-
******
655+
======
639656

640657
* :kconfig:option:`CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC` no longer has a default in
641658
the architecture layer. Instead, SoCs or boards will need to define it.

0 commit comments

Comments
 (0)