在2440的板子上跑 usb device control,然后在上面跑了个mass storage.在运行的时候出现下列情况:
# insmod s3c2410_udc.ko
Reading data from NAND FLASH without ECC is not recommended
s3c2410_udc: version 28 Aug 2005
0.00 USB: s3c2410_udc_probe
0.01 USB: udc_disable called
# insmod g_file_storage.ko file=/dev/mtdblock/4 stall=0 removable=1
Reading data from NAND FLASH without ECC is not recommended
0.02 USB: usb_gadget_register_driver() 'g_file_storage'
0.03 USB: binding gadget driver 'g_file_storage'
0.04 USB: s3c2410_set_selfpowered()
g_file_storage gadget: File-backed Storage Gadget, version: 20 October 2004
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, file: /dev/mtdblock/4
0.05 USB: udc_enable called
# 0.06 USB: USB reset csr 0 pwr 8
0.07 USB: USB reset csr 0 pwr 8
0.08 USB: ep0csr 1
0.09 USB: bRequest = 6 wLength = 64
0.10 USB: Written ep0 16.16 of 18 b [last 0,z 1]
0.11 USB: ep0csr 0
0.12 USB: EP0_IN_DATA_PHASE ... what now?
0.13 USB: Written ep0 2.18 of 18 b [last 1,z 1]
0.14 USB: USB reset csr 0 pwr 8
0.15 USB: ep0csr 1
0.16 USB: bRequest = 5 wLength = 0
0.17 USB: USB_REQ_SET_ADDRESS ...
0.18 USB: ep0csr 0
0.19 USB: ep0csr 1
0.20 USB: bRequest = 6 wLength = 18
0.21 USB: Written ep0 16.16 of 18 b [last 0,z 0]
0.22 USB: ep0csr 0
0.23 USB: EP0_IN_DATA_PHASE ... what now?
0.24 USB: Written ep0 2.18 of 18 b [last 1,z 0]
0.25 USB: ep0csr 8
0.26 USB: ep0csr 0
0.27 USB: ep0csr 1
0.28 USB: bRequest = 6 wLength = 9
0.29 USB: Written ep0 9.9 of 9 b [last 1,z 0]
0.30 USB: ep0csr 8
0.31 USB: ep0csr 0
0.32 USB: ep0csr 1
0.33 USB: bRequest = 6 wLength = 255
0.34 USB: Written ep0 4.4 of 4 b [last 1,z 1]
0.35 USB: ep0csr 8
0.36 USB: ep0csr 0
0.37 USB: ep0csr 1
0.38 USB: bRequest = 6 wLength = 255
0.39 USB: Written ep0 16.16 of 26 b [last 0,z 1]
0.40 USB: ep0csr 0
0.41 USB: EP0_IN_DATA_PHASE ... what now?
0.42 USB: Written ep0 10.26 of 26 b [last 1,z 1]
0.43 USB: ep0csr 8
0.44 USB: ep0csr 0
0.45 USB: ep0csr 1
0.46 USB: bRequest = 6 wLength = 255
0.47 USB: Written ep0 16.16 of 32 b [last 0,z 1]
0.48 USB: ep0csr 0
0.49 USB: EP0_IN_DATA_PHASE ... what now?
0.50 USB: Written ep0 16.32 of 32 b [last 0,z 1]
0.51 USB: ep0csr 0
0.52 USB: EP0_IN_DATA_PHASE ... what now?
0.53 USB: Written ep0 0.32 of 32 b [last 1,z 1]
0.54 USB: ep0csr 8
0.55 USB: ep0csr 0
0.56 USB: ep0csr 1
0.57 USB: bRequest = 6 wLength = 10
0.58 USB: Operation not supported
0.59 USB: ep0csr 4
0.60 USB: ... clear SENT_STALL ...
0.61 USB: ep0csr 1
0.62 USB: bRequest = 6 wLength = 255
0.63 USB: Written ep0 4.4 of 4 b [last 1,z 1]
0.64 USB: ep0csr 8
0.65 USB: ep0csr 0
0.66 USB: ep0csr 1
0.67 USB: bRequest = 6 wLength = 255
0.68 USB: Written ep0 16.16 of 54 b [last 0,z 1]
0.69 USB: ep0csr 0
0.70 USB: EP0_IN_DATA_PHASE ... what now?
0.71 USB: Written ep0 16.32 of 54 b [last 0,z 1]
0.72 USB: ep0csr 0
0.73 USB: EP0_IN_DATA_PHASE ... what now?
0.74 USB: Written ep0 16.48 of 54 b [last 0,z 1]
0.75 USB: ep0csr 0
0.76 USB: EP0_IN_DATA_PHASE ... what now?
0.77 USB: Written ep0 6.54 of 54 b [last 1,z 1]
0.78 USB: ep0csr 8
0.79 USB: ep0csr 0
0.80 USB: ep0csr 1
0.81 USB: bRequest = 6 wLength = 255
0.82 USB: Written ep0 4.4 of 4 b [last 1,z 1]
0.83 USB: ep0csr 8
0.84 USB: ep0csr 0
0.85 USB: ep0csr 1
0.86 USB: bRequest = 6 wLength = 255
0.87 USB: Written ep0 16.16 of 54 b [last 0,z 1]
0.88 USB: ep0csr 0
0.89 USB: EP0_IN_DATA_PHASE ... what now?
0.90 USB: Written ep0 16.32 of 54 b [last 0,z 1]
0.91 USB: ep0csr 0
0.92 USB: EP0_IN_DATA_PHASE ... what now?
0.93 USB: Written ep0 16.48 of 54 b [last 0,z 1]
0.94 USB: ep0csr 0
0.95 USB: EP0_IN_DATA_PHASE ... what now?
0.96 USB: Written ep0 6.54 of 54 b [last 1,z 1]
0.97 USB: ep0csr 8
0.98 USB: ep0csr 0
0.99 USB: ep0csr 1
0.100 USB: bRequest = 6 wLength = 18
0.101 USB: Written ep0 16.16 of 18 b [last 0,z 0]
0.102 USB: ep0csr 0
0.103 USB: EP0_IN_DATA_PHASE ... what now?
0.104 USB: Written ep0 2.18 of 18 b [last 1,z 0]
0.105 USB: ep0csr 8
0.106 USB: ep0csr 0
0.107 USB: ep0csr 1
0.108 USB: bRequest = 6 wLength = 9
0.109 USB: Written ep0 9.9 of 9 b [last 1,z 0]
0.110 USB: ep0csr 8
0.111 USB: ep0csr 0
0.112 USB: ep0csr 1
0.113 USB: bRequest = 6 wLength = 32
0.114 USB: Written ep0 16.16 of 32 b [last 0,z 0]
0.115 USB: ep0csr 0
0.116 USB: EP0_IN_DATA_PHASE ... what now?
0.117 USB: Written ep0 16.32 of 32 b [last 2,z 0]
0.118 USB: ep0csr 8
0.119 USB: ep0csr 0
0.120 USB: ep0csr 1
0.121 USB: bRequest = 6 wLength = 2
0.122 USB: Written ep0 2.2 of 2 b [last 1,z 0]
0.123 USB: ep0csr 8
0.124 USB: ep0csr 0
0.125 USB: ep0csr 1
0.126 USB: bRequest = 6 wLength = 4
0.127 USB: Written ep0 4.4 of 4 b [last 1,z 0]
0.128 USB: ep0csr 8
0.129 USB: ep0csr 0
0.130 USB: ep0csr 1
0.131 USB: bRequest = 6 wLength = 2
0.132 USB: Written ep0 2.2 of 2 b [last 1,z 0]
0.133 USB: ep0csr 8
0.134 USB: ep0csr 0
0.135 USB: ep0csr 1
0.136 USB: bRequest = 6 wLength = 26
0.137 USB: Written ep0 16.16 of 26 b [last 0,z 0]
0.138 USB: ep0csr 0
0.139 USB: EP0_IN_DATA_PHASE ... what now?
0.140 USB: Written ep0 10.26 of 26 b [last 1,z 0]
0.141 USB: ep0csr 8
0.142 USB: ep0csr 0
0.143 USB: ep0csr 1
0.144 USB: bRequest = 9 wLength = 0
0.145 USB: USB_REQ_SET_CONFIGURATION ...
0.146 USB: enable ep1-bulk(1) ep81in-blk max 40
0.147 USB: ep0csr 0
0.148 USB: EP0_OUT_DATA_PHASE ... what now?
0.149 USB: enable ep2-bulk(2) ep2out-blk max 40
g_file_storage gadget: full speed config #1
0.150 USB: ep0csr 1
0.151 USB: bRequest = 254 wLength = 1
0.152 USB: Written ep0 1.1 of 1 b [last 1,z 0]
0.153 USB: ep0csr 8
0.154 USB: ep0csr 0
0.155 USB: USB reset csr 0 pwr 8
0.156 USB: ep0csr 1
0.157 USB: bRequest = 6 wLength = 64
0.158 USB: Written ep0 16.16 of 18 b [last 0,z 1]
0.159 USB: ep0csr 0
0.160 USB: EP0_IN_DATA_PHASE ... what now?
0.161 USB: Written ep0 2.18 of 18 b [last 1,z 1]
0.162 USB: USB reset csr 0 pwr 8
0.163 USB: ep0csr 1
0.164 USB: bRequest = 5 wLength = 0
0.165 USB: USB_REQ_SET_ADDRESS ...
0.166 USB: ep0csr 0
0.167 USB: ep0csr 1
0.168 USB: bRequest = 6 wLength = 18
0.169 USB: Written ep0 16.16 of 18 b [last 0,z 0]
0.170 USB: ep0csr 0
0.171 USB: EP0_IN_DATA_PHASE ... what now?
0.172 USB: Written ep0 2.18 of 18 b [last 1,z 0]
0.173 USB: ep0csr 8
0.174 USB: ep0csr 0
0.175 USB: ep0csr 1
0.176 USB: bRequest = 6 wLength = 9
0.177 USB: Written ep0 9.9 of 9 b [last 1,z 0]
0.178 USB: ep0csr 8
0.179 USB: ep0csr 0
0.180 USB: ep0csr 1
0.181 USB: bRequest = 9 wLength = 0
0.182 USB: USB_REQ_SET_CONFIGURATION ...
0.183 USB: ep1-bulk disabled
0.184 USB: ep0csr 0
0.185 USB: EP0_OUT_DATA_PHASE ... what now?
0.186 USB: USB reset csr 0 pwr 8
0.187 USB: ep2-bulk disabled
0.188 USB: enable ep1-bulk(1) ep81in-blk max 40
0.189 USB: enable ep2-bulk(2) ep2out-blk max 40
g_file_storage gadget: full speed config #1
g_file_storage gadget: error in submission: ep0 --> -51 0.190 USB: ep0csr 1
0.191 USB: bRequest = 6 wLength = 64
0.192 USB: Written ep0 16.16 of 18 b [last 0,z 1]
0.193 USB: ep0csr 0
0.194 USB: EP0_IN_DATA_PHASE ... what now?
0.195 USB: Written ep0 2.18 of 18 b [last 1,z 1]
0.196 USB: USB reset csr 0 pwr 8
0.197 USB: ep0csr 1
0.198 USB: bRequest = 5 wLength = 0
0.199 USB: USB_REQ_SET_ADDRESS ...
0.200 USB: ep0csr 0
0.201 USB: ep0csr 1
0.202 USB: bRequest = 6 wLength = 18
0.203 USB: Written ep0 16.16 of 18 b [last 0,z 0]
0.204 USB: ep0csr 0
0.205 USB: EP0_IN_DATA_PHASE ... what now?
0.206 USB: Written ep0 2.18 of 18 b [last 1,z 0]
0.207 USB: ep0csr 8
0.208 USB: ep0csr 0
0.209 USB: ep0csr 1
0.210 USB: bRequest = 6 wLength = 9
0.211 USB: Written ep0 9.9 of 9 b [last 1,z 0]
0.212 USB: ep0csr 8
0.213 USB: ep0csr 0
0.214 USB: ep0csr 1
0.215 USB: bRequest = 9 wLength = 0
0.216 USB: USB_REQ_SET_CONFIGURATION ...
0.217 USB: ep1-bulk disabled
0.218 USB: ep0csr 0
0.219 USB: EP0_OUT_DATA_PHASE ... what now?
0.220 USB: USB reset csr 0 pwr 8
0.221 USB: ep2-bulk disabled
0.222 USB: enable ep1-bulk(1) ep81in-blk max 40
0.223 USB: enable ep2-bulk(2) ep2out-blk max 40
g_file_storage gadget: full speed config #1
g_file_storage gadget: error in submission: ep0 --> -51
0.224 USB: ep0csr 1
0.225 USB: bRequest = 6 wLength = 64
0.226 USB: Written ep0 16.16 of 18 b [last 0,z 1]
0.227 USB: ep0csr 0
0.228 USB: EP0_IN_DATA_PHASE ... what now?
0.229 USB: Written ep0 2.18 of 18 b [last 1,z 1]
0.230 USB: USB reset csr 0 pwr 8
0.231 USB: ep0csr 1
0.232 USB: bRequest = 5 wLength = 0
0.233 USB: USB_REQ_SET_ADDRESS ...
0.234 USB: ep0csr 0
0.235 USB: ep0csr 1
0.236 USB: bRequest = 6 wLength = 18
0.237 USB: Written ep0 16.16 of 18 b [last 0,z 0]
0.238 USB: ep0csr 0
0.239 USB: EP0_IN_DATA_PHASE ... what now?
0.240 USB: Written ep0 2.18 of 18 b [last 1,z 0]
0.241 USB: ep0csr 8
0.242 USB: ep0csr 0
0.243 USB: ep0csr 1
0.244 USB: bRequest = 6 wLength = 9
0.245 USB: Written ep0 9.9 of 9 b [last 1,z 0]
0.246 USB: ep0csr 8
0.247 USB: ep0csr 0
0.248 USB: ep0csr 1
0.249 USB: bRequest = 9 wLength = 0
0.250 USB: USB_REQ_SET_CONFIGURATION ...
0.251 USB: ep1-bulk disabled
0.252 USB: ep0csr 0
0.253 USB: EP0_OUT_DATA_PHASE ... what now?
0.254 USB: ep2-bulk disabled
0.255 USB: enable ep1-bulk(1) ep81in-blk max 40
0.256 USB: enable ep2-bulk(2) ep2out-blk max 40
g_file_storage gadget: full speed config #1
也就是说在运行 insmod g_file_storage.ko file=/dev/mtdblock/4 stall=0 removable=1 之后出现了g_file_storage gadget: error in submission: ep0 --> -51错误。后来采用bushound抓了一下包,抓到的数据包如下:
Bus Hound 5.00 capture. Complements of
www.perisoft.net Device - Device ID (followed by the endpoint for USB devices)
(8) Intel(R) 82801EB USB Universal Host Controller - 24DE
(19) USB Mass Storage Device
Phase - Phase Type
CTL USB control transfer
DI Data in
DO Data out
RSET bus reset
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------------------------------------------------------------------------------------ ---------------- ------------------
19.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0
19.0 DI 12 01 00 02 00 00 00 10 25 05 a5 a4 12 03 01 02 03 01 ........%....... 1.2.0
19.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 2.1.0
19.0 DI 09 02 20 00 01 01 04 c0 01 .. ...... 2.2.0
19.0 CTL 80 06 00 02 00 00 20 00 GET DESCRIPTOR 3.1.0
19.0 DI 09 02 20 00 01 01 04 c0 01 09 04 00 00 02 08 06 50 05 07 05 81 02 40 00 00 07 05 02 02 40 00 00 .. ............. 3.2.0
19.0 CTL 80 06 00 03 00 00 02 00 GET DESCRIPTOR 4.1.0
19.0 DI 04 03 .. 4.2.0
19.0 CTL 80 06 00 03 00 00 04 00 GET DESCRIPTOR 5.1.0
19.0 DI 04 03 09 04 .... 5.2.0
19.0 CTL 80 06 03 03 09 04 02 00 GET DESCRIPTOR 6.1.0
19.0 DI 1a 03 .. 6.2.0
19.0 CTL 80 06 03 03 09 04 1a 00 GET DESCRIPTOR 7.1.0
19.0 DI 1a 03 33 00 32 00 33 00 30 00 32 00 30 00 34 00 46 00 36 00 33 00 37 00 34 00 ..3.2.3.0.2.0.4. 7.2.0
19.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 8.1.0
19.0 CTL 01 0b 00 00 00 00 00 00 SET INTERFACE 9.1.0
19.0 CTL a1 fe 00 00 00 00 01 00 GET MAX LUN 10.1.0
19.0 DI 00 . 10.2.0
19.2 DO 55 53 42 43 f8 a9 a7 85 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 USBC....$....... 11.1.0
19.1 DI 00 80 02 02 1f 00 00 00 4c 69 6e 75 78 20 20 20 46 69 6c 65 2d 53 74 6f 72 20 47 61 64 67 65 74 ........Linux 12.1.0
19 RSET 13.1.0(3)