2 #include <console/console.h>
3 #include <usbdebug_direct.h>
4 #include <pc80/mc146818rtc.h>
6 struct ehci_debug_info dbg_info;
8 void set_ehci_base(unsigned ehci_base)
11 if(!dbg_info.ehci_debug) return;
12 diff = dbg_info.ehci_caps - ehci_base;
13 dbg_info.ehci_regs -= diff;
14 dbg_info.ehci_debug -= diff;
15 dbg_info.ehci_caps = ehci_base;
17 void set_ehci_debug(unsigned ehci_debug)
19 dbg_info.ehci_debug = ehci_debug;
22 unsigned get_ehci_debug(void)
24 return dbg_info.ehci_debug;
27 static void dbgp_init(void)
29 struct ehci_debug_info *dbg_infox;
30 dbg_infox = (struct ehci_debug_info *)((CONFIG_LB_MEM_TOPK<<10) - sizeof (struct ehci_debug_info)); //in RAM
31 memcpy(&dbg_info, dbg_infox, sizeof(struct ehci_debug_info) );
34 static void dbgp_tx_byte(unsigned char data)
36 if(dbg_info.ehci_debug)
37 dbgp_bulk_write_x(&dbg_info,&data,1);
40 static unsigned char dbgp_rx_byte(void)
42 unsigned char data = 0xff;
43 if(dbg_info.ehci_debug)
44 dbgp_bulk_read_x(&dbg_info,&data,1);
48 static int dbgp_tst_byte(void)
50 return dbg_info.ehci_debug;
53 static const struct console_driver usbdebug_direct_console __console = {
55 .tx_byte = dbgp_tx_byte,
56 .rx_byte = dbgp_rx_byte,
57 .tst_byte = dbgp_tst_byte,