In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
IntheLinuxkernel,thefollowingvulnerabilityhasbeenresolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported alockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry stesting platform[2].So, apply the required steps along with some fixes to Yu Chen sand JohnStultz sversion. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reporteda lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferrys testing platform[2].So, apply the required steps along with some fixes to Yu Chens and JohnStultzs version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported alockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry stesting platform[2].So, apply the required steps along with some fixes to Yu Chen sand JohnStultz sversion. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reported a lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferry s testing platform[2].So, apply the required steps along with some fixes to Yu Chen s and JohnStultz s version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/
In the Linux kernel, the following vulnerability has been resolved:usb: dwc3: core: Do core softreset when switch modeAccording to the programming guide, to switch mode for DRD controller,the driver needs to do the following.To switch from device to host:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(host mode)3. Reset the host with USBCMD.HCRESET4. Then follow up with the initializing host registers sequenceTo switch from host to device:1. Reset controller with GCTL.CoreSoftReset2. Set GCTL.PrtCapDir(device mode)3. Reset the device with DCTL.CSftRst4. Then follow up with the initializing registers sequenceCurrently we re missing step 1) to do GCTL.CoreSoftReset and step 3) ofswitching from host to device. John Stult reporteda lockup issue seenwith HiKey960 platform without these steps[1]. Similar issue is observedwith Ferrys testing platform[2].So, apply the required steps along with some fixes to Yu Chens and JohnStultzs version. The main fixes to their versions are the missing waitfor clocks synchronization before clearing GCTL.CoreSoftReset and onlyapply DCTL.CSftRst when switching from host to device.[1] https://lore.kernel.org/linux-usb/20210108015115.27920-1-john.stultz@linaro.org/[2] https://lore.kernel.org/linux-usb/0ba7a6ba-e6a7-9cd4-0695-64fc927e01f1@gmail.com/