Mercurial > hg > Members > taiki > original_os
annotate withGRUB2Kernel/bootstrap.S @ 19:f8ef856d6691
two new test directory
author | Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Oct 2012 17:35:53 +0900 |
parents | acdc2c21996a |
children |
rev | line source |
---|---|
14
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 * This program is boot to kernel. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 * Change mode to 64bit mode and go to CbC kernel. */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 .file "bootstrap.S" |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 #include "multiboot2.h" |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 #include "boot_header.h" |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 .code32 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 .text |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 /* Align 64 bit boundly. */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 .align 8 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 multiboot_header: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 .long MULTIBOOT2_HEADER_MAGIC |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 .long MULTIBOOT_ARCHITECTURE_I386 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 .long multiboot_header_end - multiboot_header |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 .long -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT_ARCHITECTURE_I386 + (multiboot_header_end - multiboot_header)) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 .short MULTIBOOT_HEADER_TAG_END |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 .short 0 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 .long 8 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 multiboot_header_end: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 * Prepare for entering 64bit-mode. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 .globl _start |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 _start: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 jmp move_longmode |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 move_longmode: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 /* load new GDT */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 leal gdt(%ebp), %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 movl %eax, gdt+2(%ebp) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 lgdt gdt(%ebp) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 * PAE mode ON. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 * Physical Address Extension |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 * You can use capacity of memory more than 4GiB on 32 bit CPU. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 movl $0x00000020, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 movl %eax, %cr4 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 * create 64bit page table |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 * Initialize page tables to 0 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 * 6144 = 512*8*6/4 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 movl $0x01fe9000, %ebx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 leal pgtable(%ebx), %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 xorl %eax, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 movl $6144, %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 rep stosl |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 /* Build Level 4 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 leal pgtable + 0(%ebx), %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 leal 0x1007(%edi), %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 movl %eax, 0(%edi) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 /* Build Level 3 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 leal pgtable + 0x1000(%ebx), %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 leal 0x1007(%edi), %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 movl $4, %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 1: movl %eax, 0x00(%edi) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 addl $0x00001000, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 addl $8, %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 decl %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 jnz 1b |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 /* Build level 2 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 leal pgtable + 0x2000(%ebx), %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 movl $0x00000183, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 movl $2048, %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 1: movl %eax, 0(%edi) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 addl $0x00200000, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 addl $8, %edi |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 decl %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 jnz 1b |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 /* Enable the boot page talbes */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 leal pgtable(%ebx), %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 movl %eax, %cr3 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 /* Enable Long mode */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 movl $MSR_EFER, %ecx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 rdmsr |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 btsl $EFER_LME, %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 wrmsr |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 pushl $(12*8) |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 leal start_kernel(%ebp), %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 pushl %eax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 /* activating Long Mode */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 movl %eax, %cr0 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 jmp start_kernel |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 * jump to kernel. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 * push ebx and eax send argument to kernel. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 .code64 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 .text |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 start_kernel: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 pushq %rbx |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 pushq %rax |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 call kmain |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 .data |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 gdt: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 .word gdt_end - gdt |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 .long gdt |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 .word 0 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 .quad 0x0000000000000000 /* NULL descriptor */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 .quad 0x00af9a000000ffff /* __KERNEL_CS */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 .quad 0x00cf92000000ffff /* __KERNEL_DS */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130 .quad 0x0080890000000000 /* TS descriptor */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 .quad 0x0000000000000000 /* TS continued */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 gdt_end: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135 /* |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 * Space for page tables. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137 * a : section is allocatable. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138 * @nobits : section does not contain data. |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 */ |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140 .section ".pgtable", "a", @nobits |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
141 .balign 4096 |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
142 pgtable: |
acdc2c21996a
chage directory structure
Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143 .fill 6*4096, 1, 0 |