Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | // SPDX-License-Identifier: GPL-2.0+ /* * This contains the various components needed to boot Ubuntu 24.04 Desktop. It * provides a description of the process, similar to a grub.cfg file. */ &boot_ctl { compatible = "bootctl,ubuntu-desktop", "bootctl,logic"; options { /* use persistent storage for variables */ persist-state; /* store a default OS in the persistent storage */ default-os; /* timeout in seconds before booting a default OS */ timeout = <5>; /* skip timeout if boot was successful */ skip-timeout-on-success; /* track boot success / failure in state */ track-success; /* auto-boot the default OS after a timeout */ // autoboot; /* measure loaded images, etc. */ #if !defined(CONFIG_QEMU) && !defined(CONFIG_EFI_APP) measure; #endif /* use TKey for unlocking encrypted volumes */ #ifdef CONFIG_SANDBOX tkey; #endif /* restrict labels to boot (separated by space) */ #ifdef CONFIG_QEMU labels = "virtio"; #endif #ifdef CONFIG_SANDBOX labels = "mmc usb"; #endif }; measure { compatible = "bootctl,simple-measure"; tpm-log-size = <0x10000>; /* * should we use compatible strings for each subnode? That might * provide more flexibility for expansion */ os { method = "tpm-pcr"; pcr-number = <6>; algos = "sha256"; }; initrd { method = "tpm-pcr"; pcr-number = <9>; algos = "sha256"; }; fdt { method = "tpm-pcr"; pcr-number = <8>; algos = "sha256"; }; cmdline { method = "tpm-pcr"; pcr-number = <8>; algos = "sha256"; optional; }; }; oslist-extlinux { compatible = "bootctl,extlinux-oslist"; /* indicates the filesystems needed to access extlinux */ filesystems { ext4 { /* add enabled options here? */ }; fat { }; }; }; #ifndef CONFIG_SANDBOX oslist-efi { compatible = "bootctl,efifile-oslist"; /* indicates the filesystems needed to access EFI files */ filesystems { fat { }; }; }; #endif state { compatible = "bootctl,simple-state", "bootctl,state"; /* revisit, as we may want to reference the hardware device */ #ifdef CONFIG_SANDBOX location = "hostfs", "0"; filename = "bootctl.ini"; #else location = "efi", "1:5"; filename = "/boot/bootctl/bootctl.ini"; #endif }; ui-multi { compatible = "bootctl,multiboot-ui", "bootctl,simple-ui", "bootctl,ui"; graphical = "if-available"; textual = "if-available"; #ifdef CANONICAL_LOGO logo = /incbin/("/home/sglass/u/boot/bootctl/canonical.bmp"); #endif }; ui-simple { compatible = "bootctl,simple-ui", "bootctl,ui"; graphical = "if-available"; textual = "if-available"; }; }; |