Sat Aug 26 20:25:00 2017 UTC ()
sun4v: Avoid touching the %tick_cmpr register which is not present on never systems (Oracle SPARC Architecture 2011 and beyond). Based on code from OpenBSD locore.s revision 1.177. Tested on both sun4u (qemu and USIII) and sun4v (qemu and T5-2). ok martin@


(palle)
diff -r1.411 -r1.412 src/sys/arch/sparc64/sparc64/locore.s

cvs diff -r1.411 -r1.412 src/sys/arch/sparc64/sparc64/locore.s (expand / switch to unified diff)

--- src/sys/arch/sparc64/sparc64/locore.s 2017/05/06 21:46:31 1.411
+++ src/sys/arch/sparc64/sparc64/locore.s 2017/08/26 20:25:00 1.412
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: locore.s,v 1.411 2017/05/06 21:46:31 palle Exp $ */ 1/* $NetBSD: locore.s,v 1.412 2017/08/26 20:25:00 palle Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006-2010 Matthew R. Green 4 * Copyright (c) 2006-2010 Matthew R. Green
5 * Copyright (c) 1996-2002 Eduardo Horvath 5 * Copyright (c) 1996-2002 Eduardo Horvath
6 * Copyright (c) 1996 Paul Kranenburg 6 * Copyright (c) 1996 Paul Kranenburg
7 * Copyright (c) 1996 7 * Copyright (c) 1996
8 * The President and Fellows of Harvard College. 8 * The President and Fellows of Harvard College.
9 * All rights reserved. 9 * All rights reserved.
10 * Copyright (c) 1992, 1993 10 * Copyright (c) 1992, 1993
11 * The Regents of the University of California. 11 * The Regents of the University of California.
12 * All rights reserved. 12 * All rights reserved.
13 * 13 *
14 * This software was developed by the Computer Systems Engineering group 14 * This software was developed by the Computer Systems Engineering group
@@ -5109,29 +5109,26 @@ _C_LABEL(endtrapcode): @@ -5109,29 +5109,26 @@ _C_LABEL(endtrapcode):
5109 * Kernel entry point. 5109 * Kernel entry point.
5110 * 5110 *
5111 * The contract between bootloader and kernel is: 5111 * The contract between bootloader and kernel is:
5112 * 5112 *
5113 * %o0 OpenFirmware entry point, to keep Sun's updaters happy 5113 * %o0 OpenFirmware entry point, to keep Sun's updaters happy
5114 * %o1 Address of boot information vector (see bootinfo.h) 5114 * %o1 Address of boot information vector (see bootinfo.h)
5115 * %o2 Length of the vector, in bytes 5115 * %o2 Length of the vector, in bytes
5116 * %o3 OpenFirmware entry point, to mimic Sun bootloader behavior 5116 * %o3 OpenFirmware entry point, to mimic Sun bootloader behavior
5117 * %o4 OpenFirmware, to meet earlier NetBSD kernels expectations 5117 * %o4 OpenFirmware, to meet earlier NetBSD kernels expectations
5118 */ 5118 */
5119 .align 8 5119 .align 8
5120start: 5120start:
5121dostart: 5121dostart:
5122 mov 1, %g1 
5123 sllx %g1, 63, %g1 
5124 wr %g1, TICK_CMPR ! XXXXXXX clear and disable %tick_cmpr for now 
5125 /* 5122 /*
5126 * Startup. 5123 * Startup.
5127 * 5124 *
5128 * The Sun FCODE bootloader is nice and loads us where we want 5125 * The Sun FCODE bootloader is nice and loads us where we want
5129 * to be. We have a full set of mappings already set up for us. 5126 * to be. We have a full set of mappings already set up for us.
5130 * 5127 *
5131 * I think we end up having an entire 16M allocated to us. 5128 * I think we end up having an entire 16M allocated to us.
5132 * 5129 *
5133 * We enter with the prom entry vector in %o0, dvec in %o1, 5130 * We enter with the prom entry vector in %o0, dvec in %o1,
5134 * and the bootops vector in %o2. 5131 * and the bootops vector in %o2.
5135 * 5132 *
5136 * All we need to do is: 5133 * All we need to do is:
5137 * 5134 *