SoC common: bl30 rtos_sdk mv soc related configs to soc path [2/3]

PD#SWPL-175268

Problem:
bl30 mv soc related configs to soc path

Solution:
bl30 mv soc related configs to soc path

Verify:
all

Change-Id: I04c78e949d8a833c58c30d9c3ea7f3a063174b76
Signed-off-by: bangzheng.liu <bangzheng.liu@amlogic.com>
diff --git a/am301_t950d4/Kconfig b/am301_t950d4/Kconfig
index a441c44..652baad 100644
--- a/am301_t950d4/Kconfig
+++ b/am301_t950d4/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/am301_t950d4/fsm.h b/am301_t950d4/fsm.h
index 86a1f01..10b8fb7 100644
--- a/am301_t950d4/fsm.h
+++ b/am301_t950d4/fsm.h
@@ -8,9 +8,5 @@
 #define __FSM_H__
 
 void vCoreFsmIdleInit(void);
-extern void vRtcInit(void);
-extern void create_str_task(void);
-extern void trap_entry(void);
-extern void irq_entry(void);
 
 #endif
diff --git a/am301_t950d4/hw_business.c b/am301_t950d4/hw_business.c
index 814cbe6..50ade27 100644
--- a/am301_t950d4/hw_business.c
+++ b/am301_t950d4/hw_business.c
@@ -5,91 +5,24 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_pic_tmr.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
+#include "suspend.h"
+#include "vrtc.h"
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-/* function: vPICInit */
-static void vPICInit(void)
-{
-	// Disable global interrupter
-	clear_csr(mstatus, MSTATUS_MIE);
-
-	// Initialize interrupter handler
-	for (int i = 0; i < PIC_NUM_INTERRUPTS; i++)
-		pic_interrupt_handlers[i] = DefaultInterruptHandler;
-
-	// Enable global interrupt
-	set_csr(mstatus, MSTATUS_MIE);
-}
-
 void hw_business_process(void)
 {
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	vPICInit();
-	stick_mem_init();
-	//write watchdog flag
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
-
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_T5);
-	write_csr(mtvec, &trap_entry);
-	write_csr_mivec(&irq_entry);
-
 	vRtcInit();
 	vETHMailboxCallback();
 	create_str_task();
@@ -101,4 +34,3 @@
 	#define RTOS_RUN_SUCC                  (1 << 0)
 	*(volatile uint32_t *)RTOS_BOOT_SUCC_REG |= RTOS_RUN_SUCC;
 }
-
diff --git a/at301_t962d4/Kconfig b/at301_t962d4/Kconfig
index 5a6c575..5414197 100644
--- a/at301_t962d4/Kconfig
+++ b/at301_t962d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/at301_t962d4/fsm.h b/at301_t962d4/fsm.h
index 86a1f01..10b8fb7 100644
--- a/at301_t962d4/fsm.h
+++ b/at301_t962d4/fsm.h
@@ -8,9 +8,5 @@
 #define __FSM_H__
 
 void vCoreFsmIdleInit(void);
-extern void vRtcInit(void);
-extern void create_str_task(void);
-extern void trap_entry(void);
-extern void irq_entry(void);
 
 #endif
diff --git a/at301_t962d4/hw_business.c b/at301_t962d4/hw_business.c
index e9a3077..641feaf 100644
--- a/at301_t962d4/hw_business.c
+++ b/at301_t962d4/hw_business.c
@@ -5,75 +5,23 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_pic_tmr.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
+#include "suspend.h"
+#include "vrtc.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-#define TASK_TEST_QUEUE_NUM 2
-#define TASK_TEST_QUEUE_LENGTH 3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-/* function: vPICInit */
-static void vPICInit(void)
-{
-	// Disable global interrupter
-	clear_csr(mstatus, MSTATUS_MIE);
-
-	// Initialize interrupter handler
-	for (int i = 0; i < PIC_NUM_INTERRUPTS; i++)
-		pic_interrupt_handlers[i] = DefaultInterruptHandler;
-
-	// Enable global interrupt
-	set_csr(mstatus, MSTATUS_MIE);
-}
-
 void hw_business_process(void)
 {
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	vPICInit();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
-
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_T5);
-	write_csr(mtvec, &trap_entry);
-	write_csr_mivec(&irq_entry);
-
 	vRtcInit();
 	vETHMailboxCallback();
 	create_str_task();
@@ -84,4 +32,3 @@
 	#define RTOS_RUN_SUCC                  (1 << 0)
 	*(volatile uint32_t *)RTOS_BOOT_SUCC_REG |= RTOS_RUN_SUCC;
 }
-
diff --git a/at309_t962d4/Kconfig b/at309_t962d4/Kconfig
index a4b8540..62c5247 100644
--- a/at309_t962d4/Kconfig
+++ b/at309_t962d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/at309_t962d4/fsm.h b/at309_t962d4/fsm.h
index 86a1f01..10b8fb7 100644
--- a/at309_t962d4/fsm.h
+++ b/at309_t962d4/fsm.h
@@ -8,9 +8,5 @@
 #define __FSM_H__
 
 void vCoreFsmIdleInit(void);
-extern void vRtcInit(void);
-extern void create_str_task(void);
-extern void trap_entry(void);
-extern void irq_entry(void);
 
 #endif
diff --git a/at309_t962d4/hw_business.c b/at309_t962d4/hw_business.c
index b63d6de..0faca52 100644
--- a/at309_t962d4/hw_business.c
+++ b/at309_t962d4/hw_business.c
@@ -5,89 +5,23 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_pic_tmr.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
+#include "suspend.h"
+#include "vrtc.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-#define TASK_TEST_QUEUE_NUM 2
-#define TASK_TEST_QUEUE_LENGTH 3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-/* function: vPICInit */
-static void vPICInit(void)
-{
-	// Disable global interrupter
-	clear_csr(mstatus, MSTATUS_MIE);
-
-	// Initialize interrupter handler
-	for (int i = 0; i < PIC_NUM_INTERRUPTS; i++)
-		pic_interrupt_handlers[i] = DefaultInterruptHandler;
-
-	// Enable global interrupt
-	set_csr(mstatus, MSTATUS_MIE);
-}
-
 void hw_business_process(void)
 {
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	vPICInit();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
-
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_T5);
-	write_csr(mtvec, &trap_entry);
-	write_csr_mivec(&irq_entry);
-
 	vRtcInit();
 	vETHMailboxCallback();
 	create_str_task();
diff --git a/av400_a113x2/Kconfig b/av400_a113x2/Kconfig
index 89805a7..2450dd8 100644
--- a/av400_a113x2/Kconfig
+++ b/av400_a113x2/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +24,5 @@
 	select RTC
 	select I2C
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic AV400 Board.
diff --git a/av400_a113x2/hw_business.c b/av400_a113x2/hw_business.c
index da5662f..fdf618d 100644
--- a/av400_a113x2/hw_business.c
+++ b/av400_a113x2/hw_business.c
@@ -5,69 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "rtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	//	vRtcInit();
diff --git a/av409_a113x2/Kconfig b/av409_a113x2/Kconfig
index b6c263d..6d79ff0 100644
--- a/av409_a113x2/Kconfig
+++ b/av409_a113x2/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select IR
 	select ETHERNET
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic AV409 Board.
diff --git a/av409_a113x2/hw_business.c b/av409_a113x2/hw_business.c
index d3d500b..fdf618d 100644
--- a/av409_a113x2/hw_business.c
+++ b/av409_a113x2/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "rtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	//	vRtcInit();
diff --git a/ax201_s928x/Kconfig b/ax201_s928x/Kconfig
index ed8b213..88835a1 100644
--- a/ax201_s928x/Kconfig
+++ b/ax201_s928x/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/ax201_s928x/hw_business.c b/ax201_s928x/hw_business.c
index b8ea1b5..6fc730b 100644
--- a/ax201_s928x/hw_business.c
+++ b/ax201_s928x/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S5);
 	vRtcInit();
diff --git a/ax208_s928x/Kconfig b/ax208_s928x/Kconfig
index f1a8ba5..ec548af 100644
--- a/ax208_s928x/Kconfig
+++ b/ax208_s928x/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/ax208_s928x/hw_business.c b/ax208_s928x/hw_business.c
index b8ea1b5..6fc730b 100644
--- a/ax208_s928x/hw_business.c
+++ b/ax208_s928x/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S5);
 	vRtcInit();
diff --git a/ax209_s928x/Kconfig b/ax209_s928x/Kconfig
index 21489c5..f381536 100644
--- a/ax209_s928x/Kconfig
+++ b/ax209_s928x/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/ax209_s928x/hw_business.c b/ax209_s928x/hw_business.c
index b8ea1b5..6fc730b 100644
--- a/ax209_s928x/hw_business.c
+++ b/ax209_s928x/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S5);
 	vRtcInit();
diff --git a/ay301_t963d4/Kconfig b/ay301_t963d4/Kconfig
index 83d0375..13ec320 100644
--- a/ay301_t963d4/Kconfig
+++ b/ay301_t963d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -27,6 +26,5 @@
 	select VERSION_FULL_INFO
 	select HDMIRX
 	select PM
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic AY301 Board.
diff --git a/ay301_t963d4/hw_business.c b/ay301_t963d4/hw_business.c
index 6d5500a..fc5cf52 100644
--- a/ay301_t963d4/hw_business.c
+++ b/ay301_t963d4/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T5M);
 	vRtcInit();
diff --git a/ay309_t963d4/Kconfig b/ay309_t963d4/Kconfig
index 10e3b2c..7ad9fce 100644
--- a/ay309_t963d4/Kconfig
+++ b/ay309_t963d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -26,6 +25,5 @@
 	select HWSPINLOCK
 	select VERSION_FULL_INFO
 	select HDMIRX
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic AY309 Board.
diff --git a/ay309_t963d4/hw_business.c b/ay309_t963d4/hw_business.c
index 6d5500a..fc5cf52 100644
--- a/ay309_t963d4/hw_business.c
+++ b/ay309_t963d4/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T5M);
 	vRtcInit();
diff --git a/ba400_a113l2/Kconfig b/ba400_a113l2/Kconfig
index 4fa7b51..fd53b32 100644
--- a/ba400_a113l2/Kconfig
+++ b/ba400_a113l2/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/ba400_a113l2/hw_business.c b/ba400_a113l2/hw_business.c
index d3d500b..fdf618d 100644
--- a/ba400_a113l2/hw_business.c
+++ b/ba400_a113l2/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "rtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	//	vRtcInit();
diff --git a/ba409_a113l2/Kconfig b/ba409_a113l2/Kconfig
index 0acbb21..60f73bc 100644
--- a/ba409_a113l2/Kconfig
+++ b/ba409_a113l2/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/ba409_a113l2/hw_business.c b/ba409_a113l2/hw_business.c
index d3d500b..fdf618d 100644
--- a/ba409_a113l2/hw_business.c
+++ b/ba409_a113l2/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "rtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	//	vRtcInit();
diff --git a/bc302_t968d4/Kconfig b/bc302_t968d4/Kconfig
index 3647bc8..81ac8d8 100644
--- a/bc302_t968d4/Kconfig
+++ b/bc302_t968d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/bc302_t968d4/hw_business.c b/bc302_t968d4/hw_business.c
index 46385ff..6fa6f95 100644
--- a/bc302_t968d4/hw_business.c
+++ b/bc302_t968d4/hw_business.c
@@ -5,67 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T3X);
 	vRtcInit();
diff --git a/bc303_t968d4/Kconfig b/bc303_t968d4/Kconfig
index eb68c84..51a125f 100644
--- a/bc303_t968d4/Kconfig
+++ b/bc303_t968d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/bc303_t968d4/hw_business.c b/bc303_t968d4/hw_business.c
index 550b13a..6fa6f95 100644
--- a/bc303_t968d4/hw_business.c
+++ b/bc303_t968d4/hw_business.c
@@ -5,68 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	//write watchdog flag
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T3X);
 	vRtcInit();
diff --git a/bc309_t968d4/Kconfig b/bc309_t968d4/Kconfig
index b0c1500..a9e2606 100644
--- a/bc309_t968d4/Kconfig
+++ b/bc309_t968d4/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/bc309_t968d4/hw_business.c b/bc309_t968d4/hw_business.c
index 46385ff..6fa6f95 100644
--- a/bc309_t968d4/hw_business.c
+++ b/bc309_t968d4/hw_business.c
@@ -5,67 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T3X);
 	vRtcInit();
diff --git a/be301_t950s/Kconfig b/be301_t950s/Kconfig
index 630ca1d..8853009 100644
--- a/be301_t950s/Kconfig
+++ b/be301_t950s/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-#	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/be301_t950s/hw_business.c b/be301_t950s/hw_business.c
index 2270ae9..0b2b186 100644
--- a/be301_t950s/hw_business.c
+++ b/be301_t950s/hw_business.c
@@ -5,83 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	for (i = 0; i < 8; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-//	stick_mem_init();
-//	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_TXHD2);
diff --git a/be309_t950s/Kconfig b/be309_t950s/Kconfig
index ed8cea4..529b1af 100644
--- a/be309_t950s/Kconfig
+++ b/be309_t950s/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-#	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/be309_t950s/hw_business.c b/be309_t950s/hw_business.c
index 2270ae9..0b2b186 100644
--- a/be309_t950s/hw_business.c
+++ b/be309_t950s/hw_business.c
@@ -5,83 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	for (i = 0; i < 8; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-//	stick_mem_init();
-//	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_TXHD2);
diff --git a/be311_t950s/Kconfig b/be311_t950s/Kconfig
index 6bd4523..332fb40 100644
--- a/be311_t950s/Kconfig
+++ b/be311_t950s/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-#	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/be311_t950s/hw_business.c b/be311_t950s/hw_business.c
index 2270ae9..0b2b186 100644
--- a/be311_t950s/hw_business.c
+++ b/be311_t950s/hw_business.c
@@ -5,83 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	for (i = 0; i < 8; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-//	stick_mem_init();
-//	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_TXHD2);
diff --git a/be319_t950s/Kconfig b/be319_t950s/Kconfig
index 11aa804..002afd7 100644
--- a/be319_t950s/Kconfig
+++ b/be319_t950s/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-#	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/be319_t950s/hw_business.c b/be319_t950s/hw_business.c
index 2270ae9..0b2b186 100644
--- a/be319_t950s/hw_business.c
+++ b/be319_t950s/hw_business.c
@@ -5,83 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	for (i = 0; i < 8; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-//	stick_mem_init();
-//	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_TXHD2);
diff --git a/bg201_s805c1/Kconfig b/bg201_s805c1/Kconfig
index f231f28..fd41f6b 100644
--- a/bg201_s805c1/Kconfig
+++ b/bg201_s805c1/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/bg201_s805c1/hw_business.c b/bg201_s805c1/hw_business.c
index 9a6585e..b069e32 100644
--- a/bg201_s805c1/hw_business.c
+++ b/bg201_s805c1/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S1A);
 	vRtcInit();
diff --git a/bg209_s805c1/Kconfig b/bg209_s805c1/Kconfig
index 19090ba..72cb760 100644
--- a/bg209_s805c1/Kconfig
+++ b/bg209_s805c1/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/bg209_s805c1/hw_business.c b/bg209_s805c1/hw_business.c
index 9a6585e..b069e32 100644
--- a/bg209_s805c1/hw_business.c
+++ b/bg209_s805c1/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S1A);
 	vRtcInit();
diff --git a/bh201_s905y5/Kconfig b/bh201_s905y5/Kconfig
index 106924a..8691d5c 100644
--- a/bh201_s905y5/Kconfig
+++ b/bh201_s905y5/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,7 +23,6 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	select WIFI_BT_WAKE
 
 	help
diff --git a/bh201_s905y5/hw_business.c b/bh201_s905y5/hw_business.c
index 1cb2cf6..371df0e 100644
--- a/bh201_s905y5/hw_business.c
+++ b/bh201_s905y5/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S7);
 	vRtcInit();
diff --git a/bh202_s905y5/Kconfig b/bh202_s905y5/Kconfig
index eee11ae..19cb0b6 100644
--- a/bh202_s905y5/Kconfig
+++ b/bh202_s905y5/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BH202_S905Y5 Board.
diff --git a/bh202_s905y5/hw_business.c b/bh202_s905y5/hw_business.c
index 1044e2d..7c32abe 100644
--- a/bh202_s905y5/hw_business.c
+++ b/bh202_s905y5/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
diff --git a/bh209_s905y5/Kconfig b/bh209_s905y5/Kconfig
index ebd3dcf..dd193df 100644
--- a/bh209_s905y5/Kconfig
+++ b/bh209_s905y5/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BH209_S905Y5 Board.
diff --git a/bh209_s905y5/hw_business.c b/bh209_s905y5/hw_business.c
index 1044e2d..7c32abe 100644
--- a/bh209_s905y5/hw_business.c
+++ b/bh209_s905y5/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
diff --git a/bl201_s905x5/Kconfig b/bl201_s905x5/Kconfig
index 24dae0b..f329fb9 100644
--- a/bl201_s905x5/Kconfig
+++ b/bl201_s905x5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BL201_S905X5
 	bool "Amlogic BL201_S905X5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BL201_S905X5 Board.
diff --git a/bl201_s905x5/hw_business.c b/bl201_s905x5/hw_business.c
index b4149eb..aab4efe 100644
--- a/bl201_s905x5/hw_business.c
+++ b/bl201_s905x5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S6);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/bl208_s905x5/Kconfig b/bl208_s905x5/Kconfig
index 9afe18e..8b0f71b 100644
--- a/bl208_s905x5/Kconfig
+++ b/bl208_s905x5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BL208_S905X5
 	bool "Amlogic BL208_S905X5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BL208_S905X5 Board.
diff --git a/bl208_s905x5/hw_business.c b/bl208_s905x5/hw_business.c
index 3722d6b..1eedf72 100644
--- a/bl208_s905x5/hw_business.c
+++ b/bl208_s905x5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/bl209_s905x5/Kconfig b/bl209_s905x5/Kconfig
index 68e8452..ae02037 100644
--- a/bl209_s905x5/Kconfig
+++ b/bl209_s905x5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BL209_S905X5
 	bool "Amlogic BL209_S905X5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BL209_S905X5 Board.
diff --git a/bl209_s905x5/hw_business.c b/bl209_s905x5/hw_business.c
index 3722d6b..1eedf72 100644
--- a/bl209_s905x5/hw_business.c
+++ b/bl209_s905x5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/bm201_s905x5m/Kconfig b/bm201_s905x5m/Kconfig
index 41d29f6..83938df 100644
--- a/bm201_s905x5m/Kconfig
+++ b/bm201_s905x5m/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +24,5 @@
 	select VRTC
 	select VERSION_FULL_INFO
 	select WIFI_BT_WAKE
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BM201_S905X5M Board.
diff --git a/bm201_s905x5m/hw_business.c b/bm201_s905x5m/hw_business.c
index 1044e2d..3bbe34b 100644
--- a/bm201_s905x5m/hw_business.c
+++ b/bm201_s905x5m/hw_business.c
@@ -5,70 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
-	//	vCecCallbackInit(CEC_CHIP_SC2);
+	vCecCallbackInit(CEC_CHIP_S7D);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
diff --git a/bm202_s905x5m/Kconfig b/bm202_s905x5m/Kconfig
index bad4c5b..b6cfe55 100644
--- a/bm202_s905x5m/Kconfig
+++ b/bm202_s905x5m/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BM201_S905X5M Board.
diff --git a/bm202_s905x5m/hw_business.c b/bm202_s905x5m/hw_business.c
index 1044e2d..3bbe34b 100644
--- a/bm202_s905x5m/hw_business.c
+++ b/bm202_s905x5m/hw_business.c
@@ -5,70 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
-	//	vCecCallbackInit(CEC_CHIP_SC2);
+	vCecCallbackInit(CEC_CHIP_S7D);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
diff --git a/bm209_s905x5m/Kconfig b/bm209_s905x5m/Kconfig
index 964a55a..05b884d 100644
--- a/bm209_s905x5m/Kconfig
+++ b/bm209_s905x5m/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BM209_S905X5M Board.
diff --git a/bm209_s905x5m/hw_business.c b/bm209_s905x5m/hw_business.c
index 1044e2d..3bbe34b 100644
--- a/bm209_s905x5m/hw_business.c
+++ b/bm209_s905x5m/hw_business.c
@@ -5,70 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
-	//	vCecCallbackInit(CEC_CHIP_SC2);
+	vCecCallbackInit(CEC_CHIP_S7D);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
diff --git a/bp201_s805x3/Kconfig b/bp201_s805x3/Kconfig
index 1a1a41e..63c5c9e 100644
--- a/bp201_s805x3/Kconfig
+++ b/bp201_s805x3/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,7 +23,6 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	select WIFI_BT_WAKE
 
 	help
diff --git a/bp201_s805x3/hw_business.c b/bp201_s805x3/hw_business.c
index 1cb2cf6..371df0e 100644
--- a/bp201_s805x3/hw_business.c
+++ b/bp201_s805x3/hw_business.c
@@ -5,68 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S7);
 	vRtcInit();
diff --git a/bp202_s805x3/Kconfig b/bp202_s805x3/Kconfig
index dc18e4c..4337a13 100644
--- a/bp202_s805x3/Kconfig
+++ b/bp202_s805x3/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,7 +23,6 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	select WIFI_BT_WAKE
 
 	help
diff --git a/bp202_s805x3/hw_business.c b/bp202_s805x3/hw_business.c
index 59567d4..7c32abe 100644
--- a/bp202_s805x3/hw_business.c
+++ b/bp202_s805x3/hw_business.c
@@ -5,69 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	//write watchdog flag
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
diff --git a/bq201_s905d5/Kconfig b/bq201_s905d5/Kconfig
index fc0a87a..4dbf505 100644
--- a/bq201_s905d5/Kconfig
+++ b/bq201_s905d5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BQ201_S905D5
 	bool "Amlogic BQ201_S905D5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BQ201_S905D5 Board.
diff --git a/bq201_s905d5/hw_business.c b/bq201_s905d5/hw_business.c
index 3722d6b..1eedf72 100644
--- a/bq201_s905d5/hw_business.c
+++ b/bq201_s905d5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/bq208_s905d5/Kconfig b/bq208_s905d5/Kconfig
index 33f1b5d..fe055e4 100644
--- a/bq208_s905d5/Kconfig
+++ b/bq208_s905d5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BQ208_S905D5
 	bool "Amlogic BQ208_S905D5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BQ208_S905D5 Board.
diff --git a/bq208_s905d5/hw_business.c b/bq208_s905d5/hw_business.c
index 3722d6b..1eedf72 100644
--- a/bq208_s905d5/hw_business.c
+++ b/bq208_s905d5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/bq209_s905d5/Kconfig b/bq209_s905d5/Kconfig
index 4cd7c5f..3c8f239 100644
--- a/bq209_s905d5/Kconfig
+++ b/bq209_s905d5/Kconfig
@@ -5,11 +5,9 @@
 config BOARD_BQ209_S905D5
 	bool "Amlogic BQ209_S905D5 Board"
 	select SOC_S6
-	select BRINGUP
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -25,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic BQ209_S905D5 Board.
diff --git a/bq209_s905d5/hw_business.c b/bq209_s905d5/hw_business.c
index 3722d6b..1eedf72 100644
--- a/bq209_s905d5/hw_business.c
+++ b/bq209_s905d5/hw_business.c
@@ -5,121 +5,21 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
-#include "timer_source.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-#define DMC_MON_CTRL0 ((0x0010  << 2) + 0xfe036000)
-#define MTE_FIX_STOP_BIT 0x1
-static TaskHandle_t MTEFixTask;
-
-static uint8_t is_chip_version_a(void)
-{
-	if (((REG32(SYSCTRL_SEC_STATUS_REG0) >> 8) & 0xFF) == 0xA)
-		return 1;
-	else
-		return 0;
-}
-
-static void vMTEFix(void *pvParameters)
-{
-	(void)pvParameters;
-	uint32_t val;
-
-	while (1) {
-		if ((REG32(SYSCTRL_DEBUG_REG4) & MTE_FIX_STOP_BIT) == 1) //Stop MTE feature
-			continue;
-		else {
-			val = REG32(DMC_MON_CTRL0);
-			val |= (1 << 30);
-			REG32(DMC_MON_CTRL0) = val;
-			udelay(10);
-		}
-	}
-}
-
-void create_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (xTaskCreate(vMTEFix, "MTEFix_Task", configMINIMAL_STACK_SIZE, NULL, 1, &MTEFixTask) < 0)
-		printf("MTEFix_Task create fail!!\n");
-}
-
-void delete_mte_fix_task(void)
-{
-	if (!is_chip_version_a())
-		return;
-
-	if (MTEFixTask)
-		vTaskDelete(MTEFixTask);
-}
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
 	create_str_task();
-	create_mte_fix_task();
 }
diff --git a/s1a_skt/Kconfig b/s1a_skt/Kconfig
index bb718b9..b1eb333 100644
--- a/s1a_skt/Kconfig
+++ b/s1a_skt/Kconfig
@@ -9,7 +9,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/s1a_skt/hw_business.c b/s1a_skt/hw_business.c
index 1945058..b069e32 100644
--- a/s1a_skt/hw_business.c
+++ b/s1a_skt/hw_business.c
@@ -5,63 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S1A);
 	vRtcInit();
diff --git a/s6_skt/Kconfig b/s6_skt/Kconfig
index 5c9001f..3b947b5 100644
--- a/s6_skt/Kconfig
+++ b/s6_skt/Kconfig
@@ -9,7 +9,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-#	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/s6_skt/hw_business.c b/s6_skt/hw_business.c
index cd684af..7c32abe 100644
--- a/s6_skt/hw_business.c
+++ b/s6_skt/hw_business.c
@@ -5,62 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
diff --git a/s7_skt/Kconfig b/s7_skt/Kconfig
index d6c352d..858f8fe 100644
--- a/s7_skt/Kconfig
+++ b/s7_skt/Kconfig
@@ -9,7 +9,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/s7_skt/hw_business.c b/s7_skt/hw_business.c
index dc80bd4..7c32abe 100644
--- a/s7_skt/hw_business.c
+++ b/s7_skt/hw_business.c
@@ -5,64 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	//	vCecCallbackInit(CEC_CHIP_SC2);
 	vRtcInit();
diff --git a/s7d_skt/Kconfig b/s7d_skt/Kconfig
index a26b7c8..b33a65c 100644
--- a/s7d_skt/Kconfig
+++ b/s7d_skt/Kconfig
@@ -9,7 +9,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/s7d_skt/hw_business.c b/s7d_skt/hw_business.c
index 46a9445..3bbe34b 100644
--- a/s7d_skt/hw_business.c
+++ b/s7d_skt/hw_business.c
@@ -5,64 +5,17 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_S7D);
 	vRtcInit();
diff --git a/t223_s905y5r/Kconfig b/t223_s905y5r/Kconfig
index 2e3a5a1..63dacd0 100644
--- a/t223_s905y5r/Kconfig
+++ b/t223_s905y5r/Kconfig
@@ -8,7 +8,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
@@ -24,6 +23,5 @@
 	select ETHERNET
 	select VRTC
 	select VERSION_FULL_INFO
-	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic T223_S905Y5R Board.
diff --git a/t223_s905y5r/hw_business.c b/t223_s905y5r/hw_business.c
index 1044e2d..371df0e 100644
--- a/t223_s905y5r/hw_business.c
+++ b/t223_s905y5r/hw_business.c
@@ -5,70 +5,19 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
-	//	vCecCallbackInit(CEC_CHIP_SC2);
+	vCecCallbackInit(CEC_CHIP_S7);
 	vRtcInit();
 	//rtc_init();
 	vETHMailboxCallback();
diff --git a/t3x_sky/Kconfig b/t3x_sky/Kconfig
index 6447468..cfdc060 100644
--- a/t3x_sky/Kconfig
+++ b/t3x_sky/Kconfig
@@ -9,7 +9,6 @@
 	select COMMON
 	select GET_VERSION
 	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 	select CEC
 	select MAILBOX
diff --git a/t3x_sky/hw_business.c b/t3x_sky/hw_business.c
index 8948c0a..6fa6f95 100644
--- a/t3x_sky/hw_business.c
+++ b/t3x_sky/hw_business.c
@@ -5,69 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
-#include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
+#include "common.h"
 #include "uart.h"
 #include "eth.h"
-#include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
-
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
+#include "hw_business.h"
 
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	config_pmp();
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
 	vMbInit();
 	vCecCallbackInit(CEC_CHIP_T3X);
 	vRtcInit();
diff --git a/t6d_skt/Kconfig b/t6d_skt/Kconfig
index be9f437..5077f19 100644
--- a/t6d_skt/Kconfig
+++ b/t6d_skt/Kconfig
@@ -10,7 +10,6 @@
 	select COMMON
 	select GET_VERSION
 #	select BL30_VERSION_SAVE
-	select STICK_MEM
 	select UART
 #	select CEC
 	select MAILBOX
@@ -28,6 +27,5 @@
 	select VERSION_FULL_INFO
 #	select HDMIRX
 	select PM
-#	select AOCPU_ALIVE_DETECTION
 	help
 	  Enable Amlogic T6D_SKT Board.
diff --git a/t6d_skt/hw_business.c b/t6d_skt/hw_business.c
index 340f44e..adbf9cf 100644
--- a/t6d_skt/hw_business.c
+++ b/t6d_skt/hw_business.c
@@ -5,70 +5,18 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
-#include "riscv_encoding.h"
 #include "mailbox-api.h"
 #include "hdmi_cec.h"
-#include "stick_mem.h"
 #include "suspend.h"
 #include "vrtc.h"
 #include "hwspinlock.h"
 
-#define INT_TEST_NEST_DEPTH 6
-#define INT_TEST_GPIO_NUM 6
-#define INT_TEST_TASK_DELAY 50 // ms
-#define TASK_TEST_STACK_DEPTH 200
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE 0
-
-#define INT_TEST_INT_WAVE_ENABLE 1
-
-#if INT_TEST_INT_WAVE_ENABLE
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 10 // ms
-#else
-#define INT_TEST_TIMER_PERIOD 500 // ms
-#define INT_TEST_INT_DELAY 0x3ff // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD 100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD 50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD 200 // ms
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	config_eclic_irqs();
-#ifdef CONFIG_AOCPU_BUSRESPERR_DETECTION
-	config_eclic_busresperr_irq();
-#endif
-	//config_pmp();
-	for (i = 0; i < 4; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-	stick_mem_init();
-	stick_mem_write(STICK_REBOOT_FLAG, WATCHDOG_REBOOT);
 	vMbInit();
 	//vCecCallbackInit(CEC_CHIP_T6D);
 	vRtcInit();
diff --git a/txhd2_skt/Kconfig b/txhd2_skt/Kconfig
index a82b6cf..f043dac 100644
--- a/txhd2_skt/Kconfig
+++ b/txhd2_skt/Kconfig
@@ -9,7 +9,6 @@
 	select LIBC_AML
 	select COMMON
 	select GET_VERSION
-#	select STICK_MEM
 	select UART
 	select CEC
 	select DDR
diff --git a/txhd2_skt/hw_business.c b/txhd2_skt/hw_business.c
index 042c37e..0b2b186 100644
--- a/txhd2_skt/hw_business.c
+++ b/txhd2_skt/hw_business.c
@@ -5,12 +5,7 @@
  */
 
 #include <stdio.h>
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "semphr.h"
 #include "hw_business.h"
-#include "n200_eclic.h"
-#include "n200_func.h"
 #include "uart.h"
 #include "eth.h"
 #include "common.h"
@@ -19,62 +14,10 @@
 #include "keypad.h"
 #include "fsm.h"
 
-#define INT_TEST_NEST_DEPTH  6
-#define INT_TEST_GPIO_NUM  6
-#define INT_TEST_TASK_DELAY  50 // ms
-#define TASK_TEST_STACK_DEPTH  200
-
-#define TASK_TEST_QUEUE_NUM  2
-#define TASK_TEST_QUEUE_LENGTH  3
-
-//#define GPIO_INT_SOURCE(x) (SOC_PIC_INT_GPIO_BASE + x)
-
-/* Configure board type:
- *   Board under test :        SIGNAL_BOARD_ENABLE     0
- *   Signal generation board : SIGNAL_BOARD_ENABLE     1
- */
-#define SIGNAL_BOARD_ENABLE       0
-
-#define INT_TEST_INT_WAVE_ENABLE  1
-
-#if INT_TEST_INT_WAVE_ENABLE
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    10    // ms
-#else
-    #define INT_TEST_TIMER_PERIOD  500    // ms
-    #define INT_TEST_INT_DELAY    0x3ff    // ms
-#endif
-
-#define INT_TEST_MAX_TIMER_PERIOD	100 // ms
-#define INT_TEST_MIN_TIMER_PERIOD	50 // ms
-#define INT_TEST_MUTE_TIMER_PERIOD	200 // ms
-
 #define RTOS_BOOT_SUCC_REG		AO_DEBUG_REG2
 
-/* Binary Semaphore */
-QueueHandle_t xGPIOSemaphore[INT_TEST_NEST_DEPTH];
-QueueHandle_t xMessageQueue[TASK_TEST_QUEUE_NUM];
-
-void config_eclic_irqs(void)
-{
-	eclic_init(ECLIC_NUM_INTERRUPTS);
-	eclic_set_nlbits(0);
-}
-
 void hw_business_process(void)
 {
-	uint8_t i = 0;
-
-	// Initialize GPIOs, PIC and timer
-	//vGPIOInit();
-	config_eclic_irqs();
-	for (i = 0; i < 8; ++i)
-		printf("AOCPU_IRQ_SEL=0x%x\n", REG32(AOCPU_IRQ_SEL0 + i * 4));
-
-	// Delay
-	for (uint32_t i = 0; i < 0xffff; ++i)
-		;
-
 	vMbInit();
 	vCoreFsmIdleInit();
 	vCecCallbackInit(CEC_CHIP_TXHD2);