xref: /rk3399_ARM-atf/plat/st/common/include/stm32cubeprogrammer.h (revision c8e1a2d9d27d4f7e3a919b7994e82f2a886f3e6a)
1afad5214SPatrick Delaunay /*
2ef39709cSPatrick Delaunay  * Copyright (c) 2021-2025, STMicroelectronics - All Rights Reserved
3afad5214SPatrick Delaunay  *
4afad5214SPatrick Delaunay  * SPDX-License-Identifier: BSD-3-Clause
5afad5214SPatrick Delaunay  */
6afad5214SPatrick Delaunay 
7afad5214SPatrick Delaunay #ifndef STM32CUBEPROGRAMMER_H
8afad5214SPatrick Delaunay #define STM32CUBEPROGRAMMER_H
9afad5214SPatrick Delaunay 
10afad5214SPatrick Delaunay #include <stdint.h>
11afad5214SPatrick Delaunay 
12afad5214SPatrick Delaunay #include <usb_dfu.h>
13afad5214SPatrick Delaunay 
14afad5214SPatrick Delaunay /* Phase definition */
15afad5214SPatrick Delaunay #define PHASE_FLASHLAYOUT	0U
16*eb43024cSPatrick Delaunay #define PHASE_DDR_FW		2U
17afad5214SPatrick Delaunay #define PHASE_SSBL		3U
18afad5214SPatrick Delaunay #define PHASE_CMD		0xF1U
19afad5214SPatrick Delaunay #define PHASE_RESET		0xFFU
20afad5214SPatrick Delaunay 
21afad5214SPatrick Delaunay /* Functions provided by plat */
22afad5214SPatrick Delaunay uint8_t usb_dfu_get_phase(uint8_t alt);
23afad5214SPatrick Delaunay 
24afad5214SPatrick Delaunay int stm32cubeprog_usb_load(struct usb_handle *usb_core_handle,
25ef39709cSPatrick Delaunay 			   uint8_t phase,
26afad5214SPatrick Delaunay 			   uintptr_t ssbl_base,
27afad5214SPatrick Delaunay 			   size_t ssbl_len);
28afad5214SPatrick Delaunay 
29ef39709cSPatrick Delaunay int stm32cubeprog_uart_load(uintptr_t instance, uint8_t phase,
30ef39709cSPatrick Delaunay 			    uintptr_t base, size_t len);
31fb3e7985SPatrick Delaunay 
32afad5214SPatrick Delaunay #endif /* STM32CUBEPROGRAMMER_H */
33