u-boot/doc/develop/driver-model/migration.rst
Simon Glass 7f8967c2b8 blk: Rename HAVE_BLOCK_DEVICE
This option is fact really related to SPL. For U-Boot proper we always use
driver model for block devices, so CONFIG_BLK is enabled if block devices
are in use.

It is only for SPL that we have two cases:

- SPL_BLK is enabled, in which case we use driver model and blk-uclass.c
- SPL_BLK is not enabled, in which case (if we need block devices) we must
  use blk_legacy.c

Rename the symbol to SPL_LEGACY_BLOCK to make this clear. This is
different enough from BLK and SPL_BLK that there should be no confusion.

Signed-off-by: Simon Glass <sjg@chromium.org>
2022-09-16 11:05:16 -04:00

128 lines
4 KiB
ReStructuredText

.. SPDX-License-Identifier: GPL-2.0+
Migration Schedule
==================
U-Boot has been migrating to a new driver model since its introduction in
2014. This file describes the schedule for deprecation of pre-driver-model
features.
CONFIG_DM
---------
* Status: In progress
* Deadline: 2020.01
Starting with the 2010.01 release CONFIG_DM will be enabled for all boards.
This does not concern CONFIG_DM_SPL and CONFIG_DM_TPL. The conversion date for
these configuration items still needs to be defined.
CONFIG_DM_MMC
-------------
* Status: In progress
* Deadline: 2019.04
The subsystem itself has been converted and maintainers should submit patches
switching over to using CONFIG_DM_MMC and other base driver model options in
time for inclusion in the 2019.04 rerelease.
CONFIG_DM_USB
-------------
* Status: In progress
* Deadline: 2019.07
The subsystem itself has been converted along with many of the host controller
and maintainers should submit patches switching over to using CONFIG_DM_USB and
other base driver model options in time for inclusion in the 2019.07 rerelease.
CONFIG_SATA
-----------
* Status: In progress
* Deadline: 2019.07
The subsystem itself has been converted along with many of the host controller
and maintainers should submit patches switching over to using CONFIG_AHCI and
other base driver model options in time for inclusion in the 2019.07 rerelease.
CONFIG_BLK
----------
* Status: In progress
* Deadline: 2019.07
In concert with maintainers migrating their block device usage to the
appropriate DM driver, CONFIG_BLK needs to be set as well. The final deadline
here coincides with the final deadline for migration of the various block
subsystems. At this point we will be able to audit and correct the logic in
Kconfig around using CONFIG_PARTITIONS and CONFIG_SPL_LEGACY_BLOCK and make
use of CONFIG_BLK / CONFIG_SPL_BLK as needed.
CONFIG_DM_SPI / CONFIG_DM_SPI_FLASH
-----------------------------------
Board Maintainers should submit the patches for enabling DM_SPI and DM_SPI_FLASH
to move the migration with in the deadline.
Partially converted::
drivers/spi/fsl_espi.c
drivers/spi/mxc_spi.c
drivers/spi/sh_qspi.c
* Status: In progress
* Deadline: 2019.07
CONFIG_DM_VIDEO
---------------
Deadline: 2019.07
The video subsystem has supported driver model since early 2016. Maintainers
should submit patches switching over to using CONFIG_DM_VIDEO and other base
driver model options in time for inclusion in the 2019.07 release.
CONFIG_DM_ETH
-------------
Deadline: 2020.07
The network subsystem has supported the driver model since early 2015.
Maintainers should submit patches switching over to using CONFIG_DM_ETH and
other base driver model options in time for inclusion in the 2020.07 release.
CONFIG_DM_I2C
-------------
Deadline: 2021.10
The I2C subsystem has supported the driver model since early 2015.
Maintainers should submit patches switching over to using CONFIG_DM_I2C and
other base driver model options in time for inclusion in the 2021.10 release.
CONFIG_KEYBOARD
---------------
Deadline: 2022.10
This is a legacy option which has been replaced by driver model.
Maintainers should submit patches switching over to using CONFIG_DM_KEYBOARD and
other base driver model options in time for inclusion in the 2022.10 release.
CONFIG_SYS_TIMER_RATE and CONFIG_SYS_TIMER_COUNTER
--------------------------------------------------
Deadline: 2023.01
These are legacy options which have been replaced by driver model.
Maintainers should submit patches switching over to using CONFIG_TIMER and
other base driver model options in time for inclusion in the 2022.10 release.
There is only one method to implement, unless you want to support bootstage,
in which case you need an early timer also. For example drivers, see
sandbox_timer.c and rockchip_timer.c
CONFIG_DM_SERIAL
----------------
Deadline: 2023.04
The serial subsystem has supported the driver model since late 2014.
Maintainers should submit patches switching over to using CONFIG_DM_SERIAL and
other base driver model options in time for inclusion in the 2022.10 release.