From b364727abb5aa32120f583a9611944c2444f6b41 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Fri, 2 Nov 2012 09:33:05 +0100 Subject: microblaze: Fix reset function Remove CONFIG_SYS_RESET_ADDRESS macro. It was there from historical point of view when soft reset was just jump to u-boot text start (not used right now). Signed-off-by: Michal Simek Signed-off-by: Michal Simek --- board/xilinx/microblaze-generic/microblaze-generic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'board') diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c index 70f94c1a59..8ba99f9c50 100644 --- a/board/xilinx/microblaze-generic/microblaze-generic.c +++ b/board/xilinx/microblaze-generic/microblaze-generic.c @@ -38,10 +38,10 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) *((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR)) = ++(*((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR))); #endif -#ifdef CONFIG_SYS_RESET_ADDRESS + puts ("Reseting board\n"); asm ("bra r0"); -#endif + return 0; } -- cgit v1.2.1 From 8848668e136cccb30229b5e1484d41e0b5a6830a Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 7 Nov 2012 15:27:39 +0100 Subject: microblaze: Disable all cpu features before reset Fix microblaze soft reset function and disable all cpu features. Especially disable caches because IRQs were off by disable_interrupts(). Reported-by: John Williams Signed-off-by: Michal Simek Signed-off-by: Michal Simek --- board/xilinx/microblaze-generic/microblaze-generic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'board') diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c index 8ba99f9c50..1af0b86c75 100644 --- a/board/xilinx/microblaze-generic/microblaze-generic.c +++ b/board/xilinx/microblaze-generic/microblaze-generic.c @@ -40,7 +40,8 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #endif puts ("Reseting board\n"); - asm ("bra r0"); + __asm__ __volatile__ (" mts rmsr, r0;" \ + "bra r0"); return 0; } -- cgit v1.2.1 From 0f21f98dd4d6bff72df4eeaca4163779896cb336 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 22 Apr 2013 11:23:16 +0200 Subject: watchdog: Add support for Xilinx Microblaze watchdog Watchdog can be used on Microblaze, PPC and Zynq hw designs. Signed-off-by: Michal Simek Reviewed-by: Tom Rini --- board/xilinx/microblaze-generic/microblaze-generic.c | 4 ++++ board/xilinx/microblaze-generic/xparameters.h | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'board') diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c index 1af0b86c75..befbb3a3e5 100644 --- a/board/xilinx/microblaze-generic/microblaze-generic.c +++ b/board/xilinx/microblaze-generic/microblaze-generic.c @@ -39,6 +39,10 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) ++(*((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR))); #endif +#ifdef CONFIG_XILINX_TB_WATCHDOG + hw_watchdog_disable(); +#endif + puts ("Reseting board\n"); __asm__ __volatile__ (" mts rmsr, r0;" \ "bra r0"); diff --git a/board/xilinx/microblaze-generic/xparameters.h b/board/xilinx/microblaze-generic/xparameters.h index 50a82d94a0..c846f97f5b 100644 --- a/board/xilinx/microblaze-generic/xparameters.h +++ b/board/xilinx/microblaze-generic/xparameters.h @@ -77,3 +77,7 @@ #define XILINX_LLTEMAC_SDMA_CTRL_BASEADDR 0x42000180 #define XILINX_LLTEMAC_BASEADDR1 0x44200000 #define XILINX_LLTEMAC_FIFO_BASEADDR1 0x42100000 + +/* Watchdog IP is wxi_timebase_wdt_0 */ +#define XILINX_WATCHDOG_BASEADDR 0x50000000 +#define XILINX_WATCHDOG_IRQ 1 -- cgit v1.2.1