You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by "ALTracer (via GitHub)" <gi...@apache.org> on 2023/04/05 08:40:16 UTC

[GitHub] [nuttx] ALTracer opened a new issue, #8968: stm32_otgfsdev not working on stm32f411-minimum

ALTracer opened a new issue, #8968:
URL: https://github.com/apache/nuttx/issues/8968

   ## Summary
   I can't get USB OTG to work in device mode on WeAct BlackPill STM32F411CEU6 rev 3.1 in CDC/ACM, MSC and COMPOSITE configurations.
   ## Impact
   Possibly all stm32f4-based boards and dwc2 IP users without VBUS_SENSE pad routed.
   ## Description
   As I was bringing up some more configs for stm32f411-minimum, I stumbled upon non-working USBDEV. USBHOST won't work because I didn't bridge VBUS with onboard 5V pin yet, and I don't need USBHOST on this board.
   
   I see several issues in stm32_otgfsdev driver code:
   1. VBUSASEN/VBUSBSEN bits are written unconditionally. Does NOVBUSSENS actually override them in this IP core version?
   ```patch
   diff --git a/arch/arm/src/stm32/stm32_otgfsdev.c b/arch/arm/src/stm32/stm32_otgfsdev.c
   index a0a9ecb70..7bf89426c 100644
   --- a/arch/arm/src/stm32/stm32_otgfsdev.c
   +++ b/arch/arm/src/stm32/stm32_otgfsdev.c
   @@ -5362,9 +5362,11 @@ static void stm32_hwinitialize(struct stm32_usbdev_s *priv)
       * Sense when Set
       */
    
   -  regval  = (OTGFS_GCCFG_PWRDWN | OTGFS_GCCFG_VBUSASEN |
   -             OTGFS_GCCFG_VBUSBSEN);
   -# ifndef CONFIG_USBDEV_VBUSSENSING
   +  regval  = OTGFS_GCCFG_PWRDWN;
   +
   +# ifdef CONFIG_USBDEV_VBUSSENSING
   +  regval |= OTGFS_GCCFG_VBUSBSEN;
   +# else
      regval |= OTGFS_GCCFG_NOVBUSSENS;
    # endif
    # ifdef CONFIG_STM32_OTGFS_SOFOUTPUT
    ```
   
   2. CONFIG_STM32_USBDEV_REGDEBUG option is unreachable. I added it to Kconfig myself to achieve the following trace:
   
   ```patch
   diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig
   index 214a31ef3..7094ea2a6 100644
   --- a/arch/arm/src/stm32/Kconfig
   +++ b/arch/arm/src/stm32/Kconfig
   @@ -11088,6 +11088,15 @@ config STM32_USBFS_REGDEBUG
    
    endmenu
    
   +menu "USB OTG Device Debug Configuration"
   +
   +config STM32_USBDEV_REGDEBUG
   +       bool "Register-Level Debug for OTG in Device mode"
   +       default n
   +       depends on USBDEV && DEBUG_USB_INFO
   +
   +endmenu
   +
    menu "OTG Configuration"
           depends on STM32_OTGFS
    
   ```
   
   I input sercon, msconn, conn and disconn. The latter triggered an assert because my Gentoo Host cannot enumerate this device.
   
   ```
   ern  :info  : [ +18.810180] usb 1-8: new full-speed USB device number 20 using xhci_hcd
   kern  :err   : [  +0.204052] usb 1-8: device descriptor read/64, error -71
   kern  :err   : [  +0.280011] usb 1-8: device descriptor read/64, error -71
   kern  :info  : [  +0.281943] usb 1-8: new full-speed USB device number 21 using xhci_hcd
   kern  :err   : [  +0.205060] usb 1-8: device descriptor read/64, error -71
   kern  :err   : [  +0.280995] usb 1-8: device descriptor read/64, error -71
   kern  :info  : [  +0.106046] usb usb1-port8: attempt power cycle
   kern  :info  : [Apr 5 11:16] usb 1-8: new full-speed USB device number 22 using xhci_hcd
   kern  :warn  : [  +0.026800] usb 1-8: Device not responding to setup address.
   kern  :warn  : [  +0.236003] usb 1-8: Device not responding to setup address.
   kern  :err   : [  +0.205205] usb 1-8: device not accepting address 22, error -71
   kern  :info  : [  +0.179008] usb 1-8: new full-speed USB device number 23 using xhci_hcd
   kern  :warn  : [  +0.026811] usb 1-8: Device not responding to setup address.
   kern  :warn  : [  +0.237983] usb 1-8: Device not responding to setup address.
   kern  :err   : [  +0.204205] usb 1-8: device not accepting address 23, error -71
   kern  :err   : [  +0.004012] usb usb1-port8: unable to enumerate USB device
   ```
   
   Wireshark usbmon0 traces later. STM32 DfuSe USB BootROM works.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [nuttx] ALTracer commented on issue #8968: stm32_otgfsdev not working on stm32f411-minimum

Posted by "ALTracer (via GitHub)" <gi...@apache.org>.
ALTracer commented on issue #8968:
URL: https://github.com/apache/nuttx/issues/8968#issuecomment-1497133682

   Also see discussion in #8906 and https://github.com/libopencm3/libopencm3-examples/issues/178.
   Summoning @raiden00pl for good measure because of involvement in RNDIS, COMPOSITE and stm32h7. Maybe even @davids5 (thanks for allowing disabling GPIO_OTG_ID!)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [nuttx] ALTracer commented on issue #8968: stm32_otgfsdev not working on stm32f411-minimum

Posted by "ALTracer (via GitHub)" <gi...@apache.org>.
ALTracer commented on issue #8968:
URL: https://github.com/apache/nuttx/issues/8968#issuecomment-1497816053

   @davids5 Maybe you didn't read my #8906 ?
   
   Moving half of comment from PR to this issue:
   
   > I see something funny in otgfsdev driver code:
   https://github.com/apache/nuttx/blob/d3f659b85427401c334aea8f2c633516222f7982/arch/arm/src/stm32/stm32_otgfsdev.c#L5361-L5369
   F446, F469 and MP15x have a newer DWC2 and only VBDEN bit in ther GCCFG register.
   F411 has a slightly older revision and is controllable by all the bits: VBUSASEN. VBUSBSEN, NOVBUSSENS.
   
   STM32F411CE Reference Manual contains a OTG Device mode programming sequence, where they tell to write the VBUSBSEN bit to enable Vbus B-mode sensing logic, if VBus pad is muxed. Or they tell to write the NOVBUSSENS bit if VBus pad is not connected.
   
   NuttX driver code writes BOTH VBUSASEN, VBUSBSEN unconditionally, and there is no git history for these two lines since basically 2015. Sure, some might say after NOVBUSSENS this is largely irrelevant, but 
   1) it contradicts the RM; (not really, it's just _not stated_)
   2) there are multiple threads/GH-issues in libopencm3 which consider this subject/problem of non-working OTG device on F411 and friends.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [nuttx] ALTracer commented on issue #8968: stm32_otgfsdev not working on stm32f411-minimum

Posted by "ALTracer (via GitHub)" <gi...@apache.org>.
ALTracer commented on issue #8968:
URL: https://github.com/apache/nuttx/issues/8968#issuecomment-1497128564

   <details>
   <summary> NuttX-12.0 / master serial log </summary>
   
   ```
   
   NuttShell (NSH) NuttX-12.0.0
   nsh> uname -a
   NuttX 12.0.0 ca9b3271d Apr  5 2023 11:05:58 arm stm32f411-minimum
   nsh> ps
     PID GROUP PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK           STACK   USED  FILLED    CPU COMMAND
       0     0   0 FIFO     Kthread N-- Ready              0000000000000000 001000 000564  56.4%  100.0% Idle Task
       1     1 100 RR       Task    --- Running            0000000000000000 002000 001204  60.2%    0.0% nsh_main
   nsh> free
                      total       used       free    largest  nused  nfree
   nsh> help
   help usage:  help [-v] [<cmd>]
   
       .          cat        dmesg      memdump    mksmartfs  rmdir      truncate   
       [          cd         echo       help       mount      set        uname      
       ?          cp         env        hexdump    mv         sleep      umount     
       alias      cmp        exec       irqinfo    printf     source     unset      
       unalias    dirname    exit       kill       ps         test       uptime     
       basename   dd         false      ls         pwd        time       usleep     
       break      df         free       mkdir      rm         true       xd         
   
   Builtin Apps:
       conn     disconn  msconn   msdis    nsh      sercon   serdis   sh       
   nsh> srcon
   nsh: srcon: command not found
   nsh> sercon
   sercon: Registering CDC/ACM serial driver
   sercon: Successfully registered the CDC/ACM serial driver
   nsh> msconn
   mcsonn_mausbmsc_exportluns: Starting SCSI worker thread
   in:usbmsc_scsi_main: Started
    usbmsc_exportluns: Waiting for the SCSI worker thread
   Cusbmsc_exportluns: Signalling for the SCSI worker thread
   rusbmsc_scsi_main: Waiting to be signaled
   eusbmsc_scsi_main: Running
   ating block drivers
   mcsonn_main: Configuring with NLUNS=1
   mcsonn_main: handle=0x2000db90
   mcsonn_main: Bind LUN=0 to /dev/smart0
   mcsonn_main: Connected
   nsh> ps
     PID GROUP PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK           STACK   USED  FILLED    CPU COMMAND
       0     0   0 FIFO     Kthread N-- Ready              0000000000000000 001000 000564  56.4%   99.3% Idle Task
       1     1 100 RR       Task    --- Running            0000000000000000 002000 001204  60.2%    0.6% nsh_main
       6     6 128 RR       Kthread --- Waiting  Semaphore 0000000000000000 002008 000444  22.1%    0.0% scsid
   nsh> conn
   coboard_mscclassobject: Configuring with NLUNS=1
   nboard_mscclassobject: MSC handle=n0x2000d9e0
   _board_mscclassobject: Bind LUN=0 to /dev/smart0
   musbmsc_exportluns: Starting SCSI worker thread
   ain:usbmsc_scsi_main: Started
    usbmsc_exportluns: Waiting for the SCSI worker thread
   Pusbmsc_exportluns: Signalling for the SCSI worker thread
   eusbmsc_scsi_main: Waiting to be signaled
   rusbmsc_scsi_main: Running
   forminstm32_getreg: 50000804->00000002
   stm32_putreg: 50000804<-00000000
   gstm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
    stm32_getreg: 50000014->04008c20
   stm32_getreg: 50000014->04008c20
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000800
   stm32_usbsuspend: resume: 0
   stm32_getreg: 50000014->04008420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   architecture-specific initialization
   conn_main: Exiting
   nsh> stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000014->04809c20
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001800
   stm32_usbsuspend: resume: 0
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000800
   stm32_usbsuspend: resume: 0
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04809420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000014->04809c20
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00001800
   stm32_usbsuspend: resume: 0
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000014->0480a420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00002000
   stm32_getreg: 50000900->00008000
   stm32_putreg: 50000900<-00008000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000100
   stm32_getreg: 5000000c->40001840
   stm32_putreg: 5000000c<-40001840
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000014->04808c20
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000800
   stm32_usbsuspend: resume: 0
   stm32_getreg: 50000014->04808420
   stm32_getreg: 50000018->000c3812
   stm32_putreg: 50000014<-00000000
   disconn
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000010<-00000020
   stm32_getreg: 50000010->80000000
   stm32_getreg: 50000804->00000000
   stm32_putreg: 50000804<-00000000
   stm32_putreg: 50000908<-000000ff
   stm32_putreg: 50000b08<-000000ff
   stm32_putreg: 50000928<-000000ff
   stm32_putreg: 50000b28<-000000ff
   stm32_putreg: 50000948<-000000ff
   stm32_putreg: 50000b48<-000000ff
   stm32_putreg: 50000968<-000000ff
   stm32_putreg: 50000b68<-000000ff
   stm32_putreg: 50000818<-ffffffff
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000814<-0000000b
   stm32_putreg: 50000810<-0000000b
   stm32_getreg: 50000800->00200003
   stm32_putreg: 50000800<-00200003
   stm32_getreg: 50000900->00008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_getreg: 50000b00->80008000
   stm32_getreg: 5000081c->00010001
   stm32_putreg: 5000081c<-00010001
   stm32_putreg: 50000b10<-60080018
   stm32_getreg: 50000b00->80008000
   stm32_putreg: 50000b00<-84008000
   _assert: Current Version: NuttX  12.0.0 ca9b3271d Apr  5 2023 11:05:58 arm
   _assert: Assertion failed priv->thstate == (8) || priv->thstate == (0): at file: usbdev/usbmsc.c:417 task: disconn 0x80157ad
   up_dump_register: R0: 00000000 R1: 20001de4 R2: 40011000  R3: 00000000
   up_dump_register: R4: 2000d4c0 R5: 00000000 R6: 0802390d  FP: 2000f110
   up_dump_register: R8: 20000bc0 SB: 080238e0 SL: 000001a1 R11: 00000000
   up_dump_register: IP: 00000008 SP: 2000f0f0 LR: 08012bed  PC: 08015648
   up_dump_register: xPSR: 61000200 BASEPRI: 00000080 CONTROL: 00000000
   up_dump_register: EXC_RETURN: fffffff9
   dump_stack: IRQ Stack:
   dump_stack: sp:     0x2000f110
   dump_stack:   base: 0x200003c0
   dump_stack:   size: 00002048
   dump_stack: ERROR: IRQ Stack pointer is not within the stack
   dump_stack: User Stack:
   dump_stack: sp:     0x2000f110
   dump_stack:   base: 0x2000ea98
   dump_stack:   size: 00002008
   stack_dump: 0x2000f100: 2000d548 080157ad 00000200 08020613 00000000 7474754e 20000058 0801c0da
   stack_dump: 0x2000f120: 2000f1e8 080076e7 08020012 2000f1e0 0000001c 2000f1e8 00000000 080072f9
   stack_dump: 0x2000f140: 2000f160 50000b00 2e323100 00302e30 20000bc8 50000b00 84008000 616300f0
   stack_dump: 0x2000f160: 32336239 20643137 20727041 32203520 20333230 303a3131 38353a35 08020600
   stack_dump: 0x2000f180: 2000f198 080145f9 2000f1ac 2000f198 6d7261bd 08020600 2000f1a4 00000000
   stack_dump: 0x2000f1a0: 0801493d 0801c0da 2000d9e0 20000bd0 00000000 000000f0 2000d8e8 0000004c
   stack_dump: 0x2000f1c0: 00000000 08006e93 00000002 08019627 2000d888 20000bd0 00000000 000000f0
   stack_dump: 0x2000f1e0: 2000d8e8 0801b353 0801b2c9 20000bd0 2000d9d0 000000f0 00000080 00000000
   stack_dump: 0x2000f200: 00000000 08002a3f 20001e90 2000d888 20001e90 2000ea88 00000000 0801b4fb
   stack_dump: 0x2000f220: 2000f240 20001e90 2000ea88 08014111 00000203 00000000 20001e90 080157ed
   stack_dump: 0x2000f240: 00000203 20001e90 2000ea88 080157ad 00000001 080070e3 00000000 080045c3
   nsh>
   
   ```
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [nuttx] ALTracer commented on issue #8968: stm32_otgfsdev not working on stm32f411-minimum

Posted by "ALTracer (via GitHub)" <gi...@apache.org>.
ALTracer commented on issue #8968:
URL: https://github.com/apache/nuttx/issues/8968#issuecomment-1497171052

   Wireshark:
   
   with NuttX firmware, host gets -EPROTO and 0-length USB URB in response to GET DESCRIPTOR Request DEVICE to 1.0.0 0-address destination. Request-response time is 0.3ms-1.0ms.
   Then hosts sends RESET to USBHUB (this is AMD Ryzen 3200G B450M desktop and USB2.0 front panel port, no issues with Full Speed devices) and repeats DESCRIPTOR Request. 0-length responses. I'll need to look at physical level later, something's wrong. NuttX throws a lot of USBDEV_REGDEBUG traces I enabled, into 0x50000000-0x50001000 region. Without them (synchronous 1-byte FIFO USART at 115200 is /dev/console aka arm bit-bucket, so might slow down) nothing much changes.
   
   with STM32 DfuSe BootROM, host gets URB status success and 18-length data, also a DFU Mode descriptor. Then assigns an address (39 today) and repeats descriptor request-response to this address, all the usual handshake stuff. First request-response time is 2.7ms.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [nuttx] davids5 commented on issue #8968: stm32_otgfsdev not working on stm32f411-minimum

Posted by "davids5 (via GitHub)" <gi...@apache.org>.
davids5 commented on issue #8968:
URL: https://github.com/apache/nuttx/issues/8968#issuecomment-1497335702

   @ALTracer Have a look at the reference manual and see of the IP block uses on the stm32411 look line the one on the F466/F469
   
   see https://github.com/apache/nuttx/blob/master/arch/arm/src/stm32/stm32_otgfsdev.c#L5349-L5360
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org