Rev 216 | Rev 232 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 216 | Rev 222 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | # |
27 | # |
28 | 28 | ||
- | 29 | #include <arch/boot/boot.h> |
|
- | 30 | ||
29 | .section K_TEXT_START |
31 | .section K_TEXT_START |
30 | .global kernel_image_start |
32 | .global kernel_image_start |
31 | 33 | ||
32 | .code16 |
34 | .code16 |
33 | # |
35 | # |
Line 52... | Line 54... | ||
52 | 54 | ||
53 | movl %cr0,%eax |
55 | movl %cr0,%eax |
54 | orl $0x1,%eax |
56 | orl $0x1,%eax |
55 | movl %eax,%cr0 # switch to protected mode |
57 | movl %eax,%cr0 # switch to protected mode |
56 | jmpl $8,$meeting_point |
58 | jmpl $8,$meeting_point |
57 | meeting_point: |
59 | |
58 | .code32 |
60 | .code32 |
- | 61 | .align 4 |
|
- | 62 | multiboot_header: |
|
- | 63 | .long MULTIBOOT_HEADER_MAGIC |
|
- | 64 | .long MULTIBOOT_HEADER_FLAGS |
|
- | 65 | .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) # checksum |
|
- | 66 | .long multiboot_header |
|
- | 67 | .long unmapped_ktext_start |
|
- | 68 | .long 0 |
|
- | 69 | .long 0 |
|
- | 70 | .long multiboot_image_start |
|
- | 71 | ||
- | 72 | multiboot_image_start: |
|
- | 73 | movl $0x7c00, %esp # initialize stack pointer |
|
- | 74 | ||
- | 75 | lgdt gdtr |
|
- | 76 | lidt idtr |
|
59 | 77 | ||
- | 78 | meeting_point: |
|
60 | movw $16,%ax |
79 | movw $16,%ax |
61 | movw %ax,%es |
80 | movw %ax,%es |
62 | movw %ax,%gs |
81 | movw %ax,%gs |
63 | movw %ax,%fs |
82 | movw %ax,%fs |
64 | movw %ax,%ds # kernel data + stack |
83 | movw %ax,%ds # kernel data + stack |