Module Name: src
Committed By: palle
Date: Mon Jan 10 20:14:54 UTC 2022
Modified Files:
src/sys/arch/sparc64/include: sparc64.h
src/sys/arch/sparc64/sparc64: ofw_machdep.c
Log Message:
sun4v: add function to retrieve hypervisor api version
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/sparc64/include/sparc64.h
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/sparc64/sparc64/ofw_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/sparc64/include/sparc64.h
diff -u src/sys/arch/sparc64/include/sparc64.h:1.14 src/sys/arch/sparc64/include/sparc64.h:1.15
--- src/sys/arch/sparc64/include/sparc64.h:1.14 Sat Jul 3 19:18:55 2021
+++ src/sys/arch/sparc64/include/sparc64.h Mon Jan 10 20:14:54 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: sparc64.h,v 1.14 2021/07/03 19:18:55 palle Exp $ */
+/* $NetBSD: sparc64.h,v 1.15 2022/01/10 20:14:54 palle Exp $ */
/*
* Copyright (C) 1996 Wolfgang Solfrank.
@@ -60,6 +60,7 @@ bool prom_has_stop_other(void);
void prom_startcpu(u_int, void *, u_long);
int prom_startcpu_by_cpuid(u_int, void *, u_long arg);
uint64_t prom_set_sun4v_api_version(uint64_t, uint64_t, uint64_t, uint64_t *);
+uint64_t prom_get_sun4v_api_version(uint64_t, uint64_t *, uint64_t *);
void prom_sun4v_soft_state_supported(void);
#endif /* _MACHINE_SPARC64_H_ */
Index: src/sys/arch/sparc64/sparc64/ofw_machdep.c
diff -u src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.47 src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.48
--- src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.47 Sat Jul 3 19:18:55 2021
+++ src/sys/arch/sparc64/sparc64/ofw_machdep.c Mon Jan 10 20:14:54 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: ofw_machdep.c,v 1.47 2021/07/03 19:18:55 palle Exp $ */
+/* $NetBSD: ofw_machdep.c,v 1.48 2022/01/10 20:14:54 palle Exp $ */
/*
* Copyright (C) 1996 Wolfgang Solfrank.
@@ -34,7 +34,7 @@
#include "opt_multiprocessor.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.47 2021/07/03 19:18:55 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.48 2022/01/10 20:14:54 palle Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -676,7 +676,35 @@ prom_set_sun4v_api_version(uint64_t api_
*supported_minor = args.supported_minor;
return (uint64_t)args.status;
}
+#if 1
+uint64_t
+prom_get_sun4v_api_version(uint64_t api_group, uint64_t* major, uint64_t* minor)
+{
+ static struct {
+ cell_t name;
+ cell_t nargs;
+ cell_t nreturns;
+ cell_t api_group;
+ cell_t status;
+ cell_t major;
+ cell_t minor;
+ } args;
+ args.name = ADR2CELL("SUNW,get-sun4v-api-version");
+ args.nargs = 1;
+ args.nreturns = 3;
+ args.api_group = api_group;
+ args.status = -1;
+ args.major = -1;
+ args.minor = -1;
+
+ openfirmware(&args);
+
+ *major = args.major;
+ *minor = args.minor;
+ return (uint64_t)args.status;
+}
+#endif
void
prom_sun4v_soft_state_supported(void)
{