aboutsummaryrefslogtreecommitdiff
path: root/kernel_stage2.ld
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2019-12-31 18:54:28 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2019-12-31 18:54:28 +0100
commit0ec2016f80ffb5971362559b98b10744bb5bf893 (patch)
tree839991c83c04ef157cdc4b3d747a79ca5975445b /kernel_stage2.ld
parent97612feede34cdd0099d72d0e6fa125dd65b5e9a (diff)
downloadrpi-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.ld22
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 = .;
}
}