diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index 8ba99f9c50a93df6b3674198eb24514a746737af..1af0b86c75f44e13572a86e0dde7dea3825394a5 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;
 }