Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / SLOF / slof / fs / usb / usb-static.fs
diff --git a/qemu/roms/SLOF/slof/fs/usb/usb-static.fs b/qemu/roms/SLOF/slof/fs/usb/usb-static.fs
new file mode 100644 (file)
index 0000000..47db727
--- /dev/null
@@ -0,0 +1,70 @@
+\ *****************************************************************************
+\ * 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
+;