Skip to content

Commit

Permalink
microblaze: Fix microblaze init vectors
Browse files Browse the repository at this point in the history
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: Michal Simek <[email protected]>
  • Loading branch information
michalsimek committed Mar 15, 2011
1 parent caa66ce commit 626afa3
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion arch/microblaze/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 626afa3

Please sign in to comment.