I agree, it's baffling. And I'm not using the default setting in the BSP, I have my own define parameter which I know hasn't changed, that I pass using IO_IOCTL_SPI_SET_BAUD. I print the value just before it sets the value and it's correct. There must be something going on with a low level driver or on the hardware itself, clocks, dividers, etc.