
Publication#
21824
Issue Date:
July 1997
Rev:
A
Amendment/
0
This document contains information on a product under development at Advanced Micro Devices. The information
is intended to help you evaluate this product. AMD reserves the right to change or discontinue work on this proposed
product without notice.
Using a PCMCIA Card as a Boot ROM
on an élan SC300 Microcontroller Design
Application Note
The élan
TM
SC300 microcontroller system can provide jumpers that allow BIOS/system firmware to
load and run from a linear memory card in a PCMCIA socket instead of from the on-board boot
ROM. On systems with soldered-down boot ROMS, these jumper provisions are useful for boot
ROM development or any situation where the boot ROM may be corrupted. This application note
describes the issues involved in using this boot-from-PCMCIA feature on an élanSC300
microcontroller design.
BACKGROUND
On reset, the élan
TM
SC300 microcontroller begins
fetching code by asserting ROMCS and MEMR and
putting the 24-bit address FFFFF0 on the system
address lines SA23–SA0. The fetch address will
remain in the top 64-Kbyte of the 24-bit address space
(FFxxxx) until a far jump loads the code segment
register. At that time, if the microcontroller is in
protected mode, it could jump anywhere in the 24-bit
address space, but if the microcontroller is in real mode
at the time of the far jump, the target will be in the
lowest 1 Mbyte (0xxxxx). On reset, addresses in the
range FF0000–FFFFFF (FFxxxx) and 0F0000–
0FFFFF (0Fxxxx) always assert ROMCS and are
default 8-bit accesses.
Note that on most élanSC300 microcontroller systems
based on an AT-compatible BIOS, the boot code does
a far jump in real mode to an address in the 0Fxxxx
range, and the boot ROM is a 64- or 128-Kbyte device
that only looks at the low 16 or 17 address bits. On
such systems, FFxxxx and 0Fxxxx in ROMCS space
will map to the same ROM device.
A PCMCIA memory card can have two 64-Kbyte
address spaces addressed (attribute and common
memory) using 26 address lines and a REG line, which
selects one of the two address spaces. Data widths of
either 16 or 8 bits are supported using low and high
byte select (CEL and CEH). Either an OE line is
asserted to indicate a read, or a WE line is asserted to
indicate a write.
On the élanSC300 microcontroller, the PCMCIA
address lines A23–A0 are the same as the system
address lines SA23–SA0, while PCMCIA address lines
A25 and A24, which are controlled by CA24–CA25
control registers 1–3 (indexes B5h–B7h), are unique to
PCMCIA. The PCMCIA data lines, D15–D0, are the
same as system data lines SD15–SD0. For PCMCIA
OE and WE, the élanSC300 microcontroller can be
programmed using bit 4 in the Miscellaneous 3
Register (Index BAh) to assert either MEMR and
MEMW on PCMCIA accesses or to assert PCMCOE
and PCMCWE. (PCMCOE and PCMCWE take over
pins 84 and 89 that are normally part of the parallel port
interface. They are useful in systems that need to
distinguish between PCMCIA accesses and ISA
accesses and do not use the parallel port.)
On élanSC300 microcontroller designs that use
buffered PCMCIA slots, the ICDIR pin can be used to
tell the buffer whether it should accept data or drive
data. Unbuffered PCMCIA designs do not use the
ICDIR signal. At reset, the ICDIR pin from the
élanSC300 microcontroller is driven High, indicating
that the buffers should accept data rather than drive
data. ICDIR then remains High at all times unless the
microcontroller is doing a PCMCIA read.
JUMPERS TO ENABLE BOOT FROM PCMCIA
Chip Select
Because ROMCS will be asserted at boot time, there
must be a jumper that breaks the path of ROMCS from
the microcontroller to the CS of the boot ROM, and the
path of MCEL_A from the microcontroller to CEL of the
PCMCIA socket. Then, the jumper must route ROMCS
from the microcontroller to CEL of the PCMCIA socket.
This will tell the PCMCIA card to place the addressed
byte, whether from an even or odd address, on D7–D0,
just as in an 8-bit ROM access. An example is shown
in Figure 1. Jumper Configurations. For normal
operation, there are jumpers from 1 to 2 and from 3 to
4. For boot from PCMCIA operation, there is a jumper
from 2 to 3.
TM