diff --git a/core/pkg/devicemapper/devicemapper.go b/core/pkg/devicemapper/devicemapper.go
index dec6260..2687e3a 100644
--- a/core/pkg/devicemapper/devicemapper.go
+++ b/core/pkg/devicemapper/devicemapper.go
@@ -14,6 +14,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+// package devicemapper is a thin wrapper for the devicemapper ioctl API.
+// See: https://github.com/torvalds/linux/blob/master/include/uapi/linux/dm-ioctl.h
 package devicemapper
 
 import (
@@ -120,13 +122,15 @@
 	}
 }
 
+// stringToDelimitedBuf copies src to dst and returns an error if len(src) > len(dst),
+// or when the string contains a null byte.
 func stringToDelimitedBuf(dst []byte, src string) error {
 	if len(src) > len(dst)-1 {
-		return fmt.Errorf("String longer than target buffer (%v > %v)", len(src), len(dst)-1)
+		return fmt.Errorf("string longer than target buffer (%v > %v)", len(src), len(dst)-1)
 	}
 	for i := 0; i < len(src); i++ {
 		if src[i] == 0x00 {
-			return errors.New("String contains null byte, this is unsupported by DM")
+			return errors.New("string contains null byte, this is unsupported by DM")
 		}
 		dst[i] = src[i]
 	}
@@ -139,7 +143,7 @@
 	if fd == 0 {
 		f, err := os.Open("/dev/mapper/control")
 		if os.IsNotExist(err) {
-			os.MkdirAll("/dev/mapper", 0755)
+			_ = os.MkdirAll("/dev/mapper", 0755)
 			if err := unix.Mknod("/dev/mapper/control", unix.S_IFCHR|0600, int(unix.Mkdev(10, 236))); err != nil {
 				return 0, err
 			}
@@ -283,11 +287,11 @@
 		return 0, fmt.Errorf("DM_DEV_CREATE failed: %w", err)
 	}
 	if err := LoadTable(name, targets); err != nil {
-		RemoveDevice(name)
+		_ = RemoveDevice(name)
 		return 0, fmt.Errorf("DM_TABLE_LOAD failed: %w", err)
 	}
 	if err := Resume(name); err != nil {
-		RemoveDevice(name)
+		_ = RemoveDevice(name)
 		return 0, fmt.Errorf("DM_DEV_SUSPEND failed: %w", err)
 	}
 	return dev, nil
diff --git a/core/pkg/tpm/tpm.go b/core/pkg/tpm/tpm.go
index 4638453..e3973d1 100644
--- a/core/pkg/tpm/tpm.go
+++ b/core/pkg/tpm/tpm.go
@@ -36,16 +36,51 @@
 )
 
 var (
-	// SecureBootPCRs are all PCRs that measure the current Secure Boot configuration
+	// SecureBootPCRs are all PCRs that measure the current Secure Boot configuration.
+	// This is what we want if we rely on secure boot to verify boot integrity. The firmware
+	// hashes the secure boot policy and custom keys into the PCR.
+	//
+	// This requires an extra step that provisions the custom keys.
+	//
+	// Some background: https://mjg59.dreamwidth.org/48897.html?thread=1847297
+	// (the initramfs issue mentioned in the article has been solved by integrating
+	// it into the kernel binary, and we don't have a shim bootloader)
+	//
+	// PCR7 alone is not sufficient - it needs to be combined with firmware measurements.
 	SecureBootPCRs = []int{7}
 
 	// FirmwarePCRs are alle PCRs that contain the firmware measurements
 	// See https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf
-	FirmwarePCRs = []int{0, 2, 3}
+	FirmwarePCRs = []int{
+		0,  // platform firmware
+		2,  // option ROM code
+		3,  // option ROM configuration and data
+	}
 
-	// FullSystemPCRs are all PCRs that contain any measurements up to the currently running EFI
-	// payload.
-	FullSystemPCRs = []int{0, 1, 2, 3, 4}
+	// FullSystemPCRs are all PCRs that contain any measurements up to the currently running EFI payload.
+	FullSystemPCRs = []int{
+		0,  // platform firmware
+		1,  // host platform configuration
+		2,  // option ROM code
+		3,  // option ROM configuration and data
+		4,  // EFI payload
+	}
+
+	// Using FullSystemPCRs is the most secure, but also the most brittle option since updating the EFI
+	// binary, updating the platform firmware, changing platform settings or updating the binary
+	// would invalidate the sealed data. It's annoying (but possible) to predict values for PCR4,
+	// and even more annoying for the firmware PCR (comparison to known values on similar hardware
+	// is the only thing that comes to mind).
+	//
+	// See also: https://github.com/mxre/sealkey (generates PCR4 from EFI image, BSD license)
+	//
+	// Using only SecureBootPCRs is the easiest and still reasonably secure, if we assume that the
+	// platform knows how to take care of itself (i.e. Intel Boot Guard), and that secure boot
+	// is implemented properly. It is, however, a much larger amount of code we need to trust.
+	//
+	// We do not care about PCR 5 (GPT partition table) since modifying it is harmless. All of
+	// the boot options and cmdline are hardcoded in the kernel image, and we use no bootloader,
+	// so there's no PCR for bootloader configuration or kernel cmdline.
 )
 
 var (
