aboutsummaryrefslogtreecommitdiff
path: root/kernel/linker.ld
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2014-12-01 17:24:38 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2014-12-01 17:24:38 +0100
commit0921a33fc9f3724cb36a03a24b58b0a5bfc519b1 (patch)
tree6f3db52ba8c38928749806cb2d94ca548b3b19bd /kernel/linker.ld
parent6f11c9e5c15cc8ef936741e5ee7575b731a47e0f (diff)
downloadkogata-0921a33fc9f3724cb36a03a24b58b0a5bfc519b1.tar.gz
kogata-0921a33fc9f3724cb36a03a24b58b0a5bfc519b1.zip
Advance HH, GDT, IDT (details below)
- Implement higher-half in loader with paging (using 4Mb pages) - Add GDT installation code - Add IDT installation code (spend a loong time debugging the ISRs!) - Add CDROM generation scripts - Add scripts to launch bochs (debug) and qemu (debug)
Diffstat (limited to 'kernel/linker.ld')
-rw-r--r--kernel/linker.ld34
1 files changed, 18 insertions, 16 deletions
diff --git a/kernel/linker.ld b/kernel/linker.ld
index 00f4dff..8ea7854 100644
--- a/kernel/linker.ld
+++ b/kernel/linker.ld
@@ -3,7 +3,7 @@ ENTRY (loader)
SECTIONS{
k_highhalf_addr = 0xC0000000;
- . = 0x00100000;
+ . = 0x00100000;
.setup : {
*(.setup)
@@ -11,30 +11,32 @@ SECTIONS{
. += k_highhalf_addr;
- .text : AT(ADDR(.text) - k_highhalf_addr) {
- *(.text)
- }
+ .text : AT(ADDR(.text) - k_highhalf_addr) {
+ *(.text)
+ }
- .rodata ALIGN (0x1000) : AT(ADDR(.rodata) - k_highhalf_addr) {
- *(.rodata)
- }
+ .rodata ALIGN (0x1000) : AT(ADDR(.rodata) - k_highhalf_addr) {
+ *(.rodata)
+ }
- .data ALIGN (0x1000) : AT(ADDR(.data) - k_highhalf_addr) {
+ .data ALIGN (0x1000) : AT(ADDR(.data) - k_highhalf_addr) {
start_ctors = .;
*(.ctor*)
end_ctors = .;
start_dtors = .;
*(.dtor*)
end_dtors = .;
- *(.data)
- }
+ *(.data)
+ }
- .bss : AT(ADDR(.bss) - k_highhalf_addr) {
- sbss = .;
- *(COMMON)
- *(.bss)
- ebss = .;
- }
+ .bss : AT(ADDR(.bss) - k_highhalf_addr) {
+ sbss = .;
+ *(COMMON)
+ *(.bss)
+ ebss = .;
+ }
end = .; _end = .; __end = .;
}
+
+/* vim: set ts=4 sw=4 tw=0 noet :*/