Changeset 3015
- Timestamp:
- Jun 20, 2012 10:18:56 AM (12 months ago)
- Location:
- dev/usb2/hcd
- Files:
-
- 2 edited
-
device.fth (modified) (3 diffs)
-
ehci/probe.fth (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dev/usb2/hcd/device.fth
r3013 r3015 393 393 : get-str-descriptors ( -- ) 394 394 language ( lang ) 395 dup d ev-desc-buf d# 14 +c@ v$-desc-buf get-string to /v$-desc-buf396 dup d ev-desc-buf d# 15 +c@ d$-desc-buf get-string to /d$-desc-buf397 d ev-desc-buf d# 16 +c@ s$-desc-buf get-string to /s$-desc-buf395 dup d# 14 dev-desc@ v$-desc-buf get-string to /v$-desc-buf 396 dup d# 15 dev-desc@ d$-desc-buf get-string to /d$-desc-buf 397 d# 16 dev-desc@ s$-desc-buf get-string to /s$-desc-buf 398 398 ; 399 399 … … 401 401 : refresh-desc-bufs ( dev -- ) 402 402 set-target 403 dev-desc-buf 12get-dev-desc to /dev-desc-buf \ Refresh dev-desc-buf404 cfg-desc-buf 0 get-cfg-desc to /cfg-desc-buf \ Refresh cfg-desc-buf403 dev-desc-buf d# 18 get-dev-desc to /dev-desc-buf \ Refresh dev-desc-buf 404 cfg-desc-buf 0 get-cfg-desc to /cfg-desc-buf \ Refresh cfg-desc-buf 405 405 get-str-descriptors 406 406 ; 407 407 408 \ Executed in root hub node context 409 : get-initial-descriptors ( dev -- ) 408 : get-initial-dev-desc ( dev -- ) 409 dev-desc-buf d# 18 erase ( dev ) 410 411 \ Until we know the size of the control endpoint, we must be 412 \ conservative about the transfer size. 410 413 dev-desc-buf /pipe0 get-dev-desc if ( dev ) 411 dev-desc-buf 7 + c@ 0 rot di-maxpayload! ( ) 414 7 dev-desc@ ( dev maxtransfer ) 415 tuck 0 rot di-maxpayload! ( maxtransfer ) 416 d# 18 >= if ( ) 417 dev-desc-buf d# 18 get-dev-desc drop ( ) 418 then ( ) 412 419 else ( dev ) 413 420 drop ( ) 414 421 then ( ) 422 ; 423 424 \ Executed in root hub node context 425 : get-initial-descriptors ( dev -- ) 426 get-initial-dev-desc ( ) 415 427 cfg-desc-buf 0 get-cfg-desc to /cfg-desc-buf ( ) 416 428 ; … … 454 466 455 467 0 set-target ( port dev ) \ Address it as device 0 456 over reset-port ( port dev ) \ Some devices want to be reset here 468 469 \ Some devices (e.g. Lexar USB-to-SD and at least one USB FLASH drive) fail 470 \ on set-address unless you first read the device descriptor from address 0. 471 \ On other devices, this will fail, but it won't cause problems, and the 472 \ descriptor will be re-read later by make-device-node 473 dup get-initial-dev-desc ( port dev ) 474 475 \ over reset-port ( port dev ) \ Some devices want to be reset here 476 457 477 dup set-address if ( port dev ) \ Assign it usb addr dev 458 478 ." Retrying with a delay" cr -
dev/usb2/hcd/ehci/probe.fth
r3013 r3015 8 8 9 9 : make-root-hub-node ( port -- ) 10 \ Some devices (e.g. Lexar USB-to-SD) fail unless you get the cfg desc from device 0 first11 10 0 set-target \ First address it as device 0 ( port ) 12 11 port-speed 0 di-speed! \ Use high speed for getting the device descriptor 13 dev-desc-buf h# 40 get-cfg-desc drop ( port ) 12 13 dup reset-port ( port ) 14 14 15 15 port-speed ( port speed )
Note: See TracChangeset
for help on using the changeset viewer.
