summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/slof/fs/usb/usb-static.fs
diff options
context:
space:
mode:
authorYang Zhang <yang.z.zhang@intel.com>2015-08-28 09:58:54 +0800
committerYang Zhang <yang.z.zhang@intel.com>2015-09-01 12:44:00 +0800
commite44e3482bdb4d0ebde2d8b41830ac2cdb07948fb (patch)
tree66b09f592c55df2878107a468a91d21506104d3f /qemu/roms/SLOF/slof/fs/usb/usb-static.fs
parent9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (diff)
Add qemu 2.4.0
Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5 Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
Diffstat (limited to 'qemu/roms/SLOF/slof/fs/usb/usb-static.fs')
-rw-r--r--qemu/roms/SLOF/slof/fs/usb/usb-static.fs70
1 files changed, 70 insertions, 0 deletions
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
index 000000000..47db7276a
--- /dev/null
+++ b/qemu/roms/SLOF/slof/fs/usb/usb-static.fs
@@ -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
+;