OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [sparclite/] [sim/] [current/] [include/] [halboot.si] - Blame information for rev 856

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_HALBOOT_SI /* -*-asm-*- */
2
#define CYGONCE_HAL_HALBOOT_SI
3
// ====================================================================
4
//
5
//      /halboot.si
6
//
7
//      HAL bootup platform-oriented code (assembler)
8
//
9
// ====================================================================
10
// ####ECOSGPLCOPYRIGHTBEGIN####
11
// -------------------------------------------
12
// This file is part of eCos, the Embedded Configurable Operating System.
13
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
14
//
15
// eCos is free software; you can redistribute it and/or modify it under
16
// the terms of the GNU General Public License as published by the Free
17
// Software Foundation; either version 2 or (at your option) any later
18
// version.
19
//
20
// eCos is distributed in the hope that it will be useful, but WITHOUT
21
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23
// for more details.
24
//
25
// You should have received a copy of the GNU General Public License
26
// along with eCos; if not, write to the Free Software Foundation, Inc.,
27
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
28
//
29
// As a special exception, if other files instantiate templates or use
30
// macros or inline functions from this file, or you compile this file
31
// and link it with other works to produce a work based on this file,
32
// this file does not by itself cause the resulting work to be covered by
33
// the GNU General Public License. However the source code for this file
34
// must still be made available in accordance with section (3) of the GNU
35
// General Public License v2.
36
//
37
// This exception does not invalidate any other reasons why a work based
38
// on this file might be covered by the GNU General Public License.
39
// -------------------------------------------
40
// ####ECOSGPLCOPYRIGHTEND####
41
// ====================================================================
42
//#####DESCRIPTIONBEGIN####
43
//
44
// Author(s):           hmt
45
// Contributors:        hmt
46
// Date:                1999-02-01
47
// Purpose:             Bootup code, platform oriented.
48
// Description:
49
//
50
//####DESCRIPTIONEND####
51
//
52
// ====================================================================
53
 
54
// External Platform Initial Setup
55
//
56
// This should set up RAM and caches, and calm down any external
57
// interrupt sources.
58
//
59
// It is just plain included in vectors.S
60
//
61
// RAM has not yet been touched at all; in fact all you have is a
62
// register window selected.
63
 
64
 
65
        ! Empty macro for debugging vectors.S
66
        .macro led val
67
        .endm
68
 
69
        ! First of all - before setting up the stack - set
70
        ! the available memory to the full 4Mb;
71
#define MEC_MEMCFG (0x01f80010)
72
        sethi   %hi( MEC_MEMCFG ), %g1
73
        ld      [ %g1 + %lo(MEC_MEMCFG) ], %g2
74
        mov     7, %g3
75
        sll     %g3, 10, %g3    ! Bits 10,11,12 are of interest
76
        andn    %g2, %g3, %g2
77
        mov     4, %g3
78
        sll     %g3, 10, %g3    ! Bits 10,11,12 are of interest
79
        or      %g2, %g3, %g2   ! Shift 256k left 4 times to
80
        st      %g2, [ %g1 + %lo(MEC_MEMCFG) ]
81
                                        ! ...give memsize of 4Mb
82
 
83
        ! then copy the branch instructions into the vector
84
        rd      %tbr, %g1
85
        andn    %g1, 0xfff, %g1         ! clear non-address bits
86
        sethi   %hi(real_vector_instructions), %l0
87
        or      %l0, %lo(real_vector_instructions), %l0
88
        ld      [ %l0 ], %l1
89
        st      %l1, [ %g1 ]            ! into the vector
90
        ld      [ %l0 + 4 ], %l1
91
        st      %l1, [ %g1 + 4 ]        ! into the vector
92
 
93
#endif  /* CYGONCE_HAL_HALBOOT_SI */
94
/* EOF halboot.si */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.