| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: locore.S,v 1.16 2021/03/07 02:54:06 simonb Exp $ */ | | 1 | /* $NetBSD: locore.S,v 1.17 2021/03/30 01:57:20 rin Exp $ */ |
2 | /* $OpenBSD: locore.S,v 1.4 1997/01/26 09:06:38 rahnds Exp $ */ | | 2 | /* $OpenBSD: locore.S,v 1.4 1997/01/26 09:06:38 rahnds Exp $ */ |
3 | | | 3 | |
4 | /* | | 4 | /* |
5 | * Copyright 2001 Wasabi Systems, Inc. | | 5 | * Copyright 2001 Wasabi Systems, Inc. |
6 | * All rights reserved. | | 6 | * All rights reserved. |
7 | * | | 7 | * |
8 | * Written by Eduardo Horvath and Simon Burge for Wasabi Systems, Inc. | | 8 | * Written by Eduardo Horvath and Simon Burge for Wasabi Systems, Inc. |
9 | * | | 9 | * |
10 | * Redistribution and use in source and binary forms, with or without | | 10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions | | 11 | * modification, are permitted provided that the following conditions |
12 | * are met: | | 12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright | | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | | 14 | * notice, this list of conditions and the following disclaimer. |
| @@ -85,31 +85,26 @@ | | | @@ -85,31 +85,26 @@ |
85 | #include <machine/param.h> | | 85 | #include <machine/param.h> |
86 | #include <machine/psl.h> | | 86 | #include <machine/psl.h> |
87 | #include <machine/trap.h> | | 87 | #include <machine/trap.h> |
88 | #include <machine/asm.h> | | 88 | #include <machine/asm.h> |
89 | | | 89 | |
90 | #include <powerpc/spr.h> | | 90 | #include <powerpc/spr.h> |
91 | #include <powerpc/ibm4xx/spr.h> | | 91 | #include <powerpc/ibm4xx/spr.h> |
92 | #include <powerpc/ibm4xx/dcr4xx.h> | | 92 | #include <powerpc/ibm4xx/dcr4xx.h> |
93 | | | 93 | |
94 | /* Function pointer for requesting board_config_data from openbios*/ | | 94 | /* Function pointer for requesting board_config_data from openbios*/ |
95 | #define BOARD_CFG_FP 0xFFFE0B50 | | 95 | #define BOARD_CFG_FP 0xFFFE0B50 |
96 | | | 96 | |
97 | /* | | 97 | /* |
98 | * Some instructions gas doesn't understand (yet?) | | | |
99 | */ | | | |
100 | #define bdneq bdnzf 2, | | | |
101 | | | | |
102 | /* | | | |
103 | * This symbol is here for the benefit of kvm_mkdb, and is supposed to | | 98 | * This symbol is here for the benefit of kvm_mkdb, and is supposed to |
104 | * mark the start of kernel text. | | 99 | * mark the start of kernel text. |
105 | */ | | 100 | */ |
106 | .text | | 101 | .text |
107 | .globl _C_LABEL(kernel_text) | | 102 | .globl _C_LABEL(kernel_text) |
108 | _C_LABEL(kernel_text): | | 103 | _C_LABEL(kernel_text): |
109 | | | 104 | |
110 | /* | | 105 | /* |
111 | * Startup entry. Note, this must be the first thing in the text | | 106 | * Startup entry. Note, this must be the first thing in the text |
112 | * segment! | | 107 | * segment! |
113 | */ | | 108 | */ |
114 | .text | | 109 | .text |
115 | .globl __start | | 110 | .globl __start |
| @@ -182,26 +177,26 @@ __start_cpu0: | | | @@ -182,26 +177,26 @@ __start_cpu0: |
182 | lis %r7,_C_LABEL(startsym)@ha | | 177 | lis %r7,_C_LABEL(startsym)@ha |
183 | addi %r7,%r7,_C_LABEL(startsym)@l | | 178 | addi %r7,%r7,_C_LABEL(startsym)@l |
184 | stw %r8,0(%r7) | | 179 | stw %r8,0(%r7) |
185 | lis %r7,_C_LABEL(endsym)@ha | | 180 | lis %r7,_C_LABEL(endsym)@ha |
186 | addi %r7,%r7,_C_LABEL(endsym)@l | | 181 | addi %r7,%r7,_C_LABEL(endsym)@l |
187 | stw %r8,0(%r7) | | 182 | stw %r8,0(%r7) |
188 | #endif | | 183 | #endif |
189 | | | 184 | |
190 | /* Set kernel MMU context. */ | | 185 | /* Set kernel MMU context. */ |
191 | li %r0,KERNEL_PID | | 186 | li %r0,KERNEL_PID |
192 | mtpid %r0 | | 187 | mtpid %r0 |
193 | sync | | 188 | sync |
194 | | | 189 | |
195 | INIT_CPUINFO(8,1,9,0) | | 190 | INIT_CPUINFO(%r8,%r1,%r9,%r0) |
196 | mr %r4,%r8 | | 191 | mr %r4,%r8 |
197 | | | 192 | |
198 | lis %r3,__start@ha | | 193 | lis %r3,__start@ha |
199 | addi %r3,%r3,__start@l | | 194 | addi %r3,%r3,__start@l |
200 | | | 195 | |
201 | mr %r6,%r31 /* info_block address */ | | 196 | mr %r6,%r31 /* info_block address */ |
202 | bl _C_LABEL(initppc) | | 197 | bl _C_LABEL(initppc) |
203 | bl _C_LABEL(main) | | 198 | bl _C_LABEL(main) |
204 | | | 199 | |
205 | loop: b loop /* XXX not reached */ | | 200 | loop: b loop /* XXX not reached */ |
206 | | | 201 | |
207 | #include <powerpc/ibm4xx/4xx_locore.S> | | 202 | #include <powerpc/ibm4xx/4xx_locore.S> |