Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 626afa35 authored by Michal Simek's avatar Michal Simek
Browse files

microblaze: Fix microblaze init vectors



Microblaze vector table stores several vectors (reset, user exception,
interrupt, debug exception and hardware exception).
All these functions can be below address 0x10000. If they are, wrong
vector table is genarated because jump is not setup from two instructions
(imm upper 16bit and brai lower 16bit).
Adding specific offset prevent problem if address is below 0x10000.
For this case only brai instruction is used.

Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent caa66ce9
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -998,10 +998,13 @@ ENTRY(_reset)
	/* in current MMU branch you don't care what is here - it is
	 * used from bootloader site - but this is correct for FS-BOOT */
	brai	0x70
	nop
	.org	0x8
	brai	TOPHYS(_user_exception); /* syscall handler */
	.org	0x10
	brai	TOPHYS(_interrupt);	/* Interrupt handler */
	.org	0x18
	brai	TOPHYS(_debug_exception);	/* debug trap handler */
	.org	0x20
	brai	TOPHYS(_hw_exception_handler);	/* HW exception handler */

.section .rodata,"a"