Lines Matching +full:2 +full:a
9 Generally Linux x86 uses its own very complex booting method. There is a setup
10 binary which contains all sorts of parameters and a compressed self-extracting
11 binary for the kernel itself, often with a small built-in serial driver to
15 understanding is that an x86 CPU (even a really new one) starts up in a 16-bit
22 mode was something of a challenge, so putting this logic in the kernel seemed
35 - Locating and tacking on a device tree and ramdisk
38 doesn't make a huge amount of sense. Any boot loader worth its salts already
40 the layout of memory, has a serial driver, can decompress things, includes an
42 all these features in a Linux wrapper caters for the lowest common
43 denominator: a boot loader which consists of a BIOS call to load something off
44 disk, followed by a jmp instruction.
48 or in the boot loader rather than adding a self-relocator to put it in the
51 As a result, the x86 kernel boot process is needlessly complex. The file
52 format is also complex, and obfuscates the contents to a degree that it is
53 quite a challenge to extract anything from it. This bzImage format has become
66 Note: these instructions assume a 32-bit kernel. U-Boot also supports directly
67 booting a 64-bit kernel by jumping into 64-bit mode first (see below).
69 You can build the kernel as normal with 'make'. This will create a file called
70 'vmlinux'. This is a standard ELF file and you can look at it if you like:
78 0 .text 00416850 81000000 01000000 00001000 2**5
80 1 .notes 00000024 81416850 01416850 00417850 2**2
82 2 __ex_table 00000c50 81416880 01416880 00417880 2**3
84 3 .rodata 00154b9e 81418000 01418000 00419000 2**5
86 4 __bug_table 0000597c 8156cba0 0156cba0 0056dba0 2**0
88 5 .pci_fixup 00001b80 8157251c 0157251c 0057351c 2**2
90 6 .tracedata 00000024 8157409c 0157409c 0057509c 2**0
92 7 __ksymtab 00007ec0 815740c0 015740c0 005750c0 2**2
94 8 __ksymtab_gpl 00004a28 8157bf80 0157bf80 0057cf80 2**2
96 9 __ksymtab_strings 0001d6fc 815809a8 015809a8 005819a8 2**0
98 10 __init_rodata 00001c3c 8159e0a4 0159e0a4 0059f0a4 2**2
100 11 __param 00000ff0 8159fce0 0159fce0 005a0ce0 2**2
102 12 __modver 00000330 815a0cd0 015a0cd0 005a1cd0 2**2
104 13 .data 00063000 815a1000 015a1000 005a2000 2**12
106 14 .init.text 0002f104 81604000 01604000 00605000 2**2
108 15 .init.data 00040cdc 81634000 01634000 00635000 2**12
110 16 .x86_cpu_dev.init 0000001c 81674cdc 01674cdc 00675cdc 2**2
112 17 .altinstructions 0000267c 81674cf8 01674cf8 00675cf8 2**0
114 18 .altinstr_replacement 00000942 81677374 01677374 00678374 2**0
116 19 .iommu_table 00000014 81677cb8 01677cb8 00678cb8 2**2
118 20 .apicdrivers 00000004 81677cd0 01677cd0 00678cd0 2**2
120 21 .exit.text 00001a80 81677cd8 01677cd8 00678cd8 2**0
122 22 .data..percpu 00007880 8167a000 0167a000 0067b000 2**12
124 23 .smp_locks 00003000 81682000 01682000 00683000 2**2
126 24 .bss 000a1000 81685000 01685000 00686000 2**12
128 25 .brk 00424000 81726000 01726000 00686000 2**0
130 26 .comment 00000049 00000000 00000000 00686000 2**0
132 27 .GCC.command.line 0003e055 00000000 00000000 00686049 2**0
134 28 .debug_aranges 0000f4c8 00000000 00000000 006c40a0 2**3
136 29 .debug_info 0440b0df 00000000 00000000 006d3568 2**0
138 30 .debug_abbrev 0022a83b 00000000 00000000 04ade647 2**0
140 31 .debug_line 004ead0d 00000000 00000000 04d08e82 2**0
142 32 .debug_frame 0010a960 00000000 00000000 051f3b90 2**2
144 33 .debug_str 001b442d 00000000 00000000 052fe4f0 2**0
146 34 .debug_loc 007c7fa9 00000000 00000000 054b291d 2**0
148 35 .debug_ranges 00098828 00000000 00000000 05c7a8c8 2**3
155 helps by providing a head start.
161 use of a relocatable kernel.
166 Create a FIT
169 To create a FIT you will need a source file describing what should go in the
171 the 'arch' value for booting 64-bit kernels if desired. Put this into a file
174 Note that setup is loaded to the special address of 0x90000 (a special address
176 saw above). This means that you will need to load your FIT to a different
180 In that example the kernel is compressed with lzo. Also we need to provide a
183 # Create a flat binary
189 # Build a FIT image
195 You can take a look at the resulting fit file if you like:
229 To make it boot you need to load it and then use 'bootm' to boot it. A
230 suitable script to do this from a network server is:
239 If you want a ramdisk you can add it as normal with FIT. If you want a device
247 2. It allows use of the standard U-Boot boot file format
254 6. It makes x86 more like other architectures in the way it boots a kernel.