Mercurial > flash_v2
annotate packages/hal/powerpc/cogent/current/src/cogent.S @ 1777:c16341b1bac6 default tip
* Added execute permissions to files missed in conversion from CVS
| author | alexs |
|---|---|
| date | Mon, 12 Oct 2009 02:26:09 +0100 |
| parents | d2c90368aeef |
| children |
| rev | line source |
|---|---|
| 0 | 1 ##============================================================================= |
| 2 ## | |
| 3 ## cogent.S | |
| 4 ## | |
| 5 ## Cogent board hardware setup | |
| 6 ## | |
| 7 ##============================================================================= | |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
76
diff
changeset
|
8 #####ECOSGPLCOPYRIGHTBEGIN#### |
|
210
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
9 ## ------------------------------------------- |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
10 ## This file is part of eCos, the Embedded Configurable Operating System. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
12 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
13 ## eCos is free software; you can redistribute it and/or modify it under |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
14 ## the terms of the GNU General Public License as published by the Free |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
15 ## Software Foundation; either version 2 or (at your option) any later version. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
16 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
19 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
20 ## for more details. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
21 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
22 ## You should have received a copy of the GNU General Public License along |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
23 ## with eCos; if not, write to the Free Software Foundation, Inc., |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
25 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
26 ## As a special exception, if other files instantiate templates or use macros |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
27 ## or inline functions from this file, or you compile this file and link it |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
28 ## with other works to produce a work based on this file, this file does not |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
29 ## by itself cause the resulting work to be covered by the GNU General Public |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
30 ## License. However the source code for this file must still be made available |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
31 ## in accordance with section (3) of the GNU General Public License. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
32 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
33 ## This exception does not invalidate any other reasons why a work based on |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
34 ## this file might be covered by the GNU General Public License. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
35 ## |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
37 ## at http://sources.redhat.com/ecos/ecos-license/ |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
38 ## ------------------------------------------- |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
76
diff
changeset
|
39 #####ECOSGPLCOPYRIGHTEND#### |
| 0 | 40 ##============================================================================= |
| 41 #######DESCRIPTIONBEGIN#### | |
| 42 ## | |
| 43 ## Author(s): nickg | |
| 44 ## Contributors: nickg | |
| 45 ## Date: 1997-11-11 | |
| 46 ## Purpose: Cogent board hardware setup | |
| 47 ## Description: This file contains any code needed to initialize the | |
| 48 ## hardware on a Cogent PowerPC board. | |
| 49 ## | |
| 50 ######DESCRIPTIONEND#### | |
| 51 ## | |
| 52 ##============================================================================= | |
| 53 | |
| 54 #include <pkgconf/hal.h> | |
| 55 | |
| 2 | 56 #include <cyg/hal/ppc_regs.h> |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
68
diff
changeset
|
57 #include <cyg/hal/arch.inc> |
| 0 | 58 |
| 59 #------------------------------------------------------------------------------ | |
| 60 | |
| 61 .globl hal_hardware_init | |
| 62 hal_hardware_init: | |
| 63 | |
|
68
f74b2666b30d
Merge from eCos master repository on 2000-02-04-07:47:04-GMT
jlarmour
parents:
66
diff
changeset
|
64 #if defined(CYGPKG_HAL_POWERPC_COGENT) && defined(CYGPKG_HAL_POWERPC_MPC8xx) |
| 0 | 65 |
| 2 | 66 # Set up MPC8xx mapping registers for cogent |
| 67 | |
| 68 lwi r3,CYGARC_REG_IMM_BASE # base address of control registers | |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
76
diff
changeset
|
69 mtspr CYGARC_REG_IMMR,r3 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
76
diff
changeset
|
70 |
| 2 | 71 # Set timebase divisor to busclock/16, pitrtc divisor to 512. |
| 72 lwz r4,(CYGARC_REG_IMM_SCCR - CYGARC_REG_IMM_BASE)(r3) | |
| 73 lwi r5,(CYGARC_REG_IMM_SCCR_RTDIV | CYGARC_REG_IMM_SCCR_RTSEL | CYGARC_REG_IMM_SCCR_TBS) | |
| 74 or r4,r4,r5 | |
| 75 stw r4,(CYGARC_REG_IMM_SCCR - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 76 |
| 2 | 77 # Enable TimeBase |
| 78 li r4,CYGARC_REG_IMM_TBSCR_TBE | |
| 79 sth r4,(CYGARC_REG_IMM_TBSCR - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 80 |
| 2 | 81 # Note: I do not know if the timeout is correct/optimal. |
| 82 # Works with the above memory mappings/wait states and | |
| 83 # the PromICE. | |
| 84 # Disable watchdog, enable bus monitor, timeout after 255*8 cycles | |
| 85 lwi r4,(CYGARC_REG_IMM_SYPCR_BMT_MASK | CYGARC_REG_IMM_SYPCR_BME) | |
| 86 stw r4,(CYGARC_REG_IMM_SYPCR - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 87 |
| 88 # Set CS0 to | |
| 89 # base addr 0xfff00000 | |
| 90 # wait states 4 | |
| 91 # size 1M | |
| 92 # Covers ROM | |
| 2 | 93 # Note: After a reset code is currently executing via the default |
| 94 # mapping defined in bank 0. This bank must remain valid while | |
| 95 # it is being configured. | |
| 96 lwi r4,(0xfff00000 | CYGARC_REG_IMM_BR_PS_16 | CYGARC_REG_IMM_BR_V) | |
| 97 stw r4,(CYGARC_REG_IMM_BR0 - CYGARC_REG_IMM_BASE)(r3) | |
| 98 lwi r4,(0xfff00000 | CYGARC_REG_IMM_OR_BI | 4 << CYGARC_REG_IMM_OR_SCY_SHIFT) | |
| 99 stw r4,(CYGARC_REG_IMM_OR0 - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 100 |
| 101 # Set CS1 to | |
| 102 # base addr 0x00000000 | |
| 103 # external ACK | |
| 104 # size 64M | |
| 105 # Covers DRAM and slot0 | |
| 2 | 106 lwi r4,(0xfc000000 | CYGARC_REG_IMM_OR_SETA) |
| 107 stw r4,(CYGARC_REG_IMM_OR1 - CYGARC_REG_IMM_BASE)(r3) | |
| 108 lwi r4,(0x00000000 | CYGARC_REG_IMM_BR_PS_32 | CYGARC_REG_IMM_BR_V) | |
| 109 stw r4,(CYGARC_REG_IMM_BR1 - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 110 |
| 111 # Set CS2 to | |
| 112 # base addr 0x04000000 | |
| 113 # external ACK | |
| 114 # size 64M | |
| 115 # slot1 and slot2 | |
| 2 | 116 lwi r4,(0xfc000000 | CYGARC_REG_IMM_OR_SETA) |
| 117 stw r4,(CYGARC_REG_IMM_OR2 - CYGARC_REG_IMM_BASE)(r3) | |
| 118 lwi r4,(0x04000000 | CYGARC_REG_IMM_BR_PS_32 | CYGARC_REG_IMM_BR_V) | |
| 119 stw r4,(CYGARC_REG_IMM_BR2 - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 120 |
| 121 # Set CS3 to | |
| 122 # base addr 0x0e000000 | |
| 123 # exernal ack | |
| 124 # size 32M | |
| 125 # covers IO registers | |
| 2 | 126 lwi r4,(0xfe000000 | CYGARC_REG_IMM_OR_BI | CYGARC_REG_IMM_OR_SETA) |
| 127 stw r4,(CYGARC_REG_IMM_OR3 - CYGARC_REG_IMM_BASE)(r3) | |
| 128 lwi r4,(0x0e000000 | CYGARC_REG_IMM_BR_PS_32 | CYGARC_REG_IMM_BR_V) | |
| 129 stw r4,(CYGARC_REG_IMM_BR3 - CYGARC_REG_IMM_BASE)(r3) | |
| 0 | 130 |
| 131 #endif | |
| 132 | |
| 2 | 133 sync |
| 0 | 134 blr |
| 135 | |
| 136 #------------------------------------------------------------------------------ | |
| 137 # end of cogent.S |
