diff --git a/src/console/usbdebug_console.c b/src/console/usbdebug_console.c index 2e71cc3ea3..6fe0ef7ee6 100644 --- a/src/console/usbdebug_console.c +++ b/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 = { diff --git a/src/include/console/console.h b/src/include/console/console.h index cab3c9e807..5501edf629 100644 --- a/src/include/console/console.h +++ b/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 +#endif struct console_driver { void (*init)(void); diff --git a/src/include/usbdebug.h b/src/include/usbdebug.h index b9d170b1f3..aa3515f684 100644 --- a/src/include/usbdebug.h +++ b/src/include/usbdebug.h @@ -18,6 +18,8 @@ #ifndef USBDEBUG_H #define USBDEBUG_H +#include + 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 diff --git a/src/lib/usbdebug.c b/src/lib/usbdebug.c index 801cfdbcaf..ec89bfe892 100644 --- a/src/lib/usbdebug.c +++ b/src/lib/usbdebug.c @@ -234,7 +234,7 @@ int dbgp_bulk_read_x(struct ehci_debug_info *dbg_info, void *data, int size) 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_regs *ehci_regs, int port) 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 ehci_regs *ehci_regs, int port) #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 diff --git a/src/pc80/usbdebug_serial.c b/src/pc80/usbdebug_serial.c index 5dd427dd00..f3e7d5f281 100644 --- a/src/pc80/usbdebug_serial.c +++ b/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 data) ((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); } } diff --git a/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c b/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c index a7e0799943..3539ef81e5 100644 --- a/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c +++ b/src/southbridge/intel/i82801gx/i82801gx_usb_debug.c @@ -26,6 +26,8 @@ #define EHCI_PORTSC 0x44 #define EHCI_DEBUG_OFFSET 0xA0 +#include + void set_debug_port(unsigned port) { u32 dbgctl; diff --git a/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c b/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c index b980c9e15c..280e827cc9 100644 --- a/src/southbridge/nvidia/mcp55/mcp55_enable_usbdebug.c +++ b/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 + +void set_debug_port(unsigned port) { uint32_t dword; dword = pci_read_config32(PCI_DEV(0, MCP55_DEVN_BASE+2, 1), 0x74); diff --git a/src/southbridge/sis/sis966/sis966_enable_usbdebug.c b/src/southbridge/sis/sis966/sis966_enable_usbdebug.c index 520383ea06..c9d1c112e2 100644 --- a/src/southbridge/sis/sis966/sis966_enable_usbdebug.c +++ b/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 + +void set_debug_port(unsigned port) { uint32_t dword; dword = pci_read_config32(PCI_DEV(0, SIS966_DEVN_BASE+2, 1), 0x74);