summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mvme2307/NOTES
blob: 4623e80fadc493255e94df27b17f5b2502480d0e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
This should run on Motorola MVME230x boards, where x is 5, 6, 7, 
or 8 designating 16, 32, 64, or 128 MB of DRAM.  It should also
work on MVME230x where x is 1, 2, 3, or 4 which is the same board
using a '603 instead of a '604 processor.  RTEMS_CPU_MODEL would 
need to change in make/custom/mvme2307.cfg.

Application is linked to run from RAM.  If running from ROM, it
will copy itself to RAM (0x4000) when it boots.  PPCBUG should 
be used to load a binary image from the TFTP host into location
0x4000, with an entry point at 0x401c.  PPCBUG can be set to
autoboot the application from ROM.  PPCBUG does all of the low
level setup of memory controllers and such on the board before
jumping into the RTEMS application.

TODO:  Data cache is not enabled.  This BSP should probably
be part of the MCP750 BSP as much of the hardware here is 
also on the MCP750 board.  The dec21140 driver here is derived
from an early version from the MCP750 BSP, but has been 
rewritten to use scatter/gather DMA and interrupts rather than 
CPU copies and polling.  This should be considered for merging
into to the MCP750 BSP.  The interrupt conroller code needs to
be better integrated into RTEMS calls like the MCP750.  The 
BSP should probably be renamed to mvme230x.

----------------------------------------------------------------------------

Building and loading an application:

=============== (host) =======================================
% make
% powerpc-rtems-objcopy --output-target=binary hello.exe /tftpboot/hello.bin

=============== (target - run from RAM) ======================
PPC1-Bug>niop
Controller LUN =00?
Device LUN     =00?
Get/Put        =G?
File Name      =? hello.bin
Memory Address =00004000?
Length         =00000000?
Byte Offset    =00000000?

Bytes Received =&140780, Bytes Loaded =&140780
Bytes/Second   =&140780, Elapsed Time =1 Second(s)
PPC1-Bug>go 401c
Effective address: 0000401C


*** HELLO WORLD TEST ***
Hello World
*** END OF HELLO WORLD TEST ***
PPC1-Bug>                                  

=============== (target - run from ROM) ======================

PPC1-Bug>niop
Controller LUN =00?
Device LUN     =00?
Get/Put        =G?
File Name      =? hello.bin
Memory Address =00004000?
Length         =00000000?
Byte Offset    =00000000?

Bytes Received =&140780, Bytes Loaded =&140780
Bytes/Second   =&140780, Elapsed Time =1 Second(s) 

PPC1-Bug>pflash 4000:28000 ff000000
Source Starting/Ending Addresses      =00004000/0002BFFF
Destination Starting/Ending Addresses =FF000000/FF027FFF
Number of Effective Bytes             =00028000 (&163840)

Program FLASH Memory (Y/N)? y
FLASH Memory Programming Complete

(reset to boot into application)

----------------------------------------------------------------------------

memory map:
0x00000000 - 0x03ffffff  RAM
0x80000000 - 0xbf7fffff  PCI I/O space
0xc0000000 - 0xfcffffff  PCI memory space
0xfd000000 - 0xfdffffff  PCI memory space
0xfe000000 - 0xfe7fffff  PCI I/O space
0xfef80000 - 0xfef8ffff  Falcon registers
0xfeff0000 - 0xfeffffff  Raven registers
0xff000000 - 0xff3fffff  ROM bank A - application
0xff800000 - 0xff8fffff  ROM bank B - PPCBUG
0xfff00000 - 0xffffffff  ROM bank A or B

----------------------------------------------------------------------------
Use the PPCBUG "env" command to configure the board:

PPC1-Bug>env
Bug or System environment [B/S] = B?
Field Service Menu Enable [Y/N] = N?
Remote Start Method Switch [G/M/B/N] = B?
Probe System for Supported I/O Controllers [Y/N] = Y?
Auto-Initialize of NVRAM Header Enable [Y/N] = Y?
Network PReP-Boot Mode Enable [Y/N] = N?
Negate VMEbus SYSFAIL* Always [Y/N] = N?
SCSI Bus Reset on Debugger Startup [Y/N]   = N?
Primary SCSI Bus Negotiations Type [A/S/N] = A?
Primary SCSI Data Bus Width [W/N]          = N?
Secondary SCSI Identifier                  = "07"?
NVRAM Bootlist (GEV.fw-boot-path) Boot Enable [Y/N]           = N?
NVRAM Bootlist (GEV.fw-boot-path) Boot at power-up only [Y/N] = N?
NVRAM Bootlist (GEV.fw-boot-path) Boot Abort Delay            = 5?
Auto Boot Enable [Y/N]           = N?
Auto Boot at power-up only [Y/N] = N?
Auto Boot Scan Enable [Y/N]      = N?
Auto Boot Scan Device Type List  = FDISK/CDROM/TAPE/HDISK/?
Auto Boot Controller LUN   = 00?
Auto Boot Device LUN       = 00?
Auto Boot Partition Number = 00?
Auto Boot Abort Delay      = 7?
Auto Boot Default String [NULL for an empty string] = ?
ROM Boot Enable [Y/N]            = Y?
ROM Boot at power-up only [Y/N]  = N?
ROM Boot Enable search of VMEbus [Y/N] = N?
ROM Boot Abort Delay             = 5?
ROM Boot Direct Starting Address = FF000000?
ROM Boot Direct Ending Address   = FF3FFFFF?
Network Auto Boot Enable [Y/N]           = N?
Network Auto Boot at power-up only [Y/N] = N?
Network Auto Boot Controller LUN = 00?
Network Auto Boot Device LUN     = 00?
Network Auto Boot Abort Delay    = 5?
Network Auto Boot Configuration Parameters Offset (NVRAM) = 00001000?
Memory Size Enable [Y/N]         = Y?
Memory Size Starting Address     = 00000000?
Memory Size Ending Address       = 02000000?
DRAM Speed in NANO Seconds       = 60?
ROM First Access Length (0 - 31) = 10?
ROM Next Access Length  (0 - 15) = 0?
DRAM Parity Enable [On-Detection/Always/Never - O/A/N]    = O?
L2Cache Parity Enable [On-Detection/Always/Never - O/A/N] = O?
PCI Interrupts Route Control Registers (PIRQ0/1/2/3) = 0A0B0E0F?
Serial Startup Code Master Enable [Y/N] = N?
Serial Startup Code LF Enable [Y/N] =     N?
VME3PCI Master Master Enable [Y/N] = Y?
PCI Slave Image 0 Control                = 00000000?   
PCI Slave Image 0 Base Address Register  = 00000000?
PCI Slave Image 0 Bound Address Register = 00000000?
PCI Slave Image 0 Translation Offset     = 00000000?
PCI Slave Image 1 Control                = C0820000?
PCI Slave Image 1 Base Address Register  = 01000000?
PCI Slave Image 1 Bound Address Register = 20000000?
PCI Slave Image 1 Translation Offset     = 00000000?
PCI Slave Image 2 Control                = C0410000?
PCI Slave Image 2 Base Address Register  = 20000000?
PCI Slave Image 2 Bound Address Register = 22000000?
PCI Slave Image 2 Translation Offset     = D0000000?
PCI Slave Image 3 Control                = C0400000?
PCI Slave Image 3 Base Address Register  = 2FFF0000?
PCI Slave Image 3 Bound Address Register = 30000000?
PCI Slave Image 3 Translation Offset     = D0000000?
VMEbus Slave Image 0 Control                = E0F20000?
VMEbus Slave Image 0 Base Address Register  = 00000000?
VMEbus Slave Image 0 Bound Address Register = 02000000?
VMEbus Slave Image 0 Translation Offset     = 80000000?
VMEbus Slave Image 1 Control                = 00000000?
VMEbus Slave Image 1 Base Address Register  = 00000000?
VMEbus Slave Image 1 Bound Address Register = 00000000?
VMEbus Slave Image 1 Translation Offset     = 00000000?
VMEbus Slave Image 2 Control                = 00000000?
VMEbus Slave Image 2 Base Address Register  = 00000000?
VMEbus Slave Image 2 Bound Address Register = 00000000?
VMEbus Slave Image 2 Translation Offset     = 00000000?
VMEbus Slave Image 3 Control                = 00000000?
VMEbus Slave Image 3 Base Address Register  = 00000000?
VMEbus Slave Image 3 Bound Address Register = 00000000?
VMEbus Slave Image 3 Translation Offset     = 00000000?
PCI Miscellaneous Register       = 10000000?
Special PCI Slave Image Register = 00000000?
Master Control Register          = 80C00000?
Miscellaneous Control Register   = 52060000?
User AM Codes