Part of parent task T-311 in frdmrw612_freertos_hello. Parent issue: https://github.com/chipsoft/frdmrw612_freertos_hello/issues/419
Root cause: Linux SET_CONFIGURATION fails with EPIPE (-32) because ENDPTCTRL register writes during dcd_edpt_open() (called from process_set_config) are not guaranteed to be visible to the USB controller before the EP0 IN status ZLP is primed.
Fix: Add __DSB() barrier after ENDPTCTRL register writes in ep_ctrl_write(), ep_ctrl_mask(), and dcd_edpt_close_all().
Part of parent task T-311 in frdmrw612_freertos_hello. Parent issue: https://github.com/chipsoft/frdmrw612_freertos_hello/issues/419
Root cause: Linux SET_CONFIGURATION fails with EPIPE (-32) because ENDPTCTRL register writes during dcd_edpt_open() (called from process_set_config) are not guaranteed to be visible to the USB controller before the EP0 IN status ZLP is primed.
Fix: Add __DSB() barrier after ENDPTCTRL register writes in ep_ctrl_write(), ep_ctrl_mask(), and dcd_edpt_close_all().