summaryrefslogtreecommitdiff
path: root/src/southbridge
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge')
-rw-r--r--src/southbridge/sis/sis966/nic.c163
1 files changed, 81 insertions, 82 deletions
diff --git a/src/southbridge/sis/sis966/nic.c b/src/southbridge/sis/sis966/nic.c
index 448514b000..fee2988299 100644
--- a/src/southbridge/sis/sis966/nic.c
+++ b/src/southbridge/sis/sis966/nic.c
@@ -30,36 +30,36 @@
#include "sis966.h"
-u8 SiS_SiS191_init[6][3]={
-{0x04, 0xFF, 0x07},
-{0x2C, 0xFF, 0x39},
-{0x2D, 0xFF, 0x10},
-{0x2E, 0xFF, 0x91},
-{0x2F, 0xFF, 0x01},
-{0x00, 0x00, 0x00} //End of table
+u8 SiS_SiS191_init[6][3]={
+ {0x04, 0xFF, 0x07},
+ {0x2C, 0xFF, 0x39},
+ {0x2D, 0xFF, 0x10},
+ {0x2E, 0xFF, 0x91},
+ {0x2F, 0xFF, 0x01},
+ {0x00, 0x00, 0x00} //End of table
};
-#define StatusReg 0x1
+#define StatusReg 0x1
#define SMI_READ 0x0
#define SMI_REQUEST 0x10
-#define TRUE 1
-#define FALSE 0
+#define TRUE 1
+#define FALSE 0
u16 MacAddr[3];
static void writeApcByte(int addr, u8 value)
{
- outb(addr,0x78);
- outb(value,0x79);
+ outb(addr, 0x78);
+ outb(value, 0x79);
}
static u8 readApcByte(int addr)
{
u8 value;
- outb(addr,0x78);
- value=inb(0x79);
+ outb(addr, 0x78);
+ value = inb(0x79);
return(value);
}
@@ -69,52 +69,52 @@ static void readApcMacAddr(void)
// enable APC in south bridge sis966 D2F0
- outl(0x80001048,0xcf8);
- outl((inl(0xcfc) & 0xfffffffd),0xcfc ); // enable IO78/79h for APC Index/Data
+ outl(0x80001048, 0xcf8);
+ outl((inl(0xcfc) & 0xfffffffd), 0xcfc ); // enable IO78/79h for APC Index/Data
printk(BIOS_DEBUG, "MAC addr in APC = ");
- for (i = 0x9; i <=0xe; i++) {
+ for (i = 0x9; i <= 0xe; i++)
printk(BIOS_DEBUG, "%2.2x",readApcByte(i));
- }
+
printk(BIOS_DEBUG, "\n");
/* Set APC Reload */
- writeApcByte(0x7,readApcByte(0x7)&0xf7);
- writeApcByte(0x7,readApcByte(0x7)|0x0a);
+ writeApcByte(0x7, readApcByte(0x7) & 0xf7);
+ writeApcByte(0x7, readApcByte(0x7) | 0x0a);
/* disable APC in south bridge */
- outl(0x80001048,0xcf8);
- outl(inl(0xcfc)&0xffffffbf,0xcfc);
+ outl(0x80001048, 0xcf8);
+ outl(inl(0xcfc) & 0xffffffbf, 0xcfc);
}
static void set_apc(struct device *dev)
{
u16 addr;
u16 i;
- u8 bTmp;
+ u8 bTmp;
/* enable APC in south bridge sis966 D2F0 */
- outl(0x80001048,0xcf8);
- outl((inl(0xcfc) & 0xfffffffd),0xcfc ); // enable IO78/79h for APC Index/Data
-
- for (i = 0; i <3; i++) {
- addr=0x9+2*i;
- writeApcByte(addr,(u8)(MacAddr[i]&0xFF));
- writeApcByte(addr+1L,(u8)((MacAddr[i]>>8)&0xFF));
- // printf("%x - ",readMacAddrByte(0x59+i));
+ outl(0x80001048, 0xcf8);
+ outl((inl(0xcfc) & 0xfffffffd), 0xcfc ); // enable IO78/79h for APC Index/Data
+
+ for (i = 0; i < 3; i++) {
+ addr = 0x9 + 2*i;
+ writeApcByte(addr, (u8)(MacAddr[i] & 0xFF));
+ writeApcByte(addr+1L, (u8)((MacAddr[i] >> 8) & 0xFF));
+ // printf("%x - ", readMacAddrByte(0x59 + i));
}
/* Set APC Reload */
- writeApcByte(0x7,readApcByte(0x7)&0xf7);
- writeApcByte(0x7,readApcByte(0x7)|0x0a);
+ writeApcByte(0x7, readApcByte(0x7) & 0xf7);
+ writeApcByte(0x7, readApcByte(0x7) | 0x0a);
/* disable APC in south bridge */
- outl(0x80001048,0xcf8);
- outl(inl(0xcfc)&0xffffffbf,0xcfc);
+ outl(0x80001048, 0xcf8);
+ outl(inl(0xcfc) & 0xffffffbf, 0xcfc);
- // CFG reg0x73 bit=1, tell driver MAC Address load to APC
+ // CFG reg0x73 bit = 1, tell driver MAC Address load to APC
bTmp = pci_read_config8(dev, 0x73);
- bTmp|=0x1;
+ bTmp |= 0x1;
pci_write_config8(dev, 0x73, bTmp);
}
@@ -127,20 +127,20 @@ static void set_apc(struct device *dev)
* @return Contents of EEPROM word (Reg).
*/
#define LoopNum 200
-static unsigned long ReadEEprom( struct device *dev, u8 *base, u32 Reg)
+static unsigned long ReadEEprom(struct device *dev, u8 *base, u32 Reg)
{
- u32 data;
- u32 i;
- u32 ulValue;
+ u32 data;
+ u32 i;
+ u32 ulValue;
- ulValue = (0x80 | (0x2 << 8) | (Reg << 10)); //BIT_7
+ ulValue = (0x80 | (0x2 << 8) | (Reg << 10)); //BIT_7
write32(base + 0x3c, ulValue);
mdelay(10);
- for (i=0; i <= LoopNum; i++) {
- ulValue=read32(base + 0x3c);
+ for (i = 0; i <= LoopNum; i++) {
+ ulValue = read32(base + 0x3c);
if (!(ulValue & 0x0080)) //BIT_7
break;
@@ -150,9 +150,10 @@ static unsigned long ReadEEprom( struct device *dev, u8 *base, u32 Reg)
mdelay(50);
- if (i==LoopNum) data=0x10000;
+ if (i == LoopNum)
+ data = 0x10000;
else {
- ulValue=read32(base + 0x3c);
+ ulValue = read32(base + 0x3c);
data = ((ulValue & 0xffff0000) >> 16);
}
@@ -161,9 +162,9 @@ static unsigned long ReadEEprom( struct device *dev, u8 *base, u32 Reg)
static int phy_read(u8 *base, unsigned phy_addr, unsigned phy_reg)
{
- u32 ulValue;
- u32 Read_Cmd;
- u16 usData;
+ u32 ulValue;
+ u32 Read_Cmd;
+ u16 usData;
Read_Cmd = ((phy_reg << 11) |
(phy_addr << 6) |
@@ -180,7 +181,7 @@ static int phy_read(u8 *base, unsigned phy_addr, unsigned phy_reg)
ulValue = read32(base + 0x44);
} while ((ulValue & SMI_REQUEST) != 0);
//printk(BIOS_DEBUG, "base %x cmd %lx ret val %lx\n", tmp,Read_Cmd,ulValue);
- usData=(ulValue>>16);
+ usData = (ulValue >> 16);
return usData;
}
@@ -189,28 +190,27 @@ static int phy_read(u8 *base, unsigned phy_addr, unsigned phy_reg)
// If there exist a valid PHY then return TRUE, else return FALSE
static int phy_detect(u8 *base,u16 *PhyAddr) //BOOL PHY_Detect()
{
- int bFoundPhy = FALSE;
- u16 usData;
- int PhyAddress = 0;
+ int bFoundPhy = FALSE;
+ u16 usData;
+ int PhyAddress = 0;
// Scan all PHY address(0 ~ 31) to find a valid PHY
for (PhyAddress = 0; PhyAddress < 32; PhyAddress++) {
- usData=phy_read(base,PhyAddress,StatusReg); // Status register is a PHY's register(offset 01h)
+ // Status register is a PHY's register(offset 01h)
+ usData = phy_read(base,PhyAddress,StatusReg);
// Found a valid PHY
-
if ((usData != 0x0) && (usData != 0xffff)) {
bFoundPhy = TRUE;
break;
}
}
- if (!bFoundPhy) {
+ if (!bFoundPhy)
printk(BIOS_DEBUG, "PHY not found !!!!\n");
- }
- *PhyAddr=PhyAddress;
+ *PhyAddr = PhyAddress;
return bFoundPhy;
}
@@ -227,8 +227,8 @@ static void nic_init(struct device *dev)
//-------------- enable NIC (SiS19x) -------------------------
{
- u8 temp8;
- int i=0;
+ u8 temp8;
+ int i = 0;
while (SiS_SiS191_init[i][0] != 0) {
temp8 = pci_read_config8(dev, SiS_SiS191_init[i][0]);
temp8 &= SiS_SiS191_init[i][1];
@@ -240,7 +240,7 @@ static void nic_init(struct device *dev)
//-----------------------------------------------------------
{
- unsigned long i;
+ unsigned long i;
unsigned long ulValue;
res = find_resource(dev, 0x10);
@@ -252,34 +252,35 @@ static void nic_init(struct device *dev)
base = res2mmio(res, 0, 0);
printk(BIOS_DEBUG, "NIC base address %p\n",base);
- if (!(val=phy_detect(base,&PhyAddr))) {
+ if (!(val = phy_detect(base, &PhyAddr))) {
printk(BIOS_DEBUG, "PHY detect fail !!!!\n");
return;
}
- ulValue=read32(base + 0x38L); // check EEPROM existing
+ ulValue = read32(base + 0x38L); // check EEPROM existing
- if ((ulValue & 0x0002)) {
+ if (ulValue & 0x0002) {
- // read MAC address from EEPROM at first
+ // read MAC address from EEPROM at first
- // if that is valid we will use that
+ // if that is valid we will use that
- printk(BIOS_DEBUG, "EEPROM contents %lx\n",ReadEEprom( dev, base, 0LL));
- for (i=0;i<3;i++) {
- //status = smbus_read_byte(dev_eeprom, i);
- ulValue=ReadEEprom( dev, base, i+3L);
- if (ulValue ==0x10000) break; // error
+ printk(BIOS_DEBUG, "EEPROM contents %lx\n",ReadEEprom(dev, base, 0LL));
+ for (i = 0; i < 3; i++) {
+ //status = smbus_read_byte(dev_eeprom, i);
+ ulValue = ReadEEprom(dev, base, i + 3L);
+ if (ulValue == 0x10000)
+ break; // error
- MacAddr[i] =ulValue & 0xFFFF;
+ MacAddr[i] = ulValue & 0xFFFF;
- }
+ }
} else {
// read MAC address from firmware
printk(BIOS_DEBUG, "EEPROM invalid!!\nReg 0x38h=%.8lx\n",ulValue);
- MacAddr[0]=read16((u16 *)0xffffffc0); // mac address store at here
- MacAddr[1]=read16((u16 *)0xffffffc2);
- MacAddr[2]=read16((u16 *)0xffffffc4);
+ MacAddr[0] = read16((u16 *)0xffffffc0); // mac address store at here
+ MacAddr[1] = read16((u16 *)0xffffffc2);
+ MacAddr[2] = read16((u16 *)0xffffffc4);
}
set_apc(dev);
@@ -293,15 +294,14 @@ static void nic_init(struct device *dev)
printk(BIOS_DEBUG, "****** NIC PCI config ******");
printk(BIOS_DEBUG, "\n 03020100 07060504 0B0A0908 0F0E0D0C");
- for (i=0;i<0xff;i+=4) {
- if ((i%16)==0)
+ for (i = 0; i < 0xff; i += 4) {
+ if ((i%16) == 0)
printk(BIOS_DEBUG, "\n%02x: ", i);
- printk(BIOS_DEBUG, "%08x ", pci_read_config32(dev,i));
+ printk(BIOS_DEBUG, "%08x ", pci_read_config32(dev, i));
}
printk(BIOS_DEBUG, "\n");
}
-
#endif
}
@@ -309,7 +309,6 @@ static void nic_init(struct device *dev)
printk(BIOS_DEBUG, "NIC_INIT:<----------\n");
return;
-
}
static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device)
@@ -322,7 +321,7 @@ static struct pci_operations lops_pci = {
.set_subsystem = lpci_set_subsystem,
};
-static struct device_operations nic_ops = {
+static struct device_operations nic_ops = {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,