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