www.national.com
38
Revision 3.1
G
3.0
This section describes the internal operations of the
Geode GXm processor from a programmer’s point of view.
It includes a description of the traditional “core” process-
ing and FPU operations. The integrated function registers
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
Floating Point Unit Register Set.
The initialization of the major registers within in 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 GXm 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.
During the entire time that RESET is asserted, the inter-
nal 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 time depends on the clock
scaling in use. Also, 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.
The following table, 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
CCR7
SMAR0
Accumulator
Base
Count
Data
Base Pointer
Source Index
Destination Index
Stack Pointer
Extended 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
Machine Status Word
Control Register 2
Control Register 3
Control Register 4
Configuration Control 1
Configuration Control 2
Configuration Control 3
Configuration Control 7
SMM Address 0
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxx 04 [DIR0]h
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
xxxxxxxxh
00000002h
0000FFF0h
0000h
F000h
0000h
0000h
0000h
0000h
Base = 0, Limit = 3FFh
xxxx xxxxh
xxxxh
xxxxh
60000010h
xxxxxxxxh
xxxxxxxxh
00000000h
00h
00h
00h
00h
00h
00000000h indicates self-test passed.
DIR0 = Device ID
See Table 3-4 on page 43 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 49 for bit definitions.
See Table 3-7 on page 49 for bit definitions.
See Table 3-11 on page 49 for bit definitions.
See Table 3-11 on page 49 for bit definitions.
See Table 3-11 on page 49 for bit definitions.
See Table 3-11 on page 50 for bit definitions.
See Table 3-11 on page 51 for bit definitions.