doc: migration: Move picolibc section to required changes

After having migrated a bunch of apps to the new default C library we
have realized that some of the caveats described in the existing
picolibc section of the migration guide do require action on the user
more often than previously thought. In order to ensure that all users
see those and can act upon them, move the picolibc migration info to the
required changes section.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit is contained in:
Carles Cufi 2023-09-25 17:36:18 +02:00 committed by Anas Nashif
commit d118ef5fde

View file

@ -63,54 +63,7 @@ Required changes
channels for temperature and Vbat are identical, and the impossibility of
determining what we want to measure using solely the ADC API.
Recommended Changes
*******************
* Setting the GIC architecture version by selecting
:kconfig:option:`CONFIG_GIC_V1`, :kconfig:option:`CONFIG_GIC_V2` and
:kconfig:option:`CONFIG_GIC_V3` directly in Kconfig has been deprecated.
The GIC version should now be specified by adding the appropriate compatible, for
example :dtcompatible:`arm,gic-v2`, to the GIC node in the device tree.
* Nordic nRF based boards using :kconfig:option:`CONFIG_NFCT_PINS_AS_GPIOS`
to configure NFCT pins as GPIOs, should instead set the new UICR
``nfct-pins-as-gpios`` property in devicetree. It can be set like this in the
board devicetree files:
.. code-block:: devicetree
&uicr {
nfct-pins-as-gpios;
};
* Nordic nRF based boards using :kconfig:option:`CONFIG_GPIO_AS_PINRESET`
to configure reset GPIO as nRESET, should instead set the new UICR
``gpio-as-nreset`` property in devicetree. It can be set like this in the
board devicetree files:
.. code-block:: devicetree
&uicr {
gpio-as-nreset;
};
* The :kconfig:option:`CONFIG_MODEM_GSM_PPP` modem driver is obsolete.
Instead the new :kconfig:option:`CONFIG_MODEM_CELLULAR` driver should be used.
As part of this :kconfig:option:`CONFIG_GSM_MUX` and :kconfig:option:`CONFIG_UART_MUX` are being
marked as deprecated as well. The new modem subsystem :kconfig:option:`CONFIG_MODEM_CMUX`
and :kconfig:option:`CONFIG_MODEM_PPP`` should be used instead.
* Device drivers should now be restricted to ``PRE_KERNEL_1``, ``PRE_KERNEL_2``
and ``POST_KERNEL`` initialization levels. Other device initialization levels,
including ``EARLY``, ``APPLICATION``, and ``SMP``, have been deprecated and
will be removed in future releases. Note that these changes do not apply to
initialization levels used in the context of the ``init.h`` API,
e.g. :c:macro:`SYS_INIT`.
Picolibc-related Changes
************************
The default C library used on most targets has changed from the built-in
* The default C library used on most targets has changed from the built-in
minimal C library to Picolibc. While both provide standard C library
interfaces and shouldn't cause any behavioral regressions for applications,
there are a few side effects to be aware of when migrating to Picolibc.
@ -154,3 +107,47 @@ there are a few side effects to be aware of when migrating to Picolibc.
:kconfig:option:`CONFIG_PICOLIBC_IO_FLOAT_EXACT`, which switches Picolibc
to a smaller, but inexact conversion algorithm. This requires building
Picolibc as a module.
Recommended Changes
*******************
* Setting the GIC architecture version by selecting
:kconfig:option:`CONFIG_GIC_V1`, :kconfig:option:`CONFIG_GIC_V2` and
:kconfig:option:`CONFIG_GIC_V3` directly in Kconfig has been deprecated.
The GIC version should now be specified by adding the appropriate compatible, for
example :dtcompatible:`arm,gic-v2`, to the GIC node in the device tree.
* Nordic nRF based boards using :kconfig:option:`CONFIG_NFCT_PINS_AS_GPIOS`
to configure NFCT pins as GPIOs, should instead set the new UICR
``nfct-pins-as-gpios`` property in devicetree. It can be set like this in the
board devicetree files:
.. code-block:: devicetree
&uicr {
nfct-pins-as-gpios;
};
* Nordic nRF based boards using :kconfig:option:`CONFIG_GPIO_AS_PINRESET`
to configure reset GPIO as nRESET, should instead set the new UICR
``gpio-as-nreset`` property in devicetree. It can be set like this in the
board devicetree files:
.. code-block:: devicetree
&uicr {
gpio-as-nreset;
};
* The :kconfig:option:`CONFIG_MODEM_GSM_PPP` modem driver is obsolete.
Instead the new :kconfig:option:`CONFIG_MODEM_CELLULAR` driver should be used.
As part of this :kconfig:option:`CONFIG_GSM_MUX` and :kconfig:option:`CONFIG_UART_MUX` are being
marked as deprecated as well. The new modem subsystem :kconfig:option:`CONFIG_MODEM_CMUX`
and :kconfig:option:`CONFIG_MODEM_PPP`` should be used instead.
* Device drivers should now be restricted to ``PRE_KERNEL_1``, ``PRE_KERNEL_2``
and ``POST_KERNEL`` initialization levels. Other device initialization levels,
including ``EARLY``, ``APPLICATION``, and ``SMP``, have been deprecated and
will be removed in future releases. Note that these changes do not apply to
initialization levels used in the context of the ``init.h`` API,
e.g. :c:macro:`SYS_INIT`.