dbg_api.c: use new io funcs
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / cmnos / dbg_api.c
index b205a5790b050a580ce2bbbac64e3b0bade19f36..451059bd0e19592679757a242e76d49dc1758396 100755 (executable)
@@ -35,6 +35,8 @@
 #include "sys_cfg.h"
 #include "athos_api.h"
 
+#include "adf_os_io.h"
+
 #if defined(PROJECT_K2)
 #if SYSTEM_MODULE_SFLASH
 #include "sflash_api.h"
 #if defined(SYSTEM_MODULE_DBG)
 
 /* Function prototypes */
-int db_help_cmd(char *, char*, char*, char*);
-int db_ldr_cmd(char*, char*, char*, char*);
-int db_str_cmd(char*, char*, char*, char*);
-int db_dump_memory(char* cmd, char* param1, char* param2, char* param3);
-int db_info_cmd(char*, char*, char*, char*);
-int db_cmd_dbg(char*, char*, char*, char*);
-int db_usb_cmd(char*, char*, char*, char*);
-int db_intr_cmd(char*, char*, char*, char*);
-int db_patch_cmd(char*, char*, char*, char*);
-
-int db_cmd_memtest(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_dmips(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_starthtc(char* cmd, char* param1, char* param2, char* param3);
-
-int db_eeprom_cmd(char* cmd, char* param1, char* param2, char* param3);
-int db_wdt_cmd(char* cmd, char* param1, char* param2, char* param3);
+static int db_help_cmd(char *, char *, char *, char *);
+static int db_ldr_cmd(char *, char *, char *, char *);
+static int db_str_cmd(char *, char *, char *, char *);
+static int db_info_cmd(char *, char *, char *, char *);
+static int db_usb_cmd(char *, char *, char *, char *);
+static int db_intr_cmd(char *, char *, char *, char *);
+
+static int db_cmd_starthtc(char *cmd, char *param1, char *param2, char *param3);
+
+static int db_wdt_cmd(char *cmd, char *param1, char *param2, char *param3);
 
 #if defined(PROJECT_K2)
 #if SYSTEM_MODULE_SFLASH
-int db_cmd_sferase(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_sfpg(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_sfru(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_sfrm(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_sfrdsr(char* cmd, char* param1, char* param2, char* param3);
+static int db_cmd_sferase(char *cmd, char *param1, char *param2, char *param3);
+static int db_cmd_sfpg(char *cmd, char *param1, char *param2, char *param3);
+static int db_cmd_sfru(char *cmd, char *param1, char *param2, char *param3);
+static int db_cmd_sfrm(char *cmd, char *param1, char *param2, char *param3);
+static int db_cmd_sfrdsr(char *cmd, char *param1, char *param2, char *param3);
 #endif
 #endif /* #if defined(PROJECT_K2) */
-int db_cmd_memcmp(char* cmd, char* param1, char* param2, char* param3);
-int db_cmd_memdump(char* cmd, char* param1, char* param2, char* param3);
-
-int db_clock_cmd(char* cmd, char* param1, char* param2, char* param3);
-
-uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i);
-int db_formalize_command(char*, char*);
-int db_ascii_to_hex(char*, unsigned long*);
-int db_hex_to_ascii(unsigned long, char*);
-void zfDebugTask(void);
+static int db_cmd_memcmp(char *cmd, char *param1, char *param2, char *param3);
+static int db_cmd_memdump(char *cmd, char *param1, char *param2, char *param3);
 
-int db_info_intr(char* cmd, char* param1, char* param2, char* param3);
+static int db_clock_cmd(char *cmd, char *param1, char *param2, char *param3);
 
-extern u32_t this_is_global_variables;
+static uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t *i);
+static int db_formalize_command(char *, char *);
+static int db_ascii_to_hex(char *, unsigned long *);
+static int db_hex_to_ascii(unsigned long, char *);
+static void zf_debug_task(void);
 
 /* Console debug command table */
 const struct DB_COMMAND_STRUCT command_table[] =
@@ -98,16 +90,11 @@ const struct DB_COMMAND_STRUCT command_table[] =
        {"STR",    "<Hex addr> <Hex value>, Store word", db_str_cmd},
        {"STRH",   "<Hex addr> <Hex value>, Store half word", db_str_cmd},
        {"STRB",   "<Hex addr> <Hex value>, Store byte", db_str_cmd},
-       {"DUMP",   "<Hex addr>, Dump memory", db_dump_memory},
        {"INFO",   ", Print debug information", db_info_cmd},
        {"USB",   ", usb releated command", db_usb_cmd},
        {"INTR",   ", intr releated command", db_intr_cmd},
-       {"PATCH",   ", patch function releated command", db_patch_cmd},
-       {"DBG",    ", mute all print msg", db_cmd_dbg},
        {"CLOCK",    ", change the clock...", db_clock_cmd},
-       {"MEMTEST",    "<Hex addr> <Number of bytes> test memory", db_cmd_memtest},
        {"HTCR", "Issue HTC ready to host", db_cmd_starthtc},
-       {"EEP",   ", eeprom r/w debug command", db_eeprom_cmd},
        {"WDT",   ", wdt debug command", db_wdt_cmd},
 #if defined(PROJECT_K2)
 #if SYSTEM_MODULE_SFLASH
@@ -133,20 +120,48 @@ int cmd_not_found;
 uint16_t gvLen;
 int pressed_time;
 
-//////////////////////////////////////////////////
-#define MAX_REG_NUM 16
+static void db_incorect_format(void)
+{
+       A_PRINTF("Error! Incorrect format.\n\r");
+}
 
-typedef struct reg_elem {
-       unsigned char valid;
-       unsigned char mode;     // byte, half-word word
-       unsigned long reg_addr;
-} t_reg_elem;
+static void db_unknown_command(void)
+{
+       A_PRINTF("Error! Unknown command.\n\r");
+}
 
-t_reg_elem reg_buffer[MAX_REG_NUM];
+static void db_print_dump(const char *mem1, const char *mem2)
+{
+       unsigned int i = 0;
+       const char *tmp;
 
-//////////////////////////////////////////////////
+       do {
+               if (i == 0) {
+                       A_PRINTF("\n\r%06x: ", mem1);
+                       tmp = mem1;
+               }
+
+               A_PRINTF("%04x ", *(uint16_t *)mem1);
 
-void zfDebugInit(void)
+               mem1 += 2;
+               i++;
+
+               if (i == 8) {
+                       A_PRINTF(" ");
+                       do {
+                               if (*tmp > 0x20 && *tmp < 0x7e)
+                                       A_PRINTF("%c", *tmp);
+                               else
+                                       A_PRINTF(".");
+                               tmp++;
+                       } while (tmp < mem1);
+                       i = 0;
+               }
+       } while (mem1 < mem2);
+       A_PRINTF("\n\r");
+}
+
+static void zf_debug_init(void)
 {
        uint8_t ch;
 
@@ -161,7 +176,7 @@ void zfDebugInit(void)
        pressed_time = 0;
 }
 
-void zfDebugTask(void)
+static void zf_debug_task(void)
 {
        int i;
        uint8_t ch;
@@ -197,16 +212,16 @@ void zfDebugTask(void)
                }
                if (cmd_not_found)
                {
-                       zm_uart_send("Error, HELP for command list.\n\r", 31);
+                       A_PRINTF("Error, HELP for command list.\n\r");
                }
 
        }
 
-       zm_uart_send(">", 1);
+       A_PRINTF(">");
        return;
 }
 
-uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i)
+static uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t *i)
 {
        int cmd_buf_loc;
 
@@ -235,14 +250,14 @@ uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i)
                {
                        A_STRCPY(cmd_line, cmd_buffer[cmd_buf_loc]);
                        *i = A_STRLEN(cmd_buffer[cmd_buf_loc]);
-                       zm_uart_send("\r>", 2);
-                       zm_uart_send(cmd_line, *i);
+                       A_PRINTF("\r>");
+                       A_PRINTF("%s", cmd_line);
                }
                break;
        case 13 : /* Return */
                pressed_time = 0;
                cmd_line[*i] = 0;
-               zm_uart_send("\n\r", 2);
+               A_PRINTF("\n\r");
                if (*i != 0)
                {
                        //Filter duplicated string in command history
@@ -262,7 +277,7 @@ uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i)
                if (*i > 0)
                {
                        *i = *i-1;
-                       zm_uart_send("\b \b", 3);
+                       A_PRINTF("\b \b");
                }
                break;
        case 0 : //None
@@ -281,14 +296,14 @@ uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i)
                                        //}
                                        cmd_line[*i] = ch;
                                        *i = *i + 1;
-                                       zm_uart_send(&ch, 1);
+                                       A_PRINTF("%c", ch);
                                }
                        }
                }
                else
                {
                        ch = 7; /* Beep */
-                       zm_uart_send(&ch, 1);
+                       A_PRINTF("%c", ch);
                }
                break;
        } /* end of switch */
@@ -297,7 +312,7 @@ uint16_t db_get_cmd_line(uint8_t ch, char *cmd_line, uint16_t* i)
 
 }
 
-int db_formalize_command(char* raw_str,  char* cmd_str)
+static int db_formalize_command(char *raw_str,  char *cmd_str)
 {
        int i = 0;
        int j;
@@ -332,7 +347,7 @@ int db_formalize_command(char* raw_str,  char* cmd_str)
        return (int)A_STRLEN(cmd_str);
 }
 
-int db_ascii_to_hex(char* num_str, unsigned long* hex_num)
+static int db_ascii_to_hex(char *num_str, unsigned long *hex_num)
 {
        int i = 0;
 
@@ -363,7 +378,7 @@ int db_ascii_to_hex(char* num_str, unsigned long* hex_num)
        return 0;
 }
 
-int db_ascii_to_int(char* num_str, unsigned long* int_num)
+int db_ascii_to_int(char *num_str, unsigned long *int_num)
 {
        int i = 0;
 
@@ -384,7 +399,7 @@ int db_ascii_to_int(char* num_str, unsigned long* int_num)
        return 0;
 }
 
-int db_hex_to_ascii(unsigned long hex_num, char* num_str)
+static int db_hex_to_ascii(unsigned long hex_num, char *num_str)
 {
        int i;
        unsigned long four_bits;
@@ -405,31 +420,24 @@ int db_hex_to_ascii(unsigned long hex_num, char* num_str)
        return 0;
 }
 
-int db_help_cmd(char* cmd, char* param1, char* param2, char* param3)
+int db_help_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
        int i;
 
        i = 0;
 
-       zm_uart_send(ATH_DEBUGGER_VERSION_STR,
-                    A_STRLEN(ATH_DEBUGGER_VERSION_STR));
-       zm_uart_send(ATH_COMMAND_LIST_STR,
-                    A_STRLEN(ATH_COMMAND_LIST_STR));
+       A_PRINTF("%s %s\n", ATH_DEBUGGER_VERSION_STR, ATH_COMMAND_LIST_STR);
 
        while (command_table[i].cmd_func)
        {
-               zm_uart_send(command_table[i].cmd_str,
-                            A_STRLEN(command_table[i].cmd_str));
-               zm_uart_send("\t", 1);
-               zm_uart_send(command_table[i].help_str,
-                            A_STRLEN(command_table[i].help_str));
-               zm_uart_send("\n\r", 2);
+               A_PRINTF("%s\t%s\n\r", command_table[i].cmd_str,
+                                      command_table[i].help_str);
                i++;
        }
        return i;
 }
 
-int db_ldr_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_ldr_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
        unsigned long val;
        unsigned long addr;
@@ -440,7 +448,8 @@ int db_ldr_cmd(char* cmd, char* param1, char* param2, char* param3)
        {
                if( addr == 0 )
                {
-                       zm_uart_send("Error! bad address 0x%08x.\n\r", (unsigned long)addr);
+                       A_PRINTF("Error! bad address 0x%08x.\n\r",
+                                (unsigned long)addr);
                        return -1;
                }
                if (strcmp(cmd, "LDR") == 0)
@@ -448,12 +457,12 @@ int db_ldr_cmd(char* cmd, char* param1, char* param2, char* param3)
                        addr &= 0xfffffffc;
                        //val = *(unsigned long *)addr;
 
-                       val = HAL_WORD_REG_READ(addr);
+                       val = ioread32(addr);
                }
                else if (strcmp(cmd, "LDRH") == 0)
                {
                        addr &= 0xfffffffe;
-                       val = HAL_HALF_WORD_REG_READ(addr);
+                       val = ioread16(addr);
                }
                else if (strcmp(cmd, "LDRB") == 0)
                {
@@ -462,22 +471,15 @@ int db_ldr_cmd(char* cmd, char* param1, char* param2, char* param3)
                db_hex_to_ascii(val, val_str);
                db_hex_to_ascii(addr, addr_str);
 
-               zm_uart_send(addr_str, A_STRLEN(addr_str));
-               zm_uart_send(" : ", 3);
-               zm_uart_send(val_str, A_STRLEN(val_str));
-               zm_uart_send("\n\r", 2);
-
+               A_PRINTF("%s : %s\n\r", addr_str, val_str);
                return 0;
        }
-       else
-       {
-               zm_uart_send("Error! Incorrect format.\n\r", 26);
 
-               return -1;
-       }
+       db_incorect_format();
+       return -1;
 }
 
-int db_str_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_str_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
        unsigned long val;
        unsigned long addr;
@@ -491,112 +493,32 @@ int db_str_cmd(char* cmd, char* param1, char* param2, char* param3)
                if (strcmp(cmd, "STR") == 0)
                {
                        addr &= 0xfffffffc;
-                       //HAL_WORD_REG_WRITE(addr, val);
-                       HAL_WORD_REG_WRITE(addr, val);
-                       //*(volatile unsigned long *)(addr & 0xfffffffc) = (unsigned long)val;
+                       iowrite32(addr, val);
                }
 
                else if (strcmp(cmd, "STRH") == 0)
                {
                        addr &= 0xfffffffe;
                        //*(volatile unsigned short *)(addr & 0xfffffffe) = (unsigned short)val;
-                       HAL_HALF_WORD_REG_WRITE(addr, val);
+                       iowrite16(addr, val);
                }
                else if (strcmp(cmd, "STRB") == 0)
                {
                        if( addr & 0x00f00000 )
-                               HAL_BYTE_REG_WRITE(addr, val);
+                               iowrite8(addr, val);
                        else
-                               HAL_BYTE_REG_WRITE(addr^3, val);
+                               iowrite8(addr^3, val);
                        //*(volatile unsigned char *)addr = (unsigned char)val;
                }
 
                db_hex_to_ascii(val, val_str);
                db_hex_to_ascii(addr, addr_str);
 
-               zm_uart_send(addr_str, A_STRLEN(addr_str));
-               zm_uart_send(" : ", 3);
-               zm_uart_send(val_str, A_STRLEN(val_str));
-               zm_uart_send("\n\r", 2);
-
+               A_PRINTF("%s : %s\n\r", addr_str, val_str);
                return 0;
        }
-       else
-       {
-               zm_uart_send("Error! Incorrect format.\n\r", 26);
-
-               return -1;
-       }
-}
-
-// macro extension the address to dump the memory
-#define FOUR_BYTE_HEX_DUMP(addr) (" %02x %02x %02x %02x",              \
-                                 *(uint8_t*)((addr)+3), *(uint8_t*)((addr)+2), \
-                                 *(uint8_t*)((addr)+1), *(uint8_t*)((addr)))
-
-
-int db_dump_memory(char* cmd, char* param1, char* param2, char* param3)
-{
-       unsigned long addr;
-       unsigned long length;
-       unsigned long ptrAddr;
-       int i;
-
-       if (db_ascii_to_hex(param1, &addr) != -1 &&
-           (db_ascii_to_int(param2, &length) != -1))
-       {
-               // if no length, default is 128 bytes to dump
-               if( length == 0 )
-                       length = 128;
-               addr &= 0xfffffffc;
-
-               A_PRINTF("length: %d\n\r", length);
-
-               //zm_uart_send("                     7 6 5 4  3 2 1 0\n\r", 28);
-               A_PRINTF("           15 14 13 12 11 10 09 08   07 06 05 04 03 02 01 00\n\r");
-               A_PRINTF("------------------------------------------------------------\n\r");
-               for (i=0; i<length/16; i++)
-               {
-                       //zfUartSendHex((unsigned long)addr);
-                       A_PRINTF("%08x: ", (unsigned long)addr);
-
-                       ptrAddr = (unsigned long *)addr;
-
-                       // dump from MSB to LSB
-                       A_PRINTF FOUR_BYTE_HEX_DUMP(ptrAddr+12);
-                       A_PRINTF FOUR_BYTE_HEX_DUMP(ptrAddr+8);
-                       A_PRINTF(" -");
-                       A_PRINTF FOUR_BYTE_HEX_DUMP(ptrAddr+4);
-                       A_PRINTF FOUR_BYTE_HEX_DUMP(ptrAddr);
-                       A_PRINTF("\n\r");
-                       addr+=16;
-               }
-
-               // the rest of the byte to dump
-               if( (length %16)!=0 )
-               {
-                       A_PRINTF("%08x: ", (unsigned long)addr);
-
-                       // make the space, since we dump MSB first
-                       for(i=0; i<(16-(length %16)); i++)
-                               A_PRINTF("   ");
-
-                       // if less than 8 bytes, add 2 more space for " -"
-                       if( (length%16) < 8 )
-                               A_PRINTF("  ");
 
-                       for(i=0; i<length%16; i++)
-                       {
-                               // MSB first,
-                               A_PRINTF(" %02x", *(uint8_t*)((addr+(length%16)-1)-i));
-
-                               if((16-(length%16))+i==7)
-                                       A_PRINTF(" -");
-                       }
-               }
-               A_PRINTF("\n\r");
-               return 0;
-       }
+       db_incorect_format();
        return -1;
 }
 
@@ -605,21 +527,9 @@ LOCAL void dbg_timer_func(A_HANDLE alarm, void *data)
        A_PRINTF("this is a timer alarm function 0x%08x\n\r", xthal_get_ccount());
 }
 
-int db_patch_cmd(char* cmd, char* param1, char* param2, char* param3)
-{
-
-       return 0;
-}
-
 uint32_t delay = 0;
 
-LOCAL void cb_tick()
-{
-       ;    
-}
-
-
-int db_intr_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_intr_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
 #if SYSTEM_MODULE_INTR
        uint32_t pending_intrs;
@@ -641,8 +551,7 @@ int db_intr_cmd(char* cmd, char* param1, char* param2, char* param3)
 
                if (strcmp(param2, "on") == 0 )
                {
-                       A_ATTACH_ISR(A_INUM_XTTIMER, cb_tick, NULL);
-
+                       /* TODO: this part is probably dead. */
                        pending_intrs = A_INTR_GET_INTRENABLE()|CMNOS_IMASK_XTTIMER;
                        A_INTR_SET_INTRENABLE(pending_intrs);
                        A_PRINTF("- intr [0x%08x]\n\r", pending_intrs);
@@ -676,9 +585,7 @@ int db_intr_cmd(char* cmd, char* param1, char* param2, char* param3)
        return 0;
 }
 
-uint32_t usb_swap_flag = 0; //default
-uint32_t usb_swap_flag_changed = 0;
-int db_usb_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_usb_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
        A_PRINTF("THIS IS USB COMMAND\n\r");
 
@@ -720,12 +627,12 @@ static void clk_change(uint32_t clk, uint32_t ratio, uint32_t baud)
                break;
        }
 
-       HAL_WORD_REG_WRITE(0x50040, (0x300|clk_sel|(ratio>>1)<<12));
+       iowrite32(0x50040, (0x300|clk_sel|(ratio>>1)<<12));
        A_UART_HWINIT((clk*1000*1000)/ratio, baud);
 
 }
 
-int db_clock_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_clock_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
        uint32_t ratio = 1;
        uint32_t baud = 19200;
@@ -738,7 +645,7 @@ int db_clock_cmd(char* cmd, char* param1, char* param2, char* param3)
        }
 }
 
-int db_info_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_info_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
 #if 1
 
@@ -746,7 +653,8 @@ int db_info_cmd(char* cmd, char* param1, char* param2, char* param3)
        {
                A_ALLOCRAM_DEBUG();
        }
-#if SYSTEM_MODULE_SYS_MONITOR
+#if 0  /* TODO: SYSTEM_MODULE_SYS_MONITOR depends on _ROM_ or _RAM_ which
+       * is dead too */
        else if(strcmp(param1, "cpu") == 0)
                zfPrintCpuUtilization();
 #endif
@@ -817,75 +725,17 @@ int db_info_cmd(char* cmd, char* param1, char* param2, char* param3)
        return 1;
 }
 
-int db_cmd_dbg(char* cmd, char* param1, char* param2, char* param3)
-{
-}
-
-int db_cmd_dmips(char* cmd, char* param1, char* param2, char* param3)
-{
-
-}
-
-int db_cmd_starthtc(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_starthtc(char *cmd, char *param1, char *param2, char *param3)
 {
     extern htc_handle_t htc_handle;
     HTC_Ready(htc_handle);
 }
 
-int db_cmd_memtest(char* cmd, char* param1, char* param2, char* param3)
-{
-}
-
-
-void eep_test()
-{
-}
-
-#define WRITE_USB_DESC(pDesc, Offset)                                  \
-       {                                                               \
-               uint16_t *pSrc = 0;                                     \
-               uint16_t mSize = 0;                                     \
-               pSrc = (uint16_t *)(pDesc);                             \
-               mSize = (*pSrc&0xff)/2;                                 \
-               A_PRINTF("0x%04x, 0x%04x, 0x%08x\n", Offset, mSize, pSrc); \
-               A_EEP_WRITE(Offset, mSize, pSrc);                       \
-               A_DELAY_USECS(500);                                     \
-       }
-
-#define READ_USB_DESC(pDesc, Offset, Size)                             \
-       {                                                               \
-               uint16_t *pDst;                                         \
-               uint16_t mSize;                                         \
-               pDst = (uint16_t *)pDesc;                               \
-               A_EEP_READ(Offset, 1, &mSize);                          \
-               mSize = mSize &0xff;                                    \
-               mSize = mSize/2;                                        \
-               if( mSize > Size)                                       \
-                       mSize = Size;                                   \
-               A_PRINTF("0x%04x, 0x%04x, 0x%08x\n", Offset, mSize, pDst); \
-               A_EEP_READ(Offset, mSize, pDst);                        \
-               A_DELAY_USECS(500);                                     \
-       }
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-extern uint16_t UsbDeviceDescriptor[];
-extern uint16_t String00Descriptor[];
-extern uint16_t String10Descriptor[];
-extern uint16_t String20Descriptor[];
-extern uint16_t String30Descriptor[];
-
-int db_eeprom_cmd(char* cmd, char* param1, char* param2, char* param3)
-{
-       
-}
-
-int db_wdt_cmd(char* cmd, char* param1, char* param2, char* param3)
+static int db_wdt_cmd(char *cmd, char *param1, char *param2, char *param3)
 {
         if ( strcmp(param1, "rst") == 0 )
         {
-               A_PRINTF(" reseting.....................\n\n\r");
+               A_PRINTF(" reseting...\n\n\r");
                A_WDT_RESET();
         }
         else if( strcmp(param1, "on") == 0 )
@@ -898,23 +748,24 @@ int db_wdt_cmd(char* cmd, char* param1, char* param2, char* param3)
         }
         else if ( strcmp(param1, "boot") == 0 )
         {
+               A_PRINTF("Last BOOT is ");
                if (ENUM_WDT_BOOT == A_WDT_LASTBOOT() )
-                       A_PRINTF("LAST BOOT IS %s", "wdt");
+                       A_PRINTF("wdt");
                else
-                       A_PRINTF("LAST BOOT IS %s", "normal boot");
+                       A_PRINTF("normal boot");
         }
         else if (strcmp(param1, "loop") == 0 )
         {
                T_WDT_CMD wdt_cmd;
                uint32_t time_offset;
-               A_PRINTF(" doing the wdt reseting................\n\n\r");
+               A_PRINTF(" doing the wdt reseting...");
 
                if( db_ascii_to_hex(param2, &time_offset)!=0 )
                {
                        if( time_offset < 0 || time_offset >0xffffffff )
                                time_offset = 0xffffff;
                }
-               A_PRINTF(" doing the wdt reseting (wdt tick: 0x%08x................\n\n\r", time_offset);
+               A_PRINTF(" (wdt tick: 0x%08x...\n\n\r", time_offset);
                wdt_cmd.cmd = WDT_TIMEOUT;
                wdt_cmd.timeout = time_offset;
 
@@ -925,14 +776,14 @@ int db_wdt_cmd(char* cmd, char* param1, char* param2, char* param3)
         {
                T_WDT_CMD wdt_cmd;
                uint32_t time_offset;
-               A_PRINTF(" doing the wdt reseting................\n\n\r");
+               A_PRINTF(" doing the wdt reseting...");
 
                if( db_ascii_to_hex(param3, &time_offset)!=0 )
                {
                        if( time_offset < 0 || time_offset >0xffffffff )
                                time_offset = 0xffffff;
                }
-               A_PRINTF(" doing the wdt reseting (wdt tick: 0x%08x................\n\n\r", time_offset);
+               A_PRINTF(" (wdt tick: 0x%08x...\n\n\r", time_offset);
 
                wdt_cmd.cmd = WDT_TIMEOUT;
                wdt_cmd.timeout = time_offset;
@@ -942,33 +793,28 @@ int db_wdt_cmd(char* cmd, char* param1, char* param2, char* param3)
         else if( strcmp(param1, "event") == 0 )
         {
                uint32_t event= 0x00123400;
-#define USB_BYTE_REG_WRITE(addr, val)          HAL_BYTE_REG_WRITE(USB_CTRL_BASE_ADDRESS|(uint8_t)(addr^3), (val))
-#define USB_BYTE_REG_READ(addr)                HAL_BYTE_REG_READ(USB_CTRL_BASE_ADDRESS|(uint8_t)(addr^3))
 
-#define USB_WORD_REG_WRITE(addr, val)          HAL_WORD_REG_WRITE(USB_CTRL_BASE_ADDRESS|(uint32_t)(addr), (val))
-#define USB_WORD_REG_READ(addr)                HAL_WORD_REG_READ(USB_CTRL_BASE_ADDRESS|(uint32_t)(addr))
+               /* disable ep3 intr */
+               iowrite8_usb(0x17, ioread8_usb(0x17)|0xc0);
 
-               // disable ep3 intr
-               USB_BYTE_REG_WRITE(0x17, USB_BYTE_REG_READ(0x17)|0xc0);
+               /* ZM_CBUS_FIFO_SIZE_REG = 0xf */
+               iowrite32_usb(0x100, 0x0f);
 
-               //ZM_CBUS_FIFO_SIZE_REG = 0xf;
-               USB_WORD_REG_WRITE(0x100, 0x0f);
+               /* ZM_EP3_DATA_REG = event; */
+               iowrite32_usb(0xF8, event);
 
-               //ZM_EP3_DATA_REG = event;
-               USB_WORD_REG_WRITE(0xF8, event);
+               /* tx done */
+               iowrite8_usb(0xAE, ioread8_usb(0xAE) | 0x08);
 
-               // tx done
-               USB_BYTE_REG_WRITE(0xAE, USB_BYTE_REG_READ(0xAE)|0x08);
-
-               // enable ep3 intr
-               USB_BYTE_REG_WRITE(0x17, USB_BYTE_REG_READ(0x17)&0xbf);
+               /* enable ep3 intr */
+               iowrite8_usb(0x17, ioread8_usb(0x17) & 0xbf);
         }
 }
 
 #if defined(PROJECT_K2)
 #if SYSTEM_MODULE_SFLASH
 /* Serial Flash -> Chip Erase, Sector Erase, Block Erase */
-int db_cmd_sferase(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_sferase(char *cmd, char *param1, char *param2, char *param3)
 {
        unsigned long       addr;
 
@@ -982,11 +828,9 @@ int db_cmd_sferase(char* cmd, char* param1, char* param2, char* param3)
 
                        return 0;
                }
-               else
-               {
-                       A_PRINTF("Error! Incorrect format.\n\r");
-                       return -1;
-               }
+
+               db_incorect_format();
+               return -1;
        }
        else if (strcmp(param2, "b") == 0)
        {
@@ -998,11 +842,10 @@ int db_cmd_sferase(char* cmd, char* param1, char* param2, char* param3)
 
                        return 0;
                }
-               else
-               {
-                       A_PRINTF("Error! Incorrect format.\n\r");
-                       return -1;
-               }
+
+               db_incorect_format();
+               return -1;
+
        }
        else if (strcmp(param1, "c") == 0)
        {
@@ -1011,15 +854,13 @@ int db_cmd_sferase(char* cmd, char* param1, char* param2, char* param3)
                A_PRINTF("\n\r");
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Unknown command.\n\r");
-               return -1;
-       }
+
+       db_unknown_command();
+       return -1;
 }
 
 /* Serial Flash -> Program */
-int db_cmd_sfpg(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_sfpg(char *cmd, char *param1, char *param2, char *param3)
 {
        unsigned long       addr, len, buf;
 
@@ -1035,15 +876,13 @@ int db_cmd_sfpg(char* cmd, char* param1, char* param2, char* param3)
                A_PRINTF("\n\r");
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Incorrect format.\n\r");
-               return -1;
-       }
+
+       db_incorect_format();
+       return -1;
 }
 
 /* Serial Flash -> Read, Fast Read to UART */
-int db_cmd_sfru(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_sfru(char *cmd, char *param1, char *param2, char *param3)
 {
        A_UINT32            i;
        unsigned long       addr1, addr2, t_addr;
@@ -1055,7 +894,7 @@ int db_cmd_sfru(char* cmd, char* param1, char* param2, char* param3)
                fast = 1;
        else
        {
-               A_PRINTF("Error! Unknown command.\n\r");
+               db_unknown_command();
                return -1;
        }
 
@@ -1079,15 +918,13 @@ int db_cmd_sfru(char* cmd, char* param1, char* param2, char* param3)
                A_PRINTF("\n\r");
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Incorrect format.\n\r");
-               return -1;
-       }
+
+       db_incorect_format();
+       return -1;
 }
 
 /* Serial Flash -> Read, Fast Read to Memory */
-int db_cmd_sfrm(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_sfrm(char *cmd, char *param1, char *param2, char *param3)
 {
        A_UINT32            i;
        unsigned long       addr1, addr2, t_addr;
@@ -1100,7 +937,7 @@ int db_cmd_sfrm(char* cmd, char* param1, char* param2, char* param3)
                fast = 1;
        else
        {
-               A_PRINTF("Error! Unknown command.\n\r");
+               db_unknown_command();
                return -1;
        }
 
@@ -1117,15 +954,13 @@ int db_cmd_sfrm(char* cmd, char* param1, char* param2, char* param3)
                A_PRINTF("\n\r");
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Incorrect format.\n\r");
-               return -1;
-       }
+
+       db_incorect_format();
+       return -1;
 }
 
 /* Serial Flash -> Read Status Register */
-int db_cmd_sfrdsr(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_sfrdsr(char *cmd, char *param1, char *param2, char *param3)
 {
        A_PRINTF("0x%02X\n\r", A_SFLASH_RDSR());
        return 0;
@@ -1134,7 +969,7 @@ int db_cmd_sfrdsr(char* cmd, char* param1, char* param2, char* param3)
 #endif /* #if defined(PROJECT_K2) */
 
 /* Memory Comparison */
-int db_cmd_memcmp(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_memcmp(char *cmd, char *param1, char *param2, char *param3)
 {
        unsigned long       addr1, addr2, len;
        A_UINT8             *buf1, *buf2;
@@ -1150,47 +985,29 @@ int db_cmd_memcmp(char* cmd, char* param1, char* param2, char* param3)
                A_PRINTF("memcmp(buf1, buf2, len) = %d\n\r", A_MEMCMP(buf1, buf2, len));
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Incorrect format.\n\r");
-               return -1;
-       }
+
+       db_incorect_format();
+       return -1;
 }
 
 /* Memory Dump */
-int db_cmd_memdump(char* cmd, char* param1, char* param2, char* param3)
+static int db_cmd_memdump(char *cmd, char *param1, char *param2, char *param3)
 {
-       A_UINT32            i;
-       unsigned long       addr1, addr2, t_addr;
-       A_UINT32            *val;
+       unsigned long       addr1, addr2;
 
        if (db_ascii_to_hex(param1, &addr1) != -1 && db_ascii_to_hex(param2, &addr2) != -1 && addr1 < addr2 && addr1%4 == 0)
        {
-               A_PRINTF("addr    data     data     data     data     data     data     data     data\n\r");
-               A_PRINTF("======  ======== ======== ======== ======== ======== ======== ======== ========");
-
-               for (i = 0, t_addr = addr1; t_addr < addr2; i++, t_addr += 4)
-               {
-                       if ((i%8) == 0)
-                               A_PRINTF("\n\r%06X  ", t_addr);
-
-                       val = (A_UINT32 *)t_addr;
-                       A_PRINTF("%08X ", *val);
-               }
-
-               A_PRINTF("\n\r");
+               db_print_dump((const char *)addr1, (const char *)addr2);
                return 0;
        }
-       else
-       {
-               A_PRINTF("Error! Incorrect format.\n\r");
-               return -1;
-       }
+
+       db_incorect_format();
+       return -1;
 }
 void cmnos_dbg_module_install(struct dbg_api *apis)
 {
-       apis->_dbg_init = zfDebugInit;
-       apis->_dbg_task = zfDebugTask;
+       apis->_dbg_init = zf_debug_init;
+       apis->_dbg_task = zf_debug_task;
 }
 
 #endif         /* SYSTEM_MODULE_DBG */