Revision 3.1
165
www.national.com
G
5.0
This section describes the Virtual Subsystem Architec-
ture
(VSA) as implemented with the Geode GXm pro-
cessor(s) and VSA enhanced I/O companion device(s).
VSA provides a framework to enable software implemen-
tation of traditionally hardware-only components. VSA
software executes in System Management Mode (SMM),
enabling it to execute transparently to the operating sys-
tem, drivers and applications.
Virtual Subsystem Architecture
The VSA design is based upon a simple model for replac-
ing hardware components with software. Hardware to be
virtualized is merely replaced with simple access detec-
tion circuitry which asserts the processor’s SMI# (System
Management Interrupt) pin when hardware accesses are
detected. The current execution stream is immediately
preempted, and the processor enters SMM. The SMM
system software then saves the processor state, initializes
the VSA execution environment, decodes the SMI source
and dispatches handler routines which have registered
requests to service the decoded SMI source. Once all
handler routines have completed, the processor state is
restored and normal execution resumes. In this manner,
hardware accesses are transparently replaced with the
execution of SMM handler software.
Historically, SMM software was used primarily for the sin-
gle purpose of facilitating active power management for
notebook designs. That software’s only function was to
manage the power up and down of devices to save power.
With high performance processors now available, it is fea-
sible to implement, primarily in SMM software, PC capa-
bilities traditionally provided by hardware. In contrast to
power management code, this virtualization software gen-
erally has strict performance requirements to prevent
application
performance
impacted.
from
being
significantly
Several functions can be virtualized in a GXm processor
based design using the VSA environment. The VSA
enhanced chipsets provide programmable resources to
trap both memory and I/O accesses. However, specific
hardware is included to support the virtualization of VGA
core compatibility and audio functionality in the system.
The hardware support for VGA emulation resides com-
pletely inside the GXm processor. Legacy VGA accesses
do not generate off-chip bus cycles. However, the VSA
support hardware for
XpressAUDIO resides in the CS5530 I/O companion
device and is described in the CS5530 specification.
5.1
The GXm processor reduces the burden of PC-legacy
hardware by using a balanced mix of hardware and soft-
ware to provide the same functionality. The graphics pipe-
line contains full hardware support for the VGA “front-
end”, the logic that controls read and write operations to
the VGA frame buffer (located in graphics memory). For
some modes, the hardware can also provide direct display
of the data in the VGA buffer. Virtual VGA traps frame
buffer accesses only when necessary, but it must trap all
VGA I/O accesses to maintain the VGA state and properly
program the graphics pipeline and display controller.
VIRTUAL VGA
VGA functionality with the GXm processor includes the
standard VGA modes (VGA, EGA, CGA, and MDA) as
well as the higher-resolution VESA modes. The CGA and
MDA modes (modes 0 through 7) require that Virtual VGA
convert the data in the VGA buffer to a separate 8-BPP
frame buffer that the hardware can use for display refresh.
The remaining modes, VGA, EGA, and VESA, can be dis-
played directly by the hardware, with no data conversion
required. For these modes, Virtual VGA outperforms typi-
cal VGA cards because the frame buffer data does not
travel across an external bus.
Display drivers for popular GUI (graphical user interface)
based operating systems are provided by National Semi-
conductor which enable a full featured 2D hardware accel-
erator to be used instead of the emulated VGA core.
5.1.1
A VGA card consists of display memory and control regis-
ters. The VGA display memory shows up in system mem-
ory between addresses A0000h and BFFFFh. It is
possible to map this memory to three different ranges
within this 128 KB block.
Traditional VGA Hardware
The first range is
- A0000h to B0000h for EGA and VGA modes,
the second range is
- B0000h to B7FFFh for MDA modes,
and the third range is
- B8000h to BFFFFh for CGA modes.
The VGA control registers are mapped to the I/O address
range from 3B0h to 3DFh. The VGA registers are
accessed with an indexing scheme that provides more
registers than would normally fit into this range. Some
registers are mapped at two locations, one for mono-
chrome, and another for color.
The VGA hardware can be accessed by calling BIOS rou-
tines or by directly writing to VGA memory and control
registers. DOS always calls BIOS to set up the display
mode and render characters. Many other applications
access the VGA memory and control registers directly.
The VGA card can be set up to a virtually unlimited num-
ber of modes. However, many applications use one of the
predefined modes specified by the BIOS routine which
sets up the display mode. The predefined modes are
translated into specific VGA control register setups by the
BIOS. The standard modes supported by VGA cards are
shown in Table 5-1.