1:orphan:
2
3..
4  See
5  https://docs.zephyrproject.org/latest/releases/index.html#migration-guides
6  for details of what is supposed to go into this document.
7
8.. _migration_4.2:
9
10Migration guide to Zephyr v4.2.0 (Working Draft)
11################################################
12
13This document describes the changes required when migrating your application from Zephyr v4.1.0 to
14Zephyr v4.2.0.
15
16Any other changes (not directly related to migrating applications) can be found in
17the :ref:`release notes<zephyr_4.2>`.
18
19.. contents::
20    :local:
21    :depth: 2
22
23Build System
24************
25
26Kernel
27******
28
29Boards
30******
31
32* All boards based on Nordic ICs that used the ``nrfjprog`` Nordic command-line
33  tool for flashing by default have been modified to instead default to the new
34  nRF Util (``nrfutil``) tool. This means that you may need to `install nRF Util
35  <https://www.nordicsemi.com/Products/Development-tools/nrf-util>`_ or, if you
36  prefer to continue using ``nrfjprog``, you can do so by invoking west while
37  specfying the runner: ``west flash -r nrfjprog``. The full documentation for
38  nRF Util can be found
39  `here <https://docs.nordicsemi.com/bundle/nrfutil/page/README.html>`_.
40
41* The config option :kconfig:option:`CONFIG_NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME` has been deprecated
42  in favor of :kconfig:option:`CONFIG_NATIVE_SIM_SLOWDOWN_TO_REAL_TIME`.
43
44* Zephyr now supports version 1.11.1 of the :zephyr:board:`neorv32`.
45
46* ``arduino_uno_r4_minima``, ``arduino_uno_r4_wifi``, and ``mikroe_clicker_ra4m1`` have migrated to
47  new FSP-based configurations.
48  While there are no major functional changes, the device tree structure has been significantly revised.
49  The following device tree bindings are now removed:
50  ``renesas,ra-gpio``, ``renesas,ra-uart-sci``, ``renesas,ra-pinctrl``,
51  ``renesas,ra-clock-generation-circuit``, and ``renesas,ra-interrupt-controller-unit``.
52  Instead, use the following replacements:
53  - :dtcompatible:`renesas,ra-gpio-ioport`
54  - :dtcompatible:`renesas,ra-sci-uart`
55  - :dtcompatible:`renesas,ra-pinctrl-pfs`
56  - :dtcompatible:`renesas,ra-cgc-pclk-block`
57
58Device Drivers and Devicetree
59*****************************
60
61DAI
62===
63
64* Renamed the devicetree property ``dai_id`` to ``dai-id``.
65* Renamed the devicetree property ``afe_name`` to ``afe-name``.
66* Renamed the devicetree property ``agent_disable`` to ``agent-disable``.
67* Renamed the devicetree property ``ch_num`` to ``ch-num``.
68* Renamed the devicetree property ``mono_invert`` to ``mono-invert``.
69* Renamed the devicetree property ``quad_ch`` to ``quad-ch``.
70* Renamed the devicetree property ``int_odd`` to ``int-odd``.
71
72Counter
73=======
74
75* ``counter_native_posix`` has been renamed ``counter_native_sim``, and with it its
76  kconfig options and DT binding. :dtcompatible:`zephyr,native-posix-counter`  has been deprecated
77  in favor of :dtcompatible:`zephyr,native-sim-counter`.
78  And :kconfig:option:`CONFIG_COUNTER_NATIVE_POSIX` and its related options with
79  :kconfig:option:`CONFIG_COUNTER_NATIVE_SIM` (:github:`86616`).
80
81Entropy
82=======
83
84* ``fake_entropy_native_posix`` has been renamed ``fake_entropy_native_sim``, and with it its
85  kconfig options and DT binding. :dtcompatible:`zephyr,native-posix-rng`  has been deprecated
86  in favor of :dtcompatible:`zephyr,native-sim-rng`.
87  And :kconfig:option:`CONFIG_FAKE_ENTROPY_NATIVE_POSIX` and its related options with
88  :kconfig:option:`CONFIG_FAKE_ENTROPY_NATIVE_SIM` (:github:`86615`).
89
90Ethernet
91========
92
93* Removed Kconfig option ``ETH_STM32_HAL_MII`` (:github:`86074`).
94  PHY interface type is now selected via the ``phy-connection-type`` property in the device tree.
95
96GPIO
97====
98
99* To support the RP2350B, which has many pins, the RaspberryPi-GPIO configuration has
100  been changed. The previous role of :dtcompatible:`raspberrypi,rpi-gpio` has been migrated to
101  :dtcompatible:`raspberrypi,rpi-gpio-port`, and :dtcompatible:`raspberrypi,rpi-gpio` is
102  now left as a placeholder and mapper.
103  The labels have also been changed along, so no changes are necessary for regular use.
104
105Bluetooth
106*********
107
108Bluetooth Host
109==============
110
111* The symbols ``BT_LE_CS_TONE_ANTENNA_CONFIGURATION_INDEX_<NUMBER>`` in
112  :zephyr_file:`include/zephyr/bluetooth/conn.h` have been renamed
113  to ``BT_LE_CS_TONE_ANTENNA_CONFIGURATION_A<NUMBER>_B<NUMBER>``.
114
115Networking
116**********
117
118* The struct ``net_linkaddr_storage`` has been renamed to struct
119  :c:struct:`net_linkaddr` and the old struct ``net_linkaddr`` has been removed.
120  The struct :c:struct:`net_linkaddr` now contains space to store the link
121  address instead of having pointer that point to the link address. This avoids
122  possible dangling pointers when cloning struct :c:struct:`net_pkt`. This will
123  increase the size of struct :c:struct:`net_pkt` by 4 octets for IEEE 802.15.4,
124  but there is no size increase for other network technologies like Ethernet.
125  Note that any code that is using struct :c:struct:`net_linkaddr` directly, and
126  which has checks like ``if (lladdr->addr == NULL)``, will no longer work as expected
127  (because the addr is not a pointer) and must be changed to ``if (lladdr->len == 0)``
128  if the code wants to check that the link address is not set.
129
130SPI
131===
132
133* Renamed the device tree property ``port_sel`` to ``port-sel``.
134* Renamed the device tree property ``chip_select`` to ``chip-select``.
135
136Other subsystems
137****************
138
139Modules
140*******
141
142Architectures
143*************
144