From 510b2d37b1ffdd7719fae45204eb3a133e479927 Mon Sep 17 00:00:00 2001 From: Olaf Flebbe Date: Mon, 6 Oct 2025 23:05:15 +0200 Subject: [PATCH] fix(rp2): possible integer overflow while computing factors for SPI baudrate Incorrect factors are calculated for baudrates which are a bit larger than integer multiples of 4194304. For example for baudrates of 8_400_000 or 58_800_000. Fixed the same way in newer versions of the RPI SDK. --- src/machine/machine_rp2_spi.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/machine_rp2_spi.go b/src/machine/machine_rp2_spi.go index d9cfc11d18..693b9ab3fd 100644 --- a/src/machine/machine_rp2_spi.go +++ b/src/machine/machine_rp2_spi.go @@ -108,7 +108,7 @@ func (spi *SPI) SetBaudRate(br uint32) error { var prescale, postdiv uint32 freq := CPUFrequency() for prescale = 2; prescale < 255; prescale += 2 { - if freq < (prescale+2)*256*br { + if uint64(freq) < uint64((prescale+2)*256)*uint64(br) { break } }