A few months ago I worked on a USB-MSD project with the K70F150 on custom hardware and all went quite smoothly (also CDC and HID class tests looked basically OK, although not the focus).
Today I decided to run it on a K70F120 tower board and a TWR-SER2 with the same USB HS PHY on it (after adjusting the necessary settings) but it crashed in the USB HS initialisation. The problem is that when the code writes to the USBHS_EPCR0 register the program counter jumps to the address 0x00000000 and all registers (as displayed by the debugger) show the value 0x23000042 (all USB registers and any other peripheral registers display the same value) - all CPU registers display 0x00000000. In fact the value written to USBHS_EPCR0 doesn't matter and also a write of the same value in the debugger causes the effect (USBHS_EPCR1..USBHS_EPCR3 also cause this but writes to other USBHS registers are OK).
Since I didn't have this diffiulty with the other HW I am wondering what could be going on? Do write to the SUBHS_EPCRx registers cause the external PHY to be used and fail if this is not correctly connected? The dramatic failure seems unlikely though.