summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/northbridge/via/vx800/chip.h3
-rw-r--r--src/northbridge/via/vx800/clk_ctrl.c211
-rw-r--r--src/northbridge/via/vx800/detection.c161
-rw-r--r--src/northbridge/via/vx800/dev_init.c394
-rw-r--r--src/northbridge/via/vx800/dqs_search.c1
-rw-r--r--src/northbridge/via/vx800/dram_init.h3
-rw-r--r--src/northbridge/via/vx800/dram_util.c30
-rw-r--r--src/northbridge/via/vx800/drdy_bl.c14
-rw-r--r--src/northbridge/via/vx800/driving_clk_phase_data.h2
-rw-r--r--src/northbridge/via/vx800/driving_setting.c10
-rw-r--r--src/northbridge/via/vx800/final_setting.c4
-rw-r--r--src/northbridge/via/vx800/freq_setting.c28
-rw-r--r--src/northbridge/via/vx800/northbridge.h2
-rw-r--r--src/northbridge/via/vx800/raminit.c1
-rw-r--r--src/northbridge/via/vx800/raminit.h2
-rw-r--r--src/northbridge/via/vx800/rank_map.c40
-rw-r--r--src/northbridge/via/vx800/timing_setting.c53
-rw-r--r--src/northbridge/via/vx800/translator_ddr2_init.c1
-rw-r--r--src/northbridge/via/vx800/uma_ram_setting.c19
-rw-r--r--src/northbridge/via/vx800/vga.c5
-rw-r--r--src/northbridge/via/vx800/vgabios.c52
-rw-r--r--src/northbridge/via/vx800/vgachip.h2
-rw-r--r--src/northbridge/via/vx800/vx800.h20
-rw-r--r--src/northbridge/via/vx800/vx800_early_serial.c19
-rw-r--r--src/northbridge/via/vx800/vx800_early_smbus.c105
-rw-r--r--src/northbridge/via/vx800/vx800_ide.c208
-rw-r--r--src/northbridge/via/vx800/vx800_lpc.c109
27 files changed, 720 insertions, 779 deletions
diff --git a/src/northbridge/via/vx800/chip.h b/src/northbridge/via/vx800/chip.h
index 700a398d5c..7d7153ceda 100644
--- a/src/northbridge/via/vx800/chip.h
+++ b/src/northbridge/via/vx800/chip.h
@@ -17,8 +17,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-struct northbridge_via_vx800_config
-{
+struct northbridge_via_vx800_config {
};
extern struct chip_operations northbridge_via_vx800_ops;
diff --git a/src/northbridge/via/vx800/clk_ctrl.c b/src/northbridge/via/vx800/clk_ctrl.c
index 13edc1f996..ec070ee1c7 100644
--- a/src/northbridge/via/vx800/clk_ctrl.c
+++ b/src/northbridge/via/vx800/clk_ctrl.c
@@ -17,11 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-void DutyCycleCtrl(DRAM_SYS_ATTR * DramAttr)
+void DutyCycleCtrl(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 FreqId;
- u8 i;
+ u8 Data, FreqId, i;
if (DIMMFREQ_800 == DramAttr->DramFreq)
FreqId = 2;
@@ -34,64 +32,54 @@ void DutyCycleCtrl(DRAM_SYS_ATTR * DramAttr)
else
FreqId = 5;
- if (DramAttr->RankNumChA > 0) { // 1 rank
+ if (DramAttr->RankNumChA > 0) { /* 1 rank */
for (i = 0; i < DUTY_CYCLE_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- ChA_Duty_Control_DDR2[i][0]);
- Data &= ChA_Duty_Control_DDR2[i][1]; /*Mask */
- Data |= ChA_Duty_Control_DDR2[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ ChA_Duty_Control_DDR2[i][0]);
+ Data &= ChA_Duty_Control_DDR2[i][1]; /* mask */
+ Data |= ChA_Duty_Control_DDR2[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- ChA_Duty_Control_DDR2[i][0],
- Data);
+ ChA_Duty_Control_DDR2[i][0], Data);
}
}
- if (1 == ENABLE_CHC) { // 1 rank
+
+ if (1 == ENABLE_CHC) { /* 1 rank */
for (i = 0; i < DUTY_CYCLE_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- ChB_Duty_Control_DDR2[i][0]);
- Data &= ChB_Duty_Control_DDR2[i][1]; /*Mask */
- Data |= ChB_Duty_Control_DDR2[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ ChB_Duty_Control_DDR2[i][0]);
+ Data &= ChB_Duty_Control_DDR2[i][1]; /* mask */
+ Data |= ChB_Duty_Control_DDR2[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- ChB_Duty_Control_DDR2[i][0],
- Data);
+ ChB_Duty_Control_DDR2[i][0], Data);
}
}
-
}
/*
-DRAM clock phase and delay control
-*/
-//sub routine list
-void ClkPhsCtrlFBMDDR2(DRAM_SYS_ATTR * DramAttr);
-
-void WrtDataPhsCtrl(DRAM_SYS_ATTR * DramAttr);
-
-void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR * DramAttr);
-
-void DQSInputCaptureCtrl(DRAM_SYS_ATTR * DramAttr);
-
-void DCLKPhsCtrl(DRAM_SYS_ATTR * DramAttr);
+ * DRAM clock phase and delay control
+ */
+/* Subroutine list */
+void ClkPhsCtrlFBMDDR2(DRAM_SYS_ATTR *DramAttr);
+void WrtDataPhsCtrl(DRAM_SYS_ATTR *DramAttr);
+void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR *DramAttr);
+void DQSInputCaptureCtrl(DRAM_SYS_ATTR *DramAttr);
+void DCLKPhsCtrl(DRAM_SYS_ATTR *DramAttr);
-void DRAMClkCtrl(DRAM_SYS_ATTR * DramAttr)
+void DRAMClkCtrl(DRAM_SYS_ATTR *DramAttr)
{
- /*write data clock phase control */
+ /* Write data clock phase control. */
WrtDataPhsCtrl(DramAttr);
- /*clock phase control */
+ /* Clock phase control */
ClkPhsCtrlFBMDDR2(DramAttr);
/**/ DQDQSOutputDlyCtrl(DramAttr);
/**/ DQSInputCaptureCtrl(DramAttr);
DCLKPhsCtrl(DramAttr);
}
-void ClkPhsCtrlFBMDDR2(DRAM_SYS_ATTR * DramAttr)
+void ClkPhsCtrlFBMDDR2(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
-
- u8 FreqId, i;
+ u8 Data, FreqId, i;
if (DramAttr->DramFreq == DIMMFREQ_800)
FreqId = 2;
@@ -103,54 +91,45 @@ void ClkPhsCtrlFBMDDR2(DRAM_SYS_ATTR * DramAttr)
FreqId = 5;
else
FreqId = 5;
- /*channel A */// 2~4 Rank
- if (DramAttr->RankNumChA == 1) { // 1 rank
+
+ /* Channel A */
+ // 2~4 Rank
+ if (DramAttr->RankNumChA == 1) { /* 1 rank */
for (i = 0; i < 3; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChA_Clk_Phase_Table_1R[i]
- [0]);
- Data &= DDR2_ChA_Clk_Phase_Table_1R[i][1]; /*Mask */
- Data |= DDR2_ChA_Clk_Phase_Table_1R[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChA_Clk_Phase_Table_1R[i][0]);
+ Data &= DDR2_ChA_Clk_Phase_Table_1R[i][1]; /* mask */
+ Data |= DDR2_ChA_Clk_Phase_Table_1R[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChA_Clk_Phase_Table_1R[i]
- [0], Data);
+ DDR2_ChA_Clk_Phase_Table_1R[i][0], Data);
}
- } else if (DramAttr->RankNumChA > 1) { // 2~4 Rank
+ } else if (DramAttr->RankNumChA > 1) { /* 2~4 Rank */
for (i = 0; i < 3; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChA_Clk_Phase_Table_2R[i]
- [0]);
- Data &= DDR2_ChA_Clk_Phase_Table_2R[i][1]; /*Mask */
- Data |= DDR2_ChA_Clk_Phase_Table_2R[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChA_Clk_Phase_Table_2R[i][0]);
+ Data &= DDR2_ChA_Clk_Phase_Table_2R[i][1]; /* mask */
+ Data |= DDR2_ChA_Clk_Phase_Table_2R[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChA_Clk_Phase_Table_2R[i]
- [0], Data);
+ DDR2_ChA_Clk_Phase_Table_2R[i][0], Data);
}
}
#if ENABLE_CHB
- if (DramAttr->RankNumChB > 0) { // 1 rank
+ if (DramAttr->RankNumChB > 0) { /* 1 rank */
for (i = 0; i < 3; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChB_Clk_Phase_Table_1R[i]
- [0]);
- Data &= DDR2_ChB_Clk_Phase_Table_1R[i][1]; /*Mask */
- Data |= DDR2_ChB_Clk_Phase_Table_1R[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChB_Clk_Phase_Table_1R[i][0]);
+ Data &= DDR2_ChB_Clk_Phase_Table_1R[i][1]; /* mask */
+ Data |= DDR2_ChB_Clk_Phase_Table_1R[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChB_Clk_Phase_Table_1R[i]
- [0], Data);
+ DDR2_ChB_Clk_Phase_Table_1R[i][0], Data);
}
}
#endif
}
-void WrtDataPhsCtrl(DRAM_SYS_ATTR * DramAttr)
+void WrtDataPhsCtrl(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 FreqId, i;
-
+ u8 Data, FreqId, i;
if (DIMMFREQ_800 == DramAttr->DramFreq)
FreqId = 2;
@@ -163,31 +142,25 @@ void WrtDataPhsCtrl(DRAM_SYS_ATTR * DramAttr)
else
FreqId = 5;
- if (DramAttr->RankNumChA > 0) { // 1 rank
+ if (DramAttr->RankNumChA > 0) { /* 1 rank */
for (i = 0; i < WrtData_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChA_WrtData_Phase_Table
- [i][0]);
- Data &= DDR2_ChA_WrtData_Phase_Table[i][1]; /*Mask */
- Data |= DDR2_ChA_WrtData_Phase_Table[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChA_WrtData_Phase_Table[i][0]);
+ Data &= DDR2_ChA_WrtData_Phase_Table[i][1]; /* mask */
+ Data |= DDR2_ChA_WrtData_Phase_Table[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChA_WrtData_Phase_Table[i]
- [0], Data);
+ DDR2_ChA_WrtData_Phase_Table[i][0], Data);
}
}
#if ENABLE_CHB
- if (DramAttr->RankNumChB > 0) { // 1 rank
+ if (DramAttr->RankNumChB > 0) { /* 1 rank */
for (i = 0; i < WrtData_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChB_WrtData_Phase_Table
- [i][0]);
- Data &= DDR2_ChB_WrtData_Phase_Table[i][1]; /*Mask */
- Data |= DDR2_ChB_WrtData_Phase_Table[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChB_WrtData_Phase_Table[i][0]);
+ Data &= DDR2_ChB_WrtData_Phase_Table[i][1]; /* mask */
+ Data |= DDR2_ChB_WrtData_Phase_Table[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChB_WrtData_Phase_Table[i]
- [0], Data);
+ DDR2_ChB_WrtData_Phase_Table[i][0], Data);
}
}
#endif
@@ -197,10 +170,9 @@ void WrtDataPhsCtrl(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x8C, Data);
}
-void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR * DramAttr)
+void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 FreqId;
+ u8 Data, FreqId;
if (DIMMFREQ_400 == DramAttr->DramFreq)
FreqId = 0;
@@ -212,6 +184,7 @@ void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR * DramAttr)
FreqId = 2;
else
FreqId = 0;
+
if (DramAttr->RankNumChA > 0) {
Data = DDR2_CHA_DQ_DQS_Delay_Table[FreqId][0];
pci_write_config8(MEMCTRL, 0xf0, Data);
@@ -242,10 +215,9 @@ void DQDQSOutputDlyCtrl(DRAM_SYS_ATTR * DramAttr)
#endif
}
-void DQSInputCaptureCtrl(DRAM_SYS_ATTR * DramAttr)
+void DQSInputCaptureCtrl(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 FreqId, i;
+ u8 Data, FreqId, i;
if (DIMMFREQ_800 == DramAttr->DramFreq)
FreqId = 2;
@@ -261,52 +233,49 @@ void DQSInputCaptureCtrl(DRAM_SYS_ATTR * DramAttr)
Data = 0x8A;
pci_write_config8(MEMCTRL, 0x77, Data);
- if (DramAttr->RankNumChA > 0) { // 1 rank
+ if (DramAttr->RankNumChA > 0) { /* 1 rank */
for (i = 0; i < DQS_INPUT_CAPTURE_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChA_DQS_Input_Capture_Tbl
- [i][0]);
- Data &= DDR2_ChA_DQS_Input_Capture_Tbl[i][1]; /*Mask */
- Data |= DDR2_ChA_DQS_Input_Capture_Tbl[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChA_DQS_Input_Capture_Tbl[i][0]);
+ Data &= DDR2_ChA_DQS_Input_Capture_Tbl[i][1]; /* mask */
+ Data |= DDR2_ChA_DQS_Input_Capture_Tbl[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChA_DQS_Input_Capture_Tbl[i]
- [0], Data);
+ DDR2_ChA_DQS_Input_Capture_Tbl[i][0], Data);
}
}
#if ENABLE_CHB
- if (DramAttr->RankNumChB > 0) { // 1 rank
+ if (DramAttr->RankNumChB > 0) { /* 1 rank */
for (i = 0; i < DQS_INPUT_CAPTURE_REG_NUM; i++) {
- Data =
- pci_read_config8(MEMCTRL,
- DDR2_ChB_DQS_Input_Capture_Tbl
- [i][0]);
- Data &= DDR2_ChB_DQS_Input_Capture_Tbl[i][1]; /*Mask */
- Data |= DDR2_ChB_DQS_Input_Capture_Tbl[i][FreqId]; /*set Value */
+ Data = pci_read_config8(MEMCTRL,
+ DDR2_ChB_DQS_Input_Capture_Tbl[i][0]);
+ Data &= DDR2_ChB_DQS_Input_Capture_Tbl[i][1]; /* mask */
+ Data |= DDR2_ChB_DQS_Input_Capture_Tbl[i][FreqId]; /* set val */
pci_write_config8(MEMCTRL,
- DDR2_ChB_DQS_Input_Capture_Tbl[i]
- [0], Data);
+ DDR2_ChB_DQS_Input_Capture_Tbl[i][0], Data);
}
}
#endif
}
-//This is very important, if you don't set it correctly, dram will be unreliable
-//set DCLK Phase control(Reg99H[6:1]) according the DDRII in the dimm
-void DCLKPhsCtrl(DRAM_SYS_ATTR * DramAttr)
+/*
+ * This is very important, if you don't set it correctly, DRAM will be
+ * unreliable,
+ *
+ * Set DCLK Phase control(Reg99H[6:1]) according the DDRII in the DIMM.
+ */
+void DCLKPhsCtrl(DRAM_SYS_ATTR *DramAttr)
{
u8 Data;
- Data = 0;
+ Data = 0; /* TODO: Can be dropped? */
Data = pci_read_config8(MEMCTRL, 0x99);
Data &= 0xE1;
- //DDR in Dimm1, MCLKOA[4,3,0] will output MCLK
+ /* DDR in Dimm1, MCLKOA[4,3,0] will output MCLK */
if (DramAttr->RankPresentMap & 0x03)
Data |= 0x09 << 1;
- //DDR in Dimm2, MCLKOA[5,2,1] will output MCLK
+ /* DDR in Dimm2, MCLKOA[5,2,1] will output MCLK */
if (DramAttr->RankPresentMap & 0x0C)
Data |= 0x06 << 1;
pci_write_config8(MEMCTRL, 0x99, Data);
-
}
diff --git a/src/northbridge/via/vx800/detection.c b/src/northbridge/via/vx800/detection.c
index 63fc56b845..51aa9fa302 100644
--- a/src/northbridge/via/vx800/detection.c
+++ b/src/northbridge/via/vx800/detection.c
@@ -17,25 +17,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#define SMBUS_ADDR_CH_A_1 0xA0 // Dimmx
-#define SMBUS_ADDR_CH_A_2 0xA2 // Dimmx
-#define SMBUS_ADDR_CH_B_1 0xA4 // Dimmx
-#define SMBUS_ADDR_CH_B_2 0xA6 // Dimmx
+#define SMBUS_ADDR_CH_A_1 0xA0 /* Dimmx */
+#define SMBUS_ADDR_CH_A_2 0xA2 /* Dimmx */
+#define SMBUS_ADDR_CH_B_1 0xA4 /* Dimmx */
+#define SMBUS_ADDR_CH_B_2 0xA6 /* Dimmx */
-/*read data*/
-CB_STATUS GetSPDData(u8 Slot, u8 Length, u8 * Buf);
+/* read data */
+CB_STATUS GetSPDData(u8 Slot, u8 Length, u8 *Buf);
+void DRAMCmdRate(DRAM_SYS_ATTR *DramAttr);
+CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR *DramAttr);
-void DRAMCmdRate(DRAM_SYS_ATTR * DramAttr);
-
-
-
-CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR * DramAttr);
-
-CB_STATUS GetSPDData(u8 Slot, u8 Length, u8 * Buf)
+CB_STATUS GetSPDData(u8 Slot, u8 Length, u8 *Buf)
{
// CB_STATUS Status = CB_NOT_READY;
- u8 Val;
- u8 i;
+ u8 Val, i;
if (1 > Length || NULL == Buf)
return CB_INVALID_PARAMETER;
@@ -47,37 +42,42 @@ CB_STATUS GetSPDData(u8 Slot, u8 Length, u8 * Buf)
return CB_SUCCESS;
}
-CB_STATUS DRAMDetect(DRAM_SYS_ATTR * DramAttr)
+CB_STATUS DRAMDetect(DRAM_SYS_ATTR *DramAttr)
{
CB_STATUS Status = CB_SUCCESS;
- PRINT_DEBUG_MEM("Dram Detection \r");
+ PRINT_DEBUG_MEM("DRAM detection \r");
- /*Read D0F3Rx6C , detect memory type DDR1 or DDR2 */
- // 353 supports DDR2 only
+ /* Read D0F3Rx6C, detect memory type DDR1 or DDR2. */
+ /* 353 supports DDR2 only */
DramAttr->DramType = RAMTYPE_SDRAMDDR2;
- /*get information for SPD */
+ /* Get information for SPD. */
Status = GetInfoFromSPD(DramAttr);
if (CB_SUCCESS == Status) {
- /*64bit or 128Bit */
- //
- // if (RAMTYPE_SDRAMDDR == DramAttr->DramType)
+ /* 64bit or 128Bit */
+
+ // if (RAMTYPE_SDRAMDDR == DramAttr->DramType)
- /*select command rate */
+ /* Select command rate. */
DRAMCmdRate(DramAttr);
}
return Status;
}
-
-// Determine 1T or 2T Command Rate:
-// To enable 1T command Rate, the system will satisfy the following 3 conditions:
-// 1. Each DRAM channel may have 1 or 2 ranks of DIMM. 3/4 ranks can not support 1T command rate
-// It's for loading issue. 1T can supports (a). only one socket with two ranks OR
-// (b). two sockets each with 1 rank.
-// 2. User wishes to enable 1T command rate mode and turn on by Setup menu
-// 3. If 1T command rate can be enabled, just set EBP bit here.
-void DRAMCmdRate(DRAM_SYS_ATTR * DramAttr)
+/*
+ * Determine 1T or 2T command rate.
+ *
+ * To enable 1T command rate, the system will satisfy the following
+ * three conditions:
+ *
+ * 1. Each DRAM channel may have 1 or 2 ranks of DIMM. 3/4 ranks can not
+ * support 1T command rate. It's for loading issue. 1T can supports
+ * (a) only one socket with two ranks, OR
+ * (b) two sockets each with 1 rank.
+ * 2. User wishes to enable 1T command rate mode and turn on by setup menu.
+ * 3. If 1T command rate can be enabled, just set EBP bit here.
+ */
+void DRAMCmdRate(DRAM_SYS_ATTR *DramAttr)
{
u8 Data;
@@ -89,23 +89,22 @@ void DRAMCmdRate(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x50, Data);
}
-/*get SPD data and set RANK presence map*/
/*
-Sockets0,1 is Channel A / Sockets2,3 is Channel B
-socket0 SPD device address 0x50 / socket1 SPD device address 0x51
-socket2 SPD device address 0x52 / socket3 SPD device address 0x53
-*/
-CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR * DramAttr)
+ * Get SPD data and set RANK presence map.
+ *
+ * Sockets0,1 is Channel A / Sockets2,3 is Channel B.
+ *
+ * Socket0 SPD device address 0x50 / socket1 SPD device address 0x51
+ * Socket2 SPD device address 0x52 / socket3 SPD device address 0x53
+ */
+CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR *DramAttr)
{
CB_STATUS Status;
u8 *pSPDDataBuf;
- u8 ModuleDataWidth;
- u8 ChipWidth;
- u8 RankNum;
- u8 LoadNum;
- u8 Sockets, i;
- BOOLEAN bFind;
- bFind = FALSE;
+ u8 ModuleDataWidth, ChipWidth, RankNum, LoadNum, Sockets, i;
+ BOOLEAN bFind; /* FIXME: We don't have/want BOOLEAN. */
+
+ bFind = FALSE; /* FIXME: We don't have/want FALSE. */
Status = CB_DEVICE_ERROR;
for (Sockets = 0; Sockets < MAX_SOCKETS; Sockets++) {
@@ -116,8 +115,7 @@ CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR * DramAttr)
Status = CB_NOT_READY;
} else {
Status =
- GetSPDData(Sockets, SPD_DATA_SIZE,
- pSPDDataBuf);
+ GetSPDData(Sockets, SPD_DATA_SIZE, pSPDDataBuf);
PRINT_DEBUG_MEM("SPD : \r");
for (i = 0; i < SPD_DATA_SIZE; i++) {
PRINT_DEBUG_MEM(" ");
@@ -125,49 +123,58 @@ CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR * DramAttr)
}
}
if (CB_SUCCESS == Status) {
- /*if Dram Controller detected type not same as the type got from SPD, There are ERROR */
- if (pSPDDataBuf[SPD_MEMORY_TYPE] !=
- DramAttr->DramType) {
- Status = CB_DEVICE_ERROR; /*Memory int error */
- PRINT_DEBUG_MEM
- ("Memory Device ERROR: Dram Controller detected type != type got from SPD \r");
+ /*
+ * If DRAM controller detected type not same as the
+ * type got from SPD, there are ERROR.
+ */
+ if (pSPDDataBuf[SPD_MEMORY_TYPE] != DramAttr->DramType) {
+ Status = CB_DEVICE_ERROR; /* memory int error */
+ PRINT_DEBUG_MEM("Memory Device ERROR: DRAM "
+ "controller detected type != "
+ "type got from SPD\r");
break;
}
DramAttr->DimmInfo[Sockets].bPresence = TRUE;
- /*calculate load number (chips number) */
- ModuleDataWidth =
- (u8) (DramAttr->DimmInfo[Sockets].
- SPDDataBuf[SPD_SDRAM_MOD_DATA_WIDTH +
- 1]);
+
+ /* Calculate load number (chips number). */
+ ModuleDataWidth = (u8) (DramAttr->
+ DimmInfo[Sockets].SPDDataBuf
+ [SPD_SDRAM_MOD_DATA_WIDTH + 1]);
ModuleDataWidth = (u8) (ModuleDataWidth << 8);
- ModuleDataWidth |=
- (u8) (DramAttr->DimmInfo[Sockets].
- SPDDataBuf[SPD_SDRAM_MOD_DATA_WIDTH]);
- ChipWidth =
- (u8) ((DramAttr->DimmInfo[Sockets].
- SPDDataBuf[SPD_SDRAM_WIDTH]) & 0x7F);
+ ModuleDataWidth |= (u8) (DramAttr->
+ DimmInfo[Sockets].SPDDataBuf
+ [SPD_SDRAM_MOD_DATA_WIDTH]);
+ ChipWidth = (u8) ((DramAttr->
+ DimmInfo[Sockets].SPDDataBuf
+ [SPD_SDRAM_WIDTH]) & 0x7F);
LoadNum = (u8) (ModuleDataWidth / ChipWidth);
- /*set the RANK map */
- RankNum = (u8) (pSPDDataBuf[SPD_SDRAM_DIMM_RANKS] & 0x3); /*get bit0,1, the Most number of supported RANK is 2 */
+ /* Set the RANK map. */
+ /* Get bit0,1, the most number of supported RANK is 2. */
+ RankNum = (u8) (pSPDDataBuf[SPD_SDRAM_DIMM_RANKS] & 0x3);
if (RAMTYPE_SDRAMDDR2 == DramAttr->DramType)
- RankNum++; /*for DDR bit[0,1] 01->1 RANK 10->2 RANK; for DDR2 bit[0,1] = 00 -> 1 RANK 01 -> 2 RANK */
- if (RankNum != 2 && RankNum != 1) { /*every DIMM have 1 or 2 ranks */
+ /*
+ * For DDR bit[0,1]: 01->1 RANK, 10->2 RANK
+ * For DDR2 bit[0,1]: 00->1 RANK, 01->2 RANK
+ */
+ RankNum++;
+
+ /* Every DIMM have 1 or 2 ranks. */
+ if (RankNum != 2 && RankNum != 1) {
Status = CB_DEVICE_ERROR;
- PRINT_DEBUG_MEM
- ("Memory Device ERROR: the number of RANK not support!\r");
+ PRINT_DEBUG_MEM("Memory Device ERROR: Number "
+ "of RANK not supported!\r");
break;
}
- if (Sockets < 2) { /*sockets0,1 is channel A */
+ if (Sockets < 2) { /* Sockets0,1 is channel A */
DramAttr->RankNumChA =
(u8) (DramAttr->RankNumChA + RankNum);
DramAttr->DimmNumChA++;
DramAttr->LoadNumChA =
(u8) (DramAttr->LoadNumChA * LoadNum *
RankNum);
- } else { /*sockets2,3 is channel B */
-
+ } else { /* Sockets2,3 is channel B */
DramAttr->RankNumChB =
(u8) (DramAttr->RankNumChB + RankNum);
DramAttr->DimmNumChB++;
@@ -175,12 +182,12 @@ CB_STATUS GetInfoFromSPD(DRAM_SYS_ATTR * DramAttr)
(u8) (DramAttr->LoadNumChB * LoadNum *
RankNum);;
}
- RankNum |= 1; /*set rank map */
- DramAttr->RankPresentMap |=
- (RankNum << (Sockets * 2));
+ RankNum |= 1; /* Set rank map. */
+ DramAttr->RankPresentMap |= (RankNum << (Sockets * 2));
bFind = TRUE;
}
}
+
PRINT_DEBUG_MEM("Rank Present Map:");
PRINT_DEBUG_MEM_HEX8(DramAttr->RankPresentMap);
PRINT_DEBUG_MEM("\r");
diff --git a/src/northbridge/via/vx800/dev_init.c b/src/northbridge/via/vx800/dev_init.c
index bb0232589d..390d2a993c 100644
--- a/src/northbridge/via/vx800/dev_init.c
+++ b/src/northbridge/via/vx800/dev_init.c
@@ -17,21 +17,17 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-void DRAMSetVRNum(DRAM_SYS_ATTR * DramAttr, u8 PhyRank, // Physical Rank
- u8 VirRank, // Virtual Rank
- BOOLEAN Enable);
-
-void SetEndingAddr(DRAM_SYS_ATTR * DramAttr, u8 VirRank, // Ending address register number indicator (INDEX
- INT8 Value // (value) add or subtract value to this and after banks
- );
-
-void InitDDR2CHA(DRAM_SYS_ATTR * DramAttr);
-
-void InitDDR2CHB(DRAM_SYS_ATTR * DramAttr);
-
-void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr);
+void DRAMSetVRNum(DRAM_SYS_ATTR *DramAttr, u8 PhyRank /* physical rank */,
+ u8 VirRank /* virtual rank */, BOOLEAN Enable);
+void SetEndingAddr(DRAM_SYS_ATTR *DramAttr, u8 VirRank /* Ending address
+ register number indicator (INDEX */, INT8 Value /* (value)
+ add or subtract value to this and after banks. */);
+void InitDDR2CHA(DRAM_SYS_ATTR *DramAttr);
+void InitDDR2CHB(DRAM_SYS_ATTR *DramAttr);
+void InitDDR2CHC(DRAM_SYS_ATTR *DramAttr);
CB_STATUS VerifyChc();
+
/*===================================================================
Function : DRAMRegInitValue()
Precondition :
@@ -43,7 +39,7 @@ Purpose : Set necessary register before DRAM initialize
===================================================================*/
static const u8 DramRegTbl[][3] = {
- //Register AND OR
+ /* Reg AND OR */
{0x50, 0x11, 0xEE}, // DDR default MA7 for DRAM init
{0x51, 0x11, 0x60}, // DDR default MA3 for CHB init
{0x52, 0x00, 0x33}, // DDR use BA0=M17, BA1=M18,
@@ -56,26 +52,31 @@ static const u8 DramRegTbl[][3] = {
{0x60, 0x00, 0x00}, // disable fast turn-around
{0x65, 0x00, 0xD9}, // AGP timer = 0XD; Host timer = 8;
- {0x66, 0x00, 0x88}, //DRAMC Queue Size = 4; park at the last bus owner,Priority promotion timer = 8
+ {0x66, 0x00, 0x88}, // DRAMC Queue Size = 4; park at the last bus
+ // owner,Priority promotion timer = 8
{0x68, 0x00, 0x0C},
{0x69, 0xF0, 0x04}, // set RX69[3:0]=0000b
{0x6A, 0x00, 0x00}, // refresh counter
- {0x6E, 0xF8, 0x80}, //must set 6E[7],or else DDR2 probe test will fail
- // In here, we not set RX70~RX74, because we just init DRAM but no need R/W DRAM,
- // when we check DQS input/output delay, then we need R/W DRAM.
-
- //{0x79, 0x00, 0x8F },
+ {0x6E, 0xF8, 0x80}, // must set 6E[7], or else DDR2 probe test
+ // will fail
+ /*
+ * In here, we not set RX70~RX74, because we just init DRAM but no
+ * need R/W DRAM, when we check DQS input/output delay, then we need
+ * R/W DRAM.
+ */
+
+ // {0x79, 0x00, 0x8F },
{0x85, 0x00, 0x00},
- // {0x90, 0x87, 0x78 },
- // {0x91, 0x00, 0x46 },
+ // {0x90, 0x87, 0x78 },
+ // {0x91, 0x00, 0x46 },
{0x40, 0x00, 0x00},
+
{0, 0, 0}
};
-void DRAMRegInitValue(DRAM_SYS_ATTR * DramAttr)
+void DRAMRegInitValue(DRAM_SYS_ATTR *DramAttr)
{
- u8 Idx, CL;
- u8 Data;
+ u8 Idx, CL, Data;
for (Idx = 0; DramRegTbl[Idx][0] != 0; Idx++) {
Data = pci_read_config8(MEMCTRL, DramRegTbl[Idx][0]);
@@ -87,68 +88,69 @@ void DRAMRegInitValue(DRAM_SYS_ATTR * DramAttr)
Data = 0x80;
pci_write_config8(PCI_DEV(0, 0, 4), 0xa3, Data);
- //set Dram Controllor mode
+ // Set DRAM controller mode. */
Data = pci_read_config8(MEMCTRL, 0x6c);
Data &= 0xFB;
if (ENABLE_CHC == 0) {
- Data |= 0x4; //only CHA 64 bit mode
+ Data |= 0x4; /* Only CHA 64 bit mode */
pci_write_config8(MEMCTRL, 0x6c, Data);
} else {
- Data |= 0x0; //CHA + CHC
+ Data |= 0x0; /* CHA + CHC */
pci_write_config8(MEMCTRL, 0x6c, Data);
- //Data = 0xAA;
- //pci_write_config8(MEMCTRL, 0xb1, Data);
+ // Data = 0xAA;
+ // pci_write_config8(MEMCTRL, 0xb1, Data);
- //set CHB DQSB input delay, or else will meet error which is some byte is right
- //but another bit is error
+ // set CHB DQSB input delay, or else will meet error which
+ // is some byte is right but another bit is error.
Data = pci_read_config8(MEMCTRL, 0xff);
Data = (Data & 0x03) | 0x3D;
pci_write_config8(MEMCTRL, 0xff, Data);
- //enable CHC RXDB[7]
- //Data=pci_read_config8(MEMCTRL, 0xdb);
- // Data = (Data & 0x7F) | 0x80;
- //pci_write_config8(MEMCTRL, 0xdb, Data);
+ // enable CHC RXDB[7]
+ // Data = pci_read_config8(MEMCTRL, 0xdb);
+ // Data = (Data & 0x7F) | 0x80;
+ // pci_write_config8(MEMCTRL, 0xdb, Data);
- //rx62[2:0],CHA and CHB CL
+ // rx62[2:0], CHA and CHB CL
Data = pci_read_config8(MEMCTRL, 0x62);
CL = Data & 0x07;
- //if CL = 6 , so I set CHB CL = 5 default
+ // If CL = 6, so I set CHB CL = 5 default.
if (CL >= 4)
CL = 3;
- // set CHC Read CL rxDC[6:7]
+ /* Set CHC Read CL rxDC[6:7]. */
Data = pci_read_config8(MEMCTRL, 0xdc);
Data = (Data & 0x3F) | (CL << 6);
pci_write_config8(MEMCTRL, 0xdc, Data);
- // set CHC write CL rxDF[6:7]
+
+ /* Set CHC write CL rxDF[6:7]. */
Data = pci_read_config8(MEMCTRL, 0xdf);
Data = (Data & 0x3F) | (CL << 6);
pci_write_config8(MEMCTRL, 0xdf, Data);
- // set CHC ODT RxDC[5:0]
+
+ /* Set CHC ODT RxDC[5:0] */
Data = pci_read_config8(MEMCTRL, 0xdc);
Data = (Data & 0xC0) | 0x03;
pci_write_config8(MEMCTRL, 0xdc, Data);
- //set column type RXDD[6] and enable ODT PAD RXDD[7]
+ /* Set column type RXDD[6] and enable ODT PAD RXDD[7]. */
Data = pci_read_config8(MEMCTRL, 0xdd);
Data |= 0x80;
Idx = DramAttr->DimmInfo[2].SPDDataBuf[SPD_SDRAM_COL_ADDR];
if ((Idx & 0x0F) == 10)
- Data |= 0x40; //MA9~MA0
+ Data |= 0x40; /* MA9~MA0 */
else
- Data &= 0xBF; //MA8~MA0
+ Data &= 0xBF; /* MA8~MA0 */
pci_write_config8(MEMCTRL, 0xdd, Data);
}
- // Disable read DRAM fast ready ;Rx51[7]
- // Disable Read Around Write ;Rx51[6]
-
- // Disable Consecutive Read ;RX52[1:0]
- // disable speculative read
+ // Disable Read DRAM fast ready ;Rx51[7]
+ // Disable Read Around Write ;Rx51[6]
+ // Disable Consecutive Read ;RX52[1:0]
+ // Disable Speculative Read
}
/*===================================================================
@@ -163,18 +165,18 @@ Purpose : DRAM initialize according to the bios porting guid
#define EXIST_TEST_PATTERN 0x55555555
#define NOT_EXIST_TEST_PATTERN 0xAAAAAAAA
-BOOLEAN ChkForExistLowBank()
+
+BOOLEAN ChkForExistLowBank(void)
{
u32 *Address, data32;
- // Check Pattern
-
+ /* Check pattern */
Address = (u32 *) 8;
*Address = EXIST_TEST_PATTERN;
Address = (u32 *) 4;
*Address = EXIST_TEST_PATTERN;
-// _asm {WBINVD}
+ // _asm {WBINVD}
WaitMicroSec(100);
Address = (u32 *) 8;
data32 = *Address;
@@ -185,15 +187,14 @@ BOOLEAN ChkForExistLowBank()
if (data32 != EXIST_TEST_PATTERN)
return FALSE;
- // Check not Pattern
+ /* Check not Pattern */
Address = (u32 *) 8;
*Address = NOT_EXIST_TEST_PATTERN;
Address = (u32 *) 4;
*Address = NOT_EXIST_TEST_PATTERN;
- //_asm {WBINVD}
+ // _asm {WBINVD}
WaitMicroSec(100);
-
Address = (u32 *) 8;
data32 = *Address;
if (data32 != (u32) (NOT_EXIST_TEST_PATTERN))
@@ -206,9 +207,10 @@ BOOLEAN ChkForExistLowBank()
return TRUE;
}
-void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr);
-void InitDDR2CHB(DRAM_SYS_ATTR * DramAttr);
-void DRAMInitializeProc(DRAM_SYS_ATTR * DramAttr)
+void InitDDR2CHC(DRAM_SYS_ATTR *DramAttr);
+void InitDDR2CHB(DRAM_SYS_ATTR *DramAttr);
+
+void DRAMInitializeProc(DRAM_SYS_ATTR *DramAttr)
{
u8 shift, idx;
BOOLEAN Status;
@@ -216,11 +218,14 @@ void DRAMInitializeProc(DRAM_SYS_ATTR * DramAttr)
shift = 1;
for (idx = 0; idx < MAX_RANKS; idx++) {
if ((DramAttr->RankPresentMap & shift) != 0) {
- // Set VR# to physical rank indicated = PR + physical rank enable bit
+ /*
+ * Set VR# to physical rank indicated = PR + physical
+ * rank enable bit.
+ */
DRAMSetVRNum(DramAttr, idx, idx, TRUE);
- SetEndingAddr(DramAttr, idx, 0x10); // assume 1G size
- if (idx < 4) //CHA init
- InitDDR2CHA(DramAttr); //temp wjb 2007/1 only for compiling
+ SetEndingAddr(DramAttr, idx, 0x10); /* Assume 1G size */
+ if (idx < 4) /* CHA init */
+ InitDDR2CHA(DramAttr); // temp wjb 2007/1 only for compiling
// in the function InitDDR2,the parameter is no need
Status = ChkForExistLowBank();
if (Status == TRUE) {
@@ -228,7 +233,11 @@ void DRAMInitializeProc(DRAM_SYS_ATTR * DramAttr)
} else {
PRINT_DEBUG_MEM(" F\r");
}
- // Set VR# to physical rank indicated = 00h + physical rank enable bit
+
+ /*
+ * Set VR# to physical rank indicated = 00h + physical
+ * rank enable bit.
+ */
DRAMSetVRNum(DramAttr, idx, 0, FALSE);
SetEndingAddr(DramAttr, idx, -16);
}
@@ -239,7 +248,6 @@ void DRAMInitializeProc(DRAM_SYS_ATTR * DramAttr)
}
-
/*===================================================================
Function : DRAMSetVRNUM()
Precondition :
@@ -255,12 +263,11 @@ Purpose : Set virtual rank number for physical rank
Program when necessary, otherwise don't touch the pr-vr-mapping registers
===================================================================*/
-void DRAMSetVRNum(DRAM_SYS_ATTR * DramAttr, u8 PhyRank, // Physical Rank
- u8 VirRank, // Virtual Rank
- BOOLEAN Enable)
+void DRAMSetVRNum(DRAM_SYS_ATTR *DramAttr, u8 PhyRank /* physical rank */,
+ u8 VirRank /* virtual rank */, BOOLEAN Enable)
{
- u8 Data;
- u8 AndData, OrData;
+ u8 Data, AndData, OrData;
+
Data = pci_read_config8(MEMCTRL, (0x54 + (PhyRank >> 1)));
OrData = 0;
@@ -268,17 +275,17 @@ void DRAMSetVRNum(DRAM_SYS_ATTR * DramAttr, u8 PhyRank, // Physical Rank
OrData |= 0x08;
OrData |= VirRank;
if ((PhyRank & 0x01) == 0x00) {
- AndData = 0x0F; // keep the value of odd rank on PR # is even(keep 1,3,5,7)
+ AndData = 0x0F; // keep the value of odd rank on PR # is even(keep 1,3,5,7)
OrData <<= 4; // VR #, value to be set
} else {
AndData = 0xF0; // keep the value of even rank on PR # is odd(keep 0,2,4,6)
}
+
Data &= AndData;
Data |= OrData;
pci_write_config8(MEMCTRL, (0x54 + (PhyRank >> 1)), Data);
}
-
/*===================================================================
Function : SetEndingAddr()
Precondition :
@@ -291,17 +298,17 @@ Output : Void
Purpose : Set ending address of virtual rank specified by VirRank
===================================================================*/
-void SetEndingAddr(DRAM_SYS_ATTR * DramAttr, u8 VirRank, // Ending address register number indicator (INDEX
- INT8 Value // (value) add or subtract value to this and after banks
- ) {
+void SetEndingAddr(DRAM_SYS_ATTR *DramAttr, u8 VirRank, /* ending address
+ register number indicator (INDEX */, INT8 Value /* (value)
+ add or subtract value to this and after banks */) {
u8 Data;
- // Read register,Rx40-Rx47(0,1,2,3,4,5,6,7) and set the ending address
+ /* Read register,Rx40-Rx47(0,1,2,3,4,5,6,7) and set ending address. */
Data = pci_read_config8(MEMCTRL, 0x40 + VirRank);
Data = (u8) (Data + Value);
pci_write_config8(MEMCTRL, 0x40 + VirRank, Data);
- //program the virank's begining address to zero
+ /* Program the virank's begining address to zero. */
Data = 0x00;
pci_write_config8(MEMCTRL, 0x48 + VirRank, Data);
}
@@ -335,48 +342,51 @@ static const u16 CHA_DDR2_MRS_table[5] = { 0x0150, 0x01D0, 0x0250, 0x02D0, 0x350
#define CHA_MRS_DDR2_TWR6 (1 << 13) + (0 << 20) + (1 << 12) // Value = 003000h
// DDR2 Twr=2 Twr=3 Twr=4 Twr=5
-static const u32 CHA_DDR2_Twr_table[5] =
- { CHA_MRS_DDR2_TWR2, CHA_MRS_DDR2_TWR3, CHA_MRS_DDR2_TWR4,
-CHA_MRS_DDR2_TWR5, CHA_MRS_DDR2_TWR6 };
+static const u32 CHA_DDR2_Twr_table[5] = {
+ CHA_MRS_DDR2_TWR2, CHA_MRS_DDR2_TWR3, CHA_MRS_DDR2_TWR4,
+ CHA_MRS_DDR2_TWR5, CHA_MRS_DDR2_TWR6
+};
#define CHA_OCD_Exit_150ohm 0x20200 // EMRS(1), BA0=1, MA9=MA8=MA7=0,MA6=1,MA2=0 (DRAM bus address)
// A17=1, A12=A11=A10=0,A9=1 ,A5=0 (CPU address)
-#define CHA_OCD_Default_150ohm 0x21E00 // EMRS(1), BA0=1, MA9=MA8=MA7=1,MA6=1,MA2=0 (DRAM bus address)
+#define CHA_OCD_Default_150ohm 0x21E00 // EMRS(1), BA0=1, MA9=MA8=MA7=1,MA6=1,MA2=0 (DRAM bus address)
// A17=1, A12=A11=A10=1,A9=1 ,A5=0 (CPU address)
#define CHA_OCD_Exit_75ohm 0x20020 // EMRS(1), BA0=1, MA9=MA8=MA7=0,MA6=0,MA2=1 (DRAM bus address)
// A17=1, A12=A11=A10=0,A9=0 ,A5=1 (CPU address)
-#define CHA_OCD_Default_75ohm 0x21C20 // EMRS(1), BA0=1, MA9=MA8=MA7=1,MA6=0,MA2=1 (DRAM bus address)
+#define CHA_OCD_Default_75ohm 0x21C20 // EMRS(1), BA0=1, MA9=MA8=MA7=1,MA6=0,MA2=1 (DRAM bus address)
// A17=1, A12=A11=A10=1,A9=0 ,A5=1 (CPU address)
-void InitDDR2CHA(DRAM_SYS_ATTR * DramAttr)
+void InitDDR2CHA(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 Reg6BVal;
- u8 Idx, CL, BL, Twr;
+ u8 Data, Reg6BVal, Idx, CL, BL, Twr, DimmNum;
u32 AccessAddr;
- u8 DimmNum;
- // step2.
- //disable bank paging and multi page
+ /* Step 2 */
+ /* Disable bank paging and multi page. */
Data = pci_read_config8(MEMCTRL, 0x69);
Data &= ~0x03;
pci_write_config8(MEMCTRL, 0x69, Data);
Reg6BVal = pci_read_config8(MEMCTRL, 0x6b);
Reg6BVal &= ~0x07;
- // Step 3.
- // At least one NOP cycle will be issued after the 1m sec device deselect.
+
+ /* Step 3 */
+ /* At least one NOP cycle will be issued after the 1m sec device
+ * deselect.
+ */
Data = Reg6BVal | 0x01;
pci_write_config8(MEMCTRL, 0x6b, Data);
- // step4.
- //Read a double word from any address of the DIMM
+ /* Step 4 */
+ /* Read a double word from any address of the DIMM. */
DimmRead(0x0);
- // Step 5.
- // A minimum pause of 200u sec will be provided after the NOP.
- // - <<< reduce BOOT UP time >>> -
- // Loop 200us
+ /* Step 5 */
+ /*
+ * A minimum pause of 200u sec will be provided after the NOP.
+ * - <<< reduce BOOT UP time >>> -
+ * Loop 200us
+ */
for (Idx = 0; Idx < 0x10; Idx++)
WaitMicroSec(100);
@@ -386,7 +396,7 @@ void InitDDR2CHA(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x6b, Data);
// Step7.
- //Read a double word from any address of the DIMM
+ // Read a double word from any address of the DIMM
DimmRead(0x0);
// Step 8.
@@ -394,48 +404,46 @@ void InitDDR2CHA(DRAM_SYS_ATTR * DramAttr)
Data = Reg6BVal | 0x03;
pci_write_config8(MEMCTRL, 0x6b, Data);
-
- // Step 9,10. check ODT value for EMRS(1) command
- // according to ODTLookUp_TBL in driving_setting.c if there is one dimm in MB's one channel , the DDR2's ODT is 150ohm
- // if there is two dimm in MB's one channel, the DDR2's ODT is 75 ohm
+ /* Step 9, 10.
+ *
+ * Check ODT value for EMRS(1) command according to ODTLookUp_TBL
+ * in driving_setting.c if there is one DIMM in MB's one channel,
+ * the DDR2's ODT is 150ohm if there is two DIMM in MB's one channel,
+ * the DDR2's ODT is 75 ohm.
+ */
DimmNum = DramAttr->DimmNumChA;
- if (DimmNum == 1) //DDR's ODT is 150ohm
- {
+ if (DimmNum == 1) { /* DDR's ODT is 150ohm */
AccessAddr = (u32) CHA_MRS_DLL_150[0];
- DimmRead(AccessAddr); //issue EMRS DLL Enable
+ DimmRead(AccessAddr); /* Issue EMRS DLL Enable. */
PRINT_DEBUG_MEM("Step 9 Address ");
PRINT_DEBUG_MEM_HEX32(AccessAddr);
PRINT_DEBUG_MEM("\r");
AccessAddr = (u32) CHA_MRS_DLL_150[1];
- DimmRead(AccessAddr); //issue MRS DLL Reset
+ DimmRead(AccessAddr); /* Issue MRS DLL Reset. */
PRINT_DEBUG_MEM("Step 10 Address ");
PRINT_DEBUG_MEM_HEX32(AccessAddr);
PRINT_DEBUG_MEM("\r");
- } else if (DimmNum == 2) //DDR's ODT is 75ohm
- {
+ } else if (DimmNum == 2) { /* DDR's ODT is 75ohm */
AccessAddr = (u32) CHA_MRS_DLL_75[0];
- DimmRead(AccessAddr); //issue EMRS DLL Enable
+ DimmRead(AccessAddr); /* Issue EMRS DLL Enable. */
AccessAddr = (u32) CHA_MRS_DLL_75[1];
- DimmRead(AccessAddr); //issue MRS DLL Reset
+ DimmRead(AccessAddr); /* Issue MRS DLL Reset. */
} else {
PRINT_DEBUG_MEM("Dimm NUM ERROR:");
PRINT_DEBUG_MEM_HEX8(DimmNum);
PRINT_DEBUG_MEM("\r");
}
- // Step 11.
- // Precharge all (PALL) will be issued to the DDR.
+ /* Step 11. Precharge all (PALL) will be issued to the DDR. */
Data = Reg6BVal | 0x02;
pci_write_config8(MEMCTRL, 0x6b, Data);
- // Step12.
- //Read a double word from any address of the DIMM
+ /* Step 12. Read a double word from any address of the DIMM. */
DimmRead(0x0);
- // Step 13.
- // Execute 8 CBR refresh
+ /* Step 13. Execute 8 CBR refresh. */
Data = Reg6BVal | 0x04;
pci_write_config8(MEMCTRL, 0x6b, Data);
@@ -446,70 +454,70 @@ void InitDDR2CHA(DRAM_SYS_ATTR * DramAttr)
WaitMicroSec(100);
}
- // Step 17.
- // enable MRS for MAA
+ /* Step 17. Enable MRS for MAA. */
Data = Reg6BVal | 0x03;
pci_write_config8(MEMCTRL, 0x6b, Data);
- //Step 18
- //the SDRAM parameters.(Burst Length, CAS# Latency , Write recovery etc.)
- //-------------------------------------------------------------
- //Burst Length : really offset Rx6c[3]
+ /*
+ * Step 18. The SDRAM parameters (Burst Length, CAS# Latency,
+ * Write recovery etc.)
+ */
+
+ /* Burst Length: really offset Rx6c[3] */
Data = pci_read_config8(MEMCTRL, 0x6c);
BL = (Data & 0x08) >> 3;
- // CL = really offset RX62[2:0]
+ /* CL: really offset RX62[2:0] */
Data = pci_read_config8(MEMCTRL, 0x62);
CL = Data & 0x03;
AccessAddr = (u32) (CHA_DDR2_MRS_table[CL]);
- if (BL) {
+ if (BL)
AccessAddr += 8;
- }
- //Write recovery : really offset Rx63[7-5]
+
+ /* Write recovery: really offset Rx63[7-5] */
Data = pci_read_config8(MEMCTRL, 0x63);
Twr = (Data & 0xE0) >> 5;
AccessAddr += CHA_DDR2_Twr_table[Twr];
// AccessAddr = 0x1012D8;
- DimmRead(AccessAddr); // Set MRS command
+ DimmRead(AccessAddr); /* Set MRS command. */
PRINT_DEBUG_MEM("Step 18 Address");
PRINT_DEBUG_MEM_HEX32(AccessAddr);
PRINT_DEBUG_MEM("\r");
- //Step 19,20
- if (DimmNum == 1) //DDR's ODT is 150ohm
- {
+ /* Step 19, 20 */
+ if (DimmNum == 1) { /* DDR's ODT is 150ohm */
AccessAddr = (u32) CHA_OCD_Default_150ohm;
- DimmRead(AccessAddr); //issue EMRS OCD Default
+ DimmRead(AccessAddr); /* Issue EMRS OCD Default. */
PRINT_DEBUG_MEM("Step 19 Address ");
PRINT_DEBUG_MEM_HEX32(AccessAddr);
PRINT_DEBUG_MEM("\r");
AccessAddr = (u32) CHA_OCD_Exit_150ohm;
- DimmRead(AccessAddr); //issue EMRS OCD Calibration Mode Exit
+ DimmRead(AccessAddr); /* Issue EMRS OCD Calibration Mode Exit. */
PRINT_DEBUG_MEM("Step 20 Address ");
PRINT_DEBUG_MEM_HEX32(AccessAddr);
PRINT_DEBUG_MEM("\r");
- } else if (DimmNum == 2) //DDR's ODT is 75ohm
- {
+ } else if (DimmNum == 2) { /* DDR's ODT is 75ohm */
AccessAddr = (u32) CHA_OCD_Default_75ohm;
- DimmRead(AccessAddr); //issue EMRS OCD Default
+ DimmRead(AccessAddr); /* Issue EMRS OCD Default. */
AccessAddr = (u32) CHA_OCD_Exit_75ohm;
- DimmRead(AccessAddr); //issue EMRS OCD Calibration Mode Exit
+ DimmRead(AccessAddr); /* Issue EMRS OCD Calibration Mode Exit. */
} else {
PRINT_DEBUG_MEM("Dimm NUM ERROR: ");
PRINT_DEBUG_MEM_HEX8(DimmNum);
PRINT_DEBUG_MEM("\r");
}
- //Step 21
- //After MRS the device should be ready for full functionality within 3 clocks
- // after Tmrd is met.
+ /*
+ * Step 21. After MRS the device should be ready for full
+ * functionality within 3 clocks after Tmrd is met.
+ */
Data = Reg6BVal;
pci_write_config8(MEMCTRL, 0x6b, Data);
- // Enable bank paging and multi page
+ /* Enable bank paging and multi page. */
Data = pci_read_config8(MEMCTRL, 0x69);
Data |= 0x03;
pci_write_config8(MEMCTRL, 0x69, Data);
@@ -593,7 +601,6 @@ void InitDDR2CHB(
Data |= 0x80;
pci_write_config8(MEMCTRL, 0xd3, Data);
-
// Step 7.
// A minimum pause of 200u sec will be provided after the NOP.
// - <<< reduce BOOT UP time >>> -
@@ -657,7 +664,6 @@ void InitDDR2CHB(
Data |= 0x00;
pci_write_config8(MEMCTRL, 0xd3, Data);
-
//step 14. MSR DLL Reset
AccessAddr = CHB_MRS_DLL_150[1] >> 3;
Data =(u8) (AccessAddr & 0xff);
@@ -727,7 +733,6 @@ void InitDDR2CHB(
Data |= 0x00;
pci_write_config8(MEMCTRL, 0xd3, Data);
-
//the SDRAM parameters.(Burst Length, CAS# Latency , Write recovery etc.)
//-------------------------------------------------------------
@@ -739,7 +744,6 @@ void InitDDR2CHB(
Data=pci_read_config8(MEMCTRL, 0x62);
CL = Data & 0x03;
-
AccessAddr = (u32)(CHB_DDR2_MRS_table[CL]);
if (BL)
{
@@ -798,7 +802,6 @@ void InitDDR2CHB(
Data |= (u8)((AccessAddr & 0x30000) >> 15);
pci_write_config8(MEMCTRL, 0xd7, Data);
-
//step 27. issue EMRS cycle
Data=pci_read_config8(MEMCTRL, 0xd3);
Data &= 0x7F;
@@ -848,7 +851,6 @@ void InitDDR2CHB(
Data &= 0xF9;
pci_write_config8(MEMCTRL, 0xd7, Data);
-
//step 30. normal SDRAM Mode
Data=pci_read_config8(MEMCTRL, 0xd7);
Data &= 0xC7;
@@ -872,6 +874,7 @@ void InitDDR2CHB(
pci_write_config8(MEMCTRL, 0x69, Data);
}
*/
+
/*===================================================================
Function : InitDDR2CHC()
Precondition :
@@ -885,132 +888,128 @@ Reference :
// DDR2 CL=2 CL=3 CL=4 CL=5 (Burst type=interleave)(WR fine tune in code)
static const u16 CHC_MRS_table[4] = { 0x22B, 0x23B, 0x24B, 0x25B }; // Use 1X-bandwidth MA table to init DRAM
-void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr)
+void InitDDR2CHC(DRAM_SYS_ATTR *DramAttr)
{
- u8 Data;
- u8 Idx, CL, Twr;
+ u8 Data, Idx, CL, Twr;
u32 AccessAddr;
CB_STATUS Status;
- // step3.
- //clear RxDF[2] to disable Tri-state output
+ /* Step 3. Clear RxDF[2] to disable Tri-state output. */
Data = pci_read_config8(MEMCTRL, 0xdf);
Data &= 0xFB;
pci_write_config8(MEMCTRL, 0xdf, Data);
-
-
- //step 4. Enable the initialization mode of DRAM Controller C with NB's PLL clock
+ /*
+ * Step 4. Enable the initialization mode of DRAM Controller C with
+ * NB's PLL clock.
+ */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x60;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //Step 5. NOP command enable
+ /* Step 5. NOP command enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x00;
pci_write_config8(MEMCTRL, 0xdb, Data);
-
- //Step 6. issue a nop cycle,RegDB[1] 0 -> 1
+ /* Step 6. Issue a nop cycle, RegDB[1] 0 -> 1. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
-
- // Step 7.
- // A minimum pause of 200u sec will be provided after the NOP.
- // - <<< reduce BOOT UP time >>> -
- // Loop 200us
+ /*
+ * Step 7.
+ * A minimum pause of 200u sec will be provided after the NOP.
+ * - <<< reduce BOOT UP time >>> -
+ * Loop 200us
+ */
for (Idx = 0; Idx < 0x10; Idx++)
WaitMicroSec(100);
- // Step 8.
- // signal bank precharge command enable
+ /* Step 8. Signal bank precharge command enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x14;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //set MA10 =1, precharge all bank
+ /* Set MA10 = 1, precharge all bank. */
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf8, Data);
-
Data = 0x04;
pci_write_config8(MEMCTRL, 0xf9, Data);
- //step 9. issue a precharge all cycle,RegD3[7] 0 -> 1
+ /* step 9. Issue a precharge all cycle, RegD3[7] 0 -> 1. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //step10. MRS enable
+ /* Step 10. MRS enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x1C;
pci_write_config8(MEMCTRL, 0xdb, Data);
-
- //step11. EMRS DLL enable and Disable DQS
+ /* Step 11. EMRS DLL enable and Disable DQS. */
Data = 0x40;
pci_write_config8(MEMCTRL, 0xf8, Data);
Data = 0x24;
pci_write_config8(MEMCTRL, 0xf9, Data);
- //step12. issue EMRS cycle
+ /* Step 12. Issue EMRS cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //step13. MSR enable
+ /* Step 13. MSR enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x1C;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //step 14. MSR DLL Reset
+ /* Step 14. MSR DLL Reset. */
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf8, Data);
Data = 0x01;
pci_write_config8(MEMCTRL, 0xf9, Data);
- //step15. issue MRS cycle
+ /* Step 15. Issue MRS cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //step16. signal banks precharge command enable
+ /* Step 16. Signal banks precharge command enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x14;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //set MA10 =1, precharge all bank
+ /* Set MA10 = 1, precharge all bank. */
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf8, Data);
Data = 0x04;
pci_write_config8(MEMCTRL, 0xf9, Data);
- // step17. issue precharge all cycle
+ /* Step 17. Issue precharge all cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //step18. CBR cycle enable
+ /* Step 18. CBR cycle enable. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
Data |= 0x18;
@@ -1075,7 +1074,6 @@ void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr)
Data |= 0x1C;
pci_write_config8(MEMCTRL, 0xdb, Data);
-
//step 26. OCD default
Data = 0xC0;
pci_write_config8(MEMCTRL, 0xf8, Data);
@@ -1097,7 +1095,6 @@ void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr)
Data = 0x24;
pci_write_config8(MEMCTRL, 0xf9, Data);
-
//step 29. issue EMRS cycle
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
@@ -1114,7 +1111,7 @@ void InitDDR2CHC(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0xdb, Data);
}
-CB_STATUS VerifyChc()
+CB_STATUS VerifyChc(void)
{
u8 Data, ByteVal, Index, pad;
u16 row;
@@ -1125,18 +1122,15 @@ CB_STATUS VerifyChc()
//verify each MA[0:12],BA[0:1]
pad = 1;
for (row = 0; row < 0x8000; row++) {
- //set the write value;
- //verify each MD[15:0]
+ /* Set the write value, Verify each MD[15:0]. */
for (Data = pad, Index = 0; Index < 16; Index++) {
Data <<= 1;
if (Data == 0)
Data = 1;
- pci_write_config8(PCI_DEV(0, 0, 7), 0xC0 + Index,
- Data);
-
+ pci_write_config8(PCI_DEV(0, 0, 7), 0xC0 + Index, Data);
}
- //issue the bank active command
+ /* Issue the bank active command. */
// bank active command enable
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
@@ -1149,14 +1143,14 @@ CB_STATUS VerifyChc()
Data = (u8) ((row && 0xFF) >> 8);
pci_write_config8(MEMCTRL, 0xf9, Data);
- // issue active cycle
+ /* Issue active cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //issue ready/completion for read/write
+ /* Issue ready/completion for read/write. */
// read/completion command enable
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
@@ -1169,14 +1163,14 @@ CB_STATUS VerifyChc()
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf9, Data);
- // issue read/completion cycle
+ /* Issue read/completion cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //issue write command
+ /* Issue write command. */
// write command enable
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
@@ -1189,7 +1183,7 @@ CB_STATUS VerifyChc()
Data = (u8) ((row & 0x60) << 5);
pci_write_config8(MEMCTRL, 0xf9, Data);
- // issue write cycle
+ /* Issue write cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
@@ -1209,14 +1203,14 @@ CB_STATUS VerifyChc()
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf9, Data);
- // issue read/completion cycle
+ /* Issue read/completion cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //issue the bank active command
+ /* Issue the bank active command. */
// bank active command enable
Data = pci_read_config8(MEMCTRL, 0xdb);
Data &= 0xE3;
@@ -1289,21 +1283,19 @@ CB_STATUS VerifyChc()
Data = 0x00;
pci_write_config8(MEMCTRL, 0xf9, Data);
- // issue read/completion cycle
+ /* Issue read/completion cycle. */
Data = pci_read_config8(MEMCTRL, 0xdb);
Data |= 0x2;
pci_write_config8(MEMCTRL, 0xdb, Data);
Data &= 0xFD;
pci_write_config8(MEMCTRL, 0xdb, Data);
- //verify the value;
+ /* Verify the value. */
for (ByteVal = pad, Index = 0; Index < 16; Index++) {
- Data =
- pci_read_config8(PCI_DEV(0, 0, 7),
- 0xD0 + Index);
+ Data = pci_read_config8(PCI_DEV(0, 0, 7), 0xD0 + Index);
if (ByteVal != Data) {
- PRINT_DEBUG_MEM
- ("error!!!! row = %x,Index =%x,Data = %x,ByteVal=%x\r");
+ PRINT_DEBUG_MEM("Error! row = %x, index =%x, "
+ "data = %x, byteval=%x\r");
}
ByteVal <<= 1;
if (ByteVal == 0)
diff --git a/src/northbridge/via/vx800/dqs_search.c b/src/northbridge/via/vx800/dqs_search.c
index 80749f8597..785d775baf 100644
--- a/src/northbridge/via/vx800/dqs_search.c
+++ b/src/northbridge/via/vx800/dqs_search.c
@@ -74,7 +74,6 @@ void SetDQSOutputCHA(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x71, Reg71);
}
-
//################
// STEP 12 #
//################
diff --git a/src/northbridge/via/vx800/dram_init.h b/src/northbridge/via/vx800/dram_init.h
index e7f5e72d50..50007c18a7 100644
--- a/src/northbridge/via/vx800/dram_init.h
+++ b/src/northbridge/via/vx800/dram_init.h
@@ -74,7 +74,6 @@
//#define DATAWIDTHX8 8
//#define DATAWIDTHX4 4
-
#define SPD_MEMORY_TYPE 2 /*Memory type FPM,EDO,SDRAM,DDR,DDR2 */
#define SPD_SDRAM_ROW_ADDR 3 /*Number of row addresses on this assembly */
#define SPD_SDRAM_COL_ADDR 4 /*Number of column addresses on this assembly */
@@ -244,7 +243,6 @@ void DRAMBankInterleave(DRAM_SYS_ATTR * DramAttr);
/*Step14 Sizing*/
void DRAMSizingMATypeM(DRAM_SYS_ATTR * DramAttr);
-
//final_setting.c
/*Step15 DDR fresh counter setting*/
void DRAMRefreshCounter(DRAM_SYS_ATTR * DramAttr);
@@ -253,7 +251,6 @@ void DRAMRefreshCounter(DRAM_SYS_ATTR * DramAttr);
/*Step16 Final register setting for improve performance*/
void DRAMRegFinalValue(DRAM_SYS_ATTR * DramAttr);
-
/*set UMA*/
void SetUMARam();
diff --git a/src/northbridge/via/vx800/dram_util.c b/src/northbridge/via/vx800/dram_util.c
index d09acdaf6f..35c471fc80 100644
--- a/src/northbridge/via/vx800/dram_util.c
+++ b/src/northbridge/via/vx800/dram_util.c
@@ -41,8 +41,8 @@ Reference : None
void via_write_phys(volatile u32 addr, volatile u32 value)
{
volatile u32 *ptr;
- ptr = (volatile u32 *) addr;
- *ptr = (volatile u32) value;
+ ptr = (volatile u32 *)addr;
+ *ptr = (volatile u32)value;
}
/*===================================================================
@@ -59,12 +59,11 @@ u32 via_read_phys(volatile u32 addr)
volatile u32 *ptr;
volatile u32 y;
// ptr = (volatile u32 *)addr;
- y = *(volatile u32 *) addr;
+ y = *(volatile u32 *)addr;
// return *ptr;
return y;
}
-
/*===================================================================
Function : DimmRead()
Precondition :
@@ -77,12 +76,11 @@ Reference : None
u32 DimmRead(volatile u32 x)
{ // volatile u32 z;
volatile u32 y;
- y = *(volatile u32 *) x;
+ y = *(volatile u32 *)x;
return y;
}
-
/*===================================================================
Function : DramBaseTest()
Precondition : this function used to verify memory
@@ -116,8 +114,7 @@ BOOLEAN DramBaseTest(u32 BaseAdd, u32 Length,
}
//write each test unit the value with TEST_PATTERN
- for (Address = BaseAdd; Address < BaseAdd + Length;
- Address += TestSpan) {
+ for (Address = BaseAdd; Address < BaseAdd + Length; Address += TestSpan) {
for (i = 0; i < TestCount; i++)
via_write_phys(Address + i * 4, TEST_PATTERN);
if (PrintFlag) {
@@ -131,15 +128,12 @@ BOOLEAN DramBaseTest(u32 BaseAdd, u32 Length,
//compare each test unit with the value of TEST_PATTERN
//and write it with compliment of TEST_PATTERN
- for (Address = BaseAdd; Address < BaseAdd + Length;
- Address += TestSpan) {
+ for (Address = BaseAdd; Address < BaseAdd + Length; Address += TestSpan) {
for (i = 0; i < TestCount; i++) {
Data = via_read_phys(Address + i * 4);
- via_write_phys(Address + i * 4,
- (u32) (~TEST_PATTERN));
+ via_write_phys(Address + i * 4, (u32) (~TEST_PATTERN));
if (Data != TEST_PATTERN) {
- PRINT_DEBUG_MEM
- ("TEST_PATTERN ERROR !!!!! ");
+ PRINT_DEBUG_MEM("TEST_PATTERN ERROR !!!!! ");
Address2 = Address + i * 4;
PRINT_DEBUG_MEM_HEX32(Address2);
PRINT_DEBUG_MEM(" : ");
@@ -157,16 +151,13 @@ BOOLEAN DramBaseTest(u32 BaseAdd, u32 Length,
}
}
-
//compare each test unit with the value of ~TEST_PATTERN
- for (Address = BaseAdd; Address < BaseAdd + Length;
- Address += TestSpan) {
+ for (Address = BaseAdd; Address < BaseAdd + Length; Address += TestSpan) {
for (i = (u8) (TestCount); i > 0; i--) {
Data = via_read_phys(Address + (i - 1) * 4);
if (Data != ~TEST_PATTERN) {
- PRINT_DEBUG_MEM
- ("~TEST_PATTERN ERROR !!!!! ");
+ PRINT_DEBUG_MEM("~TEST_PATTERN ERROR !!!!! ");
Address2 = Address + (i - 1) * 4;
PRINT_DEBUG_MEM_HEX32(Address2);
PRINT_DEBUG_MEM(" : ");
@@ -219,7 +210,6 @@ void DumpRegisters(INTN DevNum, INTN FuncNum)
return;
}
-
/*===================================================================
Function : dumpnorth()
Precondition :
diff --git a/src/northbridge/via/vx800/drdy_bl.c b/src/northbridge/via/vx800/drdy_bl.c
index b5a78f1a7d..627fb28552 100644
--- a/src/northbridge/via/vx800/drdy_bl.c
+++ b/src/northbridge/via/vx800/drdy_bl.c
@@ -102,7 +102,6 @@
#define Rx54L1T P6IF_Misc_RFASTH
#define Rx55L1T P6IF_Misc2_RHTSEL
-
#define PH0_0_0_0 0x00
#define PH0_0_0_1 0x01
#define PH0_0_0_2 0x02
@@ -276,7 +275,6 @@ static const u8 PT894_128bit_DELAYMD1_RCONV0[6][6][PT894_RDRDY_TBL_Width] =
}
};
-
static const u8 PT894_64bit_DELAYMD0_RCONV0[6][6][PT894_RDRDY_TBL_Width] =
// -----------------------------------------------------------------------------------------------------------------
// RX60 RX61 RX62 RX63 RX64 RX65 RX66 RX67 RX54[3,1] RX55[3,1] CPU/DRAM
@@ -341,7 +339,6 @@ static const u8 PT894_64bit_DELAYMD0_RCONV0[6][6][PT894_RDRDY_TBL_Width] =
}
};
-
static const u8 PT894_64bit_DELAYMD1_RCONV0[6][6][PT894_RDRDY_TBL_Width] =
// -----------------------------------------------------------------------------------------------------------------
// RX60 RX61 RX62 RX63 RX64 RX65 RX66 RX67 RX54[3,1] RX55[3,1] CPU/DRAM
@@ -418,7 +415,7 @@ void DRAMDRDYSetting(DRAM_SYS_ATTR * DramAttr)
this function has 3 switchs, correspond to 3 level of Drdy setting.
0:Slowest, 1:Default, 2:Optimize
you can only open one switch
- */
+ */
#if 1 //this is slowest
// 0 -> Slowest
//Write slowest value to register
@@ -541,7 +538,6 @@ void DRAMDRDYSetting(DRAM_SYS_ATTR * DramAttr)
#endif
}
-
/*This routine process the ability for North Bridge side burst functionality
There are 3 variances that are valid:
1. DIMM BL=8, chipset BL=8
@@ -568,8 +564,9 @@ void DRAMBurstLength(DRAM_SYS_ATTR * DramAttr)
for (Sockets = 0; Sockets < 2; Sockets++) {
if (DramAttr->DimmInfo[Sockets].bPresence) {
BL &=
- (DramAttr->DimmInfo[Sockets].
- SPDDataBuf[SPD_SDRAM_BURSTLENGTH]);
+ (DramAttr->
+ DimmInfo[Sockets].SPDDataBuf
+ [SPD_SDRAM_BURSTLENGTH]);
}
}
@@ -585,8 +582,7 @@ void DRAMBurstLength(DRAM_SYS_ATTR * DramAttr)
#if ENABLE_CHB
if (DramAttr->RankNumChB > 0) {
- BL = DramAttr->DimmInfo[2].
- SPDDataBuf[SPD_SDRAM_BURSTLENGTH];
+ BL = DramAttr->DimmInfo[2].SPDDataBuf[SPD_SDRAM_BURSTLENGTH];
//Rx6c[1], CHB burst length
if (BL & 0x08) /*CHB support BL=8 */
BL = 0x2; /*set bit1 */
diff --git a/src/northbridge/via/vx800/driving_clk_phase_data.h b/src/northbridge/via/vx800/driving_clk_phase_data.h
index f6c8feace8..fd3751c44c 100644
--- a/src/northbridge/via/vx800/driving_clk_phase_data.h
+++ b/src/northbridge/via/vx800/driving_clk_phase_data.h
@@ -67,4 +67,4 @@
//extern u8 Fixed_DQSB_1_2_Rank_Table[4][2];
//extern u8 Fixed_DQSB_3_4_Rank_Table[4][2];
-#endif /* DRIVINGCLKPHASEDATA_H */
+#endif /* DRIVINGCLKPHASEDATA_H */
diff --git a/src/northbridge/via/vx800/driving_setting.c b/src/northbridge/via/vx800/driving_setting.c
index 3bdfdf391f..c6a7edda05 100644
--- a/src/northbridge/via/vx800/driving_setting.c
+++ b/src/northbridge/via/vx800/driving_setting.c
@@ -55,7 +55,6 @@ void DRAMDriving(DRAM_SYS_ATTR * DramAttr)
DrivingDCLK(DramAttr);
}
-
/*
ODT Control for DQ/DQS/CKE/SCMD/DCLKO in ChA & ChB
which include driving enable/range and strong/weak selection
@@ -158,7 +157,6 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
Data |= 0;
pci_write_config8(MEMCTRL, 0x9e, Data);
-
if (DIMMFREQ_400 == DramAttr->DramFreq)
Data = 0x0;
else if (DIMMFREQ_533 == DramAttr->DramFreq)
@@ -171,7 +169,6 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
Data = 0;
pci_write_config8(MEMCTRL, 0x9f, Data);
-
/*channel A ODT select */
if (DramAttr->DimmNumChA > 0) {
Data = pci_read_config8(MEMCTRL, 0xd5);
@@ -190,7 +187,6 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
Data |= 0x00; /*if rank number is 1or2, clear bit7 */
pci_write_config8(MEMCTRL, 0xd7, Data);
-
/*channel A */
Data = pci_read_config8(MEMCTRL, 0xd5);
Data &= 0xF3; //bit2,3
@@ -212,12 +208,10 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
}
if (!bFound) { /*set default value */
Data =
- ODTLookup_TBL[ODTLookup_Tbl_count -
- 1][1];
+ ODTLookup_TBL[ODTLookup_Tbl_count - 1][1];
}
pci_write_config8(MEMCTRL, 0x9c, Data);
-
//set CHA MD ODT control State Dynamic-on
Data = pci_read_config8(MEMCTRL, 0xD4);
Data &= 0xC9;
@@ -252,7 +246,6 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
Data |= 0x00; /*if rank number is 1or2, clear bit7 */
pci_write_config8(MEMCTRL, 0xd7, Data);
-
Data = pci_read_config8(MEMCTRL, 0xd5);
Data &= 0xFC;
if (DramAttr->DimmNumChB == 2) /*2 Dimm, 3or4 Ranks */
@@ -267,7 +260,6 @@ void DrivingODT(DRAM_SYS_ATTR * DramAttr)
Data |= 0x08;
pci_write_config8(MEMCTRL, 0xD4, Data);
-
//enable CHB differential DQS input
Data = pci_read_config8(MEMCTRL, 0x9E);
Data |= 0x02;
diff --git a/src/northbridge/via/vx800/final_setting.c b/src/northbridge/via/vx800/final_setting.c
index 165c887d8a..97cc21820a 100644
--- a/src/northbridge/via/vx800/final_setting.c
+++ b/src/northbridge/via/vx800/final_setting.c
@@ -51,8 +51,7 @@ void DRAMRefreshCounter(DRAM_SYS_ATTR * DramAttr)
Dram_256_Mb = 0;
for (i = 0; i < MAX_SOCKETS; i++) {
- if (DramAttr->DimmInfo[i].SPDDataBuf[SPD_SDRAM_ROW_ADDR] ==
- 13) {
+ if (DramAttr->DimmInfo[i].SPDDataBuf[SPD_SDRAM_ROW_ADDR] == 13) {
Dram_256_Mb = 1;
break;
}
@@ -63,7 +62,6 @@ void DRAMRefreshCounter(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x6a, Data);
}
-
/*===================================================================
Function : DRAMRegFinalValue()
Precondition :
diff --git a/src/northbridge/via/vx800/freq_setting.c b/src/northbridge/via/vx800/freq_setting.c
index ed4184ec77..b81b90de79 100644
--- a/src/northbridge/via/vx800/freq_setting.c
+++ b/src/northbridge/via/vx800/freq_setting.c
@@ -99,7 +99,6 @@ void DRAMFreqSetting(DRAM_SYS_ATTR * DramAttr)
}
-
/*
calculate CL and dram freq
DDR1
@@ -134,13 +133,13 @@ void CalcCLAndFreq(DRAM_SYS_ATTR * DramAttr)
for (SckId = 0; SckId < MAX_SOCKETS; SckId++) {
if (DramAttr->DimmInfo[SckId].bPresence) { /*all DIMM supported CL */
AllDimmSupportedCL &=
- (DramAttr->DimmInfo[SckId].
- SPDDataBuf[SPD_SDRAM_CAS_LATENCY]);
+ (DramAttr->
+ DimmInfo[SckId].SPDDataBuf[SPD_SDRAM_CAS_LATENCY]);
}
}
if (!AllDimmSupportedCL) { /*if equal 0, no supported CL */
PRINT_DEBUG_MEM("SPD Data Error, Can not get CL !!!! \r");
- for (;;);
+ for (;;) ;
}
/*Get CL Value */
@@ -164,8 +163,8 @@ void CalcCLAndFreq(DRAM_SYS_ATTR * DramAttr)
for (SckId = 0; SckId < MAX_SOCKETS; SckId++) {
if (DramAttr->DimmInfo[SckId].bPresence) {
Tmp =
- (DramAttr->DimmInfo[SckId].
- SPDDataBuf[SPD_SDRAM_CAS_LATENCY]);
+ (DramAttr->
+ DimmInfo[SckId].SPDDataBuf[SPD_SDRAM_CAS_LATENCY]);
tmpMask = 0x40;
for (TmpId = 7; TmpId > 0; TmpId--) {
if ((Tmp & tmpMask) == tmpMask)
@@ -174,16 +173,19 @@ void CalcCLAndFreq(DRAM_SYS_ATTR * DramAttr)
}
if (TmpId - BitId == 0) { /*get Cycle time for X, SPD BYTE9 */
TmpCycTime =
- DramAttr->DimmInfo[SckId].
- SPDDataBuf[SPD_SDRAM_TCLK_X];
+ DramAttr->
+ DimmInfo[SckId].SPDDataBuf
+ [SPD_SDRAM_TCLK_X];
} else if (TmpId - BitId == 1) { /*get Cycle time for X-1, SPD BYTE23 */
TmpCycTime =
- DramAttr->DimmInfo[SckId].
- SPDDataBuf[SPD_SDRAM_TCLK_X_1];
+ DramAttr->
+ DimmInfo[SckId].SPDDataBuf
+ [SPD_SDRAM_TCLK_X_1];
} else if (TmpId - BitId == 2) { /*get cycle time for X-2, SPD BYTE25 */
TmpCycTime =
- DramAttr->DimmInfo[SckId].
- SPDDataBuf[SPD_SDRAM_TCLK_X_2];
+ DramAttr->
+ DimmInfo[SckId].SPDDataBuf
+ [SPD_SDRAM_TCLK_X_2];
} else {
//error!!!
}
@@ -194,7 +196,7 @@ void CalcCLAndFreq(DRAM_SYS_ATTR * DramAttr)
if (CycTime <= 0) {
//error!
- for (;;);
+ for (;;) ;
}
/* cycle time value
diff --git a/src/northbridge/via/vx800/northbridge.h b/src/northbridge/via/vx800/northbridge.h
index 577efe6291..bcbeffb284 100644
--- a/src/northbridge/via/vx800/northbridge.h
+++ b/src/northbridge/via/vx800/northbridge.h
@@ -22,4 +22,4 @@
extern unsigned int vx800_scan_root_bus(device_t root, unsigned int max);
-#endif /* NORTHBRIDGE_VIA_VX800_H */
+#endif /* NORTHBRIDGE_VIA_VX800_H */
diff --git a/src/northbridge/via/vx800/raminit.c b/src/northbridge/via/vx800/raminit.c
index 8af9e74967..bf1eed92e9 100644
--- a/src/northbridge/via/vx800/raminit.c
+++ b/src/northbridge/via/vx800/raminit.c
@@ -24,7 +24,6 @@
#define DEBUG_RAM_SETUP 1
-
#ifdef DEBUG_RAM_SETUP
#define PRINT_DEBUG_MEM(x) print_debug(x)
#define PRINT_DEBUG_MEM_HEX8(x) print_debug_hex8(x)
diff --git a/src/northbridge/via/vx800/raminit.h b/src/northbridge/via/vx800/raminit.h
index 7885aa7dd2..c813aba393 100644
--- a/src/northbridge/via/vx800/raminit.h
+++ b/src/northbridge/via/vx800/raminit.h
@@ -21,4 +21,4 @@
#define RAMINIT_H
#define MEMCTRL PCI_DEV(0,0,3)
-#endif /* RAMINIT_H */
+#endif /* RAMINIT_H */
diff --git a/src/northbridge/via/vx800/rank_map.c b/src/northbridge/via/vx800/rank_map.c
index f86a3648d3..00e1e47fa3 100644
--- a/src/northbridge/via/vx800/rank_map.c
+++ b/src/northbridge/via/vx800/rank_map.c
@@ -23,7 +23,6 @@ extern void DRAMSetVRNum(DRAM_SYS_ATTR * DramAttr,
extern void SetEndingAddr(DRAM_SYS_ATTR * DramAttr, u8 VirRank, // Ending address register number indicator (INDEX
INT8 Value); // (value) add or subtract value to this and after banks
-
void DRAMClearEndingAddress(DRAM_SYS_ATTR * DramAttr);
void DRAMSizingEachRank(DRAM_SYS_ATTR * DramAttr);
@@ -57,8 +56,8 @@ void DRAMBankInterleave(DRAM_SYS_ATTR * DramAttr)
if ((DramAttr->RankPresentMap & Shift) != 0) {
CurrentDimminfo = &(DramAttr->DimmInfo[RankNO >> 1]); //this Rank in a dimm
SpdBAData =
- (u8) (CurrentDimminfo->
- SPDDataBuf[SPD_SDRAM_NO_OF_BANKS]);
+ (u8) (CurrentDimminfo->SPDDataBuf
+ [SPD_SDRAM_NO_OF_BANKS]);
if (SpdBAData == 4)
Count = 2;
else if (SpdBAData == 8)
@@ -76,12 +75,10 @@ void DRAMBankInterleave(DRAM_SYS_ATTR * DramAttr)
Data |= (Bank << 6);
pci_write_config8(MEMCTRL, 0x69, Data);
-
if (DramAttr->DimmNumChB > 0) {
CurrentDimminfo = &(DramAttr->DimmInfo[3]); //this Rank in a dimm
SpdBAData =
- (u8) (CurrentDimminfo->
- SPDDataBuf[SPD_SDRAM_NO_OF_BANKS]);
+ (u8) (CurrentDimminfo->SPDDataBuf[SPD_SDRAM_NO_OF_BANKS]);
if (SpdBAData == 4)
Bank = 2;
else if (SpdBAData == 2)
@@ -147,12 +144,9 @@ void DRAMSizingEachRank(DRAM_SYS_ATTR * DramAttr)
for (Slot = 0; Slot < 2; Slot++) {
if (!DramAttr->DimmInfo[Slot].bPresence)
continue;
- Rows =
- DramAttr->DimmInfo[Slot].
- SPDDataBuf[SPD_SDRAM_ROW_ADDR];
+ Rows = DramAttr->DimmInfo[Slot].SPDDataBuf[SPD_SDRAM_ROW_ADDR];
Columns =
- DramAttr->DimmInfo[Slot].
- SPDDataBuf[SPD_SDRAM_COL_ADDR];
+ DramAttr->DimmInfo[Slot].SPDDataBuf[SPD_SDRAM_COL_ADDR];
Banks = DramAttr->DimmInfo[Slot].SPDDataBuf[SPD_SDRAM_NO_OF_BANKS]; //this is Bank number not Bank address bit
if (Banks == 4)
Banks = 2;
@@ -164,8 +158,9 @@ void DRAMSizingEachRank(DRAM_SYS_ATTR * DramAttr)
RankIndex = 2 * Slot;
DramAttr->RankSize[RankIndex] = Size;
//if this module have two ranks
- if ((DramAttr->DimmInfo[Slot].
- SPDDataBuf[SPD_SDRAM_DIMM_RANKS] & 0x07) == 0x01) {
+ if ((DramAttr->
+ DimmInfo[Slot].SPDDataBuf[SPD_SDRAM_DIMM_RANKS] & 0x07) ==
+ 0x01) {
RankIndex++;
DramAttr->RankSize[RankIndex] = Size;
}
@@ -189,8 +184,7 @@ void DRAMSizingEachRank(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x53, Data);
}
#if 1
- for (RankIndex = 0; DramAttr->RankSize[RankIndex] != 0;
- RankIndex++) {
+ for (RankIndex = 0; DramAttr->RankSize[RankIndex] != 0; RankIndex++) {
PRINT_DEBUG_MEM("Rank:");
PRINT_DEBUG_MEM_HEX8(RankIndex);
PRINT_DEBUG_MEM(", Size:");
@@ -235,11 +229,13 @@ void DRAMSetRankMAType(DRAM_SYS_ATTR * DramAttr)
if (DramAttr->DimmInfo[SlotNum].bPresence) {
for (j = 0; MAMapTypeTbl[j] != 0; j += 3) {
if ((1 << MAMapTypeTbl[j]) ==
- DramAttr->DimmInfo[SlotNum].
- SPDDataBuf[SPD_SDRAM_NO_OF_BANKS]
+ DramAttr->
+ DimmInfo[SlotNum].SPDDataBuf
+ [SPD_SDRAM_NO_OF_BANKS]
&& MAMapTypeTbl[j + 1] ==
- DramAttr->DimmInfo[SlotNum].
- SPDDataBuf[SPD_SDRAM_COL_ADDR]) {
+ DramAttr->
+ DimmInfo[SlotNum].SPDDataBuf
+ [SPD_SDRAM_COL_ADDR]) {
break;
}
}
@@ -286,11 +282,9 @@ void DRAMSetEndingAddress(DRAM_SYS_ATTR * DramAttr)
End = End + Size; // calculate current ending address, add the current Size to ending
Vrank = RankNO; // get virtual Rank
Data = End; // set begin/End address register to correspondig virtual Rank #
- pci_write_config8(MEMCTRL, 0x40 + Vrank,
- Data);
+ pci_write_config8(MEMCTRL, 0x40 + Vrank, Data);
Data = Start;
- pci_write_config8(MEMCTRL, 0x48 + Vrank,
- Data);
+ pci_write_config8(MEMCTRL, 0x48 + Vrank, Data);
PRINT_DEBUG_MEM("Rank: ");
PRINT_DEBUG_MEM_HEX8(Vrank);
PRINT_DEBUG_MEM(", Start:");
diff --git a/src/northbridge/via/vx800/timing_setting.c b/src/northbridge/via/vx800/timing_setting.c
index 5e1847800a..a1d8e74812 100644
--- a/src/northbridge/via/vx800/timing_setting.c
+++ b/src/northbridge/via/vx800/timing_setting.c
@@ -70,7 +70,6 @@ void DRAMTimingSetting(DRAM_SYS_ATTR * DramAttr)
SetTrtp(DramAttr);
}
-
/*
Set DRAM Timing: CAS Latency for DDR1
D0F3RX62 bit[0:2] for CAS Latency;
@@ -91,7 +90,6 @@ void SetCL(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x62, Data);
}
-
/*
Minimum row precharge time, Trp for DDR1/DDR2
D0F3Rx64[3:2] for Trp 2T~5T
@@ -105,15 +103,14 @@ void SetTrp(DRAM_SYS_ATTR * DramAttr)
u16 Max, Tmp;
u8 Socket;
-
/*get the max Trp value from SPD data
SPD Byte27, Bit7:2->1ns~63ns, Bit1:0->0ns, 0.25ns, 0.50ns, 0.75ns */
Max = 0;
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRP]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRP]);
if (Tmp > Max)
Max = Tmp;
}
@@ -144,7 +141,6 @@ void SetTrp(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x62, Data);
}
-
/*
Minimum RAS to CAS dely,Trcd for DDR1/DDR2
D0F3Rx64[7:6] for Trcd
@@ -158,15 +154,14 @@ void SetTrcd(DRAM_SYS_ATTR * DramAttr)
u16 Max, Tmp;
u8 Socket;
-
/*get the max Trcd value from SPD data
SPD Byte29, Bit7:2->1ns~63ns, Bit1:0->0ns, 0.25ns, 0.50ns, 0.75ns */
Max = 0;
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRCD]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRCD]);
if (Tmp > Max)
Max = Tmp;
}
@@ -204,24 +199,21 @@ void SetTras(DRAM_SYS_ATTR * DramAttr)
u16 Max, Tmp;
u8 Socket;
-
/*get the max Tras value from SPD data
SPD byte30: bit0:7 1ns~255ns */
Max = 0;
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRAS]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRAS]);
if (Tmp > Max)
Max = Tmp;
}
}
/*Calculate clock,value range 5T-20T */
- Tmp =
- (u16) ((Max * 100 + DramAttr->DramCyc -
- 1) / (DramAttr->DramCyc));
+ Tmp = (u16) ((Max * 100 + DramAttr->DramCyc - 1) / (DramAttr->DramCyc));
PRINT_DEBUG_MEM("Tras =");
PRINT_DEBUG_MEM_HEX16(Tmp);
PRINT_DEBUG_MEM("\r");
@@ -259,12 +251,13 @@ void SetTrfc(DRAM_SYS_ATTR * DramAttr)
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u32) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRFC]) * 100;
+ (u32) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRFC])
+ * 100;
/*only DDR2 need to add byte 40 bit[7:4] */
Byte40 =
- (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRFC2]);
+ (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRFC2]);
/*if bit0 = 1, byte42(RFC)+256ns, SPD spec JEDEC standard No.21.c */
if (Byte40 & 0x01)
Tmp += (256 * 100);
@@ -313,7 +306,6 @@ void SetTrfc(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x61, Data);
}
-
/*
Minimum row active to row active delay: Trrd for DDR1/DDR2
D0F3Rx61[7:6]:Trrd 00->2T, 01->3T, 10->4T, 11->5T
@@ -327,15 +319,14 @@ void SetTrrd(DRAM_SYS_ATTR * DramAttr)
u16 Max, Tmp;
u8 Socket;
-
/*get the max Trrd value from SPD data
SPD Byte28, Bit7:2->1ns~63ns, Bit1:0->0ns, 0.25ns, 0.50ns, 0.75ns */
Max = 0;
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRRD]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRRD]);
if (Tmp > Max)
Max = Tmp;
}
@@ -361,7 +352,6 @@ void SetTrrd(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x61, Data);
}
-
/*
Write recovery time: Twr for DDR1/DDR2
Device 0 Function 3:REG63[7:5]:Twr 00->2T 01->3T 10->4T 11->5T
@@ -381,8 +371,8 @@ void SetTwr(DRAM_SYS_ATTR * DramAttr)
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TWR]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TWR]);
if (Tmp > Max)
Max = Tmp;
}
@@ -405,7 +395,6 @@ void SetTwr(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x63, Data);
}
-
/*
Internal write to read command delay: Twtr for DDR1/DDR2
Device 0 Function 3:REG63[1,0]:Twtr DDR: 1T or 2T; DDR2 2T or 3T
@@ -425,8 +414,8 @@ void SetTwtr(DRAM_SYS_ATTR * DramAttr)
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TWTR]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TWTR]);
if (Tmp > Max)
Max = Tmp;
}
@@ -448,7 +437,6 @@ void SetTwtr(DRAM_SYS_ATTR * DramAttr)
pci_write_config8(MEMCTRL, 0x63, Data);
}
-
/*
Internal read to precharge command delay, Trtp for DDR1/DDR2
Device 0 Function 3:REG63[3]:Trtp 2T or 3T
@@ -462,15 +450,14 @@ void SetTrtp(DRAM_SYS_ATTR * DramAttr)
u16 Max, Tmp;
u8 Socket;
-
/*get the max Trtp value from SPD data
SPD Byte38, Bit7:2->1ns~63ns, Bit1:0->0ns, 0.25ns, 0.50ns, 0.75ns */
Max = 0;
for (Socket = 0; Socket < MAX_SOCKETS; Socket++) {
if (DramAttr->DimmInfo[Socket].bPresence) {
Tmp =
- (u16) (DramAttr->DimmInfo[Socket].
- SPDDataBuf[SPD_SDRAM_TRTP]);
+ (u16) (DramAttr->
+ DimmInfo[Socket].SPDDataBuf[SPD_SDRAM_TRTP]);
if (Tmp > Max)
Max = Tmp;
}
diff --git a/src/northbridge/via/vx800/translator_ddr2_init.c b/src/northbridge/via/vx800/translator_ddr2_init.c
index cb54aba1af..362742ec91 100644
--- a/src/northbridge/via/vx800/translator_ddr2_init.c
+++ b/src/northbridge/via/vx800/translator_ddr2_init.c
@@ -24,7 +24,6 @@
#define TRUE 1
#define FALSE 0
-
typedef int8_t INT8;
typedef unsigned long uintn_t;
typedef uintn_t UINTN;
diff --git a/src/northbridge/via/vx800/uma_ram_setting.c b/src/northbridge/via/vx800/uma_ram_setting.c
index f8aaf74eef..e670a940ec 100644
--- a/src/northbridge/via/vx800/uma_ram_setting.c
+++ b/src/northbridge/via/vx800/uma_ram_setting.c
@@ -32,7 +32,6 @@ typedef struct __UMA_RAM_tag {
#define UMARAM_8M 1
#define UMARAM_0M 0
-
#define FB_512M 0
#define FB_256M 0x40
#define FB_128M 0x60
@@ -77,7 +76,6 @@ void SetUMARam(void)
SLD1F0Val = 0;
VgaPortVal = 0;
-
ByteVal = pci_read_config8(MEMCTRL, 0xa1);
ByteVal |= 0x80;
pci_write_config8(MEMCTRL, 0xa1, ByteVal);
@@ -134,7 +132,6 @@ void SetUMARam(void)
ByteVal = (ByteVal & 0x8f) | (SLD0F3Val << 4);
pci_write_config8(MEMCTRL, 0xa1, ByteVal);
-
// vga_dev = dev_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VX855_VGA, 0);
//RxB2 may be for S.L. and RxB1 may be for L. L.
@@ -142,7 +139,6 @@ void SetUMARam(void)
ByteVal = SLD1F0Val;
pci_write_config8(vga_dev, 0xb2, ByteVal);
-
//set M1 size
//ByteVal=pci_read_config8(MEMCTRL, 0xa3);
//ByteVal = 0x02;
@@ -150,16 +146,10 @@ void SetUMARam(void)
PRINT_DEBUG_MEM("UMA setting - 3\n");
-
-
-
//Enable p2p IO/mem
ByteVal = 0x07;
pci_write_config8(vga_dev, 0x04, ByteVal);
-
-
-
//must set SL and MMIO base, or else when enable GFX memory space, system will hang
//set S.L base
Tmp = pci_read_config32(vga_dev, 0x10);
@@ -177,27 +167,23 @@ void SetUMARam(void)
Tmp = VIACONFIG_VGA_PCI_14;
pci_write_config32(vga_dev, 0x14, Tmp);
-
//enable direct cpu frame buffer access
i = pci_rawread_config8(PCI_RAWDEV(0, 0, 3), 0xa1);
i = (i & 0xf0) | (VIACONFIG_VGA_PCI_10 >> 28);
pci_rawwrite_config8(PCI_RAWDEV(0, 0, 3), 0xa1, i);
pci_rawwrite_config8(PCI_RAWDEV(0, 0, 3), 0xa0, 0x01);
-
//enable GFx memory space access control for S.L and mmio
ByteVal = pci_read_config8(d0f0_dev, 0xD4);
ByteVal |= 0x03;
//ByteVal |= 0x01;
pci_write_config8(d0f0_dev, 0xD4, ByteVal);
-
//enable Base VGA 16 Bits Decode
ByteVal = pci_read_config8(d0f0_dev, 0xfe);
ByteVal |= 0x10;
pci_write_config8(d0f0_dev, 0xfe, ByteVal);
-
//disable CHB L.L
//set VGA memory selection
ByteVal = pci_read_config8(vga_dev, 0xb0);
@@ -233,7 +219,6 @@ void SetUMARam(void)
// ByteVal |= 0x01;
// outb(ByteVal,0x03C2);
-
#if 1 //bios porting guide has no this two defination: 3d on 3d4/3d5 and 39 on 3c4/3c5
//set frequence 0x3D5.3d[7:4]
outb(0x3d, 0x03d4);
@@ -304,7 +289,6 @@ void SetUMARam(void)
//calculate SL Base Address
SLBase = (RamSize << 26) - (UmaSize << 20);
-
outb(0x6D, 0x03c4);
//SL Base[28:21]
outb((u8) ((SLBase >> 21) & 0xFF), 0x03c5);
@@ -339,7 +323,6 @@ void SetUMARam(void)
ByteVal = (ByteVal & 0xE5) | 0x1A;
outb(ByteVal, 0x03c5);
-
outb(0xf3, 0x03d4);
ByteVal = inb(0x03d5);
ByteVal = (ByteVal & 0xE5) | 0x1A;
@@ -381,7 +364,6 @@ void SetUMARam(void)
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D,
};
-
u8 table3c0space[0xc0] = {
0x11, 0x00, 0x10, 0x01, 0x26, 0x3D, 0xFF, 0x00,
0x10, 0x3F, 0x00, 0x00, 0x2F, 0x00, 0x22, 0x00,
@@ -415,7 +397,6 @@ void SetUMARam(void)
outb(table3c0space[i], 0x03c0 + i);
}
-
for (i = 0; i < 0x70; i++) {
outb(i, 0x03c4);
outb(table3c43c5[i], 0x03c5);
diff --git a/src/northbridge/via/vx800/vga.c b/src/northbridge/via/vx800/vga.c
index 03680786e5..b29f12ae49 100644
--- a/src/northbridge/via/vx800/vga.c
+++ b/src/northbridge/via/vx800/vga.c
@@ -84,7 +84,6 @@ static void vga_init(device_t dev)
//*/
printk_emerg("file '%s', line %d\n\n", __FILE__, __LINE__);
-
#if 1
printk_debug("INSTALL REAL-MODE IDT\n");
setup_realmode_idt();
@@ -126,12 +125,11 @@ static void vga_init(device_t dev)
static void vga_read_resources(device_t dev)
{
- dev->rom_address = (void *) (0xffffffff - FULL_ROM_SIZE + 1);
+ dev->rom_address = (void *)(0xffffffff - FULL_ROM_SIZE + 1);
dev->on_mainboard = 1;
pci_dev_read_resources(dev);
}
-
static struct device_operations vga_operations = {
.read_resources = vga_read_resources,
.set_resources = pci_dev_set_resources,
@@ -140,7 +138,6 @@ static struct device_operations vga_operations = {
.ops_pci = 0,
};
-
static const struct pci_driver vga_driver __pci_driver = {
.ops = &vga_operations,
.vendor = PCI_VENDOR_ID_VIA,
diff --git a/src/northbridge/via/vx800/vgabios.c b/src/northbridge/via/vx800/vgabios.c
index 6155a79581..34d3bce939 100644
--- a/src/northbridge/via/vx800/vgabios.c
+++ b/src/northbridge/via/vx800/vgabios.c
@@ -7,7 +7,6 @@
#include <string.h>
#include "vgachip.h"
-
/* vgabios.c. Derived from: */
/*------------------------------------------------------------ -*- C -*-
@@ -306,7 +305,7 @@ void do_vgabios(void)
/* clear vga bios data area */
for (i = 0x400; i < 0x500; i++) {
- *(unsigned char *) i = 0;
+ *(unsigned char *)i = 0;
}
dev = dev_find_class(PCI_CLASS_DISPLAY_VGA << 8, 0);
@@ -315,8 +314,7 @@ void do_vgabios(void)
printk_debug("NO VGA FOUND\n");
return;
}
- printk_debug("found VGA: vid=%x, did=%x\n", dev->vendor,
- dev->device);
+ printk_debug("found VGA: vid=%x, did=%x\n", dev->vendor, dev->device);
/* declare rom address here - keep any config data out of the way
* of core LXB stuff */
@@ -324,28 +322,25 @@ void do_vgabios(void)
rom = 0xffffffff - FULL_ROM_SIZE + 1;
pci_write_config32(dev, PCI_ROM_ADDRESS, rom | 1);
printk_debug("rom base: %x\n", rom);
- buf = (unsigned char *) rom;
+ buf = (unsigned char *)rom;
printk_emerg("file '%s', line %d\n\n", __FILE__, __LINE__);
if ((buf[0] == 0x55) && (buf[1] == 0xaa)) {
- memcpy((void *) 0xc0000, buf, size);
-
+ memcpy((void *)0xc0000, buf, size);
printk_emerg("file '%s', line %d\n\n", __FILE__, __LINE__);
write_protect_vgabios(); // in northbridge
// check signature again
- buf = (unsigned char *) 0xc0000;
+ buf = (unsigned char *)0xc0000;
if (buf[0] == 0x55 && buf[1] == 0xAA) {
busdevfn =
- (dev->bus->secondary << 8) | dev->path.pci.
- devfn;
+ (dev->bus->secondary << 8) | dev->path.pci.devfn;
printk_debug("bus/devfn = %#x\n", busdevfn);
real_mode_switch_call_vga(busdevfn);
} else
- printk_debug
- ("Failed to copy VGA BIOS to 0xc0000\n");
+ printk_debug("Failed to copy VGA BIOS to 0xc0000\n");
} else
printk_debug("BAD SIGNATURE 0x%x 0x%x\n", buf[0], buf[1]);
@@ -354,7 +349,6 @@ void do_vgabios(void)
pci_write_config32(dev, PCI_ROM_ADDRESS, 0);
}
-
// we had hoped to avoid this.
// this is a stub IDT only. It's main purpose is to ignore calls
// to the BIOS.
@@ -399,8 +393,7 @@ void debughandler(void)
" loop dbh1 \n"
" popw %cx \n"
" iret \n"
- "end_debughandle: \n"
- ".code32 \n");
+ "end_debughandle: \n" ".code32 \n");
}
// Calling conventions. The first C function is called with this stuff
@@ -492,8 +485,7 @@ enum {
int pcibios(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp,
unsigned long *pesp, unsigned long *pebx, unsigned long *pedx,
- unsigned long *pecx, unsigned long *peax,
- unsigned long *pflags);
+ unsigned long *pecx, unsigned long *peax, unsigned long *pflags);
int handleint21(unsigned long *pedi, unsigned long *pesi,
unsigned long *pebp, unsigned long *pesp,
@@ -536,8 +528,7 @@ int biosint(unsigned long intnumber,
if (esp < 0x1000) {
printk_debug("Stack contents: ");
while (esp < 0x1000) {
- printk_debug("0x%04x ",
- *(unsigned short *) esp);
+ printk_debug("0x%04x ", *(unsigned short *)esp);
esp += 2;
}
printk_debug("\n");
@@ -573,14 +564,13 @@ int biosint(unsigned long intnumber,
return ret;
}
-
void setup_realmode_idt(void)
{
extern unsigned char idthandle, end_idthandle;
extern unsigned char debughandle, end_debughandle;
int i;
- struct realidt *idts = (struct realidt *) 0;
+ struct realidt *idts = (struct realidt *)0;
int codesize = &end_idthandle - &idthandle;
unsigned char *intbyte, *codeptr;
@@ -595,8 +585,8 @@ void setup_realmode_idt(void)
// and get it that way. But that's really disgusting.
for (i = 0; i < 256; i++) {
idts[i].cs = 0;
- codeptr = (char *) 4096 + i * codesize;
- idts[i].offset = (unsigned) codeptr;
+ codeptr = (char *)4096 + i * codesize;
+ idts[i].offset = (unsigned)codeptr;
memcpy(codeptr, &idthandle, codesize);
intbyte = codeptr + 3;
*intbyte = i;
@@ -608,7 +598,7 @@ void setup_realmode_idt(void)
// int10.
// calling convention here is the same as INTs, we can reuse
// the int entry code.
- codeptr = (char *) 0xff065;
+ codeptr = (char *)0xff065;
memcpy(codeptr, &idthandle, codesize);
intbyte = codeptr + 3;
*intbyte = 0x42; /* int42 is the relocated int10 */
@@ -617,7 +607,7 @@ void setup_realmode_idt(void)
VBIOS will call f000:f859 instead of sending int15.
calling convertion here is the same as INTs, we can reuse the int entry code.
*/
- codeptr = (char *) 0xff859;
+ codeptr = (char *)0xff859;
memcpy(codeptr, &idthandle, codesize);
intbyte = codeptr + 3;
*intbyte = 0x15;
@@ -628,11 +618,8 @@ void setup_realmode_idt(void)
idts[1].offset = 16384;
memcpy(16384, &debughandle, &end_debughandle - &debughandle);
-
}
-
-
enum {
CHECK = 0xb001,
FINDDEV = 0xb102,
@@ -665,7 +652,7 @@ pcibios(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp,
unsigned long ecx = *pecx;
unsigned long eax = *peax;
unsigned long flags = *pflags;
- unsigned short func = (unsigned short) eax;
+ unsigned short func = (unsigned short)eax;
int retval = 0;
unsigned short devid, vendorid, devfn;
short devindex; /* Use short to get rid of garbage in upper half of 32-bit register */
@@ -684,8 +671,7 @@ pcibios(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp,
vendorid = *pedx;
devindex = *pesi;
dev = 0;
- while ((dev =
- dev_find_device(vendorid, devid, dev))) {
+ while ((dev = dev_find_device(vendorid, devid, dev))) {
if (devindex <= 0)
break;
devindex--;
@@ -775,7 +761,6 @@ pcibios(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp,
return retval;
}
-
/* return value of int0x15(int21)
AH AL Completion status
?? 5Fh Function call supported
@@ -785,8 +770,7 @@ AH AL Completion status
*/
int handleint21(unsigned long *edi, unsigned long *esi, unsigned long *ebp,
unsigned long *esp, unsigned long *ebx, unsigned long *edx,
- unsigned long *ecx, unsigned long *eax,
- unsigned long *flags)
+ unsigned long *ecx, unsigned long *eax, unsigned long *flags)
{
int res = -1;
switch (*eax & 0xffff) {
diff --git a/src/northbridge/via/vx800/vgachip.h b/src/northbridge/via/vx800/vgachip.h
index 86e948bd91..1e17d90f66 100644
--- a/src/northbridge/via/vx800/vgachip.h
+++ b/src/northbridge/via/vx800/vgachip.h
@@ -31,4 +31,4 @@ void do_vgabios(void);
void setup_realmode_idt(void);
void write_protect_vgabios(void);
-#endif /* _PC80_VGABIOS */
+#endif /* _PC80_VGABIOS */
diff --git a/src/northbridge/via/vx800/vx800.h b/src/northbridge/via/vx800/vx800.h
index 3955f1fc4c..f77fd95b19 100644
--- a/src/northbridge/via/vx800/vx800.h
+++ b/src/northbridge/via/vx800/vx800.h
@@ -20,13 +20,14 @@
#ifndef VX800_H
#define VX800_H 1
-
#ifndef __ROMCC__
-static void vx800_noop(){}
+static void vx800_noop()
+{
+}
#endif
#define REV_B0 0x10
#define REV_B1 0x11
-#define REV_B2 0x12
+#define REV_B2 0x12
#define REV_B3 0x13
#define REV_B4 0x14
#define REV_B2 0xB4
@@ -63,9 +64,6 @@ static void vx800_noop(){}
#define RAM_COMMAND_MRS 0x3
#define RAM_COMMAND_CBR 0x4
-
-
-
/* IDE specific bits */
#define IDE_MODE_REG 0x09
#define IDE0_NATIVE_MODE (1 << 0)
@@ -77,7 +75,6 @@ static void vx800_noop(){}
#define IDE1_DATA_ADDR 0x170
#define IDE1_CONTROL_ADDR 0x370
-
/* By Award default, Via default is 0xCC0 */
#define BUS_MASTER_ADDR 0xfe00
@@ -85,14 +82,11 @@ static void vx800_noop(){}
#define ENABLE_IDE0 (1 << 0)
#define ENABLE_IDE1 (1 << 1)
-
-
#define VX800_ACPI_IO_BASE 0x0400
-
#define NB_APIC_REG 0,0,5,
-#define NB_PXPTRF_REG NB_APIC_REG
-#define NB_MSGC_REG NB_APIC_REG
+#define NB_PXPTRF_REG NB_APIC_REG
+#define NB_MSGC_REG NB_APIC_REG
#define NB_HOST_REG 0,0,2,
#define NB_P6IF_REG NB_HOST_REG
@@ -103,7 +97,6 @@ static void vx800_noop(){}
#define NB_D3F0_REG 0,3, 0,
#define NB_D3F1_REG 0,3, 1,
-
#define SB_LPC_REG 0,0x11,0,
#define SB_VLINK_REG 0,0x11,7,
#define SB_SATA_REG 0,0xf, 0,
@@ -114,7 +107,6 @@ static void vx800_noop(){}
#define SB_USB2_REG 0,0x10, 2,
#define SB_EHCI_REG 0,0x10, 4,
-
#define VX800SB_APIC_ID 0x4
#define VX800SB_APIC_BASE 0xfec00000ULL
#define VX800SB_APIC_DATA_OFFSET 0x10
diff --git a/src/northbridge/via/vx800/vx800_early_serial.c b/src/northbridge/via/vx800/vx800_early_serial.c
index dfc5c3e235..6462a2d295 100644
--- a/src/northbridge/via/vx800/vx800_early_serial.c
+++ b/src/northbridge/via/vx800/vx800_early_serial.c
@@ -27,48 +27,46 @@
#define SIO_BASE 0x3f0
#define SIO_DATA SIO_BASE+1
-static void vx800_writesuper(uint8_t reg, uint8_t val)
+static void vx800_writesuper(uint8_t reg, uint8_t val)
{
outb(reg, SIO_BASE);
outb(val, SIO_DATA);
}
-static void vx800_writepnpaddr(uint8_t val)
+static void vx800_writepnpaddr(uint8_t val)
{
outb(val, 0x2e);
outb(val, 0xeb);
}
-static void vx800_writepnpdata(uint8_t val)
+static void vx800_writepnpdata(uint8_t val)
{
outb(val, 0x2f);
outb(val, 0xeb);
}
-static void vx800_writesiobyte(uint16_t reg, uint8_t val)
+static void vx800_writesiobyte(uint16_t reg, uint8_t val)
{
outb(val, reg);
}
-static void vx800_writesioword(uint16_t reg, uint16_t val)
+static void vx800_writesioword(uint16_t reg, uint16_t val)
{
outw(val, reg);
}
-
/* regs we use: 85, and the southbridge devfn is defined by the
mainboard
*/
-static void enable_vx800_serial(void)
+static void enable_vx800_serial(void)
{
outb(6, 0x80);
outb(0x03, 0x22);
-
//pci_write_config8(PCI_DEV(0,17,0),0xb4,0x7e);
//pci_write_config8(PCI_DEV(0,17,0),0xb0,0x10);
-
+
// turn on pnp
vx800_writepnpaddr(0x87);
vx800_writepnpaddr(0x87);
@@ -96,7 +94,7 @@ static void enable_vx800_serial(void)
// Set 115 kb
vx800_writesioword(0x3f8, 1);
// Set 9.6 kb
- // WRITESIOWORD(0x3f8, 12)
+ // WRITESIOWORD(0x3f8, 12)
// now set no parity, one stop, 8 bits
vx800_writesiobyte(0x3fb, 3);
// now turn on RTS, DRT
@@ -107,4 +105,3 @@ static void enable_vx800_serial(void)
vx800_writesiobyte(0x3f8, 48);
outb(7, 0x80);
}
-
diff --git a/src/northbridge/via/vx800/vx800_early_smbus.c b/src/northbridge/via/vx800/vx800_early_smbus.c
index 03deedc8aa..247eab91fd 100644
--- a/src/northbridge/via/vx800/vx800_early_smbus.c
+++ b/src/northbridge/via/vx800/vx800_early_smbus.c
@@ -17,10 +17,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
- #include <device/pci_ids.h>
- #include "vx800.h"
-#define SMBUS_IO_BASE 0x0500 //from award bios
-#define PMIO_BASE VX800_ACPI_IO_BASE //might as well set this while we're here
+#include <device/pci_ids.h>
+#include "vx800.h"
+#define SMBUS_IO_BASE 0x0500 //from award bios
+#define PMIO_BASE VX800_ACPI_IO_BASE //might as well set this while we're here
#define SMBHSTSTAT SMBUS_IO_BASE + 0x0
#define SMBSLVSTAT SMBUS_IO_BASE + 0x1
@@ -64,10 +64,11 @@
/* Internal functions */
static void smbus_print_error(unsigned char host_status_register, int loops)
{
-// print_err("some i2c error\r\n");
+// print_err("some i2c error\r\n");
/* Check if there actually was an error */
- if ( host_status_register == 0x00 || host_status_register == 0x40 ||
- host_status_register == 0x42) return;
+ if (host_status_register == 0x00 || host_status_register == 0x40 ||
+ host_status_register == 0x42)
+ return;
print_err("smbus_error: ");
print_err_hex8(host_status_register);
print_err("\r\n");
@@ -98,7 +99,7 @@ static void smbus_wait_until_ready(void)
loops = 0;
/* Yes, this is a mess, but it's the easiest way to do it */
- while(((inb(SMBHSTSTAT) & 1) == 1) && (loops <= SMBUS_TIMEOUT)) {
+ while (((inb(SMBHSTSTAT) & 1) == 1) && (loops <= SMBUS_TIMEOUT)) {
SMBUS_DELAY();
++loops;
}
@@ -124,37 +125,37 @@ static unsigned int set_ics_data(unsigned char dev, int data, char len)
inb(SMBHSTCTL);
/* fill blocktransfer array */
- if (dev=0xd2) {
+ if (dev = 0xd2) {
//char d2_data[] = {0x0d,0x00,0x3f,0xcd,0x7f,0xbf,0x1a,0x2a,0x01,0x0f,0x0b,0x00,0x8d,0x9b};
- outb(0x0d,SMBBLKDAT);
- outb(0x00,SMBBLKDAT);
- outb(0x3f,SMBBLKDAT);
- outb(0xcd,SMBBLKDAT);
- outb(0x7f,SMBBLKDAT);
- outb(0xbf,SMBBLKDAT);
- outb(0x1a,SMBBLKDAT);
- outb(0x2a,SMBBLKDAT);
- outb(0x01,SMBBLKDAT);
- outb(0x0f,SMBBLKDAT);
- outb(0x0b,SMBBLKDAT);
- outb(0x80,SMBBLKDAT);
- outb(0x8d,SMBBLKDAT);
- outb(0x9b,SMBBLKDAT);
+ outb(0x0d, SMBBLKDAT);
+ outb(0x00, SMBBLKDAT);
+ outb(0x3f, SMBBLKDAT);
+ outb(0xcd, SMBBLKDAT);
+ outb(0x7f, SMBBLKDAT);
+ outb(0xbf, SMBBLKDAT);
+ outb(0x1a, SMBBLKDAT);
+ outb(0x2a, SMBBLKDAT);
+ outb(0x01, SMBBLKDAT);
+ outb(0x0f, SMBBLKDAT);
+ outb(0x0b, SMBBLKDAT);
+ outb(0x80, SMBBLKDAT);
+ outb(0x8d, SMBBLKDAT);
+ outb(0x9b, SMBBLKDAT);
} else {
//char d4_data[] = {0x08,0xff,0x3f,0x00,0x00,0xff,0xff,0xff,0xff};
- outb(0x08,SMBBLKDAT);
- outb(0xff,SMBBLKDAT);
- outb(0x3f,SMBBLKDAT);
- outb(0x00,SMBBLKDAT);
- outb(0x00,SMBBLKDAT);
- outb(0xff,SMBBLKDAT);
- outb(0xff,SMBBLKDAT);
- outb(0xff,SMBBLKDAT);
- outb(0xff,SMBBLKDAT);
+ outb(0x08, SMBBLKDAT);
+ outb(0xff, SMBBLKDAT);
+ outb(0x3f, SMBBLKDAT);
+ outb(0x00, SMBBLKDAT);
+ outb(0x00, SMBBLKDAT);
+ outb(0xff, SMBBLKDAT);
+ outb(0xff, SMBBLKDAT);
+ outb(0xff, SMBBLKDAT);
+ outb(0xff, SMBBLKDAT);
}
//for (i=0; i < len; i++)
- // outb(data[i],SMBBLKDAT);
+ // outb(data[i],SMBBLKDAT);
outb(dev, SMBXMITADD);
outb(0, SMBHSTCMD);
@@ -184,7 +185,7 @@ static unsigned int get_spd_data(unsigned int dimm, unsigned int offset)
dimm &= 0x0E;
dimm |= 0xA0;
- outb(dimm|0x1, SMBXMITADD);
+ outb(dimm | 0x1, SMBXMITADD);
outb(offset, SMBHSTCMD);
outb(0x48, SMBHSTCTL);
@@ -201,9 +202,12 @@ static void enable_smbus(void)
{
device_t dev;
- dev = pci_locate_device(PCI_ID(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VX855_LPC), 0);
+ dev =
+ pci_locate_device(PCI_ID
+ (PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VX855_LPC),
+ 0);
- if (dev == PCI_DEV_INVALID) {
+ if (dev == PCI_DEV_INVALID) {
/* This won't display text if enable_smbus() is before serial init */
die("Power Managment Controller not found\r\n");
}
@@ -217,21 +221,21 @@ static void enable_smbus(void)
/* Set to Award value */
pci_write_config8(dev, 0xd2, 0x05);
- /* Make it work for I/O ...*/
+ /* Make it work for I/O ... */
pci_write_config16(dev, 0x04, 0x0003);
- /*
- coreboot hangs at this two lines after os reboot(this even happen after I change os
- reboot to cold reboot, this also interfere S3 wakeup)*/
+ /*
+ coreboot hangs at this two lines after os reboot(this even happen after I change os
+ reboot to cold reboot, this also interfere S3 wakeup) */
/* Setup clock chips */
//set_ics_data(0xd2, 0, 14);
//set_ics_data(0xd4, 0, 9);
-
+
smbus_reset();
/* clear host data port */
outb(0x00, SMBHSTDAT0);
SMBUS_DELAY();
- smbus_wait_until_ready();
+ smbus_wait_until_ready();
}
/**
@@ -266,13 +270,15 @@ void smbus_fixup(const struct mem_controller *ctrl)
* VT8237R has only been seen on DDR and DDR2 based systems, so far.
*/
for (i = 0; (i < SMBUS_TIMEOUT && ((result < SPD_MEMORY_TYPE_SDRAM) ||
- (result > SPD_MEMORY_TYPE_SDRAM_DDR3))); i++) {
+ (result >
+ SPD_MEMORY_TYPE_SDRAM_DDR3)));
+ i++) {
if (current_slot > ram_slots)
current_slot = 0;
result = get_spd_data(ctrl->channel0[current_slot],
- SPD_MEMORY_TYPE);
+ SPD_MEMORY_TYPE);
current_slot++;
PRINT_DEBUG(".");
}
@@ -290,24 +296,21 @@ static void dump_spd_data(void)
int dimm, offset, regs;
unsigned int val;
- for(dimm = 0; dimm < 8; dimm++)
- {
+ for (dimm = 0; dimm < 8; dimm++) {
print_debug("SPD Data for DIMM ");
print_debug_hex8(dimm);
print_debug("\r\n");
val = get_spd_data(dimm, 0);
- if(val == 0xff)
- {
+ if (val == 0xff) {
regs = 256;
- } else if(val == 0x80) {
+ } else if (val == 0x80) {
regs = 128;
} else {
print_debug("No DIMM present\r\n");
regs = 0;
}
- for(offset = 0; offset < regs; offset++)
- {
+ for (offset = 0; offset < regs; offset++) {
print_debug(" Offset ");
print_debug_hex8(offset);
print_debug(" = 0x");
diff --git a/src/northbridge/via/vx800/vx800_ide.c b/src/northbridge/via/vx800/vx800_ide.c
index 4f9f8f9c49..f53f4ab551 100644
--- a/src/northbridge/via/vx800/vx800_ide.c
+++ b/src/northbridge/via/vx800/vx800_ide.c
@@ -27,75 +27,141 @@
#include "vx800.h"
static const idedevicepcitable[16 * 12] = {
-//
-/*0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xA8, 0xF0, 0x00, 0x00, 0xB6,
-0x00, 0x00, 0x01, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
-0x00, 0xC2, 0xF9, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-*/
-//
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x99, 0x20, 0xf0, 0x00, 0x00, 0x20,
- 0x00, 0x00, 0x17, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
- 0x00, 0xc2, 0x09, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-//legacybios xp pci value
-/*0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x20, 0x00, 0x00, 0x00, 0xb6,
-0x00, 0x00, 0x16, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
-0x00, 0x02, 0x09, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-*/
-//rom legacybios on cn_8562b
-/*
-0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x99, 0x20, 0x60, 0x00, 0x00, 0x20,
-0x00, 0x00, 0x1E, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
-0x00, 0x02, 0x09, 0x01, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-*/
-//from egacybios on c7_8562b
-/*0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x20, 0x60, 0x00, 0x00, 0xB6,
-0x00, 0x00, 0x1E, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
-0x00, 0x02, 0x09, 0x01, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, */
+ /*
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0xA8, 0xA8, 0xF0, 0x00, 0x00, 0xB6,
+ 0x00, 0x00, 0x01, 0x21, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
+ 0x00, 0xC2, 0xF9, 0x01, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ */
+
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x99, 0x20, 0xf0, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x17, 0xF1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
+ 0x00, 0xc2, 0x09, 0x01, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ /* Legacy BIOS XP PCI value */
+ /*
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0xa8, 0x20, 0x00, 0x00, 0x00, 0xb6,
+ 0x00, 0x00, 0x16, 0xF1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
+ 0x00, 0x02, 0x09, 0x00, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ */
+
+ /* ROM legacy BIOS on cn_8562b */
+ /*
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x99, 0x20, 0x60, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x1E, 0xF1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
+ 0x00, 0x02, 0x09, 0x01, 0x18, 0x0C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ */
+
+ /* From legacy BIOS on c7_8562b */
+ /*
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x5E, 0x20, 0x60, 0x00, 0x00, 0xB6,
+ 0x00, 0x00, 0x1E, 0xF1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x09, 0xC4, 0x06, 0x11, 0x09, 0xC4,
+ 0x00, 0x02, 0x09, 0x01, 0x18, 0x0C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ */
};
static void ide_init(struct device *dev)
@@ -129,10 +195,8 @@ static void ide_init(struct device *dev)
pci_write_config8(dev, PCI_INTERRUPT_LINE, 0xff);
#if 0
-
-
struct southbridge_via_vt8237r_config *sb =
- (struct southbridge_via_vt8237r_config *) dev->chip_info;
+ (struct southbridge_via_vt8237r_config *)dev->chip_info;
u8 enables;
u32 cablesel;
diff --git a/src/northbridge/via/vx800/vx800_lpc.c b/src/northbridge/via/vx800/vx800_lpc.c
index 92660212cf..8f79670034 100644
--- a/src/northbridge/via/vx800/vx800_lpc.c
+++ b/src/northbridge/via/vx800/vx800_lpc.c
@@ -30,28 +30,28 @@
#include "vx800.h"
#include "chip.h"
-static const unsigned char pciIrqs[4] = {0xa, 0x9, 0xb, 0xa};
+static const unsigned char pciIrqs[4] = { 0xa, 0x9, 0xb, 0xa };
-static const unsigned char vgaPins[4] = { 'A', 'B', 'C', 'D' };//only INTA
+static const unsigned char vgaPins[4] = { 'A', 'B', 'C', 'D' }; //only INTA
-static const unsigned char slotPins[4] = { 'A', 'A', 'A', 'A'};//all 4
+static const unsigned char slotPins[4] = { 'A', 'A', 'A', 'A' }; //all 4
-static const unsigned char usbdevicePins[4] = { 'A', 'B', 'C', 'D' };//only INTA
-static const unsigned char sdioPins[4] = { 'A', 'B', 'C', 'D' };//only INTA
-static const unsigned char sd_ms_ctrl_Pins[4] = { 'B', 'C', 'D', 'A' };//only INTA
-static const unsigned char ce_ata_nf_ctrl_Pins[4] = { 'C', 'C', 'D', 'A' };//only INTA
-static const unsigned char idePins[4] = { 'B', 'C', 'D', 'A' };//only INTA
+static const unsigned char usbdevicePins[4] = { 'A', 'B', 'C', 'D' }; //only INTA
+static const unsigned char sdioPins[4] = { 'A', 'B', 'C', 'D' }; //only INTA
+static const unsigned char sd_ms_ctrl_Pins[4] = { 'B', 'C', 'D', 'A' }; //only INTA
+static const unsigned char ce_ata_nf_ctrl_Pins[4] = { 'C', 'C', 'D', 'A' }; //only INTA
+static const unsigned char idePins[4] = { 'B', 'C', 'D', 'A' }; //only INTA
-static const unsigned char usbPins[4] = { 'A', 'B', 'C', 'D' };//all 4
+static const unsigned char usbPins[4] = { 'A', 'B', 'C', 'D' }; //all 4
-static const unsigned char hdacaudioPins[4] = { 'B', 'C', 'D', 'A' };//only INTA
+static const unsigned char hdacaudioPins[4] = { 'B', 'C', 'D', 'A' }; //only INTA
static unsigned char *pin_to_irq(const unsigned char *pin)
{
static unsigned char Irqs[4];
int i;
- for (i = 0 ; i < 4 ; i++)
- Irqs[i] = pciIrqs[ pin[i] - 'A' ];
+ for (i = 0; i < 4; i++)
+ Irqs[i] = pciIrqs[pin[i] - 'A'];
return Irqs;
}
@@ -62,7 +62,7 @@ static void pci_routing_fixup(struct device *dev)
/* set up PCI IRQ routing */
pci_write_config8(dev, 0x55, pciIrqs[0] << 4);
- pci_write_config8(dev, 0x56, pciIrqs[1] | (pciIrqs[2] << 4) );
+ pci_write_config8(dev, 0x56, pciIrqs[1] | (pciIrqs[2] << 4));
pci_write_config8(dev, 0x57, pciIrqs[3] << 4);
/* VGA */
@@ -95,7 +95,7 @@ static void pci_routing_fixup(struct device *dev)
/* Standard usb components */
printk_info("setting usb1-2\n");
-// pci_assign_irqs(0, 0x10, pin_to_irq(usbPins));
+// pci_assign_irqs(0, 0x10, pin_to_irq(usbPins));
/* sound hardware */
printk_info("setting hdac audio\n");
@@ -111,27 +111,27 @@ void setup_pm(device_t dev)
pci_write_config8(dev, 0x80, 0x20);
/* Set ACPI base address to IO VX800_ACPI_IO_BASE */
- pci_write_config16(dev, 0x88, VX800_ACPI_IO_BASE|1);
+ pci_write_config16(dev, 0x88, VX800_ACPI_IO_BASE | 1);
/* set ACPI irq to 9 */
pci_write_config8(dev, 0x82, 0x49);
/* Primary interupt channel, define wake events 0=IRQ0 15=IRQ15 1=en. */
-// pci_write_config16(dev, 0x84, 0x30f2);
- pci_write_config16(dev, 0x84, 0x609a); // 0x609a??
+// pci_write_config16(dev, 0x84, 0x30f2);
+ pci_write_config16(dev, 0x84, 0x609a); // 0x609a??
/* SMI output level to low, 7.5us throttle clock */
pci_write_config8(dev, 0x8d, 0x18);
/* GP Timer Control 1s */
pci_write_config8(dev, 0x93, 0x88);
-
+
/* Power Well */
pci_write_config8(dev, 0x94, 0x20); // 0x20??
/* 7 = stp to sust delay 1msec
- * 6 = SUSST# Deasserted Before PWRGD for STD
- */
+ * 6 = SUSST# Deasserted Before PWRGD for STD
+ */
pci_write_config8(dev, 0x95, 0xc0); // 0xc1??
/* Disable GP2 & GP3 Timer */
@@ -147,7 +147,6 @@ void setup_pm(device_t dev)
/* Multi Function Select 2 */
pci_write_config8(dev, 0xe5, 0x41); //??
-
/* Enable ACPI access (and setup like award) */
pci_write_config8(dev, 0x81, 0x84);
@@ -198,39 +197,41 @@ void setup_pm(device_t dev)
outw(0x001, 0x404);
*/
}
+
void S3_ps2_kb_ms_wakeup(struct device *dev)
-{ u8 enables;
+{
+ u8 enables;
enables = pci_read_config8(dev, 0x51);
enables |= 2;
pci_write_config8(dev, 0x51, enables);
-
+
outb(0xe0, 0x2e);
- outb(0x0b, 0x2f);//if 09,then only support kb wakeup
+ outb(0x0b, 0x2f); //if 09,then only support kb wakeup
- outb(0xe1, 0x2e);//set any key scan code can wakeup
+ outb(0xe1, 0x2e); //set any key scan code can wakeup
outb(0x00, 0x2f);
-
- outb(0xe9, 0x2e);//set any mouse scan code can wakeup
+
+ outb(0xe9, 0x2e); //set any mouse scan code can wakeup
outb(0x00, 0x2f);
enables &= 0xd;
pci_write_config8(dev, 0x51, enables);
- outb(inb(VX800_ACPI_IO_BASE+0x02)|0x20, VX800_ACPI_IO_BASE+0x02);//ACPI golabe enable for sci smi trigger
- outw(inw(VX800_ACPI_IO_BASE+0x22)|0x204, VX800_ACPI_IO_BASE+0x22);//ACPI SCI on Internal KBC PME and mouse PME
-
+ outb(inb(VX800_ACPI_IO_BASE + 0x02) | 0x20, VX800_ACPI_IO_BASE + 0x02); //ACPI golabe enable for sci smi trigger
+ outw(inw(VX800_ACPI_IO_BASE + 0x22) | 0x204, VX800_ACPI_IO_BASE + 0x22); //ACPI SCI on Internal KBC PME and mouse PME
+
}
+
void S3_usb_wakeup(struct device *dev)
{
- outw(inw(VX800_ACPI_IO_BASE+0x22)|0x4000, VX800_ACPI_IO_BASE+0x22);//SCI on USB PME
+ outw(inw(VX800_ACPI_IO_BASE + 0x22) | 0x4000, VX800_ACPI_IO_BASE + 0x22); //SCI on USB PME
}
void S3_lid_wakeup(struct device *dev)
{
- outw(inw(VX800_ACPI_IO_BASE+0x22)|0x800, VX800_ACPI_IO_BASE+0x22);//SCI on LID PME
+ outw(inw(VX800_ACPI_IO_BASE + 0x22) | 0x800, VX800_ACPI_IO_BASE + 0x22); //SCI on LID PME
}
-
/* This looks good enough to work, maybe */
static void vx800_sb_init(struct device *dev)
{
@@ -242,7 +243,7 @@ static void vx800_sb_init(struct device *dev)
pci_write_config8(dev, 0x6C, enables);
// Map 4MB of FLASH into the address space
-// pci_write_config8(dev, 0x41, 0x7f);
+// pci_write_config8(dev, 0x41, 0x7f);
// Set bit 6 of 0x40, because Award does it (IO recovery time)
// IMPORTANT FIX - EISA 0x4d0 decoding must be on so that PCI
@@ -260,7 +261,7 @@ static void vx800_sb_init(struct device *dev)
pci_write_config8(dev, 0x4c, 0x44);
/* ROM memory cycles go to LPC. */
- pci_write_config8(dev, 0x59, 0x80);
+ pci_write_config8(dev, 0x59, 0x80);
/* Set 0x5b to 0x01 to match Award */
//pci_write_config8(dev, 0x5b, 0x01);
@@ -268,16 +269,14 @@ static void vx800_sb_init(struct device *dev)
enables |= 0x01;
pci_write_config8(dev, 0x5b, enables);
-
/* Set Read Pass Write Control Enable */
pci_write_config8(dev, 0x48, 0x0c);
/* Set 0x58 to 0x42 APIC and RTC. */
//pci_write_config8(dev, 0x58, 0x42); this cmd cause the irq0 can not be triggerd,since bit 5 was set to 0.
- enables=pci_read_config8(dev, 0x58);
- enables|=0x41;//
- pci_write_config8(dev, 0x58,enables);
-
+ enables = pci_read_config8(dev, 0x58);
+ enables |= 0x41; //
+ pci_write_config8(dev, 0x58, enables);
/* Set bit 3 of 0x4f to match award (use INIT# as cpu reset) */
enables = pci_read_config8(dev, 0x4f);
@@ -308,21 +307,24 @@ void vx800_read_resources(device_t dev)
struct resource *resource;
pci_dev_read_resources(dev);
resource = new_resource(dev, 1);
- resource->flags |= IORESOURCE_FIXED | IORESOURCE_ASSIGNED | IORESOURCE_IO | IORESOURCE_STORED;
+ resource->flags |=
+ IORESOURCE_FIXED | IORESOURCE_ASSIGNED | IORESOURCE_IO |
+ IORESOURCE_STORED;
resource->size = 2;
resource->base = 0x2e;
}
+
void vx800_set_resources(device_t dev)
{
struct resource *resource;
- resource = find_resource(dev,1);
+ resource = find_resource(dev, 1);
resource->flags |= IORESOURCE_STORED;
pci_dev_set_resources(dev);
}
void vx800_enable_resources(device_t dev)
- {
+{
/* vx800 is not a pci bridge and has no resources of its own (other than
standard PC i/o addresses). however it does control the isa bus and so
we need to manually call enable childrens resources on that bus */
@@ -332,18 +334,19 @@ void vx800_enable_resources(device_t dev)
}
static void southbridge_init(struct device *dev)
-{
+{
printk_debug("vx800 sb init\n");
vx800_sb_init(dev);
pci_routing_fixup(dev);
- setup_i8259(); // make sure interupt controller is configured before keyboard init
+ setup_i8259(); // make sure interupt controller is configured before keyboard init
- /* turn on keyboard and RTC, no need to visit this reg twice */
+ /* turn on keyboard and RTC, no need to visit this reg twice */
init_pc_keyboard(0x60, 0x64, 0);
- printk_debug("ps2 usb lid, you set who can wakeup system from s3 sleep\n");
+ printk_debug
+ ("ps2 usb lid, you set who can wakeup system from s3 sleep\n");
S3_ps2_kb_ms_wakeup(dev);
- S3_usb_wakeup(dev);
+ S3_usb_wakeup(dev);
/* enable acpi cpu c3 state. (c2 state need not do anything.)
#1
@@ -370,15 +373,15 @@ static void southbridge_init(struct device *dev)
}
static struct device_operations vx800_lpc_ops = {
- .read_resources = vx800_read_resources,
- .set_resources = vx800_set_resources,
+ .read_resources = vx800_read_resources,
+ .set_resources = vx800_set_resources,
.enable_resources = vx800_enable_resources,
- .init = &southbridge_init,
- .scan_bus = scan_static_bus,
+ .init = &southbridge_init,
+ .scan_bus = scan_static_bus,
};
static struct pci_driver lpc_driver __pci_driver = {
- .ops = &vx800_lpc_ops,
+ .ops = &vx800_lpc_ops,
.vendor = PCI_VENDOR_ID_VIA,
.device = PCI_DEVICE_ID_VIA_VX855_LPC,
};