summaryrefslogtreecommitdiff
path: root/entry.S
diff options
context:
space:
mode:
authorAustin Clements <[email protected]>2011-09-04 15:51:46 -0400
committerAustin Clements <[email protected]>2011-09-04 15:51:46 -0400
commit2fc6c35b2fd64a15d7c4cc54c9e8733c3632039d (patch)
tree0e208790a58190b2f8daa57b365e3e72f20e84df /entry.S
parent68b58727166bbb339f4790ec779a5a16772557f6 (diff)
downloadxv6-labs-2fc6c35b2fd64a15d7c4cc54c9e8733c3632039d.tar.gz
xv6-labs-2fc6c35b2fd64a15d7c4cc54c9e8733c3632039d.tar.bz2
xv6-labs-2fc6c35b2fd64a15d7c4cc54c9e8733c3632039d.zip
Make the ELF entry point a physical address
This way, the bootloader doesn't have to translate the entry point. This also makes xv6 multiboot-compliant and follows the convention used by Linux.
Diffstat (limited to 'entry.S')
-rw-r--r--entry.S13
1 files changed, 7 insertions, 6 deletions
diff --git a/entry.S b/entry.S
index 3fe4eb5..18947b0 100644
--- a/entry.S
+++ b/entry.S
@@ -25,15 +25,16 @@
.globl multiboot_header
multiboot_header:
#define magic 0x1badb002
- #define flags (1<<16 | 1<<0)
+ #define flags 0
.long magic
.long flags
.long (-magic-flags)
- .long multiboot_header # beginning of image
- .long multiboot_header
- .long edata
- .long end
- .long entry
+
+# By convention, the _start symbol specifies the ELF entry point.
+# Since we haven't set up virtual memory yet, our entry point is
+# the physical address of 'entry'.
+.globl _start
+_start = V2P_WO(entry)
# Entering xv6 on boot processor. Machine is mostly set up.
.globl entry