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