Index: sys/arch/sparc/stand/ofwboot/Locore.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc/stand/ofwboot/Locore.c,v retrieving revision 1.16 diff -u -r1.16 Locore.c --- sys/arch/sparc/stand/ofwboot/Locore.c 15 Sep 2017 13:25:34 -0000 1.16 +++ sys/arch/sparc/stand/ofwboot/Locore.c 26 Dec 2020 13:26:37 -0000 @@ -306,12 +306,14 @@ if (openfirmware(&args) == -1 || args.handle == 0) return -1; + printf("OF_open(%s) returning %ld\n", dname, args.handle); return args.handle; } void OF_close(int handle) { + printf("OF_close(%u)\n", handle); struct { cell_t name; cell_t nargs; Index: sys/arch/sparc64/conf/GENERIC =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/conf/GENERIC,v retrieving revision 1.233 diff -u -r1.233 GENERIC --- sys/arch/sparc64/conf/GENERIC 30 Oct 2020 06:44:37 -0000 1.233 +++ sys/arch/sparc64/conf/GENERIC 26 Dec 2020 13:26:37 -0000 @@ -247,6 +247,7 @@ # Virtual devices for sun4v systems. vrtc0 at vbus? +vofdisk* at vbus? vdsk* at cbus? #### Serial port configuration Index: sys/arch/sparc64/conf/files.sparc64 =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/conf/files.sparc64,v retrieving revision 1.163 diff -u -r1.163 files.sparc64 --- sys/arch/sparc64/conf/files.sparc64 21 Oct 2020 13:31:52 -0000 1.163 +++ sys/arch/sparc64/conf/files.sparc64 26 Dec 2020 13:26:37 -0000 @@ -332,3 +332,10 @@ device vdsk: ldc, scsi attach vdsk at cbus file arch/sparc64/dev/vdsk.c vdsk + +# Virtual of disk +device vofdisk: disk +attach vofdisk at vbus +file arch/sparc64/dev/vofdisk.c vofdisk needs-flag + + Index: sys/arch/sparc64/conf/majors.sparc64 =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/conf/majors.sparc64,v retrieving revision 1.39 diff -u -r1.39 majors.sparc64 --- sys/arch/sparc64/conf/majors.sparc64 4 Apr 2020 16:06:16 -0000 1.39 +++ sys/arch/sparc64/conf/majors.sparc64 26 Dec 2020 13:26:37 -0000 @@ -119,6 +119,7 @@ device-major joy char 137 joy #device-major obsolete char 138 obsolete (opencrypto) +device-major vofdisk char 140 block 27 vofdisk # Majors up to 143 are reserved for machine-dependent drivers. # New machine-independent driver majors are assigned in Index: sys/arch/sparc64/sparc64/autoconf.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/autoconf.c,v retrieving revision 1.227 diff -u -r1.227 autoconf.c --- sys/arch/sparc64/sparc64/autoconf.c 29 Oct 2020 06:47:38 -0000 1.227 +++ sys/arch/sparc64/sparc64/autoconf.c 26 Dec 2020 13:26:37 -0000 @@ -387,6 +387,7 @@ return; strcpy(ofbootpath, sbuf); } + printf("bootpath: %s\n", ofbootpath); DPRINTF(ACDB_BOOTDEV, ("bootpath: %s\n", ofbootpath)); ofbootpackage = prom_finddevice(ofbootpath); @@ -1444,6 +1445,15 @@ } } + /* More sun4v special stuff - booting from a vdisk (qemu) */ + if (device_is_a(dev, "vofdisk")) { + booted_device = dev; + DPRINTF(ACDB_BOOTDEV, ("booted_device: %s\n", + device_xname(dev))); + return; + } + + } static void