bsp:ls2k: add reboot and shutdown support

This commit is contained in:
michael 2020-09-15 11:20:15 +08:00
parent a8928c881e
commit b86d608d63
2 changed files with 29 additions and 0 deletions

View File

@ -22,6 +22,9 @@
*/ */
void rt_hw_cpu_reset(void) void rt_hw_cpu_reset(void)
{ {
WDT_EN = 0x01;
WDT_TIMER = 0x01;
WDT_SET = 0x01;
rt_kprintf("reboot system...\n"); rt_kprintf("reboot system...\n");
while (1); while (1);
} }
@ -32,6 +35,8 @@ void rt_hw_cpu_reset(void)
*/ */
void rt_hw_cpu_shutdown(void) void rt_hw_cpu_shutdown(void)
{ {
PM1_STS &= 0xffffffff;
PM1_CNT = 0x3c00;
rt_kprintf("shutdown...\n"); rt_kprintf("shutdown...\n");
while (1); while (1);

View File

@ -12,6 +12,8 @@
#define BOARD_H__ #define BOARD_H__
#include <stdint.h> #include <stdint.h>
#include <rthw.h>
#include "ls2k1000.h"
extern unsigned char __bss_end; extern unsigned char __bss_end;
@ -19,6 +21,28 @@ extern unsigned char __bss_end;
#define RT_HW_HEAP_BEGIN (void*)&__bss_end #define RT_HW_HEAP_BEGIN (void*)&__bss_end
#define RT_HW_HEAP_END (void*)(RT_HW_HEAP_BEGIN + 64 * 1024 * 1024) #define RT_HW_HEAP_END (void*)(RT_HW_HEAP_BEGIN + 64 * 1024 * 1024)
/*
* General PM Configuration Register
*/
#define PMCON_BASE (APB_BASE | (0x7 << 12))
/*
* Power Management1 Configuration Registers
*/
#define PM1_BASE (PMCON_BASE + 0x0C)
#define PM1_STS HWREG32(PM1_BASE)
#define PM1_EN HWREG32(PM1_BASE + 0x04)
#define PM1_CNT HWREG32(PM1_BASE + 0x08)
/*
* Watch Dog Configuration Registers
*/
#define WDT_BASE (PMCON_BASE + 0x30)
#define WDT_EN HWREG32(WDT_BASE)
#define WDT_SET HWREG32(WDT_BASE + 0x04)
#define WDT_TIMER HWREG32(WDT_BASE + 0x08)
void rt_hw_board_init(void); void rt_hw_board_init(void);
#endif #endif