The contents of this document are provided in connection with Advanced Micro
Devices, Inc. (“AMD”) products. AMD makes no representations or warranties with
respect to the accuracy or completeness of the contents of this publication and
reserves the right to make changes to specifications and product descriptions at
any time without notice. No license, whether express, implied, arising by estoppel
or otherwise, to any intellectual property rights is granted by this publication.
Except as set forth in AMD’s Standard Terms and Conditions of Sale, AMD
assumes no liability whatsoever, and disclaims any express or implied warranty,
relating to its products including, but not limited to, the implied warranty of merchantability, fitness for a particular purpose, or infringement of any intellectual
property right.
AMD’s products are not designed, intended, authorized or warranted for use as
components in systems intended for surgical implant into the body, or in other
applications intended to support or sustain life, or in any other application in which
the failure of AMD’s product could create a situation where personal injury, death,
or severe property or environmental damage may occur. AMD reserves the right to
discontinue or make changes to its products at any time without notice.
Trademarks
AMD, the AMD Arrow logo, and combinations thereof, and Geode, GeodeLink, Virtual System Architecture, and
XpressGRAPHICS are trademarks of Advanced Micro Devices, Inc.
Windows is a registered trademark of Microsoft Corporation in the United States and/or other jurisdictions.
Other product names used in this publication are for identification purposes only and may be trademarks of their respective
companies.
This document describes the changes needed for GeodeROM and other BIOSs to support the AMD Geode™ GX processor and the AMD Geode™ CS5535 companion device. GeodeROM requires modifications for hardware initialization and
specific implementations.
Each section targets the GeodeROM changes needed to support the GX processor/CS5535 device system. Where appropriate, the changes list the “Entry Conditions” that briefly describe the machine state required to execute that function, as
well as some pseudo code for implementing the changes.
For more information on GeodeROM, see the AMD Geode™ GeodeROM Functional Specification (publication ID 32087).
1.2Assumption
The following assumption must be made clear during the design phase:
GeodeROM expects all memory has a serial presence detect (SPD) to determine characteristics for memory controller initialization. If a SPD is not present, GeodeROM outputs a POST code and halts, unless customizations have been made for
the platform.
There are two ways to read or write Model Specific Registers (MSRs) in a Geode™ GX processor system. Software running on the processor can use the RDMSR and WRMSR instructions, and modules within the processor can use the
GeodeLink™ MSR transactions. The second method allows debug modules, such as the System Navigator from FS
Silicon Solutions), to program MSRs.
All MSRs are 64 bits wide. The MSR addresses are 32 bits, where each unique address refers to a 64-bit data quantity.
To communicate with modules on the GeodeLink interface, the address of that module must be known. Addresses are
obtained by either scanning the GeodeLink interface or having prior knowledge of the chip topology. This is discussed in
detail in Section 3.0 "GeodeLink™ Architecture" on page 13.
RDMSR:
Input
ECX - Address to read.
2
(First
Output
EDX:EAX - 64 bits data returned.
WRMSR:
Input
ECX - Address to write.
EDX:EAX - 64 bits data written.
Output
None.
2.1Example MSR Transaction
Read and write extended CPUID registers.
This example will change the CPUID.
RDMSR:
Load MSR specified by ECX into EDX:EAX.
WRMSR:
Write the value in EDX:EAX to MSR specified by ECX.
MSR_CPUID0 EQU 00003000h
MSR_CPUID1 EQU 00003001h
movecx, MSR_CPUID0
RDMSR; get values
movedx, ‘cdeR’; write edx:eax to MSR in ecx. No change to eax.
WRMSR
movecx, MSR_CPUID1
RDMSR
movedx, ‘duol’; No change to eax
WRMSR
; Done