Fix up mix of man(7)/mdoc(7).
[netbsd-mini2440.git] / sys / arch / newsmips / stand / bootxx / start.S
blob79fef5f39e9244c060a03a766338c7b138dc4c52
1 /*      $NetBSD: start.S,v 1.1 1999/07/08 11:48:07 tsubai Exp $ */
3 /*-
4  * Copyright (C) 1999 Tsubai Masanari.  All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. The name of the author may not be used to endorse or promote products
15  *    derived from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
29 #include <mips/asm.h>
30 #include <mips/cpuregs.h>
32         .text
33         .align  2
34         .set    noreorder
36         .globl  _start
37 _start:
38         b       1f
39         nop
40         .word   0x19900106              /* version? */
41         .word   0
43         /* disklabel here */
44         .space  0x1f0
46 1:      bgez    a3, 2f                  /* load address */
47         lui     v0, 0xa000              /* 0xa0000000 for non-APbus */
48         ori     v0, 0x1000              /* 0xa0001000 for APbus */
49 2:      la      v1, _start              /* relocate myself */
50         la      t1, _end
51 3:      lw      t0, 0(v0)
52         addu    v1, 4
53         sw      t0, -4(v1)
54         bne     v1, t1, 3b
55         addu    v0, 4
56         bgez    a3, 4f
57         nop
58         lw      t0, 16(sp)
59         sw      t0, _sip
60 4:      li      sp, 0xa0001000
61         la      v0, bootxx
62         j       v0
63         nop