summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2013-03-25 12:48:49 +0200
committerMarc Jones <marc.jones@se-eng.com>2013-04-04 04:52:18 +0200
commit190011e47c6187479db69344ccf87762009af444 (patch)
tree9fa99d7b08f37a734bcd4fd10e17ff94a78a6626 /src/cpu
parent4d6ab4e2ae25c8148e699e3821b71991ac4d80dc (diff)
AMD: Drop six copies of wrmsr_amd and rdmsr_amd
Based on comments in cpu/x86/msr.h for wrmsr/rdmsr, and for symmetry, I have added __attribute__((always_inline)) for these. Change-Id: Ia0a34c15241f9fbc8c78763386028ddcbe6690b1 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/2898 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Marc Jones <marc.jones@se-eng.com>
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/amd/agesa/family10/model_10_init.c20
-rw-r--r--src/cpu/amd/agesa/family12/model_12_init.c20
-rw-r--r--src/cpu/amd/agesa/family14/model_14_init.c20
-rw-r--r--src/cpu/amd/agesa/family15/model_15_init.c20
-rw-r--r--src/cpu/amd/agesa/family15tn/model_15_init.c20
-rw-r--r--src/cpu/amd/model_10xxx/model_10xxx_init.c20
-rw-r--r--src/cpu/amd/model_10xxx/processor_name.c3
-rw-r--r--src/cpu/amd/model_fxx/model_fxx_init.c20
-rw-r--r--src/cpu/amd/model_fxx/processor_name.c12
-rw-r--r--src/cpu/amd/mtrr/amd_mtrr.c2
-rw-r--r--src/cpu/x86/mtrr/earlymtrr.c2
11 files changed, 4 insertions, 155 deletions
diff --git a/src/cpu/amd/agesa/family10/model_10_init.c b/src/cpu/amd/agesa/family10/model_10_init.c
index 1f098eb904..899a3c4d32 100644
--- a/src/cpu/amd/agesa/family10/model_10_init.c
+++ b/src/cpu/amd/agesa/family10/model_10_init.c
@@ -35,26 +35,6 @@
#define MCI_STATUS 0x401
-static msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-static void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_10_init(device_t dev)
{
printk(BIOS_DEBUG, "Model 10 Init - a no-op.\n");
diff --git a/src/cpu/amd/agesa/family12/model_12_init.c b/src/cpu/amd/agesa/family12/model_12_init.c
index 3450b99f14..0dae912614 100644
--- a/src/cpu/amd/agesa/family12/model_12_init.c
+++ b/src/cpu/amd/agesa/family12/model_12_init.c
@@ -36,26 +36,6 @@
#define MCI_STATUS 0x401
-msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_12_init(device_t dev)
{
printk(BIOS_DEBUG, "Model 12 Init - a no-op.\n");
diff --git a/src/cpu/amd/agesa/family14/model_14_init.c b/src/cpu/amd/agesa/family14/model_14_init.c
index 277f974f35..7ae2b2405e 100644
--- a/src/cpu/amd/agesa/family14/model_14_init.c
+++ b/src/cpu/amd/agesa/family14/model_14_init.c
@@ -39,26 +39,6 @@
#define MCI_STATUS 0x401
-msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_14_init(device_t dev)
{
u32 i;
diff --git a/src/cpu/amd/agesa/family15/model_15_init.c b/src/cpu/amd/agesa/family15/model_15_init.c
index ba1d9a4e1f..ea7e663d03 100644
--- a/src/cpu/amd/agesa/family15/model_15_init.c
+++ b/src/cpu/amd/agesa/family15/model_15_init.c
@@ -32,26 +32,6 @@
#include <cpu/x86/mtrr.h>
#include <cpu/amd/amdfam15.h>
-msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_15_init(device_t dev)
{
printk(BIOS_DEBUG, "Model 15 Init.\n");
diff --git a/src/cpu/amd/agesa/family15tn/model_15_init.c b/src/cpu/amd/agesa/family15tn/model_15_init.c
index 938e9c96cd..aebc27bd41 100644
--- a/src/cpu/amd/agesa/family15tn/model_15_init.c
+++ b/src/cpu/amd/agesa/family15tn/model_15_init.c
@@ -37,26 +37,6 @@
#include <cpu/amd/agesa/s3_resume.h>
#endif
-msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_15_init(device_t dev)
{
printk(BIOS_DEBUG, "Model 15 Init.\n");
diff --git a/src/cpu/amd/model_10xxx/model_10xxx_init.c b/src/cpu/amd/model_10xxx/model_10xxx_init.c
index 01ae319e22..c6cf64a5a4 100644
--- a/src/cpu/amd/model_10xxx/model_10xxx_init.c
+++ b/src/cpu/amd/model_10xxx/model_10xxx_init.c
@@ -38,26 +38,6 @@
#define MCI_STATUS 0x401
-msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
static void model_10xxx_init(device_t dev)
{
u8 i;
diff --git a/src/cpu/amd/model_10xxx/processor_name.c b/src/cpu/amd/model_10xxx/processor_name.c
index 62040d9a51..b16e9ba0fd 100644
--- a/src/cpu/amd/model_10xxx/processor_name.c
+++ b/src/cpu/amd/model_10xxx/processor_name.c
@@ -29,11 +29,10 @@
#include <console/console.h>
#include <string.h>
#include <cpu/x86/msr.h>
+#include <cpu/amd/mtrr.h>
#include <cpu/cpu.h>
#include <cpu/amd/model_10xxx_rev.h>
-extern void wrmsr_amd(u32 index, msr_t msr);
-
/* The maximum length of CPU names is 48 bytes, including the final NULL byte.
* If you change these names your BIOS will _NOT_ pass the AMD validation and
* your mainboard will not be posted on the AMD Recommended Motherboard Website
diff --git a/src/cpu/amd/model_fxx/model_fxx_init.c b/src/cpu/amd/model_fxx/model_fxx_init.c
index 4ad28a74a6..d053894d68 100644
--- a/src/cpu/amd/model_fxx/model_fxx_init.c
+++ b/src/cpu/amd/model_fxx/model_fxx_init.c
@@ -80,26 +80,6 @@ int is_cpu_f0_in_bsp(int nodeid)
#define MCI_STATUS 0x401
-static inline msr_t rdmsr_amd(u32 index)
-{
- msr_t result;
- __asm__ __volatile__(
- "rdmsr"
- :"=a"(result.lo), "=d"(result.hi)
- :"c"(index), "D"(0x9c5a203a)
- );
- return result;
-}
-
-static inline void wrmsr_amd(u32 index, msr_t msr)
-{
- __asm__ __volatile__(
- "wrmsr"
- : /* No outputs */
- :"c"(index), "a"(msr.lo), "d"(msr.hi), "D"(0x9c5a203a)
- );
-}
-
#define MTRR_COUNT 8
#define ZERO_CHUNK_KB 0x800UL /* 2M */
#define TOLM_KB 0x400000UL
diff --git a/src/cpu/amd/model_fxx/processor_name.c b/src/cpu/amd/model_fxx/processor_name.c
index 6f45b0f8cd..766cf92954 100644
--- a/src/cpu/amd/model_fxx/processor_name.c
+++ b/src/cpu/amd/model_fxx/processor_name.c
@@ -35,6 +35,7 @@
#include <console/console.h>
#include <string.h>
#include <cpu/x86/msr.h>
+#include <cpu/amd/mtrr.h>
#include <cpu/amd/model_fxx_rev.h>
/* The maximum length of CPU names is 48 bytes, including the final NULL byte.
@@ -100,17 +101,6 @@ static const char *processor_names[]={
};
#endif
-/* wrmsr_amd() is from yhlu's changes to model_fxx_init.c */
-
-static inline void wrmsr_amd(unsigned index, msr_t msr)
-{
- __asm__ __volatile__ (
- "wrmsr"
- : /* No outputs */
- : "c" (index), "a" (msr.lo), "d" (msr.hi), "D" (0x9c5a203a)
- );
-}
-
int init_processor_name(void)
{
#if !CONFIG_K8_REV_F_SUPPORT
diff --git a/src/cpu/amd/mtrr/amd_mtrr.c b/src/cpu/amd/mtrr/amd_mtrr.c
index b804d493a6..2f3e6e340f 100644
--- a/src/cpu/amd/mtrr/amd_mtrr.c
+++ b/src/cpu/amd/mtrr/amd_mtrr.c
@@ -2,9 +2,9 @@
#include <device/device.h>
#include <arch/cpu.h>
#include <cpu/x86/mtrr.h>
+#include <cpu/x86/msr.h>
#include <cpu/amd/mtrr.h>
#include <cpu/x86/cache.h>
-#include <cpu/x86/msr.h>
/* These will likely move to some device node or cbmem. */
static uint64_t amd_topmem = 0;
diff --git a/src/cpu/x86/mtrr/earlymtrr.c b/src/cpu/x86/mtrr/earlymtrr.c
index 593f0664d7..55dbd2f4a4 100644
--- a/src/cpu/x86/mtrr/earlymtrr.c
+++ b/src/cpu/x86/mtrr/earlymtrr.c
@@ -2,8 +2,8 @@
#define EARLYMTRR_C
#include <cpu/x86/cache.h>
#include <cpu/x86/mtrr.h>
-#include <cpu/amd/mtrr.h>
#include <cpu/x86/msr.h>
+#include <cpu/amd/mtrr.h>
static void set_var_mtrr(
unsigned reg, unsigned base, unsigned size, unsigned type)