bootflow.rst 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. .. SPDX-License-Identifier: GPL-2.0+:
  2. bootflow command
  3. ================
  4. Synopis
  5. -------
  6. ::
  7. bootflow scan [-abelGH] [bootdev]
  8. bootflow list [-e]
  9. bootflow select [<num|name>]
  10. bootflow info [-d]
  11. bootflow boot
  12. bootflow cmdline [set|get|clear|delete|auto] <param> [<value>]
  13. Description
  14. -----------
  15. The `bootflow` command is used to manage bootflows. It can scan bootdevs to
  16. locate bootflows, list them and boot them.
  17. See :doc:`../../develop/bootstd` for more information.
  18. bootflow scan
  19. ~~~~~~~~~~~~~
  20. Scans for available bootflows, optionally booting the first valid one it finds.
  21. This operates in two modes:
  22. - If no bootdev is selected (see `bootdev select`) it scans bootflows one
  23. by one, extracting all the bootdevs from each
  24. - If a bootdev is selected, it just scans that one bootflow
  25. Flags are:
  26. -a
  27. Collect all bootflows, even those that cannot be loaded. Normally if a file
  28. is not where it is expected, then the bootflow fails and so is dropped
  29. during the scan. With this option you can see why each bootflow would be
  30. dropped.
  31. -b
  32. Boot each valid bootflow as it is scanned. Typically only the first bootflow
  33. matters, since by then the system boots in the OS and U-Boot is no-longer
  34. running. `bootflow scan -b` is a quick way to boot the first available OS.
  35. A valid bootflow is one that made it all the way to the `loaded` state.
  36. -e
  37. Used with -l to also show errors for each bootflow. The shows detailed error
  38. information for each bootflow that failed to make it to the `loaded` state.
  39. -l
  40. List bootflows while scanning. This is helpful when you want to see what
  41. is happening during scanning. Use it with the `-b` flag to see which
  42. bootdev and bootflows are being tried.
  43. -G
  44. Skip global bootmeths when scanning. By default these are tried first, but
  45. this flag disables them.
  46. -H
  47. Don't use bootdev hunters. By default these are used before each boot
  48. priority or label is tried, to see if more bootdevs can be discovered, but
  49. this flag disables that process.
  50. The optional argument specifies a particular bootdev to scan. This can either be
  51. the name of a bootdev or its sequence number (both shown with `bootdev list`).
  52. Alternatively a convenience label can be used, like `mmc0`, which is the type of
  53. device and an optional sequence number. Specifically, the label is the uclass of
  54. the bootdev's parent followed by the sequence number of that parent. Sequence
  55. numbers are typically set by aliases, so if you have 'mmc0' in your devicetree
  56. alias section, then `mmc0` refers to the bootdev attached to that device.
  57. bootflow list
  58. ~~~~~~~~~~~~~
  59. Lists the previously scanned bootflows. You must use `bootflow scan` before this
  60. to see anything.
  61. If you scanned with -a and have bootflows with errors, -e can be used to show
  62. those errors.
  63. The list looks something like this:
  64. === ====== ====== ======== ==== =============================== ================
  65. Seq Method State Uclass Part Name Filename
  66. === ====== ====== ======== ==== =============================== ================
  67. 0 distro ready mmc 2 mmc\@7e202000.bootdev.part_2 /boot/extlinux/extlinux.conf
  68. 1 pxe ready ethernet 0 smsc95xx_eth.bootdev.0 rpi.pxe/extlinux/extlinux.conf
  69. === ====== ====== ======== ==== =============================== ================
  70. The fields are as follows:
  71. Seq:
  72. Sequence number in the scan, used to reference the bootflow later
  73. Method:
  74. The boot method (bootmeth) used to find the bootflow. Several methods are
  75. included in U-Boot.
  76. State:
  77. Current state of the bootflow, indicating how far the bootdev got in
  78. obtaining a valid one. See :ref:`BootflowStates` for a list of states.
  79. Uclass:
  80. Name of the media device's Uclass. This indicates the type of the parent
  81. device (e.g. MMC, Ethernet).
  82. Part:
  83. Partition number being accesseed, numbered from 1. Normally a device will
  84. have a partition table with a small number of partitions. For devices
  85. without partition tables (e.g. network) this field is 0.
  86. Name:
  87. Name of the bootflow. This is generated from the bootdev appended with
  88. the partition information
  89. Filename:
  90. Name of the bootflow file. This indicates where the file is on the
  91. filesystem or network device.
  92. bootflow select
  93. ~~~~~~~~~~~~~~~
  94. Use this to select a particular bootflow. You can select it by the sequence
  95. number or name, as shown in `bootflow list`.
  96. Once a bootflow is selected, you can use `bootflow info` and `bootflow boot`.
  97. If no bootflow name or number is provided, then any existing bootflow is
  98. unselected.
  99. bootflow info
  100. ~~~~~~~~~~~~~
  101. This shows information on the current bootflow, with the format looking like
  102. this:
  103. ========= ===============================
  104. Name mmc\@7e202000.bootdev.part_2
  105. Device mmc\@7e202000.bootdev
  106. Block dev mmc\@7e202000.blk
  107. Type distro
  108. Method: extlinux
  109. State ready
  110. Partition 2
  111. Subdir (none)
  112. Filename /extlinux/extlinux.conf
  113. Buffer 3db7ad48
  114. Size 232 (562 bytes)
  115. FDT: <NULL>
  116. Error 0
  117. ========= ===============================
  118. Most of the information is the same as `bootflow list` above. The new fields
  119. are:
  120. Device
  121. Name of the bootdev
  122. Block dev
  123. Name of the block device, if any. Network devices don't have a block device.
  124. Subdir
  125. Subdirectory used for retrieving files. For network bootdevs this is the
  126. directory of the 'bootfile' parameter passed from DHCP. All file retrievals
  127. when booting are relative to this.
  128. Buffer
  129. Buffer containing the bootflow file. You can use the :doc:`md` to look at
  130. it, or dump it with `bootflow info -d`.
  131. Size
  132. Size of the bootflow file
  133. FDT:
  134. Filename of the device tree, if supported. The EFI bootmeth uses this to
  135. remember the filename to load. If `<NULL>` then there is none.
  136. Error
  137. Error number returned from scanning for the bootflow. This is 0 if the
  138. bootflow is in the 'loaded' state, or a negative error value on error. You
  139. can look up Linux error codes to find the meaning of the number.
  140. Use the `-d` flag to dump out the contents of the bootfile file.
  141. bootflow boot
  142. ~~~~~~~~~~~~~
  143. This boots the current bootflow.
  144. bootflow cmdline
  145. ~~~~~~~~~~~~~~~~
  146. Some bootmeths can obtain the OS command line since it is stored with the OS.
  147. In that case, you can use `bootflow cmdline` to adjust this. The command line
  148. is assumed to be in the format used by Linux, i.e. a space-separated set of
  149. parameters with optional values, e.g. "noinitrd console=/dev/tty0".
  150. To change or add a parameter, use::
  151. bootflow cmdline set <param> <value>
  152. To clear a parameter value to empty you can use "" for the value, or use::
  153. bootflow cmdline clear <param>
  154. To delete a parameter entirely, use::
  155. bootflow cmdline delete <param>
  156. Automatic parameters are available in a very few cases. You can use these to
  157. add parmeters where the value is known by U-Boot. For example::
  158. bootflow cmdline auto earlycon
  159. bootflow cmdline auto console
  160. can be used to set the early console (or console) to a suitable value so that
  161. output appears on the serial port. This is only supported by the 16550 serial
  162. driver so far.
  163. Example
  164. -------
  165. Here is an example of scanning for bootflows, then listing them::
  166. U-Boot> bootflow scan -l
  167. Scanning for bootflows in all bootdevs
  168. Seq Type State Uclass Part Name Filename
  169. --- ----------- ------ -------- ---- ------------------------ ----------------
  170. Scanning bootdev 'mmc@7e202000.bootdev':
  171. 0 distro ready mmc 2 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  172. Scanning bootdev 'sdhci@7e300000.bootdev':
  173. Card did not respond to voltage select! : -110
  174. Scanning bootdev 'smsc95xx_eth.bootdev':
  175. Waiting for Ethernet connection... done.
  176. BOOTP broadcast 1
  177. DHCP client bound to address 192.168.4.30 (4 ms)
  178. Using smsc95xx_eth device
  179. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  180. Filename 'rpi.pxe/'.
  181. Load address: 0x200000
  182. Loading: *
  183. TFTP error: 'Is a directory' (0)
  184. Starting again
  185. missing environment variable: pxeuuid
  186. Retrieving file: rpi.pxe/pxelinux.cfg/01-b8-27-eb-a6-61-e1
  187. Waiting for Ethernet connection... done.
  188. Using smsc95xx_eth device
  189. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  190. Filename 'rpi.pxe/pxelinux.cfg/01-b8-27-eb-a6-61-e1'.
  191. Load address: 0x2500000
  192. Loading: ################################################## 566 Bytes
  193. 45.9 KiB/s
  194. done
  195. Bytes transferred = 566 (236 hex)
  196. 1 distro ready ethernet 0 smsc95xx_eth.bootdev.0 rpi.pxe/extlinux/extlinux.conf
  197. No more bootdevs
  198. --- ----------- ------ -------- ---- ------------------------ ----------------
  199. (2 bootflows, 2 valid)
  200. U-Boot> bootflow l
  201. Showing all bootflows
  202. Seq Type State Uclass Part Name Filename
  203. --- ----------- ------ -------- ---- ------------------------ ----------------
  204. 0 distro ready mmc 2 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  205. 1 pxe ready ethernet 0 smsc95xx_eth.bootdev.0 rpi.pxe/extlinux/extlinux.conf
  206. --- ----------- ------ -------- ---- ------------------------ ----------------
  207. (2 bootflows, 2 valid)
  208. The second one is then selected by name (we could instead use `bootflow sel 0`),
  209. displayed and booted::
  210. U-Boot> bootflow info
  211. No bootflow selected
  212. U-Boot> bootflow sel mmc@7e202000.bootdev.part_2
  213. U-Boot> bootflow info
  214. Name: mmc@7e202000.bootdev.part_2
  215. Device: mmc@7e202000.bootdev
  216. Block dev: mmc@7e202000.blk
  217. Method: distro
  218. State: ready
  219. Partition: 2
  220. Subdir: (none)
  221. Filename: extlinux/extlinux.conf
  222. Buffer: 3db7ae88
  223. Size: 232 (562 bytes)
  224. OS: Fedora-Workstation-armhfp-31-1.9 (5.3.7-301.fc31.armv7hl)
  225. Cmdline: (none)
  226. Logo: (none)
  227. FDT: <NULL>
  228. Error: 0
  229. U-Boot> bootflow boot
  230. ** Booting bootflow 'smsc95xx_eth.bootdev.0'
  231. Ignoring unknown command: ui
  232. Ignoring malformed menu command: autoboot
  233. Ignoring malformed menu command: hidden
  234. Ignoring unknown command: totaltimeout
  235. 1: Fedora-Workstation-armhfp-31-1.9 (5.3.7-301.fc31.armv7hl)
  236. Retrieving file: rpi.pxe/initramfs-5.3.7-301.fc31.armv7hl.img
  237. get 2700000 rpi.pxe/initramfs-5.3.7-301.fc31.armv7hl.img
  238. Waiting for Ethernet connection... done.
  239. Using smsc95xx_eth device
  240. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  241. Filename 'rpi.pxe/initramfs-5.3.7-301.fc31.armv7hl.img'.
  242. Load address: 0x2700000
  243. Loading: ###################################T ############### 57.7 MiB
  244. 1.9 MiB/s
  245. done
  246. Bytes transferred = 60498594 (39b22a2 hex)
  247. Retrieving file: rpi.pxe//vmlinuz-5.3.7-301.fc31.armv7hl
  248. get 80000 rpi.pxe//vmlinuz-5.3.7-301.fc31.armv7hl
  249. Waiting for Ethernet connection... done.
  250. Using smsc95xx_eth device
  251. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  252. Filename 'rpi.pxe//vmlinuz-5.3.7-301.fc31.armv7hl'.
  253. Load address: 0x80000
  254. Loading: ################################################## 7.2 MiB
  255. 2.3 MiB/s
  256. done
  257. Bytes transferred = 7508480 (729200 hex)
  258. append: ro root=UUID=9732b35b-4cd5-458b-9b91-80f7047e0b8a rhgb quiet LANG=en_US.UTF-8 cma=192MB cma=256MB
  259. Retrieving file: rpi.pxe//dtb-5.3.7-301.fc31.armv7hl/bcm2837-rpi-3-b.dtb
  260. get 2600000 rpi.pxe//dtb-5.3.7-301.fc31.armv7hl/bcm2837-rpi-3-b.dtb
  261. Waiting for Ethernet connection... done.
  262. Using smsc95xx_eth device
  263. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  264. Filename 'rpi.pxe//dtb-5.3.7-301.fc31.armv7hl/bcm2837-rpi-3-b.dtb'.
  265. Load address: 0x2600000
  266. Loading: ################################################## 13.8 KiB
  267. 764.6 KiB/s
  268. done
  269. Bytes transferred = 14102 (3716 hex)
  270. Kernel image @ 0x080000 [ 0x000000 - 0x729200 ]
  271. ## Flattened Device Tree blob at 02600000
  272. Booting using the fdt blob at 0x2600000
  273. Using Device Tree in place at 02600000, end 02606715
  274. Starting kernel ...
  275. [ OK ] Started Show Plymouth Boot Screen.
  276. [ OK ] Started Forward Password R…s to Plymouth Directory Watch.
  277. [ OK ] Reached target Local Encrypted Volumes.
  278. [ OK ] Reached target Paths.
  279. ....
  280. Here we scan for bootflows and boot the first one found::
  281. U-Boot> bootflow scan -bl
  282. Scanning for bootflows in all bootdevs
  283. Seq Method State Uclass Part Name Filename
  284. --- ----------- ------ -------- ---- ---------------------- ----------------
  285. Scanning bootdev 'mmc@7e202000.bootdev':
  286. 0 distro ready mmc 2 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  287. ** Booting bootflow 'mmc@7e202000.bootdev.part_2'
  288. Ignoring unknown command: ui
  289. Ignoring malformed menu command: autoboot
  290. Ignoring malformed menu command: hidden
  291. Ignoring unknown command: totaltimeout
  292. 1: Fedora-KDE-armhfp-31-1.9 (5.3.7-301.fc31.armv7hl)
  293. Retrieving file: /initramfs-5.3.7-301.fc31.armv7hl.img
  294. getfile 2700000 /initramfs-5.3.7-301.fc31.armv7hl.img
  295. Retrieving file: /vmlinuz-5.3.7-301.fc31.armv7hl
  296. getfile 80000 /vmlinuz-5.3.7-301.fc31.armv7hl
  297. append: ro root=UUID=b8781f09-e2dd-4cb8-979b-7df5eeaaabea rhgb LANG=en_US.UTF-8 cma=192MB console=tty0 console=ttyS1,115200
  298. Retrieving file: /dtb-5.3.7-301.fc31.armv7hl/bcm2837-rpi-3-b.dtb
  299. getfile 2600000 /dtb-5.3.7-301.fc31.armv7hl/bcm2837-rpi-3-b.dtb
  300. Kernel image @ 0x080000 [ 0x000000 - 0x729200 ]
  301. ## Flattened Device Tree blob at 02600000
  302. Booting using the fdt blob at 0x2600000
  303. Using Device Tree in place at 02600000, end 02606715
  304. Starting kernel ...
  305. [ 0.000000] Booting Linux on physical CPU 0x0
  306. Here is am example using the -e flag to see all errors::
  307. U-Boot> bootflow scan -a
  308. Card did not respond to voltage select! : -110
  309. Waiting for Ethernet connection... done.
  310. BOOTP broadcast 1
  311. DHCP client bound to address 192.168.4.30 (4 ms)
  312. Using smsc95xx_eth device
  313. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  314. Filename 'rpi.pxe/'.
  315. Load address: 0x200000
  316. Loading: *
  317. TFTP error: 'Is a directory' (0)
  318. Starting again
  319. missing environment variable: pxeuuid
  320. Retrieving file: rpi.pxe/pxelinux.cfg/01-b8-27-eb-a6-61-e1
  321. Waiting for Ethernet connection... done.
  322. Using smsc95xx_eth device
  323. TFTP from server 192.168.4.1; our IP address is 192.168.4.30
  324. Filename 'rpi.pxe/pxelinux.cfg/01-b8-27-eb-a6-61-e1'.
  325. Load address: 0x2500000
  326. Loading: ################################################## 566 Bytes
  327. 49.8 KiB/s
  328. done
  329. Bytes transferred = 566 (236 hex)
  330. U-Boot> bootflow l -e
  331. Showing all bootflows
  332. Seq Type State Uclass Part Name Filename
  333. --- ----------- ------ -------- ---- --------------------- ----------------
  334. 0 distro fs mmc 1 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  335. ** File not found, err=-2
  336. 1 distro ready mmc 2 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  337. 2 distro fs mmc 3 mmc@7e202000.bootdev.p /extlinux/extlinux.conf
  338. ** File not found, err=-1
  339. 3 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  340. ** No partition found, err=-2
  341. 4 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  342. ** No partition found, err=-2
  343. 5 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  344. ** No partition found, err=-2
  345. 6 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  346. ** No partition found, err=-2
  347. 7 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  348. ** No partition found, err=-2
  349. 8 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  350. ** No partition found, err=-2
  351. 9 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  352. ** No partition found, err=-2
  353. a distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  354. ** No partition found, err=-2
  355. b distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  356. ** No partition found, err=-2
  357. c distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  358. ** No partition found, err=-2
  359. d distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  360. ** No partition found, err=-2
  361. e distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  362. ** No partition found, err=-2
  363. f distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  364. ** No partition found, err=-2
  365. 10 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  366. ** No partition found, err=-2
  367. 11 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  368. ** No partition found, err=-2
  369. 12 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  370. ** No partition found, err=-2
  371. 13 distro media mmc 0 mmc@7e202000.bootdev.p <NULL>
  372. ** No partition found, err=-2
  373. 14 distro ready ethernet 0 smsc95xx_eth.bootdev.0 rpi.pxe/extlinux/extlinux.conf
  374. --- ----------- ------ -------- ---- --------------------- ----------------
  375. (21 bootflows, 2 valid)
  376. U-Boot>
  377. Here is an example of booting ChromeOS, adjusting the console beforehand. Note that
  378. the cmdline is word-wrapped here and some parts of the command line are elided::
  379. => bootfl list
  380. Showing all bootflows
  381. Seq Method State Uclass Part Name Filename
  382. --- ----------- ------ -------- ---- ------------------------ ----------------
  383. 0 cros ready nvme 0 5.10.153-20434-g98da1eb2c <NULL>
  384. 1 efi ready nvme c nvme#0.blk#1.bootdev.part efi/boot/bootia32.efi
  385. 2 efi ready usb_mass_ 2 usb_mass_storage.lun0.boo efi/boot/bootia32.efi
  386. --- ----------- ------ -------- ---- ------------------------ ----------------
  387. (3 bootflows, 3 valid)
  388. => bootfl sel 0
  389. => bootfl inf
  390. Name: 5.10.153-20434-g98da1eb2cf9d (chrome-bot@chromeos-release-builder-us-central1-b-x32-12-xijx) #1 SMP PREEMPT Tue Jan 24 19:38:23 PST 2023
  391. Device: nvme#0.blk#1.bootdev
  392. Block dev: nvme#0.blk#1
  393. Method: cros
  394. State: ready
  395. Partition: 0
  396. Subdir: (none)
  397. Filename: <NULL>
  398. Buffer: 737a1400
  399. Size: c47000 (12873728 bytes)
  400. OS: ChromeOS
  401. Cmdline: console= loglevel=7 init=/sbin/init cros_secure drm.trace=0x106
  402. root=/dev/dm-0 rootwait ro dm_verity.error_behavior=3
  403. dm_verity.max_bios=-1 dm_verity.dev_wait=1
  404. dm="1 vroot none ro 1,0 6348800
  405. verity payload=PARTUUID=799c935b-ae62-d143-8493-816fa936eef7/PARTNROFF=1
  406. hashtree=PARTUUID=799c935b-ae62-d143-8493-816fa936eef7/PARTNROFF=1
  407. hashstart=6348800 alg=sha256
  408. root_hexdigest=78cc462cd45aecbcd49ca476587b4dee59aa1b00ba5ece58e2c29ec9acd914ab
  409. salt=8dec4dc80a75dd834a9b3175c674405e15b16a253fdfe05c79394ae5fd76f66a"
  410. noinitrd vt.global_cursor_default=0
  411. kern_guid=799c935b-ae62-d143-8493-816fa936eef7 add_efi_memmap
  412. noresume i915.modeset=1 ramoops.ecc=1 tpm_tis.force=0
  413. intel_pmc_core.warn_on_s0ix_failures=1 i915.enable_guc=3 i915.enable_dc=4
  414. xdomain=0 swiotlb=65536 intel_iommu=on i915.enable_psr=1
  415. usb-storage.quirks=13fe:6500:u
  416. X86 setup: 742e3400
  417. Logo: (none)
  418. FDT: <NULL>
  419. Error: 0
  420. => bootflow cmdline auto earlycon
  421. => bootflow cmd auto console
  422. => print bootargs
  423. bootargs=console=ttyS0,115200n8 loglevel=7 ...
  424. usb-storage.quirks=13fe:6500:u earlycon=uart8250,mmio32,0xfe03e000,115200n8
  425. => bootflow cmd del console
  426. => print bootargs
  427. bootargs=loglevel=7 ... earlycon=uart8250,mmio32,0xfe03e000,115200n8
  428. => bootfl boot
  429. ** Booting bootflow '5.10.153-20434-g98da1eb2cf9d (chrome-bot@chromeos-release-builder-us-central1-b-x32-12-xijx) #1 SMP PREEMPT Tue Jan 24 19:38:23 PST 2023' with cros
  430. Kernel command line: "loglevel=7 ... earlycon=uart8250,mmio32,0xfe03e000,115200n8"
  431. Starting kernel ...
  432. [ 0.000000] Linux version 5.10.153-20434-g98da1eb2cf9d (chrome-bot@chromeos-release-builder-us-central1-b-x32-12-xijx) (Chromium OS 15.0_pre465103_p20220825-r4 clang version 15.0.0 (/var/tmp/portage/sys-devel/llvm-15.0_pre465103_p20220825-r4/work/llvm-15.0_pre465103_p20220825/clang db1978b67431ca3462ad8935bf662c15750b8252), LLD 15.0.0) #1 SMP PREEMPT Tue Jan 24 19:38:23 PST 2023
  433. [ 0.000000] Command line: loglevel=7 ... usb-storage.quirks=13fe:6500:u earlycon=uart8250,mmio32,0xfe03e000,115200n8
  434. [ 0.000000] x86/split lock detection: warning about user-space split_locks
  435. Return value
  436. ------------
  437. On success `bootflow boot` normally boots into the Operating System and does not
  438. return to U-Boot. If something about the U-Boot processing fails, then the
  439. return value $? is 1. If the boot succeeds but for some reason the Operating
  440. System returns, then $? is 0, indicating success.
  441. For other subcommands, the return value $? is always 0 (true).
  442. .. BootflowStates_: