Home | History | Annotate | Line # | Download | only in common
start.S revision 1.1
      1  1.1  tsutsui /*	$NetBSD: start.S,v 1.1 2005/12/29 15:20:09 tsutsui Exp $	*/
      2  1.1  tsutsui 
      3  1.1  tsutsui /*-
      4  1.1  tsutsui  * Copyright (c) 2004 The NetBSD Foundation, Inc.
      5  1.1  tsutsui  * All rights reserved.
      6  1.1  tsutsui  *
      7  1.1  tsutsui  * This code is derived from software contributed to The NetBSD Foundation
      8  1.1  tsutsui  * by UCHIYAMA Yasushi.
      9  1.1  tsutsui  *
     10  1.1  tsutsui  * Redistribution and use in source and binary forms, with or without
     11  1.1  tsutsui  * modification, are permitted provided that the following conditions
     12  1.1  tsutsui  * are met:
     13  1.1  tsutsui  * 1. Redistributions of source code must retain the above copyright
     14  1.1  tsutsui  *    notice, this list of conditions and the following disclaimer.
     15  1.1  tsutsui  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1  tsutsui  *    notice, this list of conditions and the following disclaimer in the
     17  1.1  tsutsui  *    documentation and/or other materials provided with the distribution.
     18  1.1  tsutsui  * 3. All advertising materials mentioning features or use of this software
     19  1.1  tsutsui  *    must display the following acknowledgement:
     20  1.1  tsutsui  *        This product includes software developed by the NetBSD
     21  1.1  tsutsui  *        Foundation, Inc. and its contributors.
     22  1.1  tsutsui  * 4. Neither the name of The NetBSD Foundation nor the names of its
     23  1.1  tsutsui  *    contributors may be used to endorse or promote products derived
     24  1.1  tsutsui  *    from this software without specific prior written permission.
     25  1.1  tsutsui  *
     26  1.1  tsutsui  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     27  1.1  tsutsui  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     28  1.1  tsutsui  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     29  1.1  tsutsui  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     30  1.1  tsutsui  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     31  1.1  tsutsui  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     32  1.1  tsutsui  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     33  1.1  tsutsui  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     34  1.1  tsutsui  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     35  1.1  tsutsui  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     36  1.1  tsutsui  * POSSIBILITY OF SUCH DAMAGE.
     37  1.1  tsutsui  */
     38  1.1  tsutsui 
     39  1.1  tsutsui #include <mips/regdef.h>
     40  1.1  tsutsui 
     41  1.1  tsutsui 	.set	noreorder
     42  1.1  tsutsui 	.set	mips3
     43  1.1  tsutsui 	.align	2
     44  1.1  tsutsui 	.text
     45  1.1  tsutsui /*
     46  1.1  tsutsui  * Entry point.
     47  1.1  tsutsui  */
     48  1.1  tsutsui 	.globl	start
     49  1.1  tsutsui start:
     50  1.1  tsutsui 	nop
     51  1.1  tsutsui 	nop
     52  1.1  tsutsui 	nop
     53  1.1  tsutsui 	nop
     54  1.1  tsutsui 	la	sp, _ftext
     55  1.1  tsutsui 
     56  1.1  tsutsui 	mfc0	t0, $12
     57  1.1  tsutsui 	lui	t1, 0x0040	/* BEV : use IPL's exception vector. */
     58  1.1  tsutsui 	and	t0, t0, t1
     59  1.1  tsutsui 	mtc0	t0, $12
     60  1.1  tsutsui 	nop
     61  1.1  tsutsui 	la	t0, main
     62  1.1  tsutsui 	move	a1, v0
     63  1.1  tsutsui 	jr	t0
     64  1.1  tsutsui 	 move	a2, v1		/* v1 = mainfo */
     65  1.1  tsutsui 1:	b	1b
     66  1.1  tsutsui 	 nop
     67  1.1  tsutsui 	/* NOTREACHED */
     68  1.1  tsutsui 
     69  1.1  tsutsui #if 0 /* ROM putc test */
     70  1.1  tsutsui 	li	a0, 50		/* x-pos */
     71  1.1  tsutsui 2:	li	a2, 90		/* 'Z' */
     72  1.1  tsutsui 	lui	v0, 0xbfc0
     73  1.1  tsutsui 	ori	v0, 0xff60
     74  1.1  tsutsui 	li	a1, 50		/* y-pos */
     75  1.1  tsutsui 	jal	v0
     76  1.1  tsutsui 	 nop
     77  1.1  tsutsui 	b	2b
     78  1.1  tsutsui 	 addiu	a0, a0, 12
     79  1.1  tsutsui 	/* NOTREACHED */
     80  1.1  tsutsui #endif
     81  1.1  tsutsui #if 0 /* Frame buffer (TLB kseg2 mapped by IPL) test */
     82  1.1  tsutsui 	move	a3, zero
     83  1.1  tsutsui 	xori	a3, a3, 0x00
     84  1.1  tsutsui 3:	sll	v0, a3, 0x18
     85  1.1  tsutsui 	sra	a2, v0, 0x18
     86  1.1  tsutsui 	lui	a0, 0xf000
     87  1.1  tsutsui 	move	v1, zero
     88  1.1  tsutsui 	lui	a1, 0x1
     89  1.1  tsutsui 	ori	a1, a1, 0xffff
     90  1.1  tsutsui 2:	sb	a2, 0(a0)
     91  1.1  tsutsui 	addiu	v1, v1, 1
     92  1.1  tsutsui 	slt	v0, a1, v1
     93  1.1  tsutsui 	addiu	a0, a0, 1
     94  1.1  tsutsui 	beqz	v0, 2b
     95  1.1  tsutsui 	 nop
     96  1.1  tsutsui 	xori	a3, a3, 0xff
     97  1.1  tsutsui 	j	3b
     98  1.1  tsutsui 	 nop
     99  1.1  tsutsui 	/* NOTREACHED */
    100  1.1  tsutsui #endif
    101  1.1  tsutsui 
    102  1.1  tsutsui /*
    103  1.1  tsutsui  * void tlb_read(int index, void *)
    104  1.1  tsutsui  */
    105  1.1  tsutsui 	.global	tlb_read
    106  1.1  tsutsui 	.ent	tlb_read
    107  1.1  tsutsui tlb_read:
    108  1.1  tsutsui 	mtc0	a0, $0		/* Index Register */
    109  1.1  tsutsui 	nop; nop; nop; nop;
    110  1.1  tsutsui 	tlbr
    111  1.1  tsutsui 	nop; nop; nop; nop;
    112  1.1  tsutsui 	mfc0	t0, $5		/* PageMask */
    113  1.1  tsutsui 	nop; nop; nop; nop;
    114  1.1  tsutsui 	mfc0	t1, $10		/* EntryHi */
    115  1.1  tsutsui 	nop; nop; nop; nop;
    116  1.1  tsutsui 	mfc0	t2, $2		/* EntryLo0 */
    117  1.1  tsutsui 	nop; nop; nop; nop;
    118  1.1  tsutsui 	mfc0	t3, $3		/* EntryLo1 */
    119  1.1  tsutsui 	nop; nop; nop; nop;
    120  1.1  tsutsui 	sw	t0,  0(a1)
    121  1.1  tsutsui 	sw	t1,  4(a1)
    122  1.1  tsutsui 	sw	t2,  8(a1)
    123  1.1  tsutsui 	sw	t3, 12(a1)
    124  1.1  tsutsui 	jr	ra
    125  1.1  tsutsui 	 nop
    126  1.1  tsutsui 	.end	tlb_read
    127