In cyfxusbi2cregmode, glEp0Buffer doesn't need to be 32 bytes aligned because it is only used in setup messages, and CyU3PUsbGetEP0Data and CyU3PUsbSendEP0Data don't use DMA to transfer the data.
Is this correct?
The APIs CyU3PUsbSendEP0Data and CyU3PUsbGetEP0Data uses DMA channel internally. And it is required that the buffers used for these APIs to be 32 byte aligned.
Please check FX3 API Guide for the API CyU3PDeviceCacheControl() for more details.