\ ***************************************************************************** \ * 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 ;