70 lines
1.8 KiB
Forth
70 lines
1.8 KiB
Forth
\ *****************************************************************************
|
|
\ * Copyright (c) 2004, 2011, 2013 IBM Corporation
|
|
\ * All rights reserved.
|
|
\ * This program and the accompanying materials
|
|
\ * are made available under the terms of the BSD License
|
|
\ * which accompanies this distribution, and is available at
|
|
\ * http://www.opensource.org/licenses/bsd-license.php
|
|
\ *
|
|
\ * Contributors:
|
|
\ * IBM Corporation - initial implementation
|
|
\ ****************************************************************************/
|
|
|
|
\ Load dev hci
|
|
: load-dev-hci ( num name-str name-len )
|
|
s" dev-hci.fs" INCLUDED
|
|
;
|
|
|
|
0 VALUE ohci-init
|
|
0 VALUE ehci-init
|
|
0 VALUE xhci-init
|
|
0 VALUE usb-alias-num
|
|
|
|
: get-usb-alias-num
|
|
usb-alias-num dup 1+ to usb-alias-num
|
|
;
|
|
|
|
\ create a new ohci device alias for the current node
|
|
: set-ohci-alias ( -- )
|
|
1 to ohci-init
|
|
get-usb-alias-num ( num )
|
|
s" ohci" 1 load-dev-hci
|
|
;
|
|
|
|
\ create a new ehci device alias for the current node
|
|
: set-ehci-alias ( -- )
|
|
1 to ehci-init
|
|
get-usb-alias-num ( num )
|
|
s" ehci" 2 load-dev-hci
|
|
;
|
|
|
|
\ create a new xhci device alias for the current node
|
|
: set-xhci-alias ( -- )
|
|
1 to xhci-init
|
|
get-usb-alias-num ( num )
|
|
s" xhci" 3 load-dev-hci
|
|
;
|
|
|
|
: usb-enumerate ( hcidev -- )
|
|
USB-HCD-INIT
|
|
;
|
|
|
|
: usb-scan ( -- )
|
|
." Scanning USB " cr
|
|
ohci-init 1 = IF USB-OHCI-REGISTER THEN
|
|
ehci-init 1 = IF USB-EHCI-REGISTER THEN
|
|
xhci-init 1 = IF USB-XHCI-REGISTER THEN
|
|
|
|
usb-alias-num 0 ?DO
|
|
" usb" i $cathex find-device
|
|
" get-hci-dev" get-node find-method
|
|
IF
|
|
execute usb-enumerate
|
|
ELSE
|
|
." get-base-address method not found for usb@" i .
|
|
." Device type: "
|
|
" device_type" get-node get-property 0= IF decode-string type cr 2drop THEN
|
|
THEN
|
|
LOOP
|
|
0 set-node \ FIXME Setting it back
|
|
;
|