Skip to content

Commit 0c4f304

Browse files
committed
aux_serial: Increase UART DMA buffer sizes for USB HS
* usbd_ep_read_packet for a 64 byte FS bulk packet uses a 128-byte DMA bounce buffer okay, but for a 512 byte HS bulk packet will overflow it and corrupt adjacent .bss variables. * Allocate more space for both buffers, fixing stlinkv3.
1 parent a265cdc commit 0c4f304

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/platforms/common/aux_serial.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,14 @@
2727

2828
#if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32F4) || defined(STM32F7)
2929
/* XXX: Does the st_usbfs_v2_usb_driver work on F3 with 128 byte buffers? */
30-
#if defined(STM32F1) || defined(STM32F3) || defined(STM32F4) || defined(STM32F7)
30+
#if defined(STM32F1) || defined(STM32F3) || defined(STM32F4)
3131
#define USART_DMA_BUF_SHIFT 7U
3232
#elif defined(STM32F0)
3333
/* The st_usbfs_v2_usb_driver only works with up to 64-byte buffers on the F0 parts */
3434
#define USART_DMA_BUF_SHIFT 6U
35+
#elif defined(STM32F7)
36+
/* HS bulk packets are 512 bytes, use 2x that */
37+
#define USART_DMA_BUF_SHIFT 10U
3538
#endif
3639

3740
#define USART_DMA_BUF_SIZE (1U << USART_DMA_BUF_SHIFT)

0 commit comments

Comments
 (0)