dbg_api.c: use new io funcs
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / cmnos / dbg_api.c
index 66b25a514c57299d9d92607824a536997e69dcf5..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"
@@ -123,6 +125,42 @@ static void db_incorect_format(void)
        A_PRINTF("Error! Incorrect format.\n\r");
 }
 
+static void db_unknown_command(void)
+{
+       A_PRINTF("Error! Unknown command.\n\r");
+}
+
+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);
+
+               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;
@@ -419,12 +457,12 @@ static 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)
                {
@@ -455,23 +493,21 @@ static 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;
                }
 
@@ -591,7 +627,7 @@ 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);
 
 }
@@ -757,26 +793,21 @@ static 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);
         }
 }
 
@@ -823,11 +854,9 @@ static 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 */
@@ -865,7 +894,7 @@ static 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;
        }
 
@@ -908,7 +937,7 @@ static 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;
        }
 
@@ -964,25 +993,11 @@ static int db_cmd_memcmp(char *cmd, char *param1, char *param2, char *param3)
 /* Memory Dump */
 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;
        }