[openfirmware] [commit] r2709 - cpu/arm/olpc/1.75 cpu/x86/pc/alex cpu/x86/pc/biosload cpu/x86/pc/newton cpu/x86/pc/olpc cpu/x86/pc/olpc/via dev/usb2/device/mouse

repository service svn at openfirmware.info
Tue Nov 29 01:26:41 CET 2011


Author: wmb
Date: Tue Nov 29 01:26:41 2011
New Revision: 2709
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2709

Log:
Added USB mouse class driver and included it in most active builds.

Added:
   dev/usb2/device/mouse/
   dev/usb2/device/mouse/mouse.fth
   dev/usb2/device/mouse/usbmouse.bth
Modified:
   cpu/arm/olpc/1.75/olpc.bth
   cpu/x86/pc/alex/ofw.bth
   cpu/x86/pc/biosload/ofw.bth
   cpu/x86/pc/newton/ofw.bth
   cpu/x86/pc/olpc/loaddropins.fth
   cpu/x86/pc/olpc/olpc.bth
   cpu/x86/pc/olpc/via/olpc.bth

Modified: cpu/arm/olpc/1.75/olpc.bth
==============================================================================
--- cpu/arm/olpc/1.75/olpc.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/arm/olpc/1.75/olpc.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -11,6 +11,7 @@
 in: ${BP}/dev/usb2/device/generic/build/generic.fc
 in: ${BP}/dev/usb2/device/net/build/usbnet.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: testicons.bin
@@ -80,7 +81,8 @@
    " ${BP}/dev/usb2/device/hub/build/hub.fc"     " usb,class9"      $add-deflated-dropin
    " ${BP}/dev/usb2/device/generic/build/generic.fc"  " usbdevice"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"       " usbnet"     $add-deflated-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"  " usb,class3,1" $add-deflated-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc" " usb,class3,1,1" $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"  " usb,class3,1,2" $add-deflated-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc" " usbserial"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"   $add-deflated-dropin
 

Modified: cpu/x86/pc/alex/ofw.bth
==============================================================================
--- cpu/x86/pc/alex/ofw.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/alex/ofw.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -13,6 +13,7 @@
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 in: ${BP}/dev/usb2/device/webcam/build/webcam.fc
 in: ${BP}/dev/pci/build/pcibridg.fc
 in: ${BP}/dev/ide/build/leghier.fc
@@ -47,7 +48,8 @@
    " ${BP}/dev/usb2/hcd/uhci/build/uhci.fc"	" class0c0300"     $add-deflated-dropin
 
    " ${BP}/dev/usb2/device/hub/build/hub.fc"            " usb,class9"    $add-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1"  $add-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1,1"  $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"    " usb,class3,1,2"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"         " usbnet"        $add-deflated-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc"   " usbserial"     $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"    $add-deflated-dropin

Modified: cpu/x86/pc/biosload/ofw.bth
==============================================================================
--- cpu/x86/pc/biosload/ofw.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/biosload/ofw.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -14,6 +14,7 @@
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 \ in: ${BP}/ofw/fs/nfs/build/nfs.di
 \ in: ${BP}/ofw/fs/cdfs/build/cdfs.di
 \ in: ${BP}/ofw/fs/fatfs/build/fatfs.di
@@ -118,7 +119,8 @@
    " ${BP}/dev/usb2/hcd/ehci/build/ehci.fc"	" class0c0320"     $add-deflated-dropin
 
    " ${BP}/dev/usb2/device/hub/build/hub.fc"            " usb,class9"    $add-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1"  $add-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1,1"  $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"     " usb,class3,1,2"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"         " usbnet"      $add-deflated-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc"   " usbserial"   $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"  $add-deflated-dropin

Modified: cpu/x86/pc/newton/ofw.bth
==============================================================================
--- cpu/x86/pc/newton/ofw.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/newton/ofw.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -13,6 +13,7 @@
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 in: ${BP}/dev/usb2/device/webcam/build/webcam.fc
 in: ${BP}/dev/pci/build/pcibridg.fc
 in: ${BP}/dev/ide/build/leghier.fc
@@ -48,7 +49,8 @@
    " ${BP}/dev/usb2/hcd/uhci/build/uhci.fc"	" class0c0300"     $add-deflated-dropin
 
    " ${BP}/dev/usb2/device/hub/build/hub.fc"            " usb,class9"    $add-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1"  $add-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"    " usb,class3,1,1"  $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"     " usb,class3,1,2"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"         " usbnet"        $add-deflated-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc"   " usbserial"     $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"    $add-deflated-dropin

Modified: cpu/x86/pc/olpc/loaddropins.fth
==============================================================================
--- cpu/x86/pc/olpc/loaddropins.fth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/olpc/loaddropins.fth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -9,7 +9,8 @@
    " ${BP}/dev/usb2/device/hub/build/hub.fc"     " usb,class9"      $add-dropin
    " ${BP}/dev/usb2/device/generic/build/generic.fc"  " usbdevice"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"       " usbnet"     $add-deflated-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"  " usb,class3,1" $add-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"  " usb,class3,1,1" $add-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"   " usb,class3,1,2" $add-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc" " usbserial"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"   $add-deflated-dropin
    " ${BP}/dev/usb2/device/wlan/build/usb8388.fc" " usb1286,2001"   $add-deflated-dropin

Modified: cpu/x86/pc/olpc/olpc.bth
==============================================================================
--- cpu/x86/pc/olpc/olpc.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/olpc/olpc.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -19,6 +19,7 @@
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 in: ${BP}/dev/usb2/device/wlan/build/usb8388.fc
 in: ${BP}/dev/olpc/cafenand/build/cafenand.fc
 in: ${BP}/dev/olpc/cafecamera/build/cafecamera.fc

Modified: cpu/x86/pc/olpc/via/olpc.bth
==============================================================================
--- cpu/x86/pc/olpc/via/olpc.bth	Tue Nov 29 01:26:31 2011	(r2708)
+++ cpu/x86/pc/olpc/via/olpc.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -20,6 +20,7 @@
 in: ${BP}/dev/usb2/device/serial/build/usbserial.fc
 in: ${BP}/dev/usb2/device/storage/build/usbstorage.fc
 in: ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc
+in: ${BP}/dev/usb2/device/mouse/build/usbmouse.fc
 in: ${BP}/clients/memtest86/memtest
 in: ${BP}/clients/emacs/x86/emacs
 in: ${BP}/cpu/x86/pc/olpc/via/build/verify.img
@@ -88,7 +89,8 @@
    " ${BP}/dev/usb2/device/hub/build/hub.fc"     " usb,class9"      $add-dropin
    " ${BP}/dev/usb2/device/generic/build/generic.fc"  " usbdevice"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/net/build/usbnet.fc"       " usbnet"     $add-deflated-dropin
-   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc"  " usb,class3,1" $add-dropin
+   " ${BP}/dev/usb2/device/keyboard/build/usbkbd.fc" " usb,class3,1,1" $add-deflated-dropin
+   " ${BP}/dev/usb2/device/mouse/build/usbmouse.fc"  " usb,class3,1,2" $add-deflated-dropin
    " ${BP}/dev/usb2/device/serial/build/usbserial.fc" " usbserial"  $add-deflated-dropin
    " ${BP}/dev/usb2/device/storage/build/usbstorage.fc" " usbstorage"   $add-deflated-dropin
 \  " mrv8686.bin" " mrv8686.bin"                                    $add-deflated-dropin

Added: dev/usb2/device/mouse/mouse.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dev/usb2/device/mouse/mouse.fth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -0,0 +1,113 @@
+purpose: USB HID mouse driver using the mouse boot protocol
+\ See license at end of file
+
+hex
+headers
+
+\ >dr-request constants specific to HID
+h# 0b constant SET_PROTOCOL
+
+\ Report buffer
+8 constant /report-buf
+0 value report-buf
+
+: init-buf  ( -- )
+   report-buf 0=  if
+      /report-buf dma-alloc
+      to report-buf
+   then
+;
+: free-buf  ( -- )
+   report-buf  if
+      report-buf /report-buf dma-free
+      0 to report-buf
+   then
+;
+
+: set-boot-protocol  ( -- error? )
+   0 0 my-address ( interface ) 0 DR_HIDD DR_OUT or SET_PROTOCOL
+   control-set
+;
+
+\ Retrieve report data.
+
+: begin-scan  ( -- )
+   report-buf /report-buf intr-in-pipe intr-in-interval  begin-intr-in
+;
+: end-scan  ( -- )  end-intr-in  ;
+
+: get-data?  ( adr len -- actual )
+   intr-in?  if  nip nip restart-intr-in exit  then	\ USB error; restart
+   ?dup  if				( adr len actual )
+      min tuck report-buf -rot move	( actual )
+      restart-intr-in			( actual )
+   else
+      2drop 0				( actual )
+   then
+;
+: b>n  ( b -- n )  dup h# 80 and  if  h# ff invert or  then  ;
+8 buffer: pkt-buf
+: stream-poll?  ( -- false | x y buttons true )
+   pkt-buf 8  get-data?  0=  if  false exit  then
+   pkt-buf c@ h# 42 =  if  false exit  then
+   pkt-buf 1+ c@ b>n         ( x )
+   pkt-buf 2+ c@ b>n negate  ( x y )
+   pkt-buf c@ 7 and          ( x y buttons )
+   true
+;
+
+variable refcount  0 refcount !
+: +refcount  ( n -- )  refcount +!  ;
+
+\ report-buf must have been allocated
+: setup-hardware?  ( -- error? )
+   set-device?  if  true exit  then
+   device set-target
+   reset?  if
+      configuration set-config  if
+         ." Failed to set USB mouse configuration" cr
+         true exit
+      then
+   then
+   set-boot-protocol  if  ." Failed to set USB mouse boot protocol" cr  then
+   false
+;
+
+: open  ( -- flag )
+   refcount @  if  1 +refcount  true exit  then
+   init-buf
+   setup-hardware?  if  free-buf  false exit  then
+   begin-scan
+   1 +refcount
+   true
+;
+: close  ( -- )
+   -1 +refcount  refcount @  if  exit  then
+   free-buf
+;
+
+init
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2011 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: dev/usb2/device/mouse/usbmouse.bth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dev/usb2/device/mouse/usbmouse.bth	Tue Nov 29 01:26:41 2011	(r2709)
@@ -0,0 +1,17 @@
+purpose: Load file for USB boot mouse driver 
+
+command: &tokenize &this
+build-now
+
+silent on
+
+begin-tokenizing usbmouse.fc
+
+FCode-version2
+
+fload ${BP}/dev/usb2/device/common.fth		\ USB device driver common routines
+fload ${BP}/dev/usb2/device/mouse/mouse.fth	\ HID requests
+
+end0
+
+end-tokenizing



More information about the openfirmware mailing list