diff options
author | Wojtek Kosior <kwojtus@protonmail.com> | 2019-12-31 18:54:28 +0100 |
---|---|---|
committer | Wojtek Kosior <kwojtus@protonmail.com> | 2019-12-31 18:54:28 +0100 |
commit | 0ec2016f80ffb5971362559b98b10744bb5bf893 (patch) | |
tree | 839991c83c04ef157cdc4b3d747a79ca5975445b /kernel_stage2.ld | |
parent | 97612feede34cdd0099d72d0e6fa125dd65b5e9a (diff) | |
download | rpi-MMU-example-0ec2016f80ffb5971362559b98b10744bb5bf893.tar.gz rpi-MMU-example-0ec2016f80ffb5971362559b98b10744bb5bf893.zip |
split stack into irq, fiq and supervisor stacks; add proper handling of those in interrupt handlers (asm code)
Diffstat (limited to 'kernel_stage2.ld')
-rw-r--r-- | kernel_stage2.ld | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/kernel_stage2.ld b/kernel_stage2.ld index a3df063..15b61ec 100644 --- a/kernel_stage2.ld +++ b/kernel_stage2.ld @@ -56,8 +56,24 @@ SECTIONS { _stack_start = .; - . = . + MMU_SECTION_SIZE; - - _stack_top = .; + _fiq_stack_start = .; + + . = . + (1 << 18); + + _fiq_stack_top = .; + + _irq_stack_start = .; + + . = . + (1 << 18); + + _irq_stack_top = .; + + _supervisor_stack_start = .; + + . = . + (1 << 19); + + _supervisor_stack_top = .; + + _stack_end = .; } } |