Module Name: src Committed By: thorpej Date: Tue Jan 2 16:48:02 UTC 2024
Modified Files: src/sys/arch/virt68k/conf: std.virt68k src/sys/arch/virt68k/virt68k: autoconf.c Log Message: If the loader passed us a RAM disk, use it as the root file system. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/virt68k/conf/std.virt68k cvs rdiff -u -r1.1 -r1.2 src/sys/arch/virt68k/virt68k/autoconf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/virt68k/conf/std.virt68k diff -u src/sys/arch/virt68k/conf/std.virt68k:1.1 src/sys/arch/virt68k/conf/std.virt68k:1.2 --- src/sys/arch/virt68k/conf/std.virt68k:1.1 Tue Jan 2 07:40:59 2024 +++ src/sys/arch/virt68k/conf/std.virt68k Tue Jan 2 16:48:01 2024 @@ -1,4 +1,4 @@ -# $NetBSD: std.virt68k,v 1.1 2024/01/02 07:40:59 thorpej Exp $ +# $NetBSD: std.virt68k,v 1.2 2024/01/02 16:48:01 thorpej Exp $ # # Options/devices that all virt68ks should have # @@ -8,3 +8,8 @@ include "conf/std" # MI standard opti include "arch/m68k/conf/std.m68k" # m68k standard options options EXEC_AOUT # support for exec'ing a.out + +# initrd support +options MEMORY_DISK_HOOKS +options MEMORY_DISK_DYNAMIC +pseudo-device md Index: src/sys/arch/virt68k/virt68k/autoconf.c diff -u src/sys/arch/virt68k/virt68k/autoconf.c:1.1 src/sys/arch/virt68k/virt68k/autoconf.c:1.2 --- src/sys/arch/virt68k/virt68k/autoconf.c:1.1 Tue Jan 2 07:41:02 2024 +++ src/sys/arch/virt68k/virt68k/autoconf.c Tue Jan 2 16:48:01 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.c,v 1.1 2024/01/02 07:41:02 thorpej Exp $ */ +/* $NetBSD: autoconf.c,v 1.2 2024/01/02 16:48:01 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -45,7 +45,9 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.1 2024/01/02 07:41:02 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.2 2024/01/02 16:48:01 thorpej Exp $"); + +#include "opt_md.h" #include <sys/param.h> #include <sys/systm.h> @@ -54,6 +56,11 @@ __KERNEL_RCSID(0, "$NetBSD: autoconf.c,v #include <sys/reboot.h> #include <sys/device.h> +#ifdef MEMORY_DISK_DYNAMIC +#include <dev/md.h> +#endif + +#include <machine/bootinfo.h> #include <machine/intr.h> #include <virt68k/dev/mainbusvar.h> @@ -77,7 +84,21 @@ cpu_configure(void) void cpu_rootconf(void) { - /* XXX handle RAM disk on kernel command line. */ +#ifdef MEMORY_DISK_DYNAMIC + struct bi_record *bi; + + /* + * Look for a RAMDISK bootinfo record. If we have one, + * hook is up to the memory disk and set it as the root + * file system. + */ + bi = bootinfo_find(BI_RAMDISK); + if (bi != NULL) { + struct bi_mem_info *rd = bootinfo_dataptr(bi); + md_root_setconf((void *)rd->mem_addr, rd->mem_size); + } +#endif /* MEMORY_DISK_DYNAMIC */ + rootconf(); }