xref: /rk3399_ARM-atf/plat/st/common/include/stm32cubeprogrammer.h (revision fb3e7985c9b657c535c02b722ecc413f643e671e)
1afad5214SPatrick Delaunay /*
2afad5214SPatrick Delaunay  * Copyright (c) 2021, 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,
24afad5214SPatrick Delaunay 			   uintptr_t ssbl_base,
25afad5214SPatrick Delaunay 			   size_t ssbl_len);
26afad5214SPatrick Delaunay 
27*fb3e7985SPatrick Delaunay int stm32cubeprog_uart_load(uintptr_t instance, uintptr_t base, size_t len);
28*fb3e7985SPatrick Delaunay 
29afad5214SPatrick Delaunay #endif /* STM32CUBEPROGRAMMER_H */
30