+++ /dev/null
-read linux/Documentation/usb/usbmon.txt for details
-
-f4825500 2607204048 S Ci:4:001:0 s a3 00 0000 0001 0004 4 <
-f4825500 2607204065 C Ci:4:001:0 0 4 = 01030100
-f4825500 2607204070 S Co:4:001:0 s 23 01 0010 0001 0000 0
-f4825500 2607204073 C Co:4:001:0 0 0
-f4825500 2607204075 S Ci:4:001:0 s a3 00 0000 0002 0004 4 <
-f4825500 2607204080 C Ci:4:001:0 0 4 = 00010000
-f682c080 2607307372 S Ii:4:001:1 -115:128 2 <
-f4825500 2607307392 S Ci:4:001:0 s a3 00 0000 0001 0004 4 <
-f4825500 2607307399 C Ci:4:001:0 0 4 = 01030000
-
-wtf?? out
-f4825500 2607307412 S Co:4:001:0 s 23 03 0004 0001 0000 0
-f4825500 2607307416 C Co:4:001:0 0 0
-
-wtf? in
-f4825500 2607360706 S Ci:4:001:0 s a3 00 0000 0001 0004 4 <
-f4825500 2607360732 C Ci:4:001:0 0 4 = 01030000
-f4825500 2607414040 S Ci:4:001:0 s a3 00 0000 0001 0004 4 <
-f4825500 2607414050 C Ci:4:001:0 0 4 = 03030000
-
-wtf?? out
-f4825e00 2607467374 S Co:4:001:0 s 23 01 0014 0001 0000 0
-f4825e00 2607467380 C Co:4:001:0 0 0
-
-get desc
-f4825e00 2607467400 S Ci:4:000:0 s 80 06 0100 0000 0040 64 <
-f4825e00 2607473739 C Ci:4:000:0 0 18 = 12011001 00000008 9f040e00 00010102 0001
-f4825e00 2607473751 S Co:4:001:0 s 23 03 0004 0001 0000 0
-f4825e00 2607473756 C Co:4:001:0 0 0
-f4825d00 2607527373 S Ci:4:001:0 s a3 00 0000 0001 0004 4 <
-f4825d00 2607527400 C Ci:4:001:0 0 4 = 03030000
-f4825d00 2607580708 S Co:4:001:0 s 23 01 0014 0001 0000 0
-f4825d00 2607580714 C Co:4:001:0 0 0
-
-mit 9 addressiert
-f4825d00 2607580723 S Co:4:000:0 s 00 05 0009 0000 0000 0
-f4825d00 2607582747 C Co:4:000:0 0 0
-
-get descriptor
-f4825d00 2607600707 S Ci:4:009:0 s 80 06 0100 0000 0012 18 <
-f4825d00 2607605749 C Ci:4:009:0 0 18 = 12011001 00000008 9f040e00 00010102 0001
-f4825d00 2607605763 S Ci:4:009:0 s 80 06 0200 0000 0009 9 <
-f4825d00 2607610747 C Ci:4:009:0 0 9 = 09023b00 020102a0 19
-f4825d00 2607610755 S Ci:4:009:0 s 80 06 0200 0000 003b 59 <
-f4825d00 2607621751 C Ci:4:009:0 0 59 = 09023b00 020102a0 19090400 00010301 01030921 00010001 22410007 05810308
-
-
-f4825d00 2607621768 S Ci:4:009:0 s 80 06 0300 0000 00ff 255 <
-f4825d00 2607626747 C Ci:4:009:0 0 4 = 04030904
-
-lang stuff
-f4825d00 2607626754 S Ci:4:009:0 s 80 06 0302 0409 00ff 255 <
-f4825d00 2607637749 C Ci:4:009:0 0 50 = 32034300 6f006d00 70006100 71002000 49006e00 74006500 72006e00 65007400
-f4825d00 2607637759 S Ci:4:009:0 s 80 06 0301 0409 00ff 255 <
-f4825d00 2607643751 C Ci:4:009:0 0 14 = 0e034300 6f006d00 70006100 7100
-
-set config
-f4825d00 2607643943 S Co:4:009:0 s 00 09 0001 0000 0000 0
-f4825d00 2607646750 C Co:4:009:0 0 0
-
-
-getstring
-f4825d00 2607646771 S Ci:4:009:0 s 80 06 0302 0409 00ff 255 <
-f4825d00 2607657755 C Ci:4:009:0 0 50 = 32034300 6f006d00 70006100 71002000 49006e00 74006500 72006e00 65007400
-getstring
-f5abaf00 2607657825 S Ci:4:009:0 s 80 06 0303 0409 00ff 255 <
-f5abaf00 2607668752 C Ci:4:009:0 0 50 = 32034300 6f006d00 70006100 71002000 49006e00 74006500 72006e00 65007400
-
-set idle
-f5abaf00 2607668869 S Co:4:009:0 s 21 0a 0000 0000 0000 0
-f5abaf00 2607671751 C Co:4:009:0 0 0
-
-get??
-f5abaf00 2607671758 S Ci:4:009:0 s 81 06 2200 0000 0041 65 <
-f5abaf00 2607683759 C Ci:4:009:0 0 65 = 05010906 a1010507 19e029e7 15002501 75019508 81027508 95018101 05081901
-
-
-usb_control_msg(dev, (1<<5)|1, SET_CONFIGURATION, 0x200, 0x0, 0x0, buf, 0);
-f6273300 2607684009 S Co:4:009:0 s 21 09 0200 0000 0004 4 = 00000000
-f5abaf00 2607684216 S Ii:4:009:1 -115:16 8 <
-f6273680 2607684488 S Ci:4:009:0 s 80 06 0304 0409 00ff 255 <
-f6273300 2607687760 C Co:4:009:0 0 4 >
-f6273680 2607697756 C Ci:4:009:0 0 50 = 32034300 6f006d00 70006100 71002000 49006e00 74006500 72006e00 65007400
-e5cf9d80 2607697888 S Co:4:009:0 s 21 0a 0000 0001 0000 0
-e5cf9d80 2607700758 C Co:4:009:0 0 0
-d9094380 2607701211 S Ci:4:009:0 s 81 06 2200 0001 01f3 499 <
-d9094380 2607766777 C Ci:4:009:0 0 499 = 050c0901 a1018501 15002501 1ae9002a ea007501 95028106 95010ae2 00810675
-f4ae4000 2607768308 S Ci:4:009:0 s a1 01 0101 0001 0002 8 <
-f4ae4000 2607771759 C Ci:4:009:0 0 4 = 00000000
-f4ae4000 2607771762 S Ci:4:009:0 s a1 01 0102 0001 0002 8 <
-f4ae4000 2607775759 C Ci:4:009:0 0 4 = 00000000
-f4ae4000 2607775763 S Ci:4:009:0 s a1 01 0103 0001 0006 8 <
-f4ae4000 2607779760 C Ci:4:009:0 0 4 = 00000000
-f4ae4000 2607779762 S Ci:4:009:0 s a1 01 0104 0001 0006 8 <
-f4ae4000 2607783760 C Ci:4:009:0 0 5 = 04000000 00
-f4ae4000 2607783770 S Ci:4:009:0 s a1 01 0304 0001 0005 8 <
-f4ae4000 2607787760 C Ci:4:009:0 0 5 = 04000000 00
-f4ae4000 2607787763 S Ci:4:009:0 s a1 01 0306 0001 0005 8 <
-f4ae4000 2607791761 C Ci:4:009:0 0 5 = 06000000 00
-f4ae4000 2607791764 S Ci:4:009:0 s a1 01 0307 0001 0005 8 <
-f4ae4000 2607795763 C Ci:4:009:0 0 5 = 07000000 00
-f4ae4000 2607795770 S Ci:4:009:0 s a1 01 0308 0001 0005 8 <
-f4ae4000 2607799761 C Ci:4:009:0 0 5 = 08000000 00
-f4ae4000 2607799764 S Ci:4:009:0 s a1 01 0309 0001 0005 8 <
-f4ae4000 2607803761 C Ci:4:009:0 0 5 = 09000000 00
-f4ae4800 2607803929 S Ii:4:009:2 -115:2 6 <
-f5abaf00 2610182933 C Ii:4:009:1 0:16 8 = 00000700 00000000
-f5abaf00 2610182978 S Ii:4:009:1 -115:16 8 <
-f5abaf00 2610310941 C Ii:4:009:1 0:16 8 = 00000000 00000000
-f5abaf00 2610310982 S Ii:4:009:1 -115:16 8 <
-f5abaf00 2610694969 C Ii:4:009:1 0:16 8 = 00000700 00000000
-f5abaf00 2610695012 S Ii:4:009:1 -115:16 8 <
-f5abaf00 2610758972 C Ii:4:009:1 0:16 8 = 00000000 00000000
-f5abaf00 2610759013 S Ii:4:009:1 -115:16 8 <
Benedikt Sauter, sauter@ixbat.de
+Bernhard Urban, lewurm@gmx.net
+Sebastian Falbesoner, sebastian.falbesoner@gmail.com
-usbport host is an open source, highly portable USB-Stack
-for memory- and cpu-constrained embedded systems written
-by Benedikt Sauter in his thesis at FH Augsburg University
-for Applied Science.
-
-usbport host is designed for embedded systems with small amounts of
-memory. A typical USBene configuration is 200 kilobytes of RAM and
-4 kilobytes of Code-Memory. USBene consists provides
-own layers for the different USB parts. Drivers can be load
-dynamically and unloaded at runtime.
-
-usbport host runs on a variety of platform ranging from embedded
-microcontrollers such as ARM7/9 derivates and the AVR to old
-homecomputers. Code footprint is on the order of kilobytes and memory
-usage can be configured to be as low as tens of bytes.
-
-usbport host is written in the C programming language and is freely
-available as open source under a BSD-style license. More information
-about USBene can be found at the usbport host home page:
-http://www.usb-projects.de/opus
-
-Directory:
-
-arch Beispielimplementierungen für verschiedene Mikrocontroller
-boards Schaltplan, Platinenlayout, etc. für die Testplatine
-core USB-Kern-Funktionen
-doc Diplomarbeit als Beschreibung
-drivers USB-Treiber (Geräte und Klassen)
-host Host-Controller-Treiber
-lib Zusatzfunktionen, Typendefinitionen, etc.
-uclibusb USB-Bibliotheken für USB-Geräte
-usbspec Datentypen und -formate der USB-Spezifikation
-
+http://wiibrew.org/wiki/Plugmii
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ plugmii core
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
-//#include <stdlib.h>
#include "core.h"
#include "../host/host.h"
#include "usb.h"
return (void*) -1;
}
-#define WTF
+//#define WTF
#ifdef WTF
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lollllool PADDING WTF :O lolololololo \n");
- printf("lololololool PADDING WTF :O lolololololo \n");
- printf("lolololool PADDING WTF :O lololoololo \n");
printf("lololololool PADDING WTF :O lolololololo \n");
printf("lolololool PADDING WTF :O lolololololo \n");
printf("lololololool PADDING WTF :O lolololololo \n");
return (void*) -1;
/* print device info */
- //lsusb(dev);
-
+ lsusb(dev);
-#if 1
/* add device to device list */
struct element *tmp = (struct element *) malloc(sizeof(struct element));
tmp->data = (void *) dev;
list_add_tail(core.devices, tmp);
usb_probe_driver();
-#endif
return dev;
}
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ plugmii core
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
#ifndef _CORE_H_
#define _CORE_H_
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ libusb like interface
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
+
#include "usb.h"
#include "core.h"
#include "../host/host.h"
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ libusb like interface
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
#ifndef _USB_H_
#define _USB_H_
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ hid driver
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
+
#include "../../core/core.h"
#include "../../core/usb.h"
#include "../../usbspec/usb11spec.h"
+/*
+ ppcskel - a Free Software replacement for the Nintendo/BroadOn bootloader.
+ hid driver
+
+Copyright (C) 2009 Bernhard Urban <lewurm@gmx.net>
+Copyright (C) 2009 Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
+
+# This code is licensed to you under the terms of the GNU GPL, version 2;
+# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+*/
+
+
#ifndef __HID_H
#define __HID_H