1 /*
2 * Copyright (c) 1996, by Steve Passe
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. The name of the developer may NOT be used to endorse or promote products
11 * derived from this software without specific prior written permission.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
25 * $FreeBSD: releng/5.3/sys/i386/include/smptests.h 122771 2003-11-16 00:55:54Z bde $
26 */
27
28 #ifndef _MACHINE_SMPTESTS_H_
29 #define _MACHINE_SMPTESTS_H_
30
31
32 /*
33 * Various 'tests in progress' and configuration parameters.
34 */
35
36 /*
37 * Send CPUSTOP IPI for stop/restart of other CPUs on DDB break.
38 #define VERBOSE_CPUSTOP_ON_DDBBREAK
39 */
40 #define CPUSTOP_ON_DDBBREAK
41
42 /*
43 * Misc. counters.
44 *
45 #define COUNT_XINVLTLB_HITS
46 */
47
48 /*
49 * Address of POST hardware port.
50 * Defining this enables POSTCODE macros.
51 *
52 #define POST_ADDR 0x80
53 */
54
55
56 /*
57 * POST hardware macros.
58 */
59 #ifdef POST_ADDR
60 #define ASMPOSTCODE_INC \
61 pushl %eax ; \
62 movl _current_postcode, %eax ; \
63 incl %eax ; \
64 andl $0xff, %eax ; \
65 movl %eax, _current_postcode ; \
66 outb %al, $POST_ADDR ; \
67 popl %eax
68
69 /*
70 * Overwrite the current_postcode value.
71 */
72 #define ASMPOSTCODE(X) \
73 pushl %eax ; \
74 movl $X, %eax ; \
75 movl %eax, _current_postcode ; \
76 outb %al, $POST_ADDR ; \
77 popl %eax
78
79 /*
80 * Overwrite the current_postcode low nibble.
81 */
82 #define ASMPOSTCODE_LO(X) \
83 pushl %eax ; \
84 movl _current_postcode, %eax ; \
85 andl $0xf0, %eax ; \
86 orl $X, %eax ; \
87 movl %eax, _current_postcode ; \
88 outb %al, $POST_ADDR ; \
89 popl %eax
90
91 /*
92 * Overwrite the current_postcode high nibble.
93 */
94 #define ASMPOSTCODE_HI(X) \
95 pushl %eax ; \
96 movl _current_postcode, %eax ; \
97 andl $0x0f, %eax ; \
98 orl $(X<<4), %eax ; \
99 movl %eax, _current_postcode ; \
100 outb %al, $POST_ADDR ; \
101 popl %eax
102 #else
103 #define ASMPOSTCODE_INC
104 #define ASMPOSTCODE(X)
105 #define ASMPOSTCODE_LO(X)
106 #define ASMPOSTCODE_HI(X)
107 #endif /* POST_ADDR */
108
109
110 #endif /* _MACHINE_SMPTESTS_H_ */
Cache object: 4fb41d24bc5e05a34f776e80edc75236
|