[BACK]Return to start.S CVS log [TXT][DIR] Up to [local] / sys / arch / alpha / stand

Annotation of sys/arch/alpha/stand/start.S, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: start.S,v 1.5 2005/08/29 11:20:55 mickey Exp $        */
                      2: /*     $NetBSD: start.S,v 1.4 1996/10/17 02:50:40 cgd Exp $    */
                      3:
                      4: /*
                      5:  * Mach Operating System
                      6:  * Copyright (c) 1992 Carnegie Mellon University
                      7:  * All Rights Reserved.
                      8:  *
                      9:  * Permission to use, copy, modify and distribute this software and its
                     10:  * documentation is hereby granted, provided that both the copyright
                     11:  * notice and this permission notice appear in all copies of the
                     12:  * software, derivative works or modified versions, and any portions
                     13:  * thereof, and that both notices appear in supporting documentation.
                     14:  *
                     15:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     16:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     17:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     18:  *
                     19:  * Carnegie Mellon requests users of this software to return to
                     20:  *
                     21:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     22:  *  School of Computer Science
                     23:  *  Carnegie Mellon University
                     24:  *  Pittsburgh PA 15213-3890
                     25:  *
                     26:  * any improvements or extensions that they make and grant Carnegie Mellon
                     27:  * the rights to redistribute these changes.
                     28:  */
                     29:
                     30: #include "include/asm.h"
                     31:
                     32: /*
                     33:  * start --
                     34:  *     Entry point for boot/standalone programs.
                     35:  *
                     36:  * Arguments:
                     37:  *     a0                              long (first free physical page)
                     38:  *
                     39:  * This is where the prom comes to.  Leaves all exception and interrupts
                     40:  * to prom, runs off prom's stack too.  No return values.
                     41:  */
                     42:        .text
                     43:        .set    noreorder               /* don't reorder instructions */
                     44:
                     45: #define ENTRY_FRAME    32
                     46:
                     47: NESTED(start, 1, ENTRY_FRAME, ra, 0, 0)
                     48:        br      pv,Lstartgp
                     49: Lstartgp:
                     50:        LDGP(pv)
                     51:
                     52:        lda     sp,start
                     53: #ifdef PRIMARY_BOOTBLOCK
                     54:        lda     sp,0x30000-ENTRY_FRAME(sp)
                     55: #else
                     56:        lda     sp,-ENTRY_FRAME(sp)     /* start stack below text */
                     57: #endif
                     58:
                     59:        lda     a0,_edata
                     60:        lda     a1,_end
                     61:        subq    a1,a0,a1
                     62:        CALL(bzero)
                     63:
                     64:        CALL(main)                      /* transfer to C */
                     65:
                     66: XLEAF(_rtt, 0)
                     67: XLEAF(halt, 0)
                     68:        call_pal PAL_halt               /* halt if we ever return */
                     69: END(start)
                     70:
                     71: /*
                     72:  * Dummy routine for GCC2.
                     73:  */
                     74: LEAF(__main,0)
                     75:        RET
                     76: END(__main)
                     77:
                     78: /*
                     79:  * cpu_number
                     80:  *     Return the cpu number, using the whami instruction.
                     81:  */
                     82: LEAF(cpu_number, 0)
                     83:        call_pal PAL_VMS_mfpr_whami
                     84:        RET
                     85: END(cpu_number)

CVSweb