Revision 1.2
41
www.national.com
G
3.0
This section describes the internal operations of the
Geode GXLV processor from a programmer’s point of
view. It includes a description of the traditional “core” pro-
cessing and FPU operations. The integrated function reg-
isters are described at the end of this chapter.
Processor Programming
The primary register sets within the processor core
include:
Application Register Set
System Register Set
Model Specific Register Set
The initialization of the major registers within the core are
shown in Table 3-1.
The integrated function sets are located in main memory
space and include:
Internal Bus Interface Unit Register Set
Graphics Pipeline Register Set
Display Controller Register Set
Memory Controller Register Set
Power Management Register Set
3.1
The GXLV processor is initialized when the RESET signal
is asserted. The processor is placed in real mode and the
registers listed in Table 3-1 are set to their initialized val-
ues. RESET invalidates and disables the CPU cache, and
turns off paging. When RESET is asserted, the CPU ter-
minates all local bus activity and all internal execution.
While RESET is asserted the internal pipeline is flushed
and no instruction execution or bus activity occurs.
CORE PROCESSOR INITIALIZATION
Approximately 150 to 250 external clock cycles after
RESET is deasserted, the processor begins executing
instructions at the top of physical memory (address loca-
tion FFFFFFF0h). The actual number of clock cycles
depends on the clock scaling in use. Also, before execu-
tion begins, an additional 2
20
clock cycles are needed
when self-test is requested.
Typically, an intersegment jump is placed at FFFFFFF0h.
This instruction will force the processor to begin execution
in the lowest 1 MB of address space.
Table 3-1 lists the core registers and illustrates how they
are initialized.
Table 3-1. Initialized Core Register Controls
Register
Register Name
Initialized Contents
Comments
EAX
EBX
ECX
EDX
EBP
ESI
EDI
ESP
EFLAGS
EIP
ES
CS
SS
DS
FS
GS
IDTR
GDTR
LDTR
TR
CR0
CR2
CR3
CR4
CCR1
CCR2
CCR3
CCR4
CCR7
Accumulator
Base
Count
Data
Base Pointer
Source Index
Destination Index
Stack Pointer
Flags
Instruction Pointer
Extra Segment
Code Segment
Stack Segment
Data Segment
Extra Segment
Extra Segment
Interrupt Descriptor Table Register
Global Descriptor Table Register
Local Descriptor Table Register
Task Register
Control Register 0
Control Register 2
Control Register 3
Control Register 4
Configuration Control 1
Configuration Control 2
Configuration Control 3
Configuration Control 4
Configuration Control 7
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxx 04 [DIR0]h
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
00000002h
0000FFF0h
0000h
F000h
0000h
0000h
0000h
0000h
Base = 0, Limit = 3FFh
xxxxxxxxh
xxxxh
xxxxh
60000010h
xxxxxxxxh
xxxxxxxxh
00000000h
00h
00h
00h
00h
00h
0000 0000h indicates self-test passed.
DIR0 = Device ID
See Table 3-4 on page 46 for bit definitions.
Base address set to 00000000h. Limit set to FFFFh.
Base address set to FFFF0000h. Limit set to FFFFh.
Base address set to 00000000h. Limit set to FFFFh.
Base address set to 00000000h. Limit set to FFFFh.
Base address set to 00000000h. Limit set to FFFFh.
Base address set to 00000000h. Limit set to FFFFh.
See Table 3-7 on page 49 for bit definitions.
See Table 3-7 on page 49 for bit definitions.
See Table 3-7 on page 48 for bit definitions.
See Table 3-7 on page 48 for bit definitions.
See Table 3-11 on page 52 for bit definitions.
See Table 3-11 on page 52 for bit definitions.
See Table 3-11 on page 52 for bit definitions.
See Table 3-11 on page 52 for bit definitions.
See Table 3-11 on page 52 for bit definitions.