Hi @jason_he,
Okay, I updated same version as your u-boot and Linux kernel.
It looks like that USB device stack is not enabled by default after boot Linux. Can you tell me how I can enable USB device stack? Do you have script for it?
Regarding femtoPHY registers, I dumped femtoPHY register with Linux and Zephyr, registers are not same. I don't have register information, and I don't know exact meanings. So, I asked you provide register information.
root@imx8mpevk:~# cat /sys/kernel/debug/phy/phy-381f0040.usb-phy.2/phy-381f0040.usb-phy.2/ctrl_reg_value
Control Register 0x1000 value is 0x 0
Control Register 0x1001 value is 0x 0
Control Register 0x1002 value is 0x 0
Control Register 0x1003 value is 0x 0
Control Register 0x1004 value is 0x 0
Control Register 0x1005 value is 0x 0
Control Register 0x1006 value is 0x 0
Control Register 0x1007 value is 0x 0
Control Register 0x1008 value is 0x 880
Control Register 0x1009 value is 0x2bf8
Control Register 0x100a value is 0x 0
Control Register 0x100b value is 0x 8
Control Register 0x100c value is 0x4240
Control Register 0x100d value is 0x 4
Control Register 0x100e value is 0x 0
Control Register 0x100f value is 0x 0
Control Register 0x1010 value is 0x1100
Control Register 0x1011 value is 0x 9f
Control Register 0x1012 value is 0x5c1f
Control Register 0x1013 value is 0xc109
Control Register 0x1014 value is 0x 0
Control Register 0x1015 value is 0x 0
Control Register 0x1016 value is 0x 0
Control Register 0x1017 value is 0x 0
Control Register 0x1018 value is 0x 0
Control Register 0x1019 value is 0x 0
Control Register 0x101a value is 0x 0
Control Register 0x101b value is 0x f
Control Register 0x101c value is 0x 208
Control Register 0x101d value is 0x8000
Control Register 0x101e value is 0x 0
Control Register 0x101f value is 0x 0
root@imx8mpevk:~#
*** Booting Zephyr OS build mcci-v3.7-tmm-usb3-20250421a-75-g6dd71b23c6a6 ***
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1000: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1001: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1002: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1003: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1004: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1005: 0x 0
[00:00:00.000,000] <inf> udc_xdci_imx8mp: register 1006: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1007: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1008: 0x 880
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1009: 0x30ff
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100a: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100b: 0x 8
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100c: 0x4240
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100d: 0x 4
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100e: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 100f: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1010: 0x1100
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1011: 0x 9f
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1012: 0x5c1f
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1013: 0xc00e
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1014: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1015: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1016: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1017: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1018: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 1019: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101a: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101b: 0x f
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101c: 0x 208
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101d: 0x8000
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101e: 0x 0
[00:00:00.001,000] <inf> udc_xdci_imx8mp: register 101f: 0x 0