some debug stuff. let zeh ohci hack begin! \o/
authorBernhard Urban <lewurm@gmx.net>
Wed, 16 Sep 2009 01:41:23 +0000 (03:41 +0200)
committerBernhard Urban <lewurm@gmx.net>
Wed, 16 Sep 2009 01:41:23 +0000 (03:41 +0200)
main.c
usb/core/core.c
usb/core/usb.c

diff --git a/main.c b/main.c
index bbb7d39c9c81b72da7091708cbcdac569cb1a92f..d69bb40a1d53dda7f353ae9fb491c4d1fc9f95d2 100644 (file)
--- a/main.c
+++ b/main.c
@@ -121,6 +121,8 @@ int main(void)
        printf("bye, world!\n");
        */
 
+       (void) usb_add_device();
+
        while(1) {
                // just to get sure we are still in this loop
                //_CPU_ISR_Enable() // don't know why this is needed...
index a66df30e413b1e2546391728e81c42c59de283d9..989772067ac9605b7271fe07251286e6c787e648 100644 (file)
@@ -39,6 +39,7 @@
 #include "../usbspec/usb11spec.h"
 #include "../lib/list.h"
 #include "../../malloc.h"
+#include "../../bootmii_ppc.h" //printf
 
 /**
  * Initialize USB stack.
@@ -107,7 +108,7 @@ usb_device *usb_add_device()
    */
   usb_control_msg(dev, 0x80, GET_DESCRIPTOR, 1, 0, 64, buf, 8, 0);
 
-  dev->bMaxPacketSize0 = (u8) buf[7]  /* setup real ep0 fifo size */
+  dev->bMaxPacketSize0 = (u8) buf[7] ? (u8) buf[7] : 1; //dirty?  /* setup real ep0 fifo size */
   devdescr_size = (u8) buf[0];  /* save real length of device descriptor */
 
   /* define new adress */
@@ -126,6 +127,24 @@ usb_device *usb_add_device()
   dev->idProduct = (u16) (buf[11] << 8) | (buf[10]);
   dev->bcdDevice = (u16) (buf[13] << 8) | (buf[12]);
 
+       printf( "bDeviceClass 0x%02X\n"
+                       "bDeviceSubClass 0x%02X\n"
+                       "bDeviceProtocoll 0x%02X\n"
+                       "idVendor 0x%04X\n"
+                       "idProduct 0x%04X\n"
+                       "bcdDevice 0x%04X\n", dev->bDeviceClass, 
+                       dev->bDeviceSubClass, dev->bDeviceProtocoll,
+                       dev->idVendor, dev->idProduct, dev->bcdDevice);
+       /* for lewurms keyboard it should be:
+        * bDeviceClass                 0
+        * bDeviceSubClass              0
+        * bDeviceClass                 0
+        * idVendor           0x049f
+        * idProduct          0x000e
+        * bcdDevice            1.00
+        */
+
+
   // string descriptoren werden nicht im arbeitsspeicher gehalten -> on demand mit 
   // entprechenden funktionen
   // hier muss man noch mehr abholen, konfigurationene, interfaces und endpunkte
@@ -215,7 +234,7 @@ u8 usb_remove_irp(usb_irp * irp)
  * In the usbstack they are transported with the
  * usb_transfer_descriptor data structure.
  */
-u16 usb_submit_irp(usb_irp * irp)
+u16 usb_submit_irp(usb_irp *irp)
 {
   usb_transfer_descriptor *td;
   u8 runloop = 1;
@@ -315,8 +334,6 @@ u16 usb_submit_irp(usb_irp * irp)
     }
 
 
-
-
       /***************** Status Stage ***********************/
     /* Zero packet for end */
     td = usb_create_transfer_descriptor(irp);
@@ -410,3 +427,4 @@ usb_transfer_descriptor *usb_create_transfer_descriptor(usb_irp * irp)
 
   return td;
 }
+
index c99ba0946c4baf1722f015f2780e6b1765b6d747..0b127b5b2d5e1d98f57bd4a1855af13ec2d6bf96 100644 (file)
@@ -135,7 +135,7 @@ u8 usb_reset(usb_device *dev)
  */
 u8 usb_control_msg(usb_device *dev, u8 requesttype, u8 request, u16 value, u16 index, u16 length,char *buf, u16 size, u16 timeout)
 {
-  usb_irp * irp = (usb_irp*)malloc(sizeof(usb_irp));
+  usb_irp *irp = (usb_irp*)malloc(sizeof(usb_irp));
   irp->dev = dev;
   //irp->devaddress = dev->address;
   irp->endpoint = 0;