X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=target_firmware%2Fmagpie_fw_dev%2Ftarget%2Finit%2Finit.c;h=3554656a7616b53ac829f9f03f90906d631a9676;hb=fa01d2797b39c4365c5176cd870b40a03dfe7a35;hp=0e6efaaa013b57161fe63b53a1871356ae096a91;hpb=e9e39b3bf6b4de3b609a5e4ec941254aecfe5cf4;p=open-ath9k-htc-firmware.git diff --git a/target_firmware/magpie_fw_dev/target/init/init.c b/target_firmware/magpie_fw_dev/target/init/init.c index 0e6efaa..3554656 100755 --- a/target_firmware/magpie_fw_dev/target/init/init.c +++ b/target_firmware/magpie_fw_dev/target/init/init.c @@ -35,10 +35,10 @@ #if defined(_RAM_) #include "athos_api.h" - +#include "usb_defs.h" + #if defined(PROJECT_MAGPIE) #include "regdump.h" -#include "usb_defs.h" extern uint32_t *init_htc_handle; uint8_t htc_complete_setup = 0; void reset_EP4_FIFO(void); @@ -60,7 +60,7 @@ uint32_t idle_cnt = 0; #if defined(PROJECT_K2) // save the ROM printf function point -uint32_t save_cmnos_printf; +int (* save_cmnos_printf)(const char * fmt, ...); #endif #define ATH_DATE_STRING __DATE__" "__TIME__ @@ -86,7 +86,7 @@ void fatal_exception_func() void change_magpie_clk(void) { - volatile uint32_t i=0, rd_data; + volatile uint32_t rd_data; HAL_WORD_REG_WRITE(0x00056004, 0x11); rd_data = HAL_WORD_REG_READ(0x00056004) & 0x1; @@ -145,12 +145,12 @@ void exception_reset(struct register_dump_s *dump) HAL_WORD_REG_WRITE(MAGPIE_REG_AHB_ARB_ADDR, (HAL_WORD_REG_READ(MAGPIE_REG_AHB_ARB_ADDR)|BIT1)); - HAL_WORD_REG_WRITE((USB_CTRL_BASE_ADDRESS+0x118), 0x0); + USB_WORD_REG_WRITE(ZM_SOC_USB_DMA_RESET_OFFSET, 0x0); HAL_WORD_REG_WRITE(0x50010, HAL_WORD_REG_READ(0x50010)|BIT4); A_DELAY_USECS(5); HAL_WORD_REG_WRITE(0x50010, HAL_WORD_REG_READ(0x50010)&~BIT4); A_DELAY_USECS(5); - HAL_WORD_REG_WRITE((USB_CTRL_BASE_ADDRESS+0x118), 0x1); + USB_WORD_REG_WRITE(ZM_SOC_USB_DMA_RESET_OFFSET, BIT0); // set clock to bypass mode - 40Mhz from XTAL HAL_WORD_REG_WRITE(MAGPIE_REG_CPU_PLL_BYPASS_ADDR, (BIT0|BIT4)); @@ -166,9 +166,12 @@ void exception_reset(struct register_dump_s *dump) MAGPIE_REG_USB_RX1_SWAP_DATA = 0x1; MAGPIE_REG_USB_RX2_SWAP_DATA = 0x1; - A_PRINTF("Jump to BOOT\n"); - - // reboot..... + A_PRINTF("Cold reboot initiated."); +#if defined(PROJECT_MAGPIE) + HAL_WORD_REG_WRITE(WATCH_DOG_MAGIC_PATTERN_ADDR, 0); +#elif defined(PROJECT_K2) + HAL_WORD_REG_WRITE(MAGPIE_REG_RST_STATUS_ADDR, 0); +#endif /* #if defined(PROJECT_MAGPIE) */ A_USB_JUMP_BOOT(); } @@ -218,7 +221,6 @@ void AR6002_fatal_exception_handler_patch(CPU_exception_frame_t *exc_frame) { struct register_dump_s dump; - void (*reset_func)(void) = (void*)(RESET_VECTOR_ADDRESS); uint32_t exc_cause, exc_vaddr; asm volatile("rsr %0,%1" : "=r" (exc_cause) : "n" (EXCCAUSE)); asm volatile("rsr %0,%1" : "=r" (exc_vaddr) : "n" (EXCVADDR)); @@ -380,17 +382,9 @@ void wlan_task(void) A_TASKLET_RUN(); A_TIMER_RUN(); - /* Low priority tasks */ - if ((loop_low & 0xf) == 0) { - } - /* Very low priority tasks */ - if ((loop_low & 0xfff) == 0x7) { - if ((loop_low & 0x1000) == 0) { - A_DBG_TASK(); - } else { - } - } + if ((loop_low & 0x1fff) == 0x7) + A_DBG_TASK(); idle_task(); }