Fix reconstructed softraid bootline
authorkn <kn@openbsd.org>
Wed, 27 Jul 2022 12:32:03 +0000 (12:32 +0000)
committerkn <kn@openbsd.org>
Wed, 27 Jul 2022 12:32:03 +0000 (12:32 +0000)
commit6a7d72ef2602f5fecb6889b379d0842f75b6dbec
tree13a2d312379b014efaf8c35cdb42ba59d1a573a0
parent94c97b180b58fa07bb00c9acf6650c4aece2b04e
Fix reconstructed softraid bootline

With softraid, OBP's boot-file variable aka. bootline may contain the
sofraid volume name and kernel file name delimited by a double colon, e.g.
"sr0", "sr0a", "sr0:", "sr0a:", "sr0:/bsd" or "sr0a:/bsd".

ofwboot parses this string, may fill in optional partition number ("a")
and/or optional kernel file name ("/bsd") and always prints the fully
qualified string reconstructed from parts as "Booting <bootline>":
{0} ok boot my-devalias sr0
[...]
Boot device: /virtual-devices@100/channel-devices@200/disk@0  File and args: sr0
[...]
Booting sr0:a/bsd
[...]

{0} ok boot my-devalias sr0a:/bsd
[...]
Boot device: /virtual-devices@100/channel-devices@200/disk@0  File and args: sr0a:/bsd
[...]
Booting sr0:a/bsd
[...]

Swap partition and delimiter to fix the reconstructed string, making it
suitable for copy/paste:
Booting sr0a:/bsd

This has not been an issue since the reconstructed string is only printed
and not (re)used anywhere.

OK kettenis
sys/arch/sparc64/stand/ofwboot/ofdev.c