1 #include <console/console.h>
2 #include <usbdebug_direct.h>
3 #include <pc80/mc146818rtc.h>
5 struct ehci_debug_info dbg_info;
7 void set_ehci_base(unsigned ehci_base)
10 if(!dbg_info.ehci_debug) return;
11 diff = dbg_info.ehci_caps - ehci_base;
12 dbg_info.ehci_regs -= diff;
13 dbg_info.ehci_debug -= diff;
14 dbg_info.ehci_caps = ehci_base;
16 void set_ehci_debug(unsigned ehci_debug)
18 dbg_info.ehci_debug = ehci_debug;
21 unsigned get_ehci_debug(void)
23 return dbg_info.ehci_debug;
26 static void dbgp_init(void)
28 struct ehci_debug_info *dbg_infox;
29 dbg_infox = (struct ehci_debug_info *)((CONFIG_LB_MEM_TOPK<<10) - sizeof (struct ehci_debug_info)); //in RAM
30 memcpy(&dbg_info, dbg_infox, sizeof(struct ehci_debug_info) );
33 static void dbgp_tx_byte(unsigned char data)
35 if(dbg_info.ehci_debug)
36 dbgp_bulk_write_x(&dbg_info,&data,1);
39 static unsigned char dbgp_rx_byte(void)
41 unsigned char data = 0xff;
42 if(dbg_info.ehci_debug)
43 dbgp_bulk_read_x(&dbg_info,&data,1);
47 static int dbgp_tst_byte(void)
49 return dbg_info.ehci_debug;
52 static const struct console_driver usbdebug_direct_console __console = {
54 .tx_byte = dbgp_tx_byte,
55 .rx_byte = dbgp_rx_byte,
56 .tst_byte = dbgp_tst_byte,