- USB ๆงๅถๅจ
- ไธปๆงๅถๅจๆฏ Synopsys DesignWare Core SuperSpeed USB 3.x ๆงๅถๅจ๏ผGen1/Gen2๏ผใ
- ไธคไธช Qualcomm ๅค็จ้ PHY๏ผQMP๏ผๅฎไพ๏ผ็จไบ USB SuperSpeed ๅ DisplayPortใ
- ็จไบ้ซ้ USB ็ Synopsys PHYใ
- ่พ
ๅฉๆงๅถๅจๆฏ Synopsys DesignWare Core ้ซ้ USB 2.0 ๆงๅถๅจใ
- ็จไบ้ซ้ USB ็ Synopsys PHY
- ็ฌฌไธๆงๅถๅจๆฏ Synopsys DesignWare Core ้ซ้ USB 2.0 ๆงๅถๅจใ
- ็จไบ้ซ้ USB ็ Synopsys PHYใ
- Dragonwing IQ-9075 ๆไธไธช USB ๆงๅถๅจ๏ผไธป USB 3.2ใ่พ ๅฉ USB 3.2ใ็ฌฌไธ USB 2.0๏ผ
- ไธปๆงๅถๅจๆฏ Synopsys DesignWare Core SuperSpeed USB 3.x ๆงๅถๅจ๏ผGen1/Gen2๏ผใ
- Synopsys DesignWare core SuperSpeed USB 3.x ๆงๅถๅจ็นๆง
- Synopsys DesignWare Core SuperSpeed USB 3.x ๆงๅถๅจๆฏ็ฌฆๅ USB SuperSpeed ๆ ๅ็ๆงๅถๅจ๏ผๅฏไปฅ้
็ฝฎไธบไปฅไธๆนๅผไนไธ๏ผ
- ไป ๅค่ฎพ้ ็ฝฎ
- ไป ไธปๆบ้ ็ฝฎ
- ๅ่ง่ฒ้ ็ฝฎ
- ๆฏๆๆๆไผ ่พ็ฑปๅ๏ผๆงๅถใๆน้ใไธญๆญๅๅๆญฅ๏ผ
- ๆฏๆ SuperSpeed ๆน้ๆต
- ็ฌฆๅๅฏๆฉๅฑไธปๆบๆงๅถๅจๆฅๅฃ๏ผxHCI๏ผ่ง่
- ไธปๆบๆจกๅผๆฏๆ SuperSpeed๏ผ5 Gbps๏ผใ้ซ้๏ผ480 Mbps๏ผใๅ จ้๏ผ12 Mbps๏ผๅไฝ้๏ผ1.5 Mbps๏ผๆไฝใ
- ่ฎพๅคๆจกๅผๆฏๆ SuperSpeed๏ผ5 Gbps๏ผใ้ซ้๏ผ480 Mbps๏ผๅๅ
จ้๏ผ12 Mbps๏ผๆไฝ๏ผๅนถๆๅคๆฏๆ 16 ไธชๅๅ็ซฏ็น๏ผๅ
ๆฌๆงๅถ็ฎก้
ep0๏ผใ - ้พ่ทฏ็ตๆบ็ฎก็
- Synopsys DesignWare Core SuperSpeed USB 3.x ๆงๅถๅจๆฏ็ฌฆๅ USB SuperSpeed ๆ ๅ็ๆงๅถๅจ๏ผๅฏไปฅ้
็ฝฎไธบไปฅไธๆนๅผไนไธ๏ผ
- USB PHY ่ฎฟ้ฎๆนๅผ
- ้่ฟ AHB2PHY ๆไพๅฏๅญๅจ็บงๆฅๅฃ๏ผ็จไบๆง่ก PHY ็ธๅ ณๆไฝใ
- USB Type-C
- ๆฏๆ USB Type-C ๅนถไฝฟ็จ PM7325B PD ๆงๅถๅจ่ฟ่ก็ตๅไผ ่พใ
- ๅฎๅ จ็ฌฆๅ USB Type-C 3.0 ็ตๅไผ ่พ่ง่ใ
- ๅจไผ ่พๆงๅถๅจ็กฎๅฎ่ฟๆฅ็้พ่ทฏไผไผด็ Type-C ๆนๅใ่ง่ฒๅๆจกๅผๅ๏ผๆฏๆๆ นๆฎ UCSI ๆกๆถๆดๆฐ PM7325B ่ฝฏไปถ้ฉฑๅจ็จๅบใ
- ไป ็จไบไธป USB ๆงๅถๅจใ
ๆถ้
ไธ่กจๅๅบไบ USB ๆงๅถๅจไปฅๅ้ซ้ๅ SuperSpeed PHY ๆญฃๅธธ่ฟ่กๆ้็ๆถ้ๅๅทฅไฝ้ข็ใ ่กจ๏ผ USB ๆงๅถๅจๆถ้
่กจ๏ผ
้ซ้ PHY ๆถ้
่กจ๏ผ
SuperSpeed PHY ๆถ้
็ตๅ่ฝจ
ไธ่กจๅๅบไบ้ซ้ๅ SuperSpeed PHY ๆ้็็ตๅ่ฝจใ ่กจ๏ผ USB ็ตๅ่ฝจ
Dragonwing IQ-9075 USB ็ตๅ่ฝจ
- HS PHY: L7A (0.88 V), L6C (1.8 V), L9A (3.3 V)
- SS PHY: L1C, L7A
ไธญๆญ
ไธ่กจๅๅบไบ USB ๆงๅถๅจ็จไบ้็ฅไบไปถ็ๅ็งไธญๆญใ ่กจ๏ผ USB ๆงๅถๅจไธญๆญไบ่ฟ
ไธ่กจๅๅบไบ USB ๆงๅถๅจไฝฟ็จ็ๅ็งไบ่ฟใ ่กจ๏ผ USB ไบ่ฟไฝฟ็จๆถ้ๆงๅถ็ USB ๆงๅถๅจๅคไฝ
ไธ่กจๅๅบไบ USB ๆงๅถๅจๅ PHY ไฝฟ็จ็ๅคไฝๆนๆณใ ่กจ๏ผ USB ๆถ้ๅคไฝๆนๆณไฝฟ็จๅฏๅญๅจ็ USB ๆงๅถๅจ่ฝฏไปถๅคไฝ
ไธ่กจๅๅบไบๅคไฝ USB ๆงๅถๅจ็ๅฏๅญๅจ้้กนใ ่กจ๏ผ USB ๆงๅถๅจๅคไฝ
Dragonwing IQ-9075 ๆงๅถๅจๅคไฝๅฏๅญๅจ
- HS: GCC_USB2_PHY_PRIM_BCR
- SS: GCC_USB3_PHY_PRIM_BCR/ GCC_USB3PHY_PHY_PRIM_BCR
- GCC_USB3_PHY_TERT_BCR
- USB30_PRIM_GDSC
- USB30_SEC_GDSC
- USB20_PRIM_GDSC
- GCC_USB20_SEC_BCR
- GCC_QUSB2PHY_SEC_BCR
- GCC_USB2_PHY_SEC_BCR
USB ๆงๅถๅจๅ SoC ้ๆ
USB ๆงๅถๅจ็็ฅ่ฏไบงๆๅ PHY ้ๆๅฐ SoC ไธญ๏ผๅฆไธๅพๆ็คบใ ๅพ๏ผUSB ๆงๅถๅจ PHY ๅ SoC ้ๆUSB 3.xcontrollerSoCType-C connectorAHB 2PHYDisplay port controllerSS0_1DPPHY (QMP)SS0_0DPPHY (QMP)EUDHS0PHY(SNPS)PipeUTMISSHS Synopsys DesignWare Core SuperSpeed USB 3.0 ็ฅ่ฏไบงๆไป ๆงๅถๆ ธๅฟๅ่ฝ๏ผไธๆงๅถ่ฎพๅค่งๆ ผ๏ผๅฆๆถ้ใไบ่ฟใ็จณๅๅจๅ GDSCใSynopsys DesignWare Core ็ฅ่ฏไบงๆๅตๅ ฅๅจQscratch ๅ
่ฃ
ๅจ๏ผ็ฅ่ฏไบงๆๅ่ฝฏไปถ้ฉฑๅจ็จๅบ๏ผๅ
๏ผ่ฏฅๅ
่ฃ
ๅจ่ด่ดฃๅจๆขๆตใๆ่ตทๆๆขๅค็ถๆๆ้ด็ฎก็ๆ้็่ตๆบ๏ผๆถ้ใไบ่ฟใไธญๆญใGDSC ๅ็จณๅๅจ๏ผใ่ฟไธคไธช้ฉฑๅจ็จๅบๅ
ฑๅญไปฅ็กฎไฟ USB ๅ่ฝใ
ๆๅ
ณ USB Qscratch ๅ
่ฃ
ๅจ้ฉฑๅจ็จๅบ็ไฟกๆฏ๏ผ่ฏทๅ่ง https://github.com/torvalds/linux/blob/master/drivers/usb/dwc3/dwc3-qcom.cใๆๅ
ณๆงๅถๅจๆ ธๅฟ้ฉฑๅจ็จๅบ็ไฟกๆฏ๏ผ่ฏทๅ่ง https://github.com/torvalds/linux/blob/master/drivers/usb/dwc3/core.cใ
xHCI ๆฏๆ
xHCI ่ง่ๆ่ฟฐไบ USB 2.0 ๅๆด้ซ็ๆฌ็ๅฏๅญๅจ็บงไธปๆบๆงๅถๅจๆฅๅฃใUSB ๆงๅถๅจ็ฌฆๅ xHCI ่ง่๏ผๅจไธปๆบๆจกๅผไธๆฏๆ SuperSpeed๏ผ5 Gbps๏ผใ้ซ้๏ผ480 Mbps๏ผใๅ จ้๏ผ12 Mbps๏ผๅไฝ้๏ผ1.5 Mbps๏ผๆไฝใ ๅจไธปๆบๆจกๅผไธไฝฟ็จ Linux ๆ ๅ xHCI ้ฉฑๅจ็จๅบๆฅๆไฝ USB ๆงๅถๅจใUSB Type-C ่ฟๆฅๅจ็ณป็ป่ฝฏไปถๆฅๅฃ๏ผUCSI๏ผ
ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ USB Type-C ๅ่ฝใ- USB Type-C ่ฟๆฅๅจ็ณป็ป่ฝฏไปถๆฅๅฃๅจ Linux ๅ ๆ ธไธญไฝไธบๅบๆไพใๅฎๅฎไนไบไธ็ปๅฏๅญๅจๅๆฐๆฎ็ปๆ๏ผ็จไบไธ็ณป็ปไธ็ USB Type-C ่ฟๆฅๅจ่ฟ่กๆฅๅฃใๅนณๅฐไธ็ USB Type-C ่ฟๆฅๅจ็งฐไธบๅนณๅฐ็ญ็ฅ็ฎก็ๅจ๏ผPPM๏ผ๏ผ็ณป็ป่ฝฏไปถ็ปไปถ็งฐไธบ OS ็ญ็ฅ็ฎก็ๅจ๏ผOPM๏ผใ
- Qualcomm ๅ่่ฎพ่ฎกไฝฟ็จ UCSI
Glink้ฉฑๅจ็จๅบๆฅๅค็ๅบ็จๅค็ๅจไธ็ OPM ไธ PPM ไน้ด็้ไฟก๏ผPPM ๆฏไฝฟ็จ PMIC GLINK ๅจ่ฟ็จๅญ็ณป็ป๏ผaDSP๏ผไธ่ฟ่ก็ๅ ็ตๅจๅบไปถใ - USB Type-C DisplayPort ๅค็จๆจกๅผๅขๅ ไบๆฏๆ้ขๅค็บฟ็ผ่ฏฆๆ ็ๅ่ฝ๏ผไพๅฆ DPAM ็ๆฌๅ็บฟ็ผไฟกไปคใQualcomm ๅ่่ฎพ่ฎกๆฏๆไฝฟ็จ Type-C ็ DisplayPort๏ผไปฅๅๅๆถๆฏๆ USB SuperSpeed ๅ DisplayPort๏ผDisplayPort ๆๅคไธคไธช้้๏ผUSB SuperSpeed ไธคไธช้้ๅ DisplayPort ไธคไธช้้๏ผใ
- USB Type-C ็ตๅไผ ่พ็ฑ PM7325B PD ๆงๅถๅจๆฏๆ๏ผๅฎๅ จ็ฌฆๅ USB PD 3.0 ่ง่ใไฝฟ็จ UCSI ๆฅๅฃ๏ผๆฏๆ USB ๆฐๆฎ่ง่ฒไบคๆขๅ็ตๆบ่ง่ฒไบคๆขใ ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ้่ฟ Type-C ่ฟๆฅๅจ่ฟ่กๆฐๆฎๅ็ตๆบ่ง่ฒไบคๆขใ
- ไปฅไธๆฏๆๆถๅ้ฉฑๅจ็จๅบ็ๅ่๏ผ
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/typec/ucsi/ucsi.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/typec/ucsi/ucsi_glink.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/typec/ucsi/displayport.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/phy/qualcomm/phy-qcom-qmp-combo.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/dwc3/dwc3-qcom.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/soc/qcom/pmic_glink.c?h=v6.6.2
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/soc/qcom/pmic_glink_altmode.c?h=v6.6.2
USB ๅ่ฝ
Qualcomm ่ฏ็็กฌไปถ SoC ๅ ่ฎธๅจๅ่ง่ฒ่ฎพๅค๏ผDRD๏ผๆจกๅผไธๅทฅไฝใDRD ๆฏๆ่ฎพๅคๅไธปๆบไธค็ง่ง่ฒใ่ฎพๅคๅจๆๆฃๆต่ฆๅๆขๅฐ็่ง่ฒ๏ผๅนถ็ธๅบๅฐๅฏนๆงๅถๅจ่ฟ่ก็ผ็จใๆฏๆ่ชๅจๆ่ตทๅ่ฝ๏ผๅฏๅจๆไธ็ต็ผๆถๅ ณ้ญ USB ๆงๅถๅจใๆฏๆ่ง้ขใ้ณ้ขใ็ฝ็ปๅ ฑไบซใๆไปถไผ ่พใๅชไฝไผ ่พๅๅ ็ต็ญๅ่ฝๆฅๅฃใ ่กจ๏ผ USB ๅ่ฝ๏ผLinux่ฟ่กๆถ็ตๆบ็ฎก็
ๅฏๆ นๆฎๆจ็่ฆๆฑๅฏ็จ่ฟ่กๆถ็ตๆบ็ฎก็ๅ่ฝใLPM ๆฏๆๅทฒไฝไธบ https://lore.kernel.org/all/20231017131851.8299-1-quic_kriskura@quicinc.com/ ็ไธ้จๅๆทปๅ ใ ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ USB Type-A ็ซฏๅฃ็่ฟ่กๆถ็ตๆบ็ฎก็ใ ้ป่ฎคๆ ๅตไธ๏ผ่ฟ่กๆถ็ USB ๆ่ตทๅๆขๅค่ขซ็ฆ็จใ่ฆๅฏ็จ่ฟไบๅ่ฝ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผsysfs ๅฝไปค๏ผ
xhci-hcd.X.auto ๅผ๏ผๅ
ถไธญ X = 0ใ1ใ2ใๅฎ่กจ็คบ่ฟๆฅๅฐ USB ็่ฎพๅคๆฐ้ใ่ฟๆฅ็่ฎพๅคๅจ /sys/bus/platform/devices/xhci-hcd.X.auto/usb1/<node number> ไธๅๅบใ<node number> ๅผๅๅณไบ่ฟๆฅๅฐ USB ็ซฏๅฃ็่ฎพๅคๆฐ้ใ
่ฆไธบ LS ๅ
ๅญฆ้ผ ๆ ๅฏ็จ่ฟ็จๅค้๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
่ฝฏไปถๅ่ฝ
่ฝฏไปถๆฏๆไปฅไธ USB ๅ่ฝใ ่กจ๏ผ USB ่ฝฏไปถๅ่ฝUSB ๆถๆ
Qualcomm USB ่ฝฏไปถๆถๆๅคง่ด็ฑไธคไธช็ปไปถ็ปๆ๏ผไธไธชๅบไบ็บฏไธๆธธ๏ผๅฆไธไธชๆฏๅ ๅซไธไบๅพ ๅค็ๅ่ฝ็ธๅ ณๅๆด็ๆฒ็ใ็บฏไธๆธธ็ดๆฅไปๆๆฐ็็จณๅฎๅ ๆ ธ้ฟๆๆฏๆ๏ผLTS๏ผ6.6.2 ็ๆฌไธญ้ๅใ่ฏฅๆถๆไฝฟ็จ Yocto๏ผ4.0 ็๏ผ้ ๆนๆฅๅๅปบไบ่ฟๅถๆไปถใ ๅพ๏ผUSB ่ฝฏไปถๆถๆ/dev/ffs-xxx//dev/ffs-xxx//dev/ffs-xxx//sys/kernel/config/usb_gadget/โฆ/sys/bus/usb/โฆFunction driverFunction driverGadget frameworkconfigfs, UDC coreDevice controller driverClassdriverClassdriverUSB coreHost controller driverdwc3-qcomDWC3 core driversFemto phy driverQMP phy driverUCSIPMIC GLINKPM7325BaDSP corecharger firmwareVBUS, CC, D+,D-HSSS/sys/class/typec/port0/โฆDual-role class driverType-C role swapdiag-routerport-bridgeadbd.serviceUSB peripheral mode configurationRuntime power management controlUser-space servicesVFSKernel-spaceType-C connector ๆฒ็ไฝฟ็จไปฅไธ็นๅฎไบ Qualcomm ็ๅ่ฝๅฎ็ฐใ- USB_DWC3_QCOM๏ผไธป่ฆ็ฒๅ้ฉฑๅจ็จๅบ่ด่ดฃไธปๆบๅ่ฎพๅคๆจกๅผไธ็ USB ๅ่ฝ๏ผๅ ทไฝๅๅณไบ่ฟๆฅ็ๅ ๅฎนใ็ฒๅ้ฉฑๅจ็จๅบ็่ฎพๅคๆ ๆก็ฎๅ ๆฌๆถ้ใ็ตๆบ่ฝจๅไธญๆญ็ญ่ตๆบใๆญคๅ่ฝไฝฟ็จ DWC3 ๆ ธๅฟ้ฉฑๅจ็จๅบไฝไธบๅบ๏ผๆงๅถ DWC3 ๆงๅถๅจ็ๅฎ้ ๅ่ฝใๆดๅค่ฏฆๆ ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/dwc3/dwc3-qcom.c?h=v6.6.2ใ
- Synopsys femto PHY๏ผQualcomm Synopsys femto PHY ๆฏ้ซ้ USB PHY๏ผ่ด่ดฃๆงๅถ D+/D- ็บฟ่ทฏ๏ผๅนถไธๅ ็ตๅจๆฃๆตไธ่ตทไฟ่ฟๆฐๆฎไผ ่พใๆดๅค่ฏฆๆ ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c?h=v6.6.2ใ
- QMP DisplayPort ็ปๅ PHY๏ผQualcomm ๅค็จ้ PHY๏ผQMP๏ผๆพ็คบ็ซฏๅฃ็ปๅ PHY ่ฎพ่ฎก็จไบ้็จ็จ้ใUSB ็ไธไธช็คบไพ็จไพๆฏ SuperSpeed ๅ SuperSpeed-plus ๅ่ฝ๏ผๅ ถไธญ Rx+/Rx- ๅ Tx+/Tx- ๅฏ็จไบๆฐๆฎไผ ่พใๅฝๆพ็คบๅฏไปฅๅจ USB ไปฅ SuperSpeed ๅทฅไฝๆถๅ ็จไธๅฏน้้่ฟ่ก้ๅๅ่ฝๆถ๏ผPHY ๆฏๆๆพ็คบๅค็จๆจกๅผใๆดๅค่ฏฆๆ ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/phy/qualcomm/phy-qcom-qmp-combo.c?h=v6.6.2ใ
USB ๆฅๅฃ
USB ๆฏๆๅค็งๆฅๅฃๆฅไผ ่พ้ณ้ขใ่ง้ขใ่ฐ่ฏไฟกๆฏๅ็ฝ็ปๅ ฑไบซใไปฅไธๆฏไธช USB ๆฅๅฃ้ไฟกๅ่ฎฎ้ฝไธๅ๏ผ้คไบๆ ๅ USB ๅ่ฎฎๅค๏ผ่ฟๆ่ชๅทฑ็ๅ่ฎฎใ- Android ่ฐ่ฏๆกฅ๏ผADB๏ผ
- USB ADB ๆฏไธไธช่ฐ่ฏๆฅๅฃ๏ผ้่ฟ USB ่ฟๆฅๆไพๅฏน็ณป็ป็่ฎฟ้ฎใๆๅ ณ ADB ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง https://developer.android.com/tools/adbใ
- ๆไปถๅๆฏ
dev่็น็่ๆepsๅ็งฐใๆๅ ณf_fs.c็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/gadget/function/f_fs.c?h=v6.6.2ใ - ็จๆท็ฉบ้ดๆๅก๏ผ็จๆท็ฉบ้ดๅฎๆค่ฟ็จ
adbd.service่ฟ่ก ADB๏ผๅนถ่ด่ดฃๅจๅบๅฑๅ ๆ ธ้ฉฑๅจ็จๅบๅไธปๆบ PC ไน้ดๅปบ็ซ่ฟๆฅใ
- ่ฏๆญ๏ผdiag๏ผ
- Diag ๆฏ็จไบไปๅไธชๅญ็ณป็ปๆถ้ๆฅๅฟๆฐๆฎๅ่ฐ่ฏ็่ฏๆญๆกๆถใ่ฏๆญๆฐๆฎ้่ฟ USB ไผ ่พๅฐไธปๆบ PCใ
- ๅ
ๆ ธ้ฉฑๅจ็จๅบ๏ผDiag ไฝฟ็จ
f_fs.cๆด้ฒ/dev/ffs-diag่็น๏ผ่ฏฅ่็น็ฑ็จๆท็ฉบ้ดๆๅกๆไฝไปฅ่ฟ่กๅ็งๆไฝใdev่็นๅ ทๆไปฅไธไธไธชๆไปถ๏ผep0๏ผๆงๅถๆไฝep1๏ผ่ฏปๅๆไฝep2๏ผๅๅ ฅๆไฝ ่ฟไบๆไปถๅๆฏdev่็น็่ๆepsๅ็งฐใๆๅ ณf_fs.c็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/gadget/function/f_fs.c?h=v6.6.2ใ
- ๅคงๅฎน้ๅญๅจ
- ๅ ทๆๅคงๅฎน้ๅญๅจ้ฉฑๅจ็จๅบ็้็จๆฅๅฃ้ฉฑๅจ็จๅบๅฏไพ่ฎพๅคไฝไธบ้็จๅญๅจ่ฎพๅคไฝฟ็จใ
- ๅ
ๆ ธ้ฉฑๅจ็จๅบ๏ผ
mass_storageๅ่ฝ็ฑf_mass_storage.c้ฉฑๅจ็จๅบ่ฐ่ใๆญค้ฉฑๅจ็จๅบๆด้ฒdev node[revisit]๏ผ็ฑไธปๆบ PC ๆงๅถใๆๅ ณๅคงๅฎน้ๅญๅจ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/usb/gadget/function/f_mass_storage.c?h=v6.6.2ใ
- ่ฟ็จ็ฝ็ป้ฉฑๅจ็จๅบๆฅๅฃ่ง่๏ผRNDIS๏ผ
- RNDIS ๆฏ Microsoft ไธบๅจๆๅณๆๅณ็จ I/O ๆป็บฟ๏ผๅฆ USB๏ผไธ็็ฝ็ป่ฎพๅคๅผๅ็่ง่ใ
- ๅ
ๆ ธ้ฉฑๅจ็จๅบ๏ผๅฎไฝฟ็จ
f_rndis้ฉฑๅจ็จๅบ๏ผ่ฏฅ้ฉฑๅจ็จๅบๅญๅจไบไธๆธธ Linux ๅ ๆ ธไธญ๏ผ็ดๆฅไธ็ฝ็ปๆฅๅฃๆๅ ๆ ้ไฟกใ
- ็ฝ็ปๆงๅถๆจกๅ๏ผNCM๏ผ
- NCM ๆฏไธ็งๅ่ฎฎ๏ผไธ RNDIS ็ธๆฏ๏ผๆจๅจๆไพ้ซ็บง็นๆงๅๅ่ฝใ
- ๅฎ้ๅธธๅบ็ฐๅจ USB ่ฎพๅคๅฟ ้กปๅค็่ๅป็ฝ็ปไปปๅก็ๅบ็จไธญใ
- USB ้ณ้ข็ฑป 2๏ผUAC2๏ผ
- UAC2 ๆฏๆงๅถ USB ้ณ้ข่ฎพๅคไธ่ฎก็ฎๆบไน้ด้ไฟก็ๆ ๅใ
- UAC2 ๆฏๆๆด้ซ็้ณ้ขๆฐๆฎไผ ่พ้็๏ผไป่ๆนๅ้ณ้ข่ดจ้ๅนถๅๅฐๅปถ่ฟใ
- USB ่ง้ข็ฑป๏ผUVC๏ผ
- UVC ๆฏไธ็งๆ ๅ๏ผๅฎไนไบ่ง้ขๆต่ฎพๅค๏ผๅฆ็ฝ็ปๆๅๅคด๏ผๅบๅฆไฝไฝฟ็จ USB ไธ่ฎก็ฎๆบ้ไฟกใ
- UVC ไพฟไบ่ง้ข่ฎพๅค็ๅณๆๅณ็จๅ่ฝใ
USB ๅทฅๅ ท
ไธ่กจๅๅบไบไธไบๅธธ็จ็ USB ๅทฅๅ ทใ ่กจ๏ผ USB ๅทฅๅ ทๅไธ่ฝฝ่ฏฆๆ้ ็ฝฎ USB ๅผๅฏผๅ ่ฝฝ็จๅบ
ๅผๅฏผๅ ่ฝฝ็จๅบไธญ็จไบ่ฐๆด้ซ้ๅ SuperSpeed USB ไฟกๅท่ดจ้็่ฎพๅคๆ ๅๆฐๅฏไปฅไฝฟ็จ Qualcomm DeviceTree ็ผ่พๅจ๏ผQDTE๏ผๅทฅๅ ท่ฟ่กไฟฎๆนใ QDTE ๅทฅๅ ท็จไบ้่ฟ็ผ่พ xbl_config.elf ๆไปถๆฅ้ ็ฝฎ่ฎพๅคๆ ไบ่ฟๅถ Blob๏ผๅฆไธๅพๆ็คบใๆๅ ณๅฆไฝ้ ็ฝฎ่ฎพๅคๆ Blob ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง QDTE ้จๅใLinux ไธปๆบไธ็่ฎพๅคๆ ๆไปถ่ทฏๅพไธบ /boot_images/boot/Settings/Soc/<Chipset>/Core/WiredConnectivity/USB/usb.dtsiใ ๅพ๏ผ่ฎพๅคๆ ๅธๅฑ ไธ่กจๅๅบไบ็จไบ่ฐๆด HS-USB PHY ๅ SS USB PHY ไฟกๅท่ดจ้็ๅฑๆงใ ่กจ๏ผ USB ้ ็ฝฎๅฑๆง้ ็ฝฎ USB ๆๅๅคด
Qualcomm Linux ่ฎพๅคไธบ็ฌฆๅ USB ่ง้ข็ฑป๏ผUVC๏ผๆ ๅ็ USB ็ฝ็ปๆๅๅคดๆไพ้ฉฑๅจ็จๅบๆฏๆใLinux ๅ ๆ ธ็uvcvideo ้ฉฑๅจ็จๅบๆฏๆๆๅๅคดใๆๅ
ณ uvcvideo ้ฉฑๅจ็จๅบ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง https://www.kernel.org/doc/html/v4.19/media/v4l-drivers/uvcvideo.htmlใ
uvcvideo ้ฉฑๅจ็จๅบๅฐ่ฟไบๆๅๅคดๆด้ฒไธบ V4L2 ่ง้ข่ฎพๅค๏ผๅฏไปฅ้่ฟๅญ็ฌฆ่ฎพๅค่็น๏ผๅฆ /dev/videoX๏ผ่ฎฟ้ฎใ
ๅจ็จๆท็ฉบ้ดไธญ๏ผๅบ็จ็จๅบๅฏไปฅไฝฟ็จ v4l2src GStreamer ๆไปถ็ฎก็ USB ๆๅๅคด๏ผ่ฏฅๆไปถไธ Qualcomm ๆบ่ฝๅคๅชไฝ SDK๏ผIM SDK๏ผไธ่ตทๆไพใๆ่
๏ผYavta๏ผyet another V4L2 test application๏ผ็ญ็จๅบ็ดๆฅไธ V4L2๏ผVideo4Linux2๏ผๆฅๅฃไบคไบไปฅๆต่ฏๅๆงๅถๆๅๅคด่ฎพๅคใ
ๅฆๆ็ฎๆ ไธๆฒกๆ YAVTA๏ผ่ฏทๆ็
งไปฅไธๆญฅ้ชคไบคๅ็ผ่ฏๅนถๅฎ่ฃ
ๅฎ๏ผ
- ๅฏไปฅไฝฟ็จไปฅไธไปปไธๆนๆณๅปบ็ซไบคๅ็ผ่ฏ็ฏๅขใ
- ๆนๆณ 1๏ผ่ฆ่ฎพ็ฝฎไบคๅ็ผ่ฏ็ฏๅข๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
- ๆนๆณ 2๏ผ่ฆ่ฎพ็ฝฎไบคๅ็ผ่ฏ็ฏๅข๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
- ไธ่ฝฝไบคๅ็ผ่ฏๅจใ
- ่งฃๅไบคๅ็ผ่ฏๅจใ
- ่ฟ่กไปฅไธๅฝไปคไธบไบคๅ็ผ่ฏ่ฎพ็ฝฎ็ฏๅขใ
- ไธ่ฝฝไบคๅ็ผ่ฏๅจใ
- ๆนๆณ 1๏ผ่ฆ่ฎพ็ฝฎไบคๅ็ผ่ฏ็ฏๅข๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
- ๅ
้ Yavta ไปๅบๅนถๆดๆน็ฎๅฝใ
- ไบคๅ็ผ่ฏ่ฏฅๅทฅๅ
ทใ
- ่ฆๅฐ Yavta ๆจ้ๅฐ Qualcomm Linux ็กฌไปถ SoC๏ผ่ฏทๆง่กไปฅไธๆไฝ๏ผ
- ๅจๅฎฝๆพๆจกๅผไธๆๅผ SSH shell ๆไฝฟ็จ ADB shellใๆๅ ณๅฆไฝ่ฟ่ก SSH ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง Use SSH ้จๅใ
- ๆ่ฝฝๆไปถ็ณป็ปใ
- ไฝฟ็จ SCP ๆ็ฑปไผผๅทฅๅ
ทไผ ่พๆไปถใ
ไพๅฆ๏ผ
scp yavta root@10.92.162.185:/usr/bin - ไธบ Yavta ๅ้
ๆง่กๆ้ใ
ๅๆๆกไปถ๏ผ่ทๅๅพๅๆ ผๅผๅๅคงๅฐ
่ฆ้่ฟ Yavta ๆ GStreamer ้ ็ฝฎ USB ๆๅๅคด๏ผไปฅไธๆญฅ้ชคๆฏๅฟ ้็ใ- ่ฆไบ่งฃๆไธพ่ฏฆๆ
๏ผ่ฏทๆๅ
ฅ USB ๆๅๅคดๅนถ่ฟ่กไปฅไธๅฝไปคใ
ๅฐๆพ็คบไปฅไธ่พๅบใ
- ไปไธฒ่กๆงๅถๅฐ่ฏๅซๅๅปบ็ USB ๆๅๅคด่ง้ข่็น /dev/videoXใ
ๆณจๆ
1-1/1-1:1.0ๅผๆ นๆฎ่ฟๆฅ็ USB ่ฎพๅค่ๅๅใ ๅฐๆพ็คบไปฅไธ่พๅบใ - ่ฆไฝฟ็จ Yavta ๆฅ็ๆฏๆ็่พๅบๆ ผๅผๅๅคงๅฐ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
ๅ ถไธญ
Xๅผๅบไบ่็นใ ไพๅฆ๏ผๅฐๆพ็คบไปฅไธ่พๅบใ - ไป็ฌฌ 3 ๆญฅ้ๆฉๆ้็ๅพๅๆ ผๅผๅๅคงๅฐใ
ไฝฟ็จ Yavta ้ ็ฝฎ USB ๆๅๅคด
ๅๆๆกไปถ๏ผ็กฎไฟ Yavta ๅทฒไบคๅ็ผ่ฏ๏ผๅนถๅทฒ่ฏๅซ่พๅบๆ ผๅผๅๅคงๅฐใ- ่ฆ้ๆฉ MJPEG ๆ ผๅผ๏ผ1280x720 ่พๅบๅคงๅฐใ30 fps๏ผ๏ผๅจ /tmp/ ไธๆ่ท 10 ๅธง๏ผๆไปถๅไธบ testmjpeg-00000*.bin๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
ๅฐๆพ็คบไปฅไธ่พๅบใ
- ่ฆ้ๆฉ YUV ๆ ผๅผ๏ผ1280x960 ่พๅบๅคงๅฐใ30 fps๏ผ๏ผๅจ /tmp/ ไธๆ่ท 10 ๅธง๏ผ็ๆ็ๆไปถๅไธบ testyuv-00000*.bin๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
ๆณจๆไฝฟ็จๅฝไปค
#setenforce 0ๅฏ็จๅฎฝๆพๆจกๅผใ ๅฐๆพ็คบไปฅไธ่พๅบใ
ๅจ Qualcomm IM SDK ไธญไฝฟ็จ GStreamer ้ ็ฝฎ USB ๆๅๅคด
Qualcomm IM SDK ไฝฟ็จ GStreamer๏ผไธไธชๅผๆบ็ๅคๅชไฝๆกๆถ๏ผ็จไบๅจๅคๅชไฝๅๆบๅจๅญฆไน ้ขๅๅ ฌๅผ็ฎๅ็ API ๅๆไปถใๆๅ ณๅฎ่ฃ Qualcomm IM SDK ็ไฟกๆฏ๏ผ่ฏทๅ่ง Getting Started ้จๅใ Qualcomm IM SDK ๅ ๆฌv4l2src ๆไปถ๏ผ่ฏฅๆไปถๅ
่ฎธไปๅ
ทๆๆ้ๆ ผๅผ็ USB ๆๅๅคด่พๅ
ฅใwaylandsink ๆไปถ่ด่ดฃๅจ Wayland ๆพ็คบๅจไธๆธฒๆ่ง้ข่พๅบใ
ๆณจๆ ๅๆๆกไปถ๏ผ
- ็กฎไฟ Yavta ๅทฒไบคๅ็ผ่ฏ๏ผๅนถๅทฒ่ฏๅซ่พๅบๆ ผๅผๅๅคงๅฐใ
- ่ฆไธ่ฝฝๆๆดๆฐๅบไปถ๏ผ่ฏทๅ่ง Download PCIe to USB controller firmwareใ
- ่ฆไธบ Wayland ๆพ็คบๅจ่ฎพ็ฝฎ็ฏๅขๅ้๏ผ่ฏทๅจไธฒ่กๆงๅถๅฐไธญ่ฟ่กไปฅไธๅฝไปคใ
- ไฝฟ็จ GStreamer ๅฝไปคๅฐ่ง้ขไปๆๅๅคดๆตๅผไผ ่พๅฐ UIใ็กฎไฟๆจ่ฎพ็ฝฎไบ้ๅฝ็่ฎพๅค ID (
/dev/videoX) ๅนถๆ นๆฎ USB ๆๅๅคดๆฃๆต้ๆฉๆญฃ็กฎ็ๆ ผๅผใ ๆณจๆๅจ GStreamer ไธญ๏ผYUYV ้ข่ฒๆ ผๅผ็งฐไธบ YUY2ใๅ ๆญค๏ผๅจ่ฎพ็ฝฎ็ฎก้ๆถๆจๅฟ ้กปๆๅฎ YUYV ๆ ผๅผ๏ผๅนถๅจ caps ่ฟๆปคๅจไธญไฝฟ็จ YUY2ใ- ๅฏนไบ 720p๏ผ่ฟ่กไปฅไธๅฝไปค๏ผ
ๅฐๆพ็คบไปฅไธ่พๅบใ
- ๅฏนไบ 1080p๏ผ่ฟ่กไปฅไธๅฝไปค๏ผ
- ๅฏนไบ 720p๏ผ่ฟ่กไปฅไธๅฝไปค๏ผ
่ชๅฎไน USB ่ฎพๅค
ๆฌ่ๆ่ฟฐ USB ่ฝฏไปถไธญๅ็ง้ ็ฝฎๅ่ชๅฎไน็่ฆๆฑใๅ ทๆ diag ๅ ADB ๆฅๅฃ็ USB ็ปๅ็็คบไพ shell ่ๆฌ
ไฝฟ็จ configfs ่ชๅฎไน
configfs ๆไปถ็ณป็ปๆไพไธ sysfs ๅ่ฝ็ธๅ็ๅ่ฝใๅค็งๆฅๅฃๅฏไปฅ้
็ฝฎ Linux USB gadget๏ผๆฏไธชๆฅๅฃไปฃ่กจไธไธช USB ๅ่ฝใ
่ฟไบๆฅๅฃ็็ปๅๅฏไปฅ้่ฟ็ฑปไผผไบไธไธ่ไธญๅฏๅจ diag-adb ็ๅฝไปค่ฟ่กๆไธพใ
ๅฏ็จ็ USB ็ปๅๅฆไธใ
A4A1 NCM4EE7 ADB900E DIAG901C DIAG + UAC2901D DIAG + ADB9015 MASS_STORAGE + ADB9024 RNDIS + ADB902A RNDIS + MASS_STORAGE902B RNDIS + ADB + MASS_STORAGE902C RNDIS + DIAG902D RNDIS + DIAG + ADB902F RNDIS + DIAG + MASS_STORAGE9060 DIAG + QDSS + ADB908C NCM + ADB90CA DIAG + UAC2 + ADB90CB DIAG + UVC + ADB90CC DIAG + UAC2 + UVC + ADB90DF DIAG + UVC90E0 DIAG + UAC2 + UVCF000 MASS_STORAGEF00E RNDIS
ๅฏ็จๅ้ ็ฝฎ UVC ็จไพ
USB ่ง้ข่ฎพๅค็ฑป๏ผไน็งฐไธบ USB ่ง้ข็ฑปๆ UVC๏ผๆฏไธ็ง USB ่ฎพๅค็ฑป๏ผๆ่ฟฐ่ฝๅคๆตๅผไผ ่พ่ง้ข็่ฎพๅค๏ผไพๅฆ็ฝ็ปๆๅๅคดใๆฐๅญๆๅๆบใ่ฝฌ็ ๅจใๆจกๆ่ง้ข่ฝฌๆขๅจๅ้ๆๅพๅ็ธๆบใ USB ่ง้ข็ฑป่ง่็ๆๆฐ็ๆฌไธบ v1.5ใUSB ๅฎๆฝ่ ่ฎบๅๅจ v1.5 ไธญๆ่ฟฐไบๅบๆฌๅ่ฎฎๅไธๅ็ๆๆ่ฝฝ่ทๆ ผๅผใ ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ UVC ็จไพใ ๆต่ฏ UVC ็ๅทฅๅ ทๅ็จๅบๅฆไธ๏ผ- UVC gadget๏ผ่ฎพๅค็ซฏ๏ผ๏ผ่ฟๆฏไธไธช็จไบๆต่ฏ
f_uvcๅ่ฝ้ฉฑๅจ็จๅบ็็คบไพๅบ็จ็จๅบใๅฎๆๅผ็ฑuvc_gadgetๅๅปบ็่ง้ข่็น๏ผๅนถไปฅๆๅฎ็ๅธง้็ๅ้ MJPEG ๅธงใๆญคๅบ็จ็จๅบไธบ DUT ไบคๅ็ผ่ฏใ ๆณจๆ็กฎไฟไธปๆบไธๅทฒๅฎ่ฃ ไบคๅ็ผ่ฏ 64 ไฝ Armยฎ ๆๆฏ็ผ่ฏๅจๆ้็่ฝฏไปถๅ ๅๅทฅๅ ทใ- ๅฏไปฅไฝฟ็จไปฅไธไปปไธ้้กนๅปบ็ซไบคๅ็ผ่ฏ็ฏๅขใ
- ้้กน A๏ผ่ฟ่กไปฅไธๅฝไปคใ
- ้้กน B๏ผ่ฆ่ฎพ็ฝฎไบคๅ็ผ่ฏ็ฏๅข๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
- ไธ่ฝฝไบคๅ็ผ่ฏๅจใ
- ่งฃๅไบคๅ็ผ่ฏๅจใ
- ่ฟ่กไปฅไธๅฝไปคไธบไบคๅ็ผ่ฏ่ฎพ็ฝฎ็ฏๅขใ
- ไธ่ฝฝไบคๅ็ผ่ฏๅจใ
- ้้กน A๏ผ่ฟ่กไปฅไธๅฝไปคใ
- ่ฆๆๅปบ UVC gadget ๅทฅๅ
ท๏ผ่ฏทๆง่กไปฅไธๆไฝใ
- ๅ
้
uvc-gadgetไปๅบใ - ไฟฎๆน
Makefileไปฅ่ฟ่ก้ๆๆๅปบใ - ไธบ
arm64ไบคๅ็ผ่ฏไปฅ็ๆuvc-gadgetๅฏๆง่กๆไปถใ
- ๅ
้
- ๅฏไปฅไฝฟ็จไปฅไธไปปไธ้้กนๅปบ็ซไบคๅ็ผ่ฏ็ฏๅขใ
- UVC viewer๏ผไธปๆบ็ซฏ๏ผ๏ผ่ฆๆฅๆถ UVC ๆฐๆฎ๏ผ่ฏทๅจ่ฎก็ฎๆบไธๆๅผไปปไฝ USB ็ฝ็ปๆๅๅคดๅบ็จ็จๅบใ
- ่ฆ้ช่ฏ๏ผ่ฏทๅฐ UVC gadget ๅบ็จ็จๅบๅ็คบไพๅพๅๆไปถๆจ้ๅฐ่ฎพๅค๏ผ่ฏทๆง่กไปฅไธๆไฝ๏ผ
- ๅจๅฎฝๆพๆจกๅผไธๆๅผ SSH shell ๆไฝฟ็จ ADB shellใๆๅ ณๅฆไฝ่ฟ่ก SSH ็ๆดๅคไฟกๆฏ๏ผ่ฏทๅ่ง Use SSH ้จๅใ
- ๆ่ฝฝๆไปถ็ณป็ปใ
- ไฝฟ็จ SCP ๆ็ฑปไผผๅทฅๅ
ทไผ ่พๆไปถใ
ไพๅฆ๏ผ
scp uvc-gadget root@10.92.175.138:/usr/bin - ๅ้
ๆง่กๆ้ใ
- ๆดๆนไธบไปปไฝ UVC ็ปๅ๏ผ90DF ๆ 90CB๏ผใ
- ่ฆ้ช่ฏ๏ผ่ฏทๅฐ UVC gadget ๅบ็จ็จๅบๅ็คบไพๅพๅๆไปถๆจ้ๅฐ่ฎพๅค๏ผ่ฏทๆง่กไปฅไธๆไฝ๏ผ
uvc_gadget ๅบ็จ็จๅบใ
- YUYV
- ๅฐ
image-720.yuvๅพๅๆไปถๆจ้ๅฐ/rootๆ/etcใ - ไฝฟ็จ
uvc-gadgetๅทฅๅ ท้ช่ฏimage-720.yuvๅพๅใ- ๅ
ถไธญ
X่กจ็คบ็ปๅๅๆขๅๅๅปบ็ๆฐ่ง้ข่็น - ๅ
ถไธญ
-fๆฏๆ ผๅผ๏ผๅผๅฆไธ๏ผ0= V4L2_PIX_FMT_YUYV1= V4L2_PIX_FMT_MJPEG
- ๅ
ถไธญ
- ๅฐ
- MJPEG
- ๅฐ
image-720.jpgๅพๅๆไปถๆจ้ๅฐ/rootๆ/etcใ - ไฝฟ็จ
uvc-gadgetๅทฅๅ ท้ช่ฏimage-720.jpgๅพๅใ- ๅ
ถไธญ
X่กจ็คบ็ปๅๅๆขๅๅๅปบ็ๆฐ่ง้ข่็น - ๅ
ถไธญ
-fๆฏ <format>๏ผๅผๅฆไธ๏ผ0= V4L2_PIX_FMT_YUYV1= V4L2_PIX_FMT_MJPEG
- ๅ
ถไธญ
- ๅฐ
- ๆๅ
ณ็จๆณไฟกๆฏ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
ๅฐๆพ็คบไปฅไธ่พๅบใ
UAC ็จไพ
USB ้ณ้ขไฝฟ็จๅๆญฅใไธญๆญๅๆงๅถไผ ่พใๆๆ้ณ้ขๆฐๆฎ้ฝไฝฟ็จๅๆญฅไผ ่พ่ฟ่กไผ ่พใไธญๆญไผ ่พ็จไบไผ ้ๆๅ ณ้ณ้ขๆถ้ๅฏ็จๆง็ไฟกๆฏ๏ผๆงๅถไผ ่พ็จไบ่ฎพ็ฝฎ้ณ้ใ่ฏทๆฑ้ๆ ท็ใ ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ UAC ็จไพใ ่ฆ้ช่ฏ๏ผ่ฏท้ๆฉๅ ทๆ UAC ๅ่ฝ็ USB ็ปๅใ ่ฆๆ่ทๆๆญๆพ๏ผ่ฏทไฝฟ็จrootfs ไธญๆไพ็ tinyutils ๅบ็จ็จๅบ๏ผๅฆ tinyplay/tinycapใๅฝ UAC ้ฉฑๅจ็จๅบ็ปๅฎๆๅๆถ๏ผ่ฏฅๅบ็จ็จๅบไผๆๅผ /dev/snd/ ไธญๅๅปบ็ PCM ่็นใ
ไปฅไธๆฏไธไบ็คบไพๅฝไปคใ
- ๅๅบ Linux ไธปๆบไธ็ๅฃฐๅกใ
- ๆญๆพ้ณ้ขๆไปถใ
- ่ฆๅฐ้ณ้ขไป่ฎพๅคๆญๆพๅฐไธปๆบ๏ผ่ฏทๆจ้ๅ
ทๆๅน้
้ณ้ข้
็ฝฎ็
file.wavๆไปถใไปฅไธๆฏ็คบไพ้ ็ฝฎ็็คบไพใ่พๅบ๏ผ่พๅบ๏ผ่พๅบ๏ผ่พๅบ๏ผ่พๅบ๏ผ่พๅบ๏ผๆณจๆ่ฆไฟฎๆน้ณ้ข้ ็ฝฎ๏ผ่ฏทๅจๅฐ USB ็ปๅๅปบ็ซไธบ 90CA ไนๅ่ฐๆดไธ่ฟฐๅๆฐใ - ๅจ SSH shell ไธ่ฟ่กไปฅไธๅฝไปคๆไฝฟ็จ ADB shellใ
ๅฐๆพ็คบไปฅไธ่พๅบใ
- ๅจ Linux ไธปๆบไธ่ฟ่กไปฅไธๅธฆๆ
arecord็ญๅบ็จ็จๅบ็ๅฝไปคๆฅๆ่ท้ณ้ขใ
- ่ฆๅฐ้ณ้ขไป่ฎพๅคๆญๆพๅฐไธปๆบ๏ผ่ฏทๆจ้ๅ
ทๆๅน้
้ณ้ข้
็ฝฎ็
- ๅฝๅถ้ณ้ขๆไปถใ
- ๅจ Linux ไธปๆบไธ่ฟ่กไปฅไธๅธฆๆ
aplay็ญๅบ็จ็จๅบ็ๅฝไปคๆฅๆญๆพ้ณ้ขใ - ๅจ่ฎพๅค็ SSH shell ไธ่ฟ่กไปฅไธๅฝไปคๆไฝฟ็จ ADB shellใ
ๅฐๆพ็คบไปฅไธ่พๅบใ
- ๅจ Linux ไธปๆบไธ่ฟ่กไปฅไธๅธฆๆ
USB ็ตๅไผ ่พไธญ็ๆฐๆฎ่ง่ฒไบคๆข
ๆฐๆฎ่ง่ฒไบคๆข๏ผDR_SWAP๏ผๆฏไฝฟ็จ USB Type-C ่ฟๆฅๅจๅจ็ซฏๅฃไผไผดไน้ดไบคๆข DFP๏ผไธปๆบ๏ผๅ UFP๏ผ่ฎพๅค๏ผ่ง่ฒใ็ตๆบ่ง่ฒไบคๆข๏ผPR_SWAP๏ผๅจ็ซฏๅฃไผไผดไน้ดไบคๆขๆบๅๆฅๆถ่ง่ฒใ ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆไฝฟ็จ Type-C ่ฟๆฅๅจ่ฟ่กๆฐๆฎๅ็ตๆบ่ง่ฒไบคๆขใ- ๆฐๆฎ่ง่ฒ
- ่ฆๅฐๆฐๆฎ่ง่ฒไปไธปๆบๅๆขๅฐ่ฎพๅค๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
ๅฐๆพ็คบไปฅไธ่พๅบใๅฐๆพ็คบไปฅไธ่พๅบใ
- ่ฆๅฐๆฐๆฎ่ง่ฒไป่ฎพๅคๅๆขๅฐไธปๆบ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
ๅฐๆพ็คบไปฅไธ่พๅบใๅฐๆพ็คบไปฅไธ่พๅบใ
- ่ฆๅฐๆฐๆฎ่ง่ฒไปไธปๆบๅๆขๅฐ่ฎพๅค๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
- ็ตๆบ่ง่ฒ
- ่ฆๅฐ็ตๆบ่ง่ฒไปๆฅๆถๅๆขๅฐๆบ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
ๅฐๆพ็คบไปฅไธ่พๅบใๅฐๆพ็คบไปฅไธ่พๅบใ
- ่ฆๅฐ็ตๆบ่ง่ฒไปๆบๅๆขๅฐๆฅๆถ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
ๅฐๆพ็คบไปฅไธ่พๅบใๅฐๆพ็คบไปฅไธ่พๅบใ
- ่ฆๅฐ็ตๆบ่ง่ฒไปๆฅๆถๅๆขๅฐๆบ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปค๏ผ
้ช่ฏ USB ่ฎพๅค
ไธ่กจๅๅบไบ้ช่ฏ USB ่ฎพๅคๅไธปๆบๆจกๅผ็ๅ็งๆนๆณใ ่กจ๏ผ USB ่ฎพๅคๅไธปๆบๆจกๅผ้ช่ฏ่ฐ่ฏ USB ้ฎ้ข
ๆฌ่ไป็ปไบ่ทๅ่ฐ่ฏๆฅๅฟ็ๅ็งๆนๆณใ่ฐ่ฏๆนๆณๅ ๆฌregdumpsใ่ฐ่ฏ ftracesใconfigfs ่็นใ่ฟไบๆฅๅฟๅจ่ฐ่ฏไฝๅ่ๆจกๅผ่ฟๅ
ฅ-้ๅบใSMMU ๆ
้ใๆ ๆถ้่ฎฟ้ฎ็ญ้ฎ้ขๆถ๏ผๆไพไบไปถๅๆงๅถๅจ็ถๆ่ฏฆๆ
็ๅฏ่งๆงใ
ๆณจๆDragonwing IQ-9075 ๅ Dragonwing IQ-8275 ไธๆฏๆ USB Type-C ๅ่ฝใ
่ท่ธช USB
debugfs ่ท่ธชๆไพไบๅฏน USB ็บฟ่ทฏไธๆฏไธชไบๅก็ๆดๆทฑๅฑๆฌก็่งๅพใ่ฆๆฅ็่ท่ธชๅ่กจ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคใ
debugfsใๅฆๆๆชๆ่ฝฝ๏ผ่ฏท่ฟ่กไปฅไธๅฝไปคๆ่ฝฝ debugfsใ
USB regdump
USBdebugfs ๆไพไปฅไธไฟกๆฏใ
ๆณจๆa600000.usb ๅฐๅๅ ่ฏ็็ป่ๅผใ
- ๆไฝๆจกๅผใ
็คบไพ่พๅบ๏ผ
- ่ฎพๅคๆจกๅผไธๆๆ็ซฏ็น็็ถๆๅไผ ่พ็ฏ็ผๅฒๅบ๏ผTRB๏ผ้ๅใ
- ๅฝๅ้พ่ทฏ็ถๆใ
็คบไพ่พๅบใ
- ๅ่กจๅค็ๅจ๏ผLSP๏ผ่ฝฌๅจใ
็คบไพ่พๅบ๏ผ
regdump ๅฝไปคๆไพไปฅไธๅฏๅญๅจ็ๅฏๅญๅจ็ฉบ้ด็ๅฝๅ็ถๆ๏ผ
- ่ฎพๅคๆจกๅผๅฏๅญๅจ๏ผๅฆ DCTLใDSTS ๅ DCFG
- ๅ จๅฑๅฏๅญๅจ๏ผๅฆ GCTL ๅ GSTS

