Patchwork Enable USB Debug Device!

login
register
about
Submitter Myles Watson
Date 2010-08-04 18:00:20
Message ID <AANLkTinfqmKozK4drJN3hGqaknzMptF9Bp1tQH2BEpF+@mail.gmail.com>
Download mbox | patch
Permalink /patch/1720/
State Accepted
Headers show

Comments

Myles Watson - 2010-08-04 18:00:20
And the patch.

Signed-off-by: Myles Watson <mylesgw@gmail.com>

Thanks,
Myles
Stefan Reinauer - 2010-08-04 19:20:43
On 8/4/10 8:00 PM, Myles Watson wrote:
> And the patch.
>
> Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
Myles Watson - 2010-08-04 19:29:35
On Wed, Aug 4, 2010 at 1:20 PM, Stefan Reinauer
<stefan.reinauer@coresystems.de> wrote:
>  On 8/4/10 8:00 PM, Myles Watson wrote:
>> And the patch.
>>
>> Signed-off-by: Myles Watson <mylesgw@gmail.com>
> Acked-by: Stefan Reinauer <stepan@coresystems.de>
Rev 5683.

Thanks,
Myles

Patch

Index: svn/src/console/usbdebug_console.c
===================================================================
--- svn.orig/src/console/usbdebug_console.c
+++ svn/src/console/usbdebug_console.c
@@ -29,20 +29,20 @@  void set_ehci_base(unsigned ehci_base)
 	if (!dbg_info.ehci_debug)
 		return;
 
-	diff = dbg_info.ehci_caps - ehci_base;
+	diff = (unsigned)dbg_info.ehci_caps - ehci_base;
 	dbg_info.ehci_regs -= diff;
 	dbg_info.ehci_debug -= diff;
-	dbg_info.ehci_caps = ehci_base;
+	dbg_info.ehci_caps = (void*)ehci_base;
 }
 
 void set_ehci_debug(unsigned ehci_debug)
 {
-	dbg_info.ehci_debug = ehci_debug;
+	dbg_info.ehci_debug = (void*)ehci_debug;
 }
 
 unsigned get_ehci_debug(void)
 {
-	return dbg_info.ehci_debug;
+	return (unsigned)dbg_info.ehci_debug;
 }
 
 static void dbgp_init(void)
@@ -61,7 +61,7 @@  static void dbgp_init(void)
 static void dbgp_tx_byte(unsigned char data)
 {
 	if (dbg_info.ehci_debug)
-		dbgp_bulk_write_x(&dbg_info, &data, 1);
+		dbgp_bulk_write_x(&dbg_info, (char*)&data, 1);
 }
 
 static unsigned char dbgp_rx_byte(void)
@@ -76,7 +76,7 @@  static unsigned char dbgp_rx_byte(void)
 
 static int dbgp_tst_byte(void)
 {
-	return dbg_info.ehci_debug;
+	return (int)dbg_info.ehci_debug;
 }
 
 static const struct console_driver usbdebug_direct_console __console = {
Index: svn/src/lib/usbdebug.c
===================================================================
--- svn.orig/src/lib/usbdebug.c
+++ svn/src/lib/usbdebug.c
@@ -234,7 +234,7 @@  int dbgp_bulk_read_x(struct ehci_debug_i
 	return dbgp_bulk_read(dbg_info->ehci_debug, dbg_info->devnum, dbg_info->endpoint_in, data, size);
 }
 
-static int dbgp_control_msg(struct ehci_dbg_port *ehci_debug, unsigned devnum, int requesttype, int request,
+int dbgp_control_msg(struct ehci_dbg_port *ehci_debug, unsigned devnum, int requesttype, int request,
 	int value, int index, void *data, int size)
 {
 	unsigned pids, addr, ctrl;
@@ -323,7 +323,7 @@  static int ehci_reset_port(struct ehci_r
 	return -16;//-EBUSY;
 }
 
-static int ehci_wait_for_port(struct ehci_regs *ehci_regs, int port)
+int ehci_wait_for_port(struct ehci_regs *ehci_regs, int port)
 {
 	unsigned status;
 	int ret, reps;
@@ -346,6 +346,8 @@  static int ehci_wait_for_port(struct ehc
 #else
 #define dbgp_printk(fmt_arg...)   do {} while(0)
 #endif
+
+#ifdef __PRE_RAM__
 static void usbdebug_init(unsigned ehci_bar, unsigned offset, struct ehci_debug_info *info)
 {
 	struct ehci_caps *ehci_caps;
@@ -547,5 +549,6 @@  next_debug_port:
 	}
 
 }
+#endif
 
 
Index: svn/src/pc80/usbdebug_serial.c
===================================================================
--- svn.orig/src/pc80/usbdebug_serial.c
+++ svn/src/pc80/usbdebug_serial.c
@@ -34,7 +34,7 @@  void usbdebug_tx_byte(unsigned char data
 	    (CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE - sizeof(struct ehci_debug_info));
 
 	if (dbg_info->ehci_debug) {
-		dbgp_bulk_write_x(dbg_info, &data, 1);
+		dbgp_bulk_write_x(dbg_info, (char*)&data, 1);
 	}
 }
 
@@ -47,6 +47,6 @@  void usbdebug_ram_tx_byte(unsigned char 
 	    ((CONFIG_RAMTOP) - sizeof(struct ehci_debug_info));
 
 	if (dbg_info->ehci_debug) {
-		dbgp_bulk_write_x(dbg_info, &data, 1);
+		dbgp_bulk_write_x(dbg_info, (char*)&data, 1);
 	}
 }
Index: svn/src/include/console/console.h
===================================================================
--- svn.orig/src/include/console/console.h
+++ svn/src/include/console/console.h
@@ -12,6 +12,9 @@  int console_tst_byte(void);
 #if CONFIG_CONSOLE_VGA == 1
 void vga_console_init(void);
 #endif
+#if CONFIG_USBDEBUG
+#include <usbdebug.h>
+#endif
 
 struct console_driver {
 	void (*init)(void);
Index: svn/src/include/usbdebug.h
===================================================================
--- svn.orig/src/include/usbdebug.h
+++ svn/src/include/usbdebug.h
@@ -18,6 +18,8 @@ 
 #ifndef USBDEBUG_H
 #define USBDEBUG_H
 
+#include <ehci.h>
+
 struct ehci_debug_info {
         void *ehci_caps;
         void *ehci_regs;
@@ -29,9 +31,14 @@  struct ehci_debug_info {
 
 int dbgp_bulk_write_x(struct ehci_debug_info *dbg_info, const char *bytes, int size);
 int dbgp_bulk_read_x(struct ehci_debug_info *dbg_info, void *data, int size);
+int dbgp_control_msg(struct ehci_dbg_port *ehci_debug, unsigned devnum, int requesttype, int request,
+	int value, int index, void *data, int size);
+int ehci_wait_for_port(struct ehci_regs *ehci_regs, int port);
 void set_ehci_base(unsigned ehci_base);
 void set_ehci_debug(unsigned ehci_deug);
 unsigned get_ehci_debug(void);
 void set_debug_port(unsigned port);
+void usbdebug_ram_tx_byte(unsigned char data);
+void usbdebug_tx_byte(unsigned char data);
 
 #endif
Index: svn/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c
===================================================================
--- svn.orig/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c
+++ svn/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c
@@ -26,6 +26,8 @@ 
 #define EHCI_PORTSC		0x44
 #define EHCI_DEBUG_OFFSET	0xA0
 
+#include <usbdebug.h>
+
 void set_debug_port(unsigned port)
 {
 	u32 dbgctl;
Index: svn/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c
===================================================================
--- svn.orig/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c
+++ svn/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c
@@ -31,7 +31,9 @@ 
 #define EHCI_BAR	0xFEF00000
 #define EHCI_DEBUG_OFFSET	0x98
 
-static void set_debug_port(unsigned port)
+#include <usbdebug.h>
+
+void set_debug_port(unsigned port)
 {
 	uint32_t dword;
 	dword = pci_read_config32(PCI_DEV(0, MCP55_DEVN_BASE+2, 1), 0x74);
Index: svn/src/southbridge/sis/sis966/sis966_enable_usbdebug.c
===================================================================
--- svn.orig/src/southbridge/sis/sis966/sis966_enable_usbdebug.c
+++ svn/src/southbridge/sis/sis966/sis966_enable_usbdebug.c
@@ -31,7 +31,9 @@ 
 #define EHCI_BAR	0xFEF00000
 #define EHCI_DEBUG_OFFSET	0x98
 
-static void set_debug_port(unsigned port)
+#include <usbdebug.h>
+
+void set_debug_port(unsigned port)
 {
 	uint32_t dword;
 	dword = pci_read_config32(PCI_DEV(0, SIS966_DEVN_BASE+2, 1), 0x74);