On Fri, Aug 12, 2022 at 09:41:59AM +0000, Klemens Nanni wrote: > Here's the adapted diff for arm64 minus manual bits to avoid churn for > now. > > installboot(8) needs softraid(4) support (see my diff on tech@), but > besides that, root on passphrase 1C softraid on arm64 works as expected: > > # df / > Filesystem 512-blocks Used Avail Capacity Mounted on > /dev/sd4a 2331356 161952 2052840 7% / > # bioctl sd4 > Volume Status Size Device > softraid0 0 Online 10741585920 sd4 RAID1C > 0 Online 10741585920 0:0.0 noencl <sd1a> > 1 Online 10741585920 0:1.0 noencl <sd3a>
Great! Thank you for covering additional platforms. ok stsp@ > Index: conf.c > =================================================================== > RCS file: /cvs/src/sys/arch/arm64/stand/efiboot/conf.c,v > retrieving revision 1.39 > diff -u -p -r1.39 conf.c > --- conf.c 30 Jul 2022 21:06:54 -0000 1.39 > +++ conf.c 11 Aug 2022 14:42:01 -0000 > @@ -46,7 +46,7 @@ > #include "efipxe.h" > #include "softraid_arm64.h" > > -const char version[] = "1.11"; > +const char version[] = "1.12"; > int debug = 0; > > struct fs_ops file_system[] = { > Index: softraid_arm64.c > =================================================================== > RCS file: /cvs/src/sys/arch/arm64/stand/efiboot/softraid_arm64.c,v > retrieving revision 1.3 > diff -u -p -r1.3 softraid_arm64.c > --- softraid_arm64.c 2 Jun 2021 22:44:27 -0000 1.3 > +++ softraid_arm64.c 11 Aug 2022 14:43:52 -0000 > @@ -285,6 +285,7 @@ srprobe(void) > 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) > @@ -341,7 +342,7 @@ sr_strategy(struct sr_boot_volume *bv, i > /* XXX - If I/O failed we should try another chunk... */ > return dip->strategy(dip, rw, blk, size, buf, rsize); > > - } else if (bv->sbv_level == 'C') { > + } else if (bv->sbv_level == 'C' || bv->sbv_level == 0x1C) { > > /* Select first online chunk. */ > SLIST_FOREACH(bc, &bv->sbv_chunks, sbc_link) > @@ -604,7 +605,8 @@ sropen(struct open_file *f, ...) > return EADAPT; > } > > - 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; > > >