-/* $OpenBSD: boot.c,v 1.39 2022/08/04 09:16:53 kn Exp $ */
+/* $OpenBSD: boot.c,v 1.40 2022/09/02 08:13:03 kn Exp $ */
/* $NetBSD: boot.c,v 1.3 2001/05/31 08:55:19 mrg Exp $ */
/*
* Copyright (c) 1997, 1999 Eduardo E. Horvath. All rights reserved.
return ENODEV;
}
- if (bv->sbv_level == 'C' && bv->sbv_keys == NULL)
+ if ((bv->sbv_level == 'C' || bv->sbv_level == 0x1C) &&
+ bv->sbv_keys == NULL)
if (sr_crypto_unlock_volume(bv) != 0)
return EPERM;
-/* $OpenBSD: softraid_sparc64.c,v 1.5 2020/12/09 18:10:19 krw Exp $ */
+/* $OpenBSD: softraid_sparc64.c,v 1.6 2022/09/02 08:13:03 kn Exp $ */
/*
* Copyright (c) 2012 Joel Sing <jsing@openbsd.org>
break;
case 1:
+ case 0x1C:
if (bv->sbv_chunk_no == bv->sbv_chunks_found)
bv->sbv_state = BIOC_SVONLINE;
else if (bv->sbv_chunks_found > 0)
{
struct sr_boot_chunk *bc = NULL;
- if (bv->sbv_level == 1 || bv->sbv_level == 'C' ) { /* RAID1 or CRYPTO */
+ if (bv->sbv_level == 1 || bv->sbv_level == 'C' ||
+ bv->sbv_level == 0x1C) {
/* Select first online chunk. */
SLIST_FOREACH(bc, &bv->sbv_chunks, sbc_link)
if (bc->sbc_state == BIOC_SDONLINE)
err = strategy(&ofdev, rw, blk, size, buf, rsize);
return err;
- } else if (bv->sbv_level == 'C') {
+ } else if (bv->sbv_level == 'C' || bv->sbv_level == 0x1C) {
/* XXX - select correct key. */
aes_xts_setkey(&ctx, (u_char *)bv->sbv_keys, 64);