aboutsummaryrefslogtreecommitdiff
path: root/src/include/cpu/amd/vr.h
diff options
context:
space:
mode:
authorMarc Jones <marc.jones@amd.com>2007-05-04 18:24:55 +0000
committerStefan Reinauer <stepan@openbios.org>2007-05-04 18:24:55 +0000
commitbc8176c5526ec9124aa99559f9432210be364dfe (patch)
treef4855271c5e16a2b9fba7d558a965c497a60e0cc /src/include/cpu/amd/vr.h
parent5941c25fe8e2118c93ef695ea3b30b65e016cdc1 (diff)
This patch adds support for the AMD Geode LX CPU. (rediffed)
Signed-off-by: Marc Jones <marc.jones@amd.com> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2628 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/include/cpu/amd/vr.h')
-rw-r--r--src/include/cpu/amd/vr.h52
1 files changed, 33 insertions, 19 deletions
diff --git a/src/include/cpu/amd/vr.h b/src/include/cpu/amd/vr.h
index 0626545336..286eaa94c5 100644
--- a/src/include/cpu/amd/vr.h
+++ b/src/include/cpu/amd/vr.h
@@ -1,22 +1,11 @@
-/* <LIC_AMD_STD>
- * Copyright (C) 2003-2005 Advanced Micro Devices, Inc. All Rights Reserved.
- * </LIC_AMD_STD> */
-//<CTL_AMD_STD>
-//$Id: //bios/main/vsa_ii/inc/vr.h#18 $
-//$Header: //bios/main/vsa_ii/inc/vr.h#18 $
-//$Date: 2005/09/29 $
-//$DateTime: 2005/09/29 11:07:14 $
-//$Change: 65425 $
-//$File: //bios/main/vsa_ii/inc/vr.h $
-//$Revision: #18 $
-//$Author: johnk $
-//</CTL_AMD_STD>
-//<DOC_AMD_STD>
-// Virtual Register USAGE:
-//
-// Index: AH = Class, AL = Parameter_ID
-// Data: AX = data
-//</DOC_AMD_STD>
+/*
+*
+* Copyright (C) 2007 Advanced Micro Devices
+*
+*/
+
+#ifndef CPU_AMD_VR_H
+#define CPU_AMD_VR_H
#define VRC_INDEX 0xAC1C // Index register
#define VRC_DATA 0xAC1E // Data register
@@ -484,3 +473,28 @@
#define MAX_THERMAL VRC_THERMAL_SMB_DATA
#define MAX_VR_CLASS VRC_THERMAL
+
+/*
+ * Write to a Virtual Register
+ * AX = Class/Index
+ * CX = data to write
+ */
+static inline void vrWrite(uint16_t wClassIndex, uint16_t wData)
+{
+ outl(((uint32_t) VR_UNLOCK << 16) | wClassIndex, VRC_INDEX);
+ outw(wData, VRC_DATA);
+}
+
+ /*
+ * Read from a Virtual Register
+ * AX = Class/Index
+ * Returns a 16-bit word of data
+ */
+static inline uint16_t vrRead(uint16_t wClassIndex)
+{
+ uint16_t wData;
+ outl(((uint32_t) VR_UNLOCK << 16) | wClassIndex, VRC_INDEX);
+ wData = inw(VRC_DATA);
+ return wData;
+}
+#endif