summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/amd/model_gx2/cpureginit.c308
-rw-r--r--src/cpu/amd/model_gx2/model_gx2_init.c2
-rw-r--r--src/include/cpu/amd/gx2def.h262
3 files changed, 441 insertions, 131 deletions
diff --git a/src/cpu/amd/model_gx2/cpureginit.c b/src/cpu/amd/model_gx2/cpureginit.c
new file mode 100644
index 0000000000..9cd928ecbe
--- /dev/null
+++ b/src/cpu/amd/model_gx2/cpureginit.c
@@ -0,0 +1,308 @@
+#include <console/console.h>
+#include <arch/io.h>
+#include <stdint.h>
+#include <device/device.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
+#include <stdlib.h>
+#include <string.h>
+#include <bitops.h>
+#include <cpu/amd/gx2def.h>
+#include <cpu/x86/msr.h>
+#include <cpu/x86/cache.h>
+
+/* ***************************************************************************/
+/* **/
+/* * BIST */
+/* **/
+/* * GX2 BISTs need to be run before BTB or caches are enabled.*/
+/* * BIST result left in registers on failure to be checked with FS2.*/
+/* **/
+/* ***************************************************************************/
+static void
+BIST(void){
+ int msrnum;
+ msr_t msr;
+
+ /* DM*/
+ msrnum = CPU_DM_CONFIG0;
+ msr = rdmsr(msrnum);
+ msr.lo |= DM_CONFIG0_LOWER_DCDIS_SET;
+ wrmsr(msrnum, msr);
+
+ msr.lo = 0x00000003F;
+ msr.hi = 0x000000000;
+ msrnum = CPU_DM_BIST;
+ wrmsr(msrnum, msr);
+
+ outb(POST_CPU_DM_BIST_FAILURE , 0x80); /* 0x29*/
+ msr = rdmsr(msrnum); /* read back for pass fail*/
+ msr.lo &= 0x0F3FF0000;
+ if (msr.lo != 0xfeff0000)
+ goto BISTFail;
+
+ msrnum = CPU_DM_CONFIG0;
+ msr = rdmsr(msrnum);
+ msr.lo &= ~ DM_CONFIG0_LOWER_DCDIS_SET;
+ wrmsr(msrnum, msr);
+
+ /* FPU*/
+ msr.lo = 0x000000131;
+ msr.hi = 0;
+ msrnum = CPU_FP_UROM_BIST;
+ wrmsr(msrnum, msr);
+
+ outb(POST_CPU_FPU_BIST_FAILURE, 0x80); /* 0x89*/
+ inb(0x80); /* IO delay*/
+ msr = rdmsr(msrnum); /* read back for pass fail*/
+ while ((msr.lo&0x884) != 0x884)
+ msr = rdmsr(msrnum); /* Endless loop if BIST is broken*/
+ if ((msr.lo&0x642) != 0x642)
+ goto BISTFail;
+
+ msr.lo = msr.hi = 0; /* clear FPU BIST bits*/
+ msrnum = CPU_FP_UROM_BIST;
+ wrmsr(msrnum, msr);
+
+
+ /* BTB*/
+ msr.lo = 0x000000303;
+ msr.hi = 0x000000000;
+ msrnum = CPU_PF_BTBRMA_BIST;
+ wrmsr(msrnum, msr);
+
+ outb(POST_CPU_BTB_BIST_FAILURE , 0x80); /* 0x8A*/
+ msr = rdmsr(msrnum); /* read back for pass fail*/
+ if ((msr.lo & 0x3030) != 0x3030)
+ goto BISTFail;
+
+ return;
+
+BISTFail:
+ printk_err("BIST failed!\n");
+ while(1);
+}
+/* ***************************************************************************/
+/* * cpuRegInit*/
+/* ***************************************************************************/
+void
+cpuRegInit (int diagmode){
+ int msrnum;
+ msr_t msr;
+ /* Turn on BTM for early debug based on setup. */
+ /*if (getnvram( TOKEN_BTM_DIAG_MODE) & 3) {*/
+ {
+ /* Set Diagnostic Mode */
+ msrnum = CPU_GLD_MSR_DIAG;
+ msr.hi = 0;
+ msr.lo = DIAG_SEL1_SET | DIAG_SET0_SET;
+ wrmsr(msrnum, msr);
+
+ /* Set up GLCP to grab BTM data.*/
+ msrnum = 0x04C00000C; /* GLCP_DBGOUT MSR*/
+ msr.hi = 0x0;
+ msr.lo = 0x08; /* reset value (SCOPE_SEL = 0) causes FIFO toshift out,*/
+ wrmsr(msrnum, msr); /* exchange it to anything else to prevent this*/
+
+ /* ;Turn off debug clock*/
+ msrnum = 0x04C000016; /* DBG_CLK_CTL*/
+ msr.lo = 0x00; /* No clock*/
+ msr.hi = 0x00;
+ wrmsr(msrnum, msr);
+
+ /* ;Set debug clock to CPU*/
+ msrnum = 0x04C000016; /* DBG_CLK_CTL*/
+ msr.lo = 0x01; /* CPU CLOCK*/
+ msr.hi = 0x00;
+ wrmsr(msrnum, msr);
+
+ /* ;Set fifo ctl to BTM bits wide*/
+ msrnum = 0x04C00005E; /* FIFO_CTL*/
+ msr.lo = 0x003880000; /* Bit [25:24] are size (11=BTM, 10 = 64 bit, 01= 32 bit, 00 = 16bit)*/
+ wrmsr(msrnum, msr); /* Bit [23:21] are position (100 = CPU downto0)*/
+ /* Bit [19] sets it up in slow data mode.*/
+
+ /* ;enable fifo loading - BTM sizing will constrain*/
+ /* ; only valid BTM packets to load - this action should always be on*/
+
+ msrnum = 0x04C00006F; /* GLCP ACTION7 - load fifo*/
+ msr.lo = 0x00000F000; /* Any nibble all 1's will always trigger*/
+ msr.hi = 0x000000000; /* */
+ wrmsr(msrnum, msr);
+
+ /* ;start storing diag data in the fifo*/
+ msrnum = 0x04C00005F; /* DIAG CTL*/
+ msr.lo = 0x080000000; /* enable actions*/
+ msr.hi = 0x000000000;
+ wrmsr(msrnum, msr);
+
+ /* Set up delay on data lines, so that the hold time*/
+ /* is 1 ns.*/
+ msrnum = 0x04C00000D ; /* GLCP IO DELAY CONTROLS*/
+ msr.lo = 0x082b5ad68;
+ msr.hi = 0x080ad6b57; /* RGB delay = 0x07*/
+ wrmsr(msrnum, msr);
+
+ /* Set up DF to output diag information on DF pins.*/
+ msrnum = DF_GLD_MSR_MASTER_CONF;
+ msr.lo = 0x0220;
+ msr.hi = 0;
+ wrmsr(msrnum, msr);
+
+ msrnum = 0x04C00000C ; /* GLCP_DBGOUT MSR*/
+ msr.hi = 0x0;
+ msr.lo = 0x0; /* reset value (SCOPE_SEL = 0) causes FIFO to shift out,*/
+ wrmsr(msrnum, msr);
+ /* end of code for BTM */
+ }
+
+ /* Enable Suspend on Halt*/
+ msrnum = CPU_XC_CONFIG;
+ msr = rdmsr(msrnum);
+ msr.lo |= XC_CONFIG_SUSP_ON_HLT;
+ wrmsr(msrnum, msr);
+
+ /* ENable SUSP and allow TSC to run in Suspend */
+ /* to keep speed detection happy*/
+ msrnum = CPU_BC_CONF_0;
+ msr = rdmsr(msrnum);
+ msr.lo |= TSC_SUSP_SET | SUSP_EN_SET;
+ wrmsr(msrnum, msr);
+
+ /* Setup throttling to proper mode if it is ever enabled.*/
+ msrnum = 0x04C00001E;
+ msr.hi = 0x000000000;
+ msr.lo = 0x00000603C;
+ wrmsr(msrnum, msr);
+
+
+/* Only do this if we are building for 5535*/
+/* */
+/* FooGlue Setup*/
+/* */
+ /* Enable CIS mode B in FooGlue*/
+ msrnum = MSR_FG + 0x10;
+ msr = rdmsr(msrnum);
+ msr.lo &= ~3;
+ msr.lo |= 2; /* ModeB*/
+ wrmsr(msrnum, msr);
+
+
+/* */
+/* Disable DOT PLL. Graphics init will enable it if needed.*/
+/* */
+ msrnum = GLCP_DOTPLL;
+ msr = rdmsr(msrnum);
+ msr.lo |= DOTPPL_LOWER_PD_SET;
+ wrmsr(msrnum, msr);
+
+/* */
+/* Set the Delay Control in GLCP*/
+/* */
+/* SetDelayControl();*/
+
+/* */
+/* Enable RSDC*/
+/* */
+ msrnum = 0x1301 ;
+ msr = rdmsr(msrnum);
+ msr.lo |= 0x08;
+ wrmsr(msrnum, msr);
+
+
+/* */
+/* BIST*/
+/* */
+ /*if (getnvram( TOKEN_BIST_ENABLE) & == TVALUE_DISABLE) {*/
+ {
+ BIST();
+ }
+
+
+/* */
+/* Enable BTB*/
+/* */
+ /* I hate to put this check here but it doesn't really work in cpubug.asm*/
+ msrnum = MSR_GLCP+0x17;
+ msr = rdmsr(msrnum);
+ if (msr.lo < CPU_REV_2_1){
+ msrnum = CPU_PF_BTB_CONF;
+ msr = rdmsr(msrnum);
+ msr.lo |= BTB_ENABLE_SET | RETURN_STACK_ENABLE_SET;
+ wrmsr(msrnum, msr);
+ }
+
+/* */
+/* FPU impercise exceptions bit*/
+/* */
+ /*if (getnvram( TOKEN_FPU_IE_ENABLE) != TVALUE_DISABLE) {*/
+ {
+ msrnum = CPU_FPU_MSR_MODE;
+ msr = rdmsr(msrnum);
+ msr.lo |= FPU_IE_SET;
+ wrmsr(msrnum, msr);
+ }
+
+/* */
+/* Cache Overides*/
+/* */
+ /* Allow NVRam to override DM Setup*/
+ /*if (getnvram( TOKEN_CACHE_DM_MODE) != 1) {*/
+ {
+
+ msrnum = CPU_DM_CONFIG0;
+ msr = rdmsr(msrnum);
+ msr.lo |= DM_CONFIG0_LOWER_DCDIS_SET;
+ wrmsr(msrnum, msr);
+ }
+ /* Allow NVRam to override IM Setup*/
+ /*if (getnvram( TOKEN_CACHE_IM_MODE) ==1) {*/
+ {
+ msrnum = CPU_IM_CONFIG;
+ msr = rdmsr(msrnum);
+ msr.lo |= IM_CONFIG_LOWER_ICD_SET;
+ wrmsr(msrnum, msr);
+ }
+}
+
+
+
+
+/* ***************************************************************************/
+/* **/
+/* * MTestPinCheckBX*/
+/* **/
+/* * Set MTEST pins to expected values from OPTIONS.INC/NVRAM*/
+/* * This version is called when there isn't a stack available*/
+/* **/
+/* ***************************************************************************/
+static void
+MTestPinCheckBX (void){
+ int msrnum;
+ msr_t msr;
+
+ /*if (getnvram( TOKEN_MTEST_ENABLE) ==TVALUE_DISABLE ) {*/
+ /* return ; */
+ /* } */
+
+ /* Turn on MTEST*/
+ msrnum = MC_CFCLK_DBUG;
+ msr = rdmsr(msrnum);
+ msr.hi |= CFCLK_UPPER_MTST_B2B_DIS_SET | CFCLK_UPPER_MTEST_EN_SET;
+ wrmsr(msrnum, msr);
+
+ msrnum = GLCP_SYS_RSTPLL /* Get SDR/DDR mode from GLCP*/;
+ msr = rdmsr(msrnum);
+ msr.lo >>= RSTPPL_LOWER_SDRMODE_SHIFT;
+ if (msr.lo & 1) {
+ msrnum = MC_CFCLK_DBUG; /* Turn on SDR MTEST stuff*/
+ msr = rdmsr(msrnum);
+ msr.lo |= CFCLK_LOWER_SDCLK_SET;
+ msr.hi |= CFCLK_UPPER_MTST_DQS_EN_SET;
+ wrmsr(msrnum, msr);
+ }
+
+ /* Lock the cache down here.*/
+ wbinvd();
+
+}
diff --git a/src/cpu/amd/model_gx2/model_gx2_init.c b/src/cpu/amd/model_gx2/model_gx2_init.c
index 9fc5d2679d..185faf2197 100644
--- a/src/cpu/amd/model_gx2/model_gx2_init.c
+++ b/src/cpu/amd/model_gx2/model_gx2_init.c
@@ -73,6 +73,8 @@ unsigned long addr;
}
#endif
+#include "cpureginit.c"
+
static void model_gx2_init(device_t dev)
{
void do_vsmbios(void);
diff --git a/src/include/cpu/amd/gx2def.h b/src/include/cpu/amd/gx2def.h
index dc4559ee60..9bb4f571f0 100644
--- a/src/include/cpu/amd/gx2def.h
+++ b/src/include/cpu/amd/gx2def.h
@@ -97,21 +97,21 @@
/*GeodeLink Interface Unit 0 (GLIU0) port0*/
/**/
-#define GLIU0_GLD_MSR_CAP MSR_GLIU0 + 0x2000
-#define GLIU0_GLD_MSR_PM MSR_GLIU0 + 0x2004
+#define GLIU0_GLD_MSR_CAP (MSR_GLIU0 + 0x2000)
+#define GLIU0_GLD_MSR_PM (MSR_GLIU0 + 0x2004)
-#define GLIU0_DESC_BASE MSR_GLIU0 + 0x20
-#define GLIU0_CAP MSR_GLIU0 + 0x86
-#define GLIU0_GLD_MSR_COH MSR_GLIU0 + 0x80
+#define GLIU0_DESC_BASE (MSR_GLIU0 + 0x20)
+#define GLIU0_CAP (MSR_GLIU0 + 0x86)
+#define GLIU0_GLD_MSR_COH (MSR_GLIU0 + 0x80)
/**/
/* Memory Controller GLIU0 port 1*/
/**/
-#define MC_GLD_MSR_CAP MSR_MC + 0x2000
-#define MC_GLD_MSR_PM MSR_MC + 0x2004
+#define MC_GLD_MSR_CAP (MSR_MC + 0x2000)
+#define MC_GLD_MSR_PM (MSR_MC + 0x2004)
-#define MC_CF07_DATA MSR_MC + 0x18
+#define MC_CF07_DATA (MSR_MC + 0x18)
#define CF07_UPPER_D1_SZ_SHIFT 28
#define CF07_UPPER_D1_MB_SHIFT 24
@@ -122,22 +122,22 @@
#define CF07_UPPER_D0_CB_SHIFT 4
#define CF07_UPPER_D0_PSZ_SHIFT 0
-#define CF07_LOWER_REF_INT_SHIFT 8
-#define CF07_LOWER_LOAD_MODE_DDR_SET (1 << 28)
-#define CF07_LOWER_LOAD_MODE_DLL_RESET (1 << 27)
+#define CF07_LOWER_REF_INT_SHIFT 8
+#define CF07_LOWER_LOAD_MODE_DDR_SET (1 << 28)
+#define CF07_LOWER_LOAD_MODE_DLL_RESET (1 << 27)
#define CF07_LOWER_EMR_QFC_SET (1 << 26)
#define CF07_LOWER_EMR_DRV_SET (1 << 25)
#define CF07_LOWER_REF_TEST_SET (1 << 3)
#define CF07_LOWER_PROG_DRAM_SET (1 << 0)
-#define MC_CF8F_DATA MSR_MC + 0x19
+#define MC_CF8F_DATA (MSR_MC + 0x19)
#define CF8F_UPPER_XOR_BS_SHIFT 19
#define CF8F_UPPER_XOR_MB0_SHIFT 18
#define CF8F_UPPER_XOR_BA1_SHIFT 17
#define CF8F_UPPER_XOR_BA0_SHIFT 16
-#define CF8F_UPPER_REORDER_DIS_SET 1 << 8
+#define CF8F_UPPER_REORDER_DIS_SET (1 << 8)
#define CF8F_UPPER_REG_DIMM_SHIFT 4
#define CF8F_LOWER_CAS_LAT_SHIFT 28
#define CF8F_LOWER_REF2ACT_SHIFT 24
@@ -145,34 +145,34 @@
#define CF8F_LOWER_PRE2ACT_SHIFT 16
#define CF8F_LOWER_ACT2CMD_SHIFT 12
#define CF8F_LOWER_ACT2ACT_SHIFT 8
-#define CF8F_UPPER_32BIT_SET 1 << 5
-#define CF8F_UPPER_HOI_LOI_SET 1 << 1
+#define CF8F_UPPER_32BIT_SET (1 << 5)
+#define CF8F_UPPER_HOI_LOI_SET (1 << 1)
-#define MC_CF1017_DATA MSR_MC + 0x1A
+#define MC_CF1017_DATA (MSR_MC + 0x1A)
-#define CF1017_LOWER_PM1_UP_DLY_SET 1 << 8
-#define CF1017_LOWER_WR2DAT_SHIFT 0
+#define CF1017_LOWER_PM1_UP_DLY_SET (1 << 8)
+#define CF1017_LOWER_WR2DAT_SHIFT 0
-#define MC_CFCLK_DBUG MSR_MC + 0x1D
+#define MC_CFCLK_DBUG (MSR_MC + 0x1D)
-#define CFCLK_UPPER_MTST_B2B_DIS_SET 1 << 2
-#define CFCLK_UPPER_MTST_DQS_EN_SET 1 << 1
-#define CFCLK_UPPER_MTEST_EN_SET 1 << 0
+#define CFCLK_UPPER_MTST_B2B_DIS_SET (1 << 2)
+#define CFCLK_UPPER_MTST_DQS_EN_SET (1 << 1)
+#define CFCLK_UPPER_MTEST_EN_SET (1 << 0)
-#define CFCLK_LOWER_MASK_CKE_SET1 1 << 9
-#define CFCLK_LOWER_MASK_CKE_SET0 1 << 8
-#define CFCLK_LOWER_SDCLK_SET 0x0F << 0
+#define CFCLK_LOWER_MASK_CKE_SET1 (1 << 9)
+#define CFCLK_LOWER_MASK_CKE_SET0 (1 << 8)
+#define CFCLK_LOWER_SDCLK_SET (0x0F << 0)
-#define MC_CF_RDSYNC MSR_MC + 0x1F
+#define MC_CF_RDSYNC (MSR_MC + 0x1F)
/**/
/* GLIU1 GLIU0 port2*/
/**/
-#define GLIU1_GLD_MSR_CAP MSR_GLIU1 + 0x2000
-#define GLIU1_GLD_MSR_PM MSR_GLIU1 + 0x2004
+#define GLIU1_GLD_MSR_CAP (MSR_GLIU1 + 0x2000)
+#define GLIU1_GLD_MSR_PM (MSR_GLIU1 + 0x2004)
-#define GLIU1_GLD_MSR_COH MSR_GLIU1 + 0x80
+#define GLIU1_GLD_MSR_COH (MSR_GLIU1 + 0x80)
/**/
@@ -184,27 +184,27 @@
#define CPU_GLD_MSR_DIAG 0x2005
#define DIAG_SEL1_MODE_SHIFT 16
-#define DIAG_SEL1_SET 1 << 31
+#define DIAG_SEL1_SET (1 << 31)
#define DIAG_SEL0__MODE_SHIFT 0
-#define DIAG_SET0_SET 1 << 15
+#define DIAG_SET0_SET (1 << 15)
#define CPU_PF_BTB_CONF 0x1100
-#define BTB_ENABLE_SET 1 << 0
-#define RETURN_STACK_ENABLE_SET 1 << 4
+#define BTB_ENABLE_SET (1 << 0)
+#define RETURN_STACK_ENABLE_SET (1 << 4)
#define CPU_PF_BTBRMA_BIST 0x110C
#define CPU_XC_CONFIG 0x1210
-#define XC_CONFIG_SUSP_ON_HLT 1 << 0
+#define XC_CONFIG_SUSP_ON_HLT (1 << 0)
#define CPU_ID_CONFIG 0x1250
-#define ID_CONFIG_SERIAL_SET 1 << 0
+#define ID_CONFIG_SERIAL_SET (1 << 0)
#define CPU_AC_MSR 0x1301
#define CPU_EX_BIST 0x1428
/*IM*/
#define CPU_IM_CONFIG 0x1700
-#define IM_CONFIG_LOWER_ICD_SET 1 << 8
-#define IM_CONFIG_LOWER_QWT_SET 1 << 20
+#define IM_CONFIG_LOWER_ICD_SET (1 << 8)
+#define IM_CONFIG_LOWER_QWT_SET (1 << 20)
#define CPU_IC_INDEX 0x1710
#define CPU_IC_DATA 0x1711
#define CPU_IC_TAG 0x1712
@@ -293,19 +293,19 @@
#define CPU_BC_CONF_0 0x1900
#define TSC_SUSP_SET (1<<5)
-#define SUSP_EN_SET (1<<1)2
+#define SUSP_EN_SET (1<<12)
/**/
/* VG GLIU0 port4*/
/**/
-#define VG_GLD_MSR_CAP MSR_VG + 0x2000
-#define VG_GLD_MSR_CONFIG MSR_VG + 0x2001
-#define VG_GLD_MSR_PM MSR_VG + 0x2004
+#define VG_GLD_MSR_CAP (MSR_VG + 0x2000)
+#define VG_GLD_MSR_CONFIG (MSR_VG + 0x2001)
+#define VG_GLD_MSR_PM (MSR_VG + 0x2004)
-#define GP_GLD_MSR_CAP MSR_GP + 0x2000
-#define GP_GLD_MSR_CONFIG MSR_GP + 0x2001
-#define GP_GLD_MSR_PM MSR_GP + 0x2004
+#define GP_GLD_MSR_CAP (MSR_GP + 0x2000)
+#define GP_GLD_MSR_CONFIG (MSR_GP + 0x2001)
+#define GP_GLD_MSR_PM (MSR_GP + 0x2004)
@@ -313,29 +313,29 @@
/* DF GLIU0 port6*/
/**/
-#define DF_GLD_MSR_CAP MSR_DF + 0x2000
-#define DF_GLD_MSR_MASTER_CONF MSR_DF + 0x2001
+#define DF_GLD_MSR_CAP (MSR_DF + 0x2000)
+#define DF_GLD_MSR_MASTER_CONF (MSR_DF + 0x2001)
#define DF_LOWER_LCD_SHIFT 6
-#define DF_GLD_MSR_PM MSR_DF + 0x2004
+#define DF_GLD_MSR_PM (MSR_DF + 0x2004)
/**/
/* GeodeLink Control Processor GLIU1 port3*/
/**/
-#define GLCP_GLD_MSR_CAP MSR_GLCP + 0x2000
-#define GLCP_GLD_MSR_CONF MSR_GLCP + 0x2001
-#define GLCP_GLD_MSR_PM MSR_GLCP + 0x2004
+#define GLCP_GLD_MSR_CAP (MSR_GLCP + 0x2000)
+#define GLCP_GLD_MSR_CONF (MSR_GLCP + 0x2001)
+#define GLCP_GLD_MSR_PM (MSR_GLCP + 0x2004)
-#define GLCP_DELAY_CONTROLS MSR_GLCP + 0x0F
+#define GLCP_DELAY_CONTROLS (MSR_GLCP + 0x0F)
-#define GLCP_SYS_RSTPLL MSR_GLCP +0x14 /* R/W*/
+#define GLCP_SYS_RSTPLL (MSR_GLCP +0x14 /* R/W*/)
#define RSTPLL_UPPER_MDIV_SHIFT 9
#define RSTPLL_UPPER_VDIV_SHIFT 6
#define RSTPLL_UPPER_FBDIV_SHIFT 0
#define RSTPLL_LOWER_SWFLAGS_SHIFT 26
-#define RSTPLL_LOWER_SWFLAGS_MASK (0x3F<<RSTPLL_LOWER_SWFLAGS_SHIFT))
+#define RSTPLL_LOWER_SWFLAGS_MASK (0x3F<<RSTPLL_LOWER_SWFLAGS_SHIFT)
#define RSTPPL_LOWER_HOLD_COUNT_SHIFT 16
#define RSTPPL_LOWER_BYPASS_SHIFT 15
@@ -353,18 +353,18 @@
#define RSTPPL_LOWER_PCI_SEMI_SYNC_SET (1<<8)
#define RSTPPL_LOWER_CHIP_RESET_SET (1<<0)
-#define GLCP_DOTPLL MSR_GLCP + 0x15 /* R/W*/
+#define GLCP_DOTPLL (MSR_GLCP + 0x15 /* R/W*/)
#define DOTPPL_LOWER_PD_SET (1<<14)
/**/
/* GLIU1 port 4*/
/**/
-#define GLPCI_GLD_MSR_CAP MSR_PCI + 0x2000
-#define GLPCI_GLD_MSR_CONFIG MSR_PCI + 0x2001
-#define GLPCI_GLD_MSR_PM MSR_PCI + 0x2004
+#define GLPCI_GLD_MSR_CAP (MSR_PCI + 0x2000)
+#define GLPCI_GLD_MSR_CONFIG (MSR_PCI + 0x2001)
+#define GLPCI_GLD_MSR_PM (MSR_PCI + 0x2004)
-#define GLPCI_CTRL MSR_PCI + 0x2010
+#define GLPCI_CTRL (MSR_PCI + 0x2010)
#define GLPCI_CTRL_UPPER_FTH_SHIFT 28
#define GLPCI_CTRL_UPPER_RTH_SHIFT 24
#define GLPCI_CTRL_UPPER_SBRTH_SHIFT 20
@@ -381,7 +381,7 @@
#define GLPCI_CTRL_LOWER_PCD_SET (1<<2)
#define GLPCI_CTRL_LOWER_ME_SET (1<<0)
-#define GLPCI_ARB MSR_PCI + 0x2011
+#define GLPCI_ARB (MSR_PCI + 0x2011)
#define GLPCI_ARB_UPPER_BM1_SET (1<<17)
#define GLPCI_ARB_UPPER_BM0_SET (1<<16)
#define GLPCI_ARB_UPPER_CPRE_SET (1<<15)
@@ -398,15 +398,15 @@
#define GLPCI_ARB_LOWER_IIE_SET (1<<8)
#define GLPCI_ARB_LOWER_PARK_SET (1<<0)
-#define GLPCI_REN MSR_PCI + 0x2014
-#define GLPCI_A0_BF MSR_PCI + 0x2015
-#define GLPCI_C0_DF MSR_PCI + 0x2016
-#define GLPCI_E0_FF MSR_PCI + 0x2017
-#define GLPCI_RC0 MSR_PCI + 0x2018
-#define GLPCI_RC1 MSR_PCI + 0x2019
-#define GLPCI_RC2 MSR_PCI + 0x201A
-#define GLPCI_RC3 MSR_PCI + 0x201B
-#define GLPCI_RC4 MSR_PCI + 0x201C
+#define GLPCI_REN (MSR_PCI + 0x2014)
+#define GLPCI_A0_BF (MSR_PCI + 0x2015)
+#define GLPCI_C0_DF (MSR_PCI + 0x2016)
+#define GLPCI_E0_FF (MSR_PCI + 0x2017)
+#define GLPCI_RC0 (MSR_PCI + 0x2018)
+#define GLPCI_RC1 (MSR_PCI + 0x2019)
+#define GLPCI_RC2 (MSR_PCI + 0x201A)
+#define GLPCI_RC3 (MSR_PCI + 0x201B)
+#define GLPCI_RC4 (MSR_PCI + 0x201C)
#define GLPCI_RC_UPPER_TOP_SHIFT 12
#define GLPCI_RC_LOWER_BASE_SHIFT 12
#define GLPCI_RC_LOWER_EN_SET (1<<8)
@@ -414,8 +414,8 @@
#define GLPCI_RC_LOWER_WC_SET (1<<4)
#define GLPCI_RC_LOWER_WP_SET (1<<2)
#define GLPCI_RC_LOWER_CD_SET (1<<0)
-#define GLPCI_ExtMSR MSR_PCI + 0x201E
-#define GLPCI_SPARE MSR_PCI + 0x201F
+#define GLPCI_ExtMSR (MSR_PCI + 0x201E)
+#define GLPCI_SPARE (MSR_PCI + 0x201F)
#define GLPCI_SPARE_LOWER_AILTO_SET (1<<6)
#define GLPCI_SPARE_LOWER_PPD_SET (1<<5)
#define GLPCI_SPARE_LOWER_PPC_SET (1<<4)
@@ -428,8 +428,8 @@
/**/
/* FooGlue GLIU1 port 5*/
/**/
-#define FG_GLD_MSR_CAP MSR_FG + 0x2000
-#define FG_GLD_MSR_PM MSR_FG + 0x2004
+#define FG_GLD_MSR_CAP (MSR_FG + 0x2000)
+#define FG_GLD_MSR_PM (MSR_FG + 0x2004)
/* VIP GLIU1 port 5*/
/* */
@@ -447,21 +447,21 @@
/* more fun stuff */
#define BM 1 /* Base Mask - map power of 2 size aligned region*/
#define BMO 2 /* BM with an offset*/
-#define R 3 /* Range - 4k range minimum*/
+#define R 3 /* Range - 4k range minimum*/
#define RO 4 /* R with offset*/
#define SC 5 /* Swiss 0xCeese - maps a 256K region in to 16K 0xcunks. Set W/R*/
-#define BMIO 6 /* Base Mask IO*/
-#define SCIO 7 /* Swiss 0xCeese IO*/
-#define SC_SHADOW 8 /* Special marker for Shadow SC descriptors so setShadow proc is independant of CPU*/
+#define BMIO 6 /* Base Mask IO*/
+#define SCIO 7 /* Swiss 0xCeese IO*/
+#define SC_SHADOW 8 /* Special marker for Shadow SC descriptors so setShadow proc is independant of CPU*/
#define R_SYSMEM 9 /* Special marker for SYSMEM R descriptors so GLIUInit proc is independant of CPU*/
-#define BMO_SMM 10 /* Specail marker for SMM*/
-#define BM_SMM 11 /* Specail marker for SMM*/
-#define BMO_DMM 12 /* Specail marker for DMM*/
-#define BM_DMM 13 /* Specail marker for DMM*/
+#define BMO_SMM 10 /* Specail marker for SMM*/
+#define BM_SMM 11 /* Specail marker for SMM*/
+#define BMO_DMM 12 /* Specail marker for DMM*/
+#define BM_DMM 13 /* Specail marker for DMM*/
#define RO_FB 14 /* special for Frame buffer.*/
#define R_FB 15 /* special for FB.*/
#define OTHER 0x0FE /* Special marker for other*/
-#define GL_END 0x0FF /* end*/
+#define GL_END 0x0FF /* end*/
#define MSR_GL0 (GL1_GLIU0 << 29)
@@ -469,35 +469,35 @@
/* This is chip specific!*/
#define MSR_GLIU0_BASE1 (MSR_GLIU0 + 0x20) /* BM*/
#define MSR_GLIU0_BASE2 (MSR_GLIU0 + 0x21) /* BM*/
-#define MSR_GLIU0_SHADOW (MSR_GLIU0 + 0x2C) /* SCO should only be SC*/
-#define MSR_GLIU0_SYSMEM (MSR_GLIU0 + 0x28) /* RO should only be R*/
+#define MSR_GLIU0_SHADOW (MSR_GLIU0 + 0x2C) /* SCO should only be SC*/
+#define MSR_GLIU0_SYSMEM (MSR_GLIU0 + 0x28) /* RO should only be R*/
#define MSR_GLIU0_SMM (MSR_GLIU0 + 0x26) /* BMO*/
#define MSR_GLIU0_DMM (MSR_GLIU0 + 0x27) /* BMO*/
#define MSR_GLIU1_BASE1 (MSR_GLIU1 + 0x20) /* BM*/
#define MSR_GLIU1_BASE2 (MSR_GLIU1 + 0x21) /* BM*/
-#define MSR_GLIU1_SHADOW (MSR_GLIU1 + 0x2D) /* SCO should only be SC*/
-#define MSR_GLIU1_SYSMEM (MSR_GLIU1 + 0x29) /* RO should only be R*/
+#define MSR_GLIU1_SHADOW (MSR_GLIU1 + 0x2D) /* SCO should only be SC*/
+#define MSR_GLIU1_SYSMEM (MSR_GLIU1 + 0x29) /* RO should only be R*/
#define MSR_GLIU1_SMM (MSR_GLIU1 + 0x23) /* BM*/
#define MSR_GLIU1_DMM (MSR_GLIU1 + 0x24) /* BM*/
#define MSR_GLIU1_FPU_TRAP (MSR_GLIU1 + 0x0E3) /* FooGlue F0 for FPU*/
/* definitions that are "once you are mostly up, start VSA" type things */
#define SMM_OFFSET 0x40400000
-#define SMM_SIZE 256
+#define SMM_SIZE 256
#define DMM_OFFSET 0x0C0000000
-#define DMM_SIZE 128
-#define FB_OFFSET 0x41000000
+#define DMM_SIZE 128
+#define FB_OFFSET 0x41000000
#define PCI_MEM_TOP 0x0EFFFFFFF // Top of PCI mem allocation region
-#define PCI_IO_TOP 0x0EFFF // Top of PCI I/O allocation region
+#define PCI_IO_TOP 0x0EFFF // Top of PCI I/O allocation region
#define END_OPTIONROM_SPACE 0x0DFFF // E0000 is reserved for SystemROMs.
#define MDD_SMBUS 0x06000 // SMBUS IO location
-#define MDD_GPIO 0x06100 // GPIO & ICF IO location
+#define MDD_GPIO 0x06100 // GPIO & ICF IO location
#define MDD_MFGPT 0x06200 // General Purpose Timers IO location
#define MDD_IRQ_MAPPER 0x06300 // IRQ Mapper
-#define ACPI_BASE 0x09C00 // ACPI Base
-#define MDD_PM 0x09D00 // Power Management Logic - placed at the end of ACPI
+#define ACPI_BASE 0x09C00 // ACPI Base
+#define MDD_PM 0x09D00 // Power Management Logic - placed at the end of ACPI
#define CS5535_IDSEL 0x02000000 // IDSEL = AD25, device #15
#define CHIPSET_DEV_NUM 15
@@ -510,17 +510,17 @@
#define POST_preSioInit (0x000) /* geode.asm*/
#define POST_clockInit (0x001) /* geode.asm*/
#define POST_CPURegInit (0x002) /* geode.asm*/
-#define POST_UNREAL (0x003) /* geode.asm*/
+#define POST_UNREAL (0x003) /* geode.asm*/
#define POST_CPUMemRegInit (0x004) /* geode.asm*/
#define POST_CPUTest (0x005) /* geode.asm*/
#define POST_memSetup (0x006) /* geode.asm*/
#define POST_memSetUpStack (0x007) /* geode.asm*/
#define POST_memTest (0x008) /* geode.asm*/
-#define POST_shadowRom (0x009) /* geode.asm*/
-#define POST_memRAMoptimize (0x00A) /* geode.asm*/
+#define POST_shadowRom (0x009) /* geode.asm*/
+#define POST_memRAMoptimize (0x00A) /* geode.asm*/
#define POST_cacheInit (0x00B) /* geode.asm*/
-#define POST_northBridgeInit (0x00C) /* geode.asm*/
-#define POST_chipsetInit (0x00D) /* geode.asm*/
+#define POST_northBridgeInit (0x00C) /* geode.asm*/
+#define POST_chipsetInit (0x00D) /* geode.asm*/
#define POST_sioTest (0x00E) /* geode.asm*/
#define POST_pcATjunk (0x00F) /* geode.asm*/
@@ -535,26 +535,26 @@
#define POST_pciScan (0x017) /* geode.asm*/
#define POST_optionRomInit (0x018) /* geode.asm*/
#define POST_ResetLimits (0x019) /* geode.asm*/
-#define POST_summary_screen (0x01A) /* geode.asm*/
+#define POST_summary_screen (0x01A) /* geode.asm*/
#define POST_Boot (0x01B) /* geode.asm*/
#define POST_SystemPreInit (0x01C) /* geode.asm*/
-#define POST_ClearRebootFlag (0x01D) /* geode.asm*/
+#define POST_ClearRebootFlag (0x01D) /* geode.asm*/
#define POST_GLIUInit (0x01E) /* geode.asm*/
#define POST_BootFailed (0x01F) /* geode.asm*/
-#define POST_CPU_ID (0x020) /* cpucpuid.asm*/
-#define POST_COUNTERBROKEN (0x021) /* pllinit.asm*/
-#define POST_DIFF_DIMMS (0x022) /* pllinit.asm*/
+#define POST_CPU_ID (0x020) /* cpucpuid.asm*/
+#define POST_COUNTERBROKEN (0x021) /* pllinit.asm*/
+#define POST_DIFF_DIMMS (0x022) /* pllinit.asm*/
#define POST_WIGGLE_MEM_LINES (0x023) /* pllinit.asm*/
#define POST_NO_GLIU_DESC (0x024) /* pllinit.asm*/
-#define POST_CPU_LCD_CHECK (0x025) /* pllinit.asm*/
+#define POST_CPU_LCD_CHECK (0x025) /* pllinit.asm*/
#define POST_CPU_LCD_PASS (0x026) /* pllinit.asm*/
#define POST_CPU_LCD_FAIL (0x027) /* pllinit.asm*/
#define POST_CPU_STEPPING (0x028) /* cpucpuid.asm*/
#define POST_CPU_DM_BIST_FAILURE (0x029) /* gx2reg.asm*/
-#define POST_CPU_FLAGS (0x02A) /* cpucpuid.asm*/
-#define POST_CHIPSET_ID (0x02b) /* chipset.asm*/
+#define POST_CPU_FLAGS (0x02A) /* cpucpuid.asm*/
+#define POST_CHIPSET_ID (0x02b) /* chipset.asm*/
#define POST_CHIPSET_ID_PASS (0x02c) /* chipset.asm*/
#define POST_CHIPSET_ID_FAIL (0x02d) /* chipset.asm*/
#define POST_CPU_ID_GOOD (0x02E) /* cpucpuid.asm*/
@@ -571,33 +571,33 @@
/* PCI memory*/
-#define P80_PCIMEM (0x050) /* pcispace.asm*/
+#define P80_PCIMEM (0x050) /* pcispace.asm*/
/* SIO*/
-#define P80_SIO (0x060) /* *sio.asm*/
+#define P80_SIO (0x060) /* *sio.asm*/
/* Memory Setp*/
#define P80_MEM_SETUP (0x070) /* docboot meminit*/
-#define POST_MEM_SETUP (0x070) /* memsize.asm*/
+#define POST_MEM_SETUP (0x070) /* memsize.asm*/
#define ERROR_32BIT_DIMMS (0x071) /* memsize.asm*/
-#define POST_MEM_SETUP2 (0x072) /* memsize.asm*/
-#define POST_MEM_SETUP3 (0x073) /* memsize.asm*/
-#define POST_MEM_SETUP4 (0x074) /* memsize.asm*/
-#define POST_MEM_SETUP5 (0x075) /* memsize.asm*/
-#define POST_MEM_ENABLE (0x076) /* memsize.asm*/
-#define ERROR_NO_DIMMS (0x077) /* memsize.asm*/
+#define POST_MEM_SETUP2 (0x072) /* memsize.asm*/
+#define POST_MEM_SETUP3 (0x073) /* memsize.asm*/
+#define POST_MEM_SETUP4 (0x074) /* memsize.asm*/
+#define POST_MEM_SETUP5 (0x075) /* memsize.asm*/
+#define POST_MEM_ENABLE (0x076) /* memsize.asm*/
+#define ERROR_NO_DIMMS (0x077) /* memsize.asm*/
#define ERROR_DIFF_DIMMS (0x078) /* memsize.asm*/
#define ERROR_BAD_LATENCY (0x079) /* memsize.asm*/
-#define ERROR_SET_PAGE (0x07a) /* memsize.asm*/
-#define ERROR_DENSITY_DIMM (0x07b) /* memsize.asm*/
-#define ERROR_UNSUPPORTED_DIMM (0x07c) /* memsize.asm*/
-#define ERROR_BANK_SET (0x07d) /* memsize.asm*/
-#define POST_MEM_SETUP_GOOD (0x07E) /* memsize.asm*/
-#define POST_MEM_SETUP_FAIL (0x07F) /* memsize.asm*/
+#define ERROR_SET_PAGE (0x07a) /* memsize.asm*/
+#define ERROR_DENSITY_DIMM (0x07b) /* memsize.asm*/
+#define ERROR_UNSUPPORTED_DIMM (0x07c) /* memsize.asm*/
+#define ERROR_BANK_SET (0x07d) /* memsize.asm*/
+#define POST_MEM_SETUP_GOOD (0x07E) /* memsize.asm*/
+#define POST_MEM_SETUP_FAIL (0x07F) /* memsize.asm*/
-#define POST_UserPreInit (0x080) /* geode.asm*/
+#define POST_UserPreInit (0x080) /* geode.asm*/
#define POST_UserPostInit (0x081) /* geode.asm*/
#define POST_Equipment_check (0x082) /* geode.asm*/
#define POST_InitNVRAMBX (0x083) /* geode.asm*/
@@ -609,7 +609,7 @@
#define POST_CPU_FPU_BIST_FAILURE (0x089) /* gx2reg.asm*/
#define POST_CPU_BTB_BIST_FAILURE (0x08a) /* gx2reg.asm*/
#define POST_CPU_EX_BIST_FAILURE (0x08b) /* gx2reg.asm*/
-#define POST_Chipset_PI_Test_Fail (0x08c) /* prechipsetinit*/
+#define POST_Chipset_PI_Test_Fail (0x08c) /* prechipsetinit*/
#define POST_Chipset_SMBus_SDA_Test_Fail (0x08d) /* prechipsetinit*/
#define POST_BIT_CLK_Fail (0x08e) /* Hawk geode.asm override*/
@@ -626,26 +626,26 @@
#define POST_PLL_INIT (0x0A0) /* pllinit.asm*/
-#define POST_PLL_MANUAL (0x0A1) /* pllinit.asm*/
+#define POST_PLL_MANUAL (0x0A1) /* pllinit.asm*/
#define POST_PLL_STRAP (0x0A2) /* pllinit.asm*/
-#define POST_PLL_RESET_FAIL (0x0A3) /* pllinit.asm*/
+#define POST_PLL_RESET_FAIL (0x0A3) /* pllinit.asm*/
#define POST_PLL_PCI_FAIL (0x0A4) /* pllinit.asm*/
#define POST_PLL_MEM_FAIL (0x0A5) /* pllinit.asm*/
#define POST_PLL_CPU_VER_FAIL (0x0A6) /* pllinit.asm*/
#define POST_MEM_TESTMEM (0x0B0) /* memtest.asm*/
-#define POST_MEM_TESTMEM1 (0x0B1) /* memtest.asm*/
-#define POST_MEM_TESTMEM2 (0x0B2) /* memtest.asm*/
-#define POST_MEM_TESTMEM3 (0x0B3) /* memtest.asm*/
-#define POST_MEM_TESTMEM4 (0x0B4) /* memtest.asm*/
-#define POST_MEM_TESTMEM_PASS (0x0BE) /* memtest.asm*/
-#define POST_MEM_TESTMEM_FAIL (0x0BF) /* memtest.asm*/
+#define POST_MEM_TESTMEM1 (0x0B1) /* memtest.asm*/
+#define POST_MEM_TESTMEM2 (0x0B2) /* memtest.asm*/
+#define POST_MEM_TESTMEM3 (0x0B3) /* memtest.asm*/
+#define POST_MEM_TESTMEM4 (0x0B4) /* memtest.asm*/
+#define POST_MEM_TESTMEM_PASS (0x0BE) /* memtest.asm*/
+#define POST_MEM_TESTMEM_FAIL (0x0BF) /* memtest.asm*/
#define POST_SECUROM_SECBOOT_START (0x0C0) /* secstart.asm*/
#define POST_SECUROM_BOOTSRCSETUP (0x0C1) /* secstart.asm*/
-#define POST_SECUROM_REMAP_FAIL (0x0C2) /* secstart.asm*/
+#define POST_SECUROM_REMAP_FAIL (0x0C2) /* secstart.asm*/
#define POST_SECUROM_BOOTSRCSETUP_FAIL (0x0C3) /* secstart.asm*/
#define POST_SECUROM_DCACHESETUP (0x0C4) /* secstart.asm*/
#define POST_SECUROM_DCACHESETUP_FAIL (0x0C5) /* secstart.asm*/