xref: /rk3399_ARM-atf/plat/st/common/include/stm32cubeprogrammer.h (revision ef39709c04e74d4957ff3c3e6343210d1873ddc2)
1afad5214SPatrick Delaunay /*
2*ef39709cSPatrick 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
16afad5214SPatrick Delaunay #define PHASE_SSBL		3U
17afad5214SPatrick Delaunay #define PHASE_CMD		0xF1U
18afad5214SPatrick Delaunay #define PHASE_RESET		0xFFU
19afad5214SPatrick Delaunay 
20afad5214SPatrick Delaunay /* Functions provided by plat */
21afad5214SPatrick Delaunay uint8_t usb_dfu_get_phase(uint8_t alt);
22afad5214SPatrick Delaunay 
23afad5214SPatrick Delaunay int stm32cubeprog_usb_load(struct usb_handle *usb_core_handle,
24*ef39709cSPatrick Delaunay 			   uint8_t phase,
25afad5214SPatrick Delaunay 			   uintptr_t ssbl_base,
26afad5214SPatrick Delaunay 			   size_t ssbl_len);
27afad5214SPatrick Delaunay 
28*ef39709cSPatrick Delaunay int stm32cubeprog_uart_load(uintptr_t instance, uint8_t phase,
29*ef39709cSPatrick Delaunay 			    uintptr_t base, size_t len);
30fb3e7985SPatrick Delaunay 
31afad5214SPatrick Delaunay #endif /* STM32CUBEPROGRAMMER_H */
32