As there are 24 PCR's in TPM 1.2 specification. Some of these PCRs are reserved and cannot be extended by user's code. Below are the PCR Index with their usage:
0 - CRTM, BIOS and Platform Extensions
1 - Platform Configuration
2 - Option ROM Code
3 - Option ROM Configuration and Data
4 - IPL Code (MBR Information and Bootloader Stage 1)
5 - IPL Code and Configuration Data (for use by IPL Code)
6 - State Transition and Wake Events
7 - Reserved for future usage. Do not use.
8 - Bootloader Stage 2 Part 1
9 - Bootloader Stage 2 Part 2
10 - Not in Use.
11 - Not in Use.
12 - Bootloader Command line Arguments
13 - Files checked via check-file routine
14 - Files which are actually loaded (e.g. Linux kernel, initrd, modules..)
15 - Not in Use.
16 - Not in Use.
17 - DRTM
18 to 23. Not in Use.
What I understood that a user can extend all the PCR's which are not in use? Is this correct? I asked this question Because I have written my own code to extend PCR's (by following https://www.cylab.cmu.edu/tiw/slides/challener-handout.pdf) and it turns out that i can extend all the PCR's except from PCR 17 to PCR 22. And my understanding was that I can only extend few and especially cannot play with the lower ones from PCR 0 to PCR 7.
Your help is highly appreciated! I can send the code as well if required!