Subversion Repositories HelenOS

Rev

Rev 271 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 271 Rev 279
Line 50... Line 50...
50
	movw %ax, %ss							# initialize stack segment register
50
	movw %ax, %ss							# initialize stack segment register
51
	movl $BOOTSTRAP_OFFSET - 0x400, %esp	# initialize stack pointer
51
	movl $BOOTSTRAP_OFFSET - 0x400, %esp	# initialize stack pointer
52
	
52
	
53
	call memmap_arch_init
53
	call memmap_arch_init
54
	
54
	
55
	lgdt bsp_bootstrap_gdtr					# initialize Global Descriptor Table register
55
	lgdt real_bootstrap_gdtr				# initialize Global Descriptor Table register
56
	
56
	
57
	movl %cr0, %eax
57
	movl %cr0, %eax
58
	orl $0x1, %eax
58
	orl $0x1, %eax
59
	movl %eax, %cr0							# switch to protected mode
59
	movl %eax, %cr0							# switch to protected mode
60
	
60
	
Line 91... Line 91...
91
	movl $BOOTSTRAP_OFFSET + BOOT_OFFSET, %edi
91
	movl $BOOTSTRAP_OFFSET + BOOT_OFFSET, %edi
92
	movl $_hardcoded_kernel_size, %ecx
92
	movl $_hardcoded_kernel_size, %ecx
93
	cld
93
	cld
94
	rep movsb
94
	rep movsb
95
	
95
	
96
	jmp protected
96
	call main_bsp			# never returns
-
 
97
 
-
 
98
	cli
-
 
99
	hlt
97
	
100
	
98
multiboot_image_start:
101
multiboot_image_start:
99
	movl BOOTSTRAP_OFFSET - 0x400, %esp		# initialize stack pointer
102
	movl $BOOTSTRAP_OFFSET - 0x400, %esp			# initialize stack pointer
100
	
103
	
101
	lgdt gdtr								# initialize Global Descriptor Table register
104
	lgdt protected_bootstrap_gdtr - 0x80000000		# initialize Global Descriptor Table register
102
 
105
 
103
	movw $KDATA, %ax
106
	movw $KDATA, %ax
104
	movw %ax, %es
107
	movw %ax, %es
105
	movw %ax, %gs
108
	movw %ax, %gs
106
	movw %ax, %fs
109
	movw %ax, %fs
107
	movw %ax, %ds							# kernel data + stack
110
	movw %ax, %ds									# kernel data + stack
108
	movw %ax, %ss
111
	movw %ax, %ss
109
	
112
	
110
	jmpl $KTEXT, $multiboot_meeting_point
113
	jmpl $KTEXT, $multiboot_meeting_point + BOOT_OFFSET
111
	multiboot_meeting_point:
114
	multiboot_meeting_point:
112
	
115
	
113
	call map_kernel							# map kernel and turn paging on
116
	call map_kernel									# map kernel and turn paging on
114
	
117
	
115
protected:
-
 
116
	call main_bsp		# never returns
118
	call main_bsp - BOOT_OFFSET						# never returns
117
 
119
 
118
	cli
120
	cli
119
	hlt
121
	hlt
120
 
122
 
121
.global map_kernel
123
.global map_kernel