• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Intel TXT Initial Boot Block
2
3The Initial Boot Block (IBB) consists out of one or more files in the CBFS.
4
5## Constraints
6
7The IBB must follow the following constrains:
8* One IBB must contain the reset vector as well as the [FIT table].
9* The IBB should be as small as possible.
10* The IBBs must not overlap each other.
11* The IBB might overlap with microcode.
12* The IBB must not overlap the BIOS ACM.
13* The IBB size must be a multiple of 16.
14* Either one of the following:
15  * The IBB must be able to train the main system memory and clear all secrets.
16  * If the IBB cannot train the main system memory it must verify the code
17    that can train the main system memory and is able to clear all secrets.
18
19## Identification
20
21To add the IBBs to the [FIT], all CBFS files are added using the `cbfstool`
22with the `--ibb` flag set.
23The flags sets the CBFS file attribute tag to LE `' IBB'`.
24
25The make system in turn adds all those files to the [FIT] as type 7.
26
27## Intel TXT measurements
28
29Each IBB is measured and extended into PCR0 by [Intel TXT], before the CPU
30reset vector is executed.
31The IBBs are measured in the order they are listed in the [FIT].
32
33## FIT schematic
34
35![][fit_ibb]
36
37[fit_ibb]: fit_ibb.svg
38[FIT]: ../../soc/intel/fit.md
39[Intel TXT]: txt.md
40