I have a few questions regarding how USB_INDEX works in conjunction with EP0. Do I need to set USB_INDEX=0 before accessing the USB_CSR0 register? If USB_INDEX==0, does the USB_TXCSR register mirror the USB_CSR0 register? Does the USB_EP_NI0_TXCSR register always mirror USB_CSR0 regardless of USB_INDEX? It seems like there might be multiple ways to get at the control/status fields for EP0, and I'm trying to understand all of the options.
Finally, assuming that the answer to some or all of the above questions is "yes", is there any technical reason to prefer one register access method over another aside from software design considerations?