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