Module Name:    src
Committed By:   thorpej
Date:           Tue Jan  2 17:13:03 UTC 2024

Modified Files:
        src/sys/arch/virt68k/include: bootinfo.h
        src/sys/arch/virt68k/virt68k: bootinfo.c machdep.c

Log Message:
Detect a RND seed passed in by the loader.
XXX We don't actually *do* anything with it yet.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/virt68k/include/bootinfo.h
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/virt68k/virt68k/bootinfo.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/virt68k/virt68k/machdep.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/include/bootinfo.h
diff -u src/sys/arch/virt68k/include/bootinfo.h:1.2 src/sys/arch/virt68k/include/bootinfo.h:1.3
--- src/sys/arch/virt68k/include/bootinfo.h:1.2	Tue Jan  2 16:59:14 2024
+++ src/sys/arch/virt68k/include/bootinfo.h	Tue Jan  2 17:13:03 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: bootinfo.h,v 1.2 2024/01/02 16:59:14 thorpej Exp $	*/
+/*	$NetBSD: bootinfo.h,v 1.3 2024/01/02 17:13:03 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -154,6 +154,7 @@ void			bootinfo_enumerate(bool (*)(struc
 bool			bootinfo_addr_is_console(paddr_t);
 
 void			bootinfo_setup_initrd(void);
+void			bootinfo_setup_rndseed(void);
 
 void			bootinfo_md_cnattach(void (*)(bus_space_tag_t,
 						      bus_space_handle_t),

Index: src/sys/arch/virt68k/virt68k/bootinfo.c
diff -u src/sys/arch/virt68k/virt68k/bootinfo.c:1.2 src/sys/arch/virt68k/virt68k/bootinfo.c:1.3
--- src/sys/arch/virt68k/virt68k/bootinfo.c:1.2	Tue Jan  2 16:59:14 2024
+++ src/sys/arch/virt68k/virt68k/bootinfo.c	Tue Jan  2 17:13:03 2024
@@ -1,4 +1,4 @@
-/*      $NetBSD: bootinfo.c,v 1.2 2024/01/02 16:59:14 thorpej Exp $        */      
+/*      $NetBSD: bootinfo.c,v 1.3 2024/01/02 17:13:03 thorpej Exp $        */      
 
 /*-
  * Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -30,12 +30,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bootinfo.c,v 1.2 2024/01/02 16:59:14 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bootinfo.c,v 1.3 2024/01/02 17:13:03 thorpej Exp $");
 
 #include "opt_md.h"
 
 #include <sys/types.h>
 #include <sys/cpu.h>
+#include <sys/rnd.h>
 
 #ifdef MEMORY_DISK_DYNAMIC
 #include <dev/md.h>
@@ -293,3 +294,23 @@ bootinfo_setup_initrd(void)
 	}
 #endif /* MEMORY_DISK_DYNAMIC */
 }
+
+/*
+ * bootinfo_setup_rndseed --
+ *	Check for a BI_RNG_SEED record and, if found, use it to
+ *	seed the kenrnel entropy pool.
+ */
+void
+bootinfo_setup_rndseed(void)
+{
+	struct bi_record *bi = bootinfo_find(BI_RNG_SEED);
+	if (bi != NULL) {
+		struct bi_data *rnd = bootinfo_dataptr(bi);
+#if 0 /* XXX */
+		rnd_seed(rnd->data_bytes, rnd->data_length);
+#else
+		printf("WARNING: ignored %u bytes of RND_SEED data @ %p\n",
+		    rnd->data_length, rnd->data_bytes);
+#endif
+	}
+}

Index: src/sys/arch/virt68k/virt68k/machdep.c
diff -u src/sys/arch/virt68k/virt68k/machdep.c:1.1 src/sys/arch/virt68k/virt68k/machdep.c:1.2
--- src/sys/arch/virt68k/virt68k/machdep.c:1.1	Tue Jan  2 07:41:02 2024
+++ src/sys/arch/virt68k/virt68k/machdep.c	Tue Jan  2 17:13:03 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.1 2024/01/02 07:41:02 thorpej Exp $	*/
+/*	$NetBSD: machdep.c,v 1.2 2024/01/02 17:13:03 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.1 2024/01/02 07:41:02 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.2 2024/01/02 17:13:03 thorpej Exp $");
 
 #include "opt_ddb.h"
 #include "opt_m060sp.h"
@@ -204,6 +204,9 @@ virt68k_init(void)
 	}
 	initmsgbuf(msgbufaddr, round_page(MSGBUFSIZE));
 	pmap_update(pmap_kernel());
+
+	/* Check for RND seed from the loader. */
+	bootinfo_setup_rndseed();
 }
 
 /*

Reply via email to