blob: 357946d630504135ff773da0fb0dc78ef00b1bec [file] [log] [blame]
Simon Glass7a61c6b2018-07-17 13:25:37 -06001Binman Entry Documentation
2===========================
3
4This file describes the entry types supported by binman. These entry types can
5be placed in an image one by one to build up a final firmware image. It is
6fairly easy to create new entry types. Just add a new file to the 'etype'
7directory. You can use the existing entries as examples.
8
9Note that some entries are subclasses of others, using and extending their
10features to produce new behaviours.
11
12
13
14Entry: blob: Entry containing an arbitrary binary blob
15------------------------------------------------------
16
17Note: This should not be used by itself. It is normally used as a parent
18class by other entry types.
19
20Properties / Entry arguments:
21 - filename: Filename of file to read into entry
Simon Glass7ba33592018-09-14 04:57:26 -060022 - compress: Compression algorithm to use:
23 none: No compression
24 lz4: Use lz4 compression (via 'lz4' command-line utility)
Simon Glass7a61c6b2018-07-17 13:25:37 -060025
26This entry reads data from a file and places it in the entry. The
27default filename is often specified specified by the subclass. See for
28example the 'u_boot' entry which provides the filename 'u-boot.bin'.
29
Simon Glass7ba33592018-09-14 04:57:26 -060030If compression is enabled, an extra 'uncomp-size' property is written to
31the node (if enabled with -u) which provides the uncompressed size of the
32data.
Simon Glass7a61c6b2018-07-17 13:25:37 -060033
34
Simon Glass7a61c6b2018-07-17 13:25:37 -060035
Simon Glasse219aa42018-09-14 04:57:24 -060036Entry: blob-dtb: A blob that holds a device tree
37------------------------------------------------
38
39This is a blob containing a device tree. The contents of the blob are
40obtained from the list of available device-tree files, managed by the
41'state' module.
42
43
44
Simon Glassdb168d42018-07-17 13:25:39 -060045Entry: blob-named-by-arg: A blob entry which gets its filename property from its subclass
46-----------------------------------------------------------------------------------------
47
48Properties / Entry arguments:
49 - <xxx>-path: Filename containing the contents of this entry (optional,
50 defaults to 0)
51
52where <xxx> is the blob_fname argument to the constructor.
53
54This entry cannot be used directly. Instead, it is used as a parent class
55for another entry, which defined blob_fname. This parameter is used to
56set the entry-arg or property containing the filename. The entry-arg or
57property is in turn used to set the actual filename.
58
59See cros_ec_rw for an example of this.
60
61
62
63Entry: cros-ec-rw: A blob entry which contains a Chromium OS read-write EC image
64--------------------------------------------------------------------------------
65
66Properties / Entry arguments:
67 - cros-ec-rw-path: Filename containing the EC image
68
69This entry holds a Chromium OS EC (embedded controller) image, for use in
70updating the EC on startup via software sync.
71
72
73
Simon Glassac6328c2018-09-14 04:57:28 -060074Entry: files: Entry containing a set of files
75---------------------------------------------
76
77Properties / Entry arguments:
78 - pattern: Filename pattern to match the files to include
79 - compress: Compression algorithm to use:
80 none: No compression
81 lz4: Use lz4 compression (via 'lz4' command-line utility)
82
83This entry reads a number of files and places each in a separate sub-entry
84within this entry. To access these you need to enable device-tree updates
85at run-time so you can obtain the file positions.
Simon Glass7a61c6b2018-07-17 13:25:37 -060086
87
Simon Glassac6328c2018-09-14 04:57:28 -060088
Simon Glass53f53992018-07-17 13:25:40 -060089Entry: fill: An entry which is filled to a particular byte value
90----------------------------------------------------------------
91
92Properties / Entry arguments:
93 - fill-byte: Byte to use to fill the entry
94
95Note that the size property must be set since otherwise this entry does not
96know how large it should be.
97
98You can often achieve the same effect using the pad-byte property of the
99overall image, in that the space between entries will then be padded with
100that byte. But this entry is sometimes useful for explicitly setting the
101byte value of a region.
102
103
104
Simon Glass7a61c6b2018-07-17 13:25:37 -0600105Entry: fmap: An entry which contains an Fmap section
106----------------------------------------------------
107
108Properties / Entry arguments:
109 None
110
111FMAP is a simple format used by flashrom, an open-source utility for
112reading and writing the SPI flash, typically on x86 CPUs. The format
113provides flashrom with a list of areas, so it knows what it in the flash.
114It can then read or write just a single area, instead of the whole flash.
115
116The format is defined by the flashrom project, in the file lib/fmap.h -
117see www.flashrom.org/Flashrom for more information.
118
119When used, this entry will be populated with an FMAP which reflects the
120entries in the current image. Note that any hierarchy is squashed, since
121FMAP does not support this.
122
123
124
Simon Glassc1ae83c2018-07-17 13:25:44 -0600125Entry: gbb: An entry which contains a Chromium OS Google Binary Block
126---------------------------------------------------------------------
127
128Properties / Entry arguments:
129 - hardware-id: Hardware ID to use for this build (a string)
130 - keydir: Directory containing the public keys to use
131 - bmpblk: Filename containing images used by recovery
132
133Chromium OS uses a GBB to store various pieces of information, in particular
134the root and recovery keys that are used to verify the boot process. Some
135more details are here:
136
137 https://www.chromium.org/chromium-os/firmware-porting-guide/2-concepts
138
139but note that the page dates from 2013 so is quite out of date. See
140README.chromium for how to obtain the required keys and tools.
141
142
143
Simon Glass7a61c6b2018-07-17 13:25:37 -0600144Entry: intel-cmc: Entry containing an Intel Chipset Micro Code (CMC) file
145-------------------------------------------------------------------------
146
147Properties / Entry arguments:
148 - filename: Filename of file to read into entry
149
150This file contains microcode for some devices in a special format. An
151example filename is 'Microcode/C0_22211.BIN'.
152
153See README.x86 for information about x86 binary blobs.
154
155
156
157Entry: intel-descriptor: Intel flash descriptor block (4KB)
158-----------------------------------------------------------
159
160Properties / Entry arguments:
161 filename: Filename of file containing the descriptor. This is typically
162 a 4KB binary file, sometimes called 'descriptor.bin'
163
164This entry is placed at the start of flash and provides information about
165the SPI flash regions. In particular it provides the base address and
166size of the ME (Management Engine) region, allowing us to place the ME
167binary in the right place.
168
169With this entry in your image, the position of the 'intel-me' entry will be
170fixed in the image, which avoids you needed to specify an offset for that
171region. This is useful, because it is not possible to change the position
172of the ME region without updating the descriptor.
173
174See README.x86 for information about x86 binary blobs.
175
176
177
178Entry: intel-fsp: Entry containing an Intel Firmware Support Package (FSP) file
179-------------------------------------------------------------------------------
180
181Properties / Entry arguments:
182 - filename: Filename of file to read into entry
183
184This file contains binary blobs which are used on some devices to make the
185platform work. U-Boot executes this code since it is not possible to set up
186the hardware using U-Boot open-source code. Documentation is typically not
187available in sufficient detail to allow this.
188
189An example filename is 'FSP/QUEENSBAY_FSP_GOLD_001_20-DECEMBER-2013.fd'
190
191See README.x86 for information about x86 binary blobs.
192
193
194
195Entry: intel-me: Entry containing an Intel Management Engine (ME) file
196----------------------------------------------------------------------
197
198Properties / Entry arguments:
199 - filename: Filename of file to read into entry
200
201This file contains code used by the SoC that is required to make it work.
202The Management Engine is like a background task that runs things that are
203not clearly documented, but may include keyboard, deplay and network
204access. For platform that use ME it is not possible to disable it. U-Boot
205does not directly execute code in the ME binary.
206
207A typical filename is 'me.bin'.
208
209See README.x86 for information about x86 binary blobs.
210
211
212
213Entry: intel-mrc: Entry containing an Intel Memory Reference Code (MRC) file
214----------------------------------------------------------------------------
215
216Properties / Entry arguments:
217 - filename: Filename of file to read into entry
218
219This file contains code for setting up the SDRAM on some Intel systems. This
220is executed by U-Boot when needed early during startup. A typical filename
221is 'mrc.bin'.
222
223See README.x86 for information about x86 binary blobs.
224
225
226
Simon Glass17b84eb2019-05-17 22:00:53 -0600227Entry: intel-refcode: Entry containing an Intel Reference Code file
228-------------------------------------------------------------------
229
230Properties / Entry arguments:
231 - filename: Filename of file to read into entry
232
233This file contains code for setting up the platform on some Intel systems.
234This is executed by U-Boot when needed early during startup. A typical
235filename is 'refcode.bin'.
236
237See README.x86 for information about x86 binary blobs.
238
239
240
Simon Glass7a61c6b2018-07-17 13:25:37 -0600241Entry: intel-vbt: Entry containing an Intel Video BIOS Table (VBT) file
242-----------------------------------------------------------------------
243
244Properties / Entry arguments:
245 - filename: Filename of file to read into entry
246
247This file contains code that sets up the integrated graphics subsystem on
248some Intel SoCs. U-Boot executes this when the display is started up.
249
250See README.x86 for information about Intel binary blobs.
251
252
253
254Entry: intel-vga: Entry containing an Intel Video Graphics Adaptor (VGA) file
255-----------------------------------------------------------------------------
256
257Properties / Entry arguments:
258 - filename: Filename of file to read into entry
259
260This file contains code that sets up the integrated graphics subsystem on
261some Intel SoCs. U-Boot executes this when the display is started up.
262
263This is similar to the VBT file but in a different format.
264
265See README.x86 for information about Intel binary blobs.
266
267
268
Jagdish Gediya311d4842018-09-03 21:35:08 +0530269Entry: powerpc-mpc85xx-bootpg-resetvec: PowerPC mpc85xx bootpg + resetvec code for U-Boot
270-----------------------------------------------------------------------------------------
271
272Properties / Entry arguments:
273 - filename: Filename of u-boot-br.bin (default 'u-boot-br.bin')
274
275This enrty is valid for PowerPC mpc85xx cpus. This entry holds
276'bootpg + resetvec' code for PowerPC mpc85xx CPUs which needs to be
277placed at offset 'RESET_VECTOR_ADDRESS - 0xffc'.
278
279
280
Simon Glass7a61c6b2018-07-17 13:25:37 -0600281Entry: section: Entry that contains other entries
282-------------------------------------------------
283
284Properties / Entry arguments: (see binman README for more information)
285 - size: Size of section in bytes
286 - align-size: Align size to a particular power of two
287 - pad-before: Add padding before the entry
288 - pad-after: Add padding after the entry
289 - pad-byte: Pad byte to use when padding
290 - sort-by-offset: Reorder the entries by offset
291 - end-at-4gb: Used to build an x86 ROM which ends at 4GB (2^32)
292 - name-prefix: Adds a prefix to the name of every entry in the section
293 when writing out the map
294
295A section is an entry which can contain other entries, thus allowing
296hierarchical images to be created. See 'Sections and hierarchical images'
297in the binman README for more information.
298
299
300
301Entry: text: An entry which contains text
302-----------------------------------------
303
304The text can be provided either in the node itself or by a command-line
305argument. There is a level of indirection to allow multiple text strings
306and sharing of text.
307
308Properties / Entry arguments:
309 text-label: The value of this string indicates the property / entry-arg
310 that contains the string to place in the entry
311 <xxx> (actual name is the value of text-label): contains the string to
312 place in the entry.
313
314Example node:
315
316 text {
317 size = <50>;
318 text-label = "message";
319 };
320
321You can then use:
322
323 binman -amessage="this is my message"
324
325and binman will insert that string into the entry.
326
327It is also possible to put the string directly in the node:
328
329 text {
330 size = <8>;
331 text-label = "message";
332 message = "a message directly in the node"
333 };
334
335The text is not itself nul-terminated. This can be achieved, if required,
336by setting the size of the entry to something larger than the text.
337
338
339
340Entry: u-boot: U-Boot flat binary
341---------------------------------
342
343Properties / Entry arguments:
344 - filename: Filename of u-boot.bin (default 'u-boot.bin')
345
346This is the U-Boot binary, containing relocation information to allow it
347to relocate itself at runtime. The binary typically includes a device tree
348blob at the end of it. Use u_boot_nodtb if you want to package the device
349tree separately.
350
351U-Boot can access binman symbols at runtime. See:
352
353 'Access to binman entry offsets at run time (fdt)'
354
355in the binman README for more information.
356
357
358
359Entry: u-boot-dtb: U-Boot device tree
360-------------------------------------
361
362Properties / Entry arguments:
363 - filename: Filename of u-boot.dtb (default 'u-boot.dtb')
364
365This is the U-Boot device tree, containing configuration information for
366U-Boot. U-Boot needs this to know what devices are present and which drivers
367to activate.
368
Simon Glasse219aa42018-09-14 04:57:24 -0600369Note: This is mostly an internal entry type, used by others. This allows
370binman to know which entries contain a device tree.
Simon Glass7a61c6b2018-07-17 13:25:37 -0600371
372
Simon Glass7a61c6b2018-07-17 13:25:37 -0600373
374Entry: u-boot-dtb-with-ucode: A U-Boot device tree file, with the microcode removed
375-----------------------------------------------------------------------------------
376
377Properties / Entry arguments:
378 - filename: Filename of u-boot.dtb (default 'u-boot.dtb')
379
380See Entry_u_boot_ucode for full details of the three entries involved in
381this process. This entry provides the U-Boot device-tree file, which
382contains the microcode. If the microcode is not being collated into one
383place then the offset and size of the microcode is recorded by this entry,
384for use by u_boot_with_ucode_ptr. If it is being collated, then this
385entry deletes the microcode from the device tree (to save space) and makes
386it available to u_boot_ucode.
387
388
389
Simon Glassb1714232018-09-14 04:57:35 -0600390Entry: u-boot-elf: U-Boot ELF image
391-----------------------------------
392
393Properties / Entry arguments:
394 - filename: Filename of u-boot (default 'u-boot')
395
396This is the U-Boot ELF image. It does not include a device tree but can be
397relocated to any address for execution.
398
399
400
Simon Glass7a61c6b2018-07-17 13:25:37 -0600401Entry: u-boot-img: U-Boot legacy image
402--------------------------------------
403
404Properties / Entry arguments:
405 - filename: Filename of u-boot.img (default 'u-boot.img')
406
407This is the U-Boot binary as a packaged image, in legacy format. It has a
408header which allows it to be loaded at the correct address for execution.
409
410You should use FIT (Flat Image Tree) instead of the legacy image for new
411applications.
412
413
414
415Entry: u-boot-nodtb: U-Boot flat binary without device tree appended
416--------------------------------------------------------------------
417
418Properties / Entry arguments:
419 - filename: Filename of u-boot.bin (default 'u-boot-nodtb.bin')
420
421This is the U-Boot binary, containing relocation information to allow it
422to relocate itself at runtime. It does not include a device tree blob at
423the end of it so normally cannot work without it. You can add a u_boot_dtb
424entry after this one, or use a u_boot entry instead (which contains both
425U-Boot and the device tree).
426
427
428
429Entry: u-boot-spl: U-Boot SPL binary
430------------------------------------
431
432Properties / Entry arguments:
433 - filename: Filename of u-boot-spl.bin (default 'spl/u-boot-spl.bin')
434
435This is the U-Boot SPL (Secondary Program Loader) binary. This is a small
436binary which loads before U-Boot proper, typically into on-chip SRAM. It is
437responsible for locating, loading and jumping to U-Boot. Note that SPL is
438not relocatable so must be loaded to the correct address in SRAM, or written
Simon Glass8425a1f2018-07-17 13:25:48 -0600439to run from the correct address if direct flash execution is possible (e.g.
Simon Glass7a61c6b2018-07-17 13:25:37 -0600440on x86 devices).
441
442SPL can access binman symbols at runtime. See:
443
444 'Access to binman entry offsets at run time (symbols)'
445
446in the binman README for more information.
447
448The ELF file 'spl/u-boot-spl' must also be available for this to work, since
449binman uses that to look up symbols to write into the SPL binary.
450
451
452
453Entry: u-boot-spl-bss-pad: U-Boot SPL binary padded with a BSS region
454---------------------------------------------------------------------
455
456Properties / Entry arguments:
457 None
458
459This is similar to u_boot_spl except that padding is added after the SPL
460binary to cover the BSS (Block Started by Symbol) region. This region holds
461the various used by SPL. It is set to 0 by SPL when it starts up. If you
462want to append data to the SPL image (such as a device tree file), you must
463pad out the BSS region to avoid the data overlapping with U-Boot variables.
464This entry is useful in that case. It automatically pads out the entry size
465to cover both the code, data and BSS.
466
467The ELF file 'spl/u-boot-spl' must also be available for this to work, since
468binman uses that to look up the BSS address.
469
470
471
472Entry: u-boot-spl-dtb: U-Boot SPL device tree
473---------------------------------------------
474
475Properties / Entry arguments:
476 - filename: Filename of u-boot.dtb (default 'spl/u-boot-spl.dtb')
477
478This is the SPL device tree, containing configuration information for
479SPL. SPL needs this to know what devices are present and which drivers
480to activate.
481
482
483
Simon Glassb1714232018-09-14 04:57:35 -0600484Entry: u-boot-spl-elf: U-Boot SPL ELF image
485-------------------------------------------
486
487Properties / Entry arguments:
488 - filename: Filename of SPL u-boot (default 'spl/u-boot')
489
490This is the U-Boot SPL ELF image. It does not include a device tree but can
491be relocated to any address for execution.
492
493
494
Simon Glass7a61c6b2018-07-17 13:25:37 -0600495Entry: u-boot-spl-nodtb: SPL binary without device tree appended
496----------------------------------------------------------------
497
498Properties / Entry arguments:
499 - filename: Filename of spl/u-boot-spl-nodtb.bin (default
500 'spl/u-boot-spl-nodtb.bin')
501
502This is the U-Boot SPL binary, It does not include a device tree blob at
503the end of it so may not be able to work without it, assuming SPL needs
504a device tree to operation on your platform. You can add a u_boot_spl_dtb
505entry after this one, or use a u_boot_spl entry instead (which contains
506both SPL and the device tree).
507
508
509
510Entry: u-boot-spl-with-ucode-ptr: U-Boot SPL with embedded microcode pointer
511----------------------------------------------------------------------------
512
Simon Glass3fb4f422018-09-14 04:57:32 -0600513This is used when SPL must set up the microcode for U-Boot.
514
Simon Glass7a61c6b2018-07-17 13:25:37 -0600515See Entry_u_boot_ucode for full details of the entries involved in this
516process.
517
518
519
Simon Glass8425a1f2018-07-17 13:25:48 -0600520Entry: u-boot-tpl: U-Boot TPL binary
521------------------------------------
522
523Properties / Entry arguments:
524 - filename: Filename of u-boot-tpl.bin (default 'tpl/u-boot-tpl.bin')
525
526This is the U-Boot TPL (Tertiary Program Loader) binary. This is a small
527binary which loads before SPL, typically into on-chip SRAM. It is
528responsible for locating, loading and jumping to SPL, the next-stage
529loader. Note that SPL is not relocatable so must be loaded to the correct
530address in SRAM, or written to run from the correct address if direct
531flash execution is possible (e.g. on x86 devices).
532
533SPL can access binman symbols at runtime. See:
534
535 'Access to binman entry offsets at run time (symbols)'
536
537in the binman README for more information.
538
539The ELF file 'tpl/u-boot-tpl' must also be available for this to work, since
540binman uses that to look up symbols to write into the TPL binary.
541
542
543
544Entry: u-boot-tpl-dtb: U-Boot TPL device tree
545---------------------------------------------
546
547Properties / Entry arguments:
548 - filename: Filename of u-boot.dtb (default 'tpl/u-boot-tpl.dtb')
549
550This is the TPL device tree, containing configuration information for
551TPL. TPL needs this to know what devices are present and which drivers
552to activate.
553
554
555
Simon Glass3fb4f422018-09-14 04:57:32 -0600556Entry: u-boot-tpl-dtb-with-ucode: U-Boot TPL with embedded microcode pointer
557----------------------------------------------------------------------------
558
559This is used when TPL must set up the microcode for U-Boot.
560
561See Entry_u_boot_ucode for full details of the entries involved in this
562process.
563
564
565
566Entry: u-boot-tpl-with-ucode-ptr: U-Boot TPL with embedded microcode pointer
567----------------------------------------------------------------------------
568
569See Entry_u_boot_ucode for full details of the entries involved in this
570process.
571
572
573
Simon Glass7a61c6b2018-07-17 13:25:37 -0600574Entry: u-boot-ucode: U-Boot microcode block
575-------------------------------------------
576
577Properties / Entry arguments:
578 None
579
580The contents of this entry are filled in automatically by other entries
581which must also be in the image.
582
583U-Boot on x86 needs a single block of microcode. This is collected from
584the various microcode update nodes in the device tree. It is also unable
585to read the microcode from the device tree on platforms that use FSP
586(Firmware Support Package) binaries, because the API requires that the
587microcode is supplied before there is any SRAM available to use (i.e.
588the FSP sets up the SRAM / cache-as-RAM but does so in the call that
589requires the microcode!). To keep things simple, all x86 platforms handle
590microcode the same way in U-Boot (even non-FSP platforms). This is that
591a table is placed at _dt_ucode_base_size containing the base address and
592size of the microcode. This is either passed to the FSP (for FSP
593platforms), or used to set up the microcode (for non-FSP platforms).
594This all happens in the build system since it is the only way to get
595the microcode into a single blob and accessible without SRAM.
596
597There are two cases to handle. If there is only one microcode blob in
598the device tree, then the ucode pointer it set to point to that. This
599entry (u-boot-ucode) is empty. If there is more than one update, then
600this entry holds the concatenation of all updates, and the device tree
601entry (u-boot-dtb-with-ucode) is updated to remove the microcode. This
602last step ensures that that the microcode appears in one contiguous
603block in the image and is not unnecessarily duplicated in the device
604tree. It is referred to as 'collation' here.
605
606Entry types that have a part to play in handling microcode:
607
608 Entry_u_boot_with_ucode_ptr:
609 Contains u-boot-nodtb.bin (i.e. U-Boot without the device tree).
610 It updates it with the address and size of the microcode so that
611 U-Boot can find it early on start-up.
612 Entry_u_boot_dtb_with_ucode:
613 Contains u-boot.dtb. It stores the microcode in a
614 'self.ucode_data' property, which is then read by this class to
615 obtain the microcode if needed. If collation is performed, it
616 removes the microcode from the device tree.
617 Entry_u_boot_ucode:
618 This class. If collation is enabled it reads the microcode from
619 the Entry_u_boot_dtb_with_ucode entry, and uses it as the
620 contents of this entry.
621
622
623
624Entry: u-boot-with-ucode-ptr: U-Boot with embedded microcode pointer
625--------------------------------------------------------------------
626
627Properties / Entry arguments:
628 - filename: Filename of u-boot-nodtb.dtb (default 'u-boot-nodtb.dtb')
Simon Glassee21d3a2018-09-14 04:57:07 -0600629 - optional-ucode: boolean property to make microcode optional. If the
630 u-boot.bin image does not include microcode, no error will
631 be generated.
Simon Glass7a61c6b2018-07-17 13:25:37 -0600632
633See Entry_u_boot_ucode for full details of the three entries involved in
634this process. This entry updates U-Boot with the offset and size of the
635microcode, to allow early x86 boot code to find it without doing anything
636complicated. Otherwise it is the same as the u_boot entry.
637
638
639
Simon Glass5c350162018-07-17 13:25:47 -0600640Entry: vblock: An entry which contains a Chromium OS verified boot block
641------------------------------------------------------------------------
642
643Properties / Entry arguments:
Simon Glass17b84eb2019-05-17 22:00:53 -0600644 - content: List of phandles to entries to sign
Simon Glass5c350162018-07-17 13:25:47 -0600645 - keydir: Directory containing the public keys to use
646 - keyblock: Name of the key file to use (inside keydir)
647 - signprivate: Name of provide key file to use (inside keydir)
648 - version: Version number of the vblock (typically 1)
649 - kernelkey: Name of the kernel key to use (inside keydir)
650 - preamble-flags: Value of the vboot preamble flags (typically 0)
651
Simon Glass639505b2018-09-14 04:57:11 -0600652Output files:
653 - input.<unique_name> - input file passed to futility
654 - vblock.<unique_name> - output file generated by futility (which is
655 used as the entry contents)
656
Jagdish Gediya311d4842018-09-03 21:35:08 +0530657Chromium OS signs the read-write firmware and kernel, writing the signature
Simon Glass5c350162018-07-17 13:25:47 -0600658in this block. This allows U-Boot to verify that the next firmware stage
659and kernel are genuine.
660
661
662
Simon Glass7a61c6b2018-07-17 13:25:37 -0600663Entry: x86-start16: x86 16-bit start-up code for U-Boot
664-------------------------------------------------------
665
666Properties / Entry arguments:
667 - filename: Filename of u-boot-x86-16bit.bin (default
668 'u-boot-x86-16bit.bin')
669
670x86 CPUs start up in 16-bit mode, even if they are 32-bit CPUs. This code
671must be placed at a particular address. This entry holds that code. It is
672typically placed at offset CONFIG_SYS_X86_START16. The code is responsible
673for changing to 32-bit mode and jumping to U-Boot's entry point, which
674requires 32-bit mode (for 32-bit U-Boot).
675
676For 64-bit U-Boot, the 'x86_start16_spl' entry type is used instead.
677
678
679
680Entry: x86-start16-spl: x86 16-bit start-up code for SPL
681--------------------------------------------------------
682
683Properties / Entry arguments:
684 - filename: Filename of spl/u-boot-x86-16bit-spl.bin (default
685 'spl/u-boot-x86-16bit-spl.bin')
686
687x86 CPUs start up in 16-bit mode, even if they are 64-bit CPUs. This code
688must be placed at a particular address. This entry holds that code. It is
689typically placed at offset CONFIG_SYS_X86_START16. The code is responsible
690for changing to 32-bit mode and starting SPL, which in turn changes to
69164-bit mode and jumps to U-Boot (for 64-bit U-Boot).
692
693For 32-bit U-Boot, the 'x86_start16' entry type is used instead.
694
695
696
Simon Glassed40e962018-09-14 04:57:10 -0600697Entry: x86-start16-tpl: x86 16-bit start-up code for TPL
698--------------------------------------------------------
699
700Properties / Entry arguments:
701 - filename: Filename of tpl/u-boot-x86-16bit-tpl.bin (default
702 'tpl/u-boot-x86-16bit-tpl.bin')
703
704x86 CPUs start up in 16-bit mode, even if they are 64-bit CPUs. This code
705must be placed at a particular address. This entry holds that code. It is
706typically placed at offset CONFIG_SYS_X86_START16. The code is responsible
707for changing to 32-bit mode and starting TPL, which in turn jumps to SPL.
708
709If TPL is not being used, the 'x86_start16_spl or 'x86_start16' entry types
710may be used instead.
711
712
713