Hi,
The following is extracted from Documentation/x86/boot.txt,
which show's memory map when booting a kernel.
117 ~ ~ 118 | Protected-mode kernel |
119 100000 +------------------------+ 120 | I/O memory hole |
121 0A0000 +------------------------+ 122 | Reserved for BIOS |
Leave as much as possible unused 123 ~ ~ 124
| Command line | (Can also be below the X+10000 mark) 125
X+10000 +------------------------+ 126 | Stack/heap |
For use by the kernel real-mode code. 127 X+08000 +------------------------+
128 | Kernel setup | The kernel real-mode code. 129
| Kernel boot sector | The kernel legacy boot sector. 130 X
+------------------------+ 131 | Boot loader | <- Boot
sector entry point 0000:7C00 132 001000 +------------------------+ 133
| Reserved for MBR/BIOS | 134 000800 +------------------------+ 135 |
Typically used by MBR | 136 000600 +------------------------+ 137 |
BIOS use only | 138 000000 +------------------------+where the address
X is as low as the design of the boot loader 141 permits.
The address X is not determined by kernel, so the kernel real-mode code's VMA
may not equal to LMA, how kernel solved it??
One more question, in ld script, does the location counter ".", represent VMA??
Thanks._______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies