arm-trusted-firmware/drivers/st
Nicolas Le Bayon d596023bff refactor(st-ddr): create generic services
Disabling AXI port, enabling host interface and both enabling/disabling
software self-refresh services are already present inside the driver
source code.
Factorize by gathering them as services inside the generic part,
and adapt driver to call these new functions.

Add services to manage quasi-dynamic registers. DDRCTRL contains
quasi-dynamic registers, which are dynamic only under some conditions
defined by the user guide (with 4 groups).
In our driver, out of reset state, only groups 3 and 4 are updated.
Group 4 needs only sw_done/sw_done_ack sequence, already available.
Group 3 sequence include more conditions, that are gathered in
specific services. stm32mp_ddr_disable_host_interface() has been added
to do this.

Add dedicated generic service to toggle rfshctl3.refresh_update_level
and wait for completion.

Manage AXI ports and HIF when updating QD3 registers. Quasi-dynamic
group 3 (QD3) registers are updated when DDR is not completely
initialized, i.e. when AXI ports are not enabled and possibly when
host interface (HIF) is not enabled too.
In that case, a specific mechanism is necessary to restore the same
conditions as before accessing QD3 registers.
Static functions have been added to get AXI ports and HIF states and
are used to determine the needed conditions to set/unset.

Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Change-Id: I880f88b1cb6fc76199ad9ea33e9d63a5c469aed4
2024-10-02 18:27:36 +02:00
..
bsec feat(st-bsec): use early traces 2024-04-24 15:44:28 +02:00
clk feat(st-clock): add STM32MP2 clock driver 2024-06-27 18:27:17 +02:00
crypto refactor: digest sizes 2024-09-30 16:05:54 -07:00
ddr refactor(st-ddr): create generic services 2024-10-02 18:27:36 +02:00
etzpc refactor(st-drivers): do not rely on DT in etzpc_init 2022-08-10 10:00:03 +02:00
fmc fix(st-fmc): fix type in message 2022-02-15 18:09:51 +01:00
gpio fix(st-gpio): configure each GPIO mux as secure for STM32MP2 2024-06-17 11:24:09 +02:00
i2c refactor(st-i2c): use fdt_read_uint32_default() 2024-01-19 10:06:06 +01:00
iwdg feat(st): use newly introduced clock framework 2021-12-22 13:08:09 +01:00
mmc feat(st-sdmmc2): set FIFO size to 1024 on STM32MP25 2024-03-06 11:54:00 +01:00
pmic feat(stm32mp1): handle DDR power supplies 2024-10-02 17:24:35 +02:00
regulator feat(st-regulator): support regulator_set_voltage for fixed regulator 2024-09-06 15:42:10 +02:00
reset feat(st-reset): add stm32mp2_reset driver 2024-06-27 18:27:17 +02:00
spi fix(st-spi): remove SR_BUSY bit check before sending command 2022-05-11 10:01:33 +02:00
uart feat(st-uart): add AARCH64 stm32_console driver 2023-09-08 10:56:49 +02:00
usb fix(st-usb): replace redundant checks with asserts 2022-12-01 16:17:34 +00:00