Missing "rootflags=subvol=root" for Btrfs in tboot 1.10.5

All GRUB configurations generated for tboot miss “rootflags=subvol=root” and causes boot failure.

cat /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-3fc85411-b08c-4185-b41d-bc0950877aeb rhgb quiet numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

cat /etc/grub2/grub.cfg

…

### BEGIN /etc/grub.d/20_linux_tboot ###
submenu "tboot 1.10.5" {
menuentry 'Fedora GNU/Linux, with tboot 1.10.5 and Linux 6.4.12-100.fc37.x86_64' --class fedora --class gnu-linux --class gnu --class os --class tboot {
	insmod multiboot2
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  85215e34-eff0-4cba-9f44-f9c485483800
	else
	  search --no-floppy --fs-uuid --set=root 85215e34-eff0-4cba-9f44-f9c485483800
	fi
	echo	'Loading tboot 1.10.5 ...'
	multiboot2	/tboot.gz logging=serial,memory,vga
	echo	'Loading Linux 6.4.12-100.fc37.x86_64 ...'
	module2 /vmlinuz-6.4.12-100.fc37.x86_64 root=UUID=f4131454-9e14-4af9-b28e-93afc232a8b2 ro rd.luks.uuid=luks-3fc85411-b08c-4185-b41d-bc0950877aeb rhgb quiet numa=off transparent_hugepage=never intel_iommu=on noefi
	echo	'Loading initial ramdisk ...'
	module2 /initramfs-6.4.12-100.fc37.x86_64.img
	echo	'Loading sinit SNB_IVB_SINIT_20190708_PW.bin ...'
	module2 /SNB_IVB_SINIT_20190708_PW.bin
}
menuentry 'Fedora GNU/Linux, with tboot 1.10.5 and Linux 6.4.10-100.fc37.x86_64' --class fedora --class gnu-linux --class gnu --class os --class tboot {
	insmod multiboot2
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  85215e34-eff0-4cba-9f44-f9c485483800
	else
	  search --no-floppy --fs-uuid --set=root 85215e34-eff0-4cba-9f44-f9c485483800
	fi
	echo	'Loading tboot 1.10.5 ...'
	multiboot2	/tboot.gz logging=serial,memory,vga
	echo	'Loading Linux 6.4.10-100.fc37.x86_64 ...'
	module2 /vmlinuz-6.4.10-100.fc37.x86_64 root=UUID=f4131454-9e14-4af9-b28e-93afc232a8b2 ro rd.luks.uuid=luks-3fc85411-b08c-4185-b41d-bc0950877aeb rhgb quiet numa=off transparent_hugepage=never intel_iommu=on noefi
	echo	'Loading initial ramdisk ...'
	module2 /initramfs-6.4.10-100.fc37.x86_64.img
	echo	'Loading sinit SNB_IVB_SINIT_20190708_PW.bin ...'
	module2 /SNB_IVB_SINIT_20190708_PW.bin
}
menuentry 'Fedora GNU/Linux, with tboot 1.10.5 and Linux 6.3.12-100.fc37.x86_64' --class fedora --class gnu-linux --class gnu --class os --class tboot {
	insmod multiboot2
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  85215e34-eff0-4cba-9f44-f9c485483800
	else
	  search --no-floppy --fs-uuid --set=root 85215e34-eff0-4cba-9f44-f9c485483800
	fi
	echo	'Loading tboot 1.10.5 ...'
	multiboot2	/tboot.gz logging=serial,memory,vga
	echo	'Loading Linux 6.3.12-100.fc37.x86_64 ...'
	module2 /vmlinuz-6.3.12-100.fc37.x86_64 root=UUID=f4131454-9e14-4af9-b28e-93afc232a8b2 ro rd.luks.uuid=luks-3fc85411-b08c-4185-b41d-bc0950877aeb rhgb quiet numa=off transparent_hugepage=never intel_iommu=on noefi
	echo	'Loading initial ramdisk ...'
	module2 /initramfs-6.3.12-100.fc37.x86_64.img
	echo	'Loading sinit SNB_IVB_SINIT_20190708_PW.bin ...'
	module2 /SNB_IVB_SINIT_20190708_PW.bin
}
}
### END /etc/grub.d/20_linux_tboot ###

…

What is the output of sudo grubby --info=$(sudo grubby --default-kernel)

It would appear that you have installed tboot (possibly from the fedora repo). It may not have the proper configs, and what you have posted seems to indicate it creates a non-standard menu entry for booting with tboot, as well as using the 6.3.12 kernel which is far behind the current 6.4.13 kernel.

The file /etc/grub.d/20_linux_tboot does not exist on my system and appears to create that menu entry in grub.cfg.

However you do not actually show the full kernel command line presently used for booting, and we cannot see what it might be. That would be shown by cat /proc/cmdline.

On my F38 system (in a VM and not using luks) I see

$ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.4.11-200.fc38.x86_64 root=UUID=c358b97d-7d36-404b-8181-3d004b228193 ro rootflags=subvol=root

Additionally I see

# cat /boot/loader/entries/fe712e4c46cc4c80af7298786c2dbafe-6*.conf
title Fedora Linux (6.4.10-200.fc38.x86_64) 38 (Workstation Edition)
version 6.4.10-200.fc38.x86_64
linux /vmlinuz-6.4.10-200.fc38.x86_64
initrd /initramfs-6.4.10-200.fc38.x86_64.img
options root=UUID=c358b97d-7d36-404b-8181-3d004b228193 ro rootflags=subvol=root
grub_users $grub_users
grub_arg --unrestricted
grub_class fedora
title Fedora Linux (6.4.11-200.fc38.x86_64) 38 (Workstation Edition)
version 6.4.11-200.fc38.x86_64
linux /vmlinuz-6.4.11-200.fc38.x86_64
initrd /initramfs-6.4.11-200.fc38.x86_64.img
options root=UUID=c358b97d-7d36-404b-8181-3d004b228193 ro rootflags=subvol=root
grub_users $grub_users
grub_arg --unrestricted
grub_class fedora
title Fedora Linux (6.4.9-200.fc38.x86_64) 38 (Workstation Edition)
version 6.4.9-200.fc38.x86_64
linux /vmlinuz-6.4.9-200.fc38.x86_64
initrd /initramfs-6.4.9-200.fc38.x86_64.img
options root=UUID=c358b97d-7d36-404b-8181-3d004b228193 ro rootflags=subvol=root
grub_users $grub_users
grub_arg --unrestricted
grub_class fedora

If those files are not correct then it would seem that tboot actually has an error and a bug should be reported.