summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2012-11-07 15:27:39 +0100
committerMichal Simek <michal.simek@xilinx.com>2013-04-30 11:22:42 +0200
commit8848668e136cccb30229b5e1484d41e0b5a6830a (patch)
tree59fb7c917ad174b811f3bf3518d504e94e92db02
parent783764521e29955643bbe30d64d17110ed57a888 (diff)
downloadu-boot-imx-8848668e136cccb30229b5e1484d41e0b5a6830a.zip
u-boot-imx-8848668e136cccb30229b5e1484d41e0b5a6830a.tar.gz
u-boot-imx-8848668e136cccb30229b5e1484d41e0b5a6830a.tar.bz2
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 <john.williams@xilinx.com> Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-rw-r--r--board/xilinx/microblaze-generic/microblaze-generic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index 8ba99f9..1af0b86 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;
}