3.0 Processor Programming
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.
3.1 CORE PROCESSOR INITIALIZATION
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.
The primary register sets within the processor core
include:
•
•
•
Application Register Set
System Register Set
Model Specific Register Set
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 220 clock cycles are needed
when self-test is requested.
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
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
Accumulator
Initialized Contents
Comments
EAX
EBX
ECX
EDX
EBP
ESI
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxx 04 [DIR0]h
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
00000002h
0000FFF0h
0000h
0000 0000h indicates self-test passed.
Base
Count
Data
DIR0 = Device ID
Base Pointer
Source Index
Destination Index
Stack Pointer
Flags
EDI
ESP
EFLAGS
EIP
See Table 3-4 on page 46 for bit definitions.
Instruction Pointer
Extra Segment
Code Segment
Stack Segment
Data Segment
Extra Segment
Extra Segment
ES
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.
CS
F000h
SS
0000h
DS
0000h
FS
0000h
GS
0000h
IDTR
GDTR
LDTR
TR
Interrupt Descriptor Table Register Base = 0, Limit = 3FFh
Global Descriptor Table Register
Local Descriptor Table Register
Task Register
xxxxxxxxh
xxxxh
xxxxh
CR0
CR2
CR3
CR4
CCR1
CCR2
CCR3
CCR4
CCR7
Control Register 0
60000010h
xxxxxxxxh
xxxxxxxxh
00000000h
00h
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.
Control Register 2
Control Register 3
Control Register 4
Configuration Control 1
Configuration Control 2
Configuration Control 3
Configuration Control 4
Configuration Control 7
00h
00h
00h
00h
Revision 1.1
41
www.national.com