summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/mips/genmongoosev/README
blob: 60a07ad99a51ea5095f2140b9d976f0626737ba1 (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
#
#  $Id$
#

BSP supporting the on-CPU capabilities of the Synova Mongoose-V.
This BSP assumes that basic HW initialization is performed by
PMON.

Address Map
===========
This is the generic address map of the Mongoose-V prototyping board
this BSP was tested on.

0x8000_0000 - 0x8FFF_FFFF   - RAM (KSEG0 cached)
0xA000_0000 - 0xAFFF_FFFF   - RAM (KSEG1, same memory uncached)
0xBFC0_0000 - 0xBFFF_FFFF   - EEPROM
0xFFFE_xxxx                 - on-CPU peripherals

This is the hardware address map of the board used as it was
actually populated.

0x8000_0000 - 0x83FF_FFFF   - 32 MB RAM (KSEG0 cached)
0xA000_0000 - 0xA3FF_FFFF   - 32 MB RAM (KSEG1, same memory uncached)
0xBFC0_0000 - 0xBFDF_FFFF   - 2 MB EEPROM
0xFFFE_xxxx                 - on-CPU peripherals

This is the organization of the EEPROM when fully populated.  Since
the board used to develop this BSP only had the first bank of EEPROM
populated, only the first program image area was used.

0xBFC0_0000 - 0xBFC3_FFFF   - PMON
0xBFC4_0000 - 0xBFC4_FFFF   - reserved for boot loader
0xBFC5_0000 - 0xBFDF_FFFF   - reserved for program 1 image
0xBFE0_0000 - 0xBFFF_FFFF   - reserved for program 2 image

The Mongoose-V on this board is at 12 Mhz.

Downloading
===========

On the breadboard, a locally hacked PMON waits for a space to be pressed
while the board is reset/powered up.  If found, the PMON console is
entered, else PMON jumps to the EEPROM address above, presuming a user
program is located there.

The default output of an RTEMS link is an image linked to run from
80020000, but has had its LMA shifted up to BFC40000.  It is suitable
for copying to S3 records or can be burned to ROMs in whatever manner
the user desires.

Operation
=========

A small relocator is supplied in the bsp startup code which copies the
image down to RAM for execution before doing any other initialization.
This locator code is location independent, and will do nothing if the
image is already located at its run location.  The LMA and VMA are both
controlled via the bsp's link script.  The above behavior is produced by
using the default script.  If this is not desirable, something like the
following may be added to the user's RTEMS link statement to override
the default linkcmds with a user-supplied version;

-qnolinkcmds -Wl,-T -Wl,mips-rtems-linkcmds-eprom

this causes the file ./mips-rtems-linkcmds-eprom to override the default
linkcmds.

Before relocating the RTEMS image, the bsp startup routine attempts to
configure the processor into a rational state.  During this process,
status characters are emitted at 19200N81 baud on UART port 0.


Questions
=========

Why can I send characters slowly to a Mongoose V, but get framing errors
when sending them fast?

- The MongooseV chip seems to <require> that all incoming data have 2
  stop bits.  When typing on a serial terminal, this is not an issue
  because the idle state of an RS232 line looks just like a stop bit-
  but when streaming in data, such pacing is required.  The manual does
  not indicate anything along these lines, instead, we suspect a
  somewhat faulty UART design.


Status
======