From mboxrd@z Thu Jan 1 00:00:00 1970 Received: with ECARTIS (v1.0.0; list linux-mips); Fri, 06 May 2005 17:18:19 +0100 (BST) Received: from smtp007.bizmail.sc5.yahoo.com ([IPv6:::ffff:66.163.170.10]:16484 "HELO smtp007.bizmail.sc5.yahoo.com") by linux-mips.org with SMTP id ; Fri, 6 May 2005 17:17:57 +0100 Received: from unknown (HELO ?192.168.1.101?) (ppopov@embeddedalley.com@63.194.214.47 with plain) by smtp007.bizmail.sc5.yahoo.com with SMTP; 6 May 2005 16:17:49 -0000 Subject: Re: Re[2]: dbau1200 ethernet driver? From: Pete Popov Reply-To: ppopov@embeddedalley.com To: "Ruslan V.Pisarev" Cc: "'linux-mips@linux-mips.org'" In-Reply-To: <135147936.20050506171259@izmiran.rssi.ru> References: <261758805.20050506155322@izmiran.rssi.ru> <135147936.20050506171259@izmiran.rssi.ru> Content-Type: multipart/mixed; boundary="=-Prjo5kPrED460n4iSWkI" Organization: Embedded Alley Solutions, Inc Date: Fri, 06 May 2005 09:17:50 -0700 Message-Id: <1115396270.5785.10.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.0.4 (2.0.4-4) Return-Path: X-Envelope-To: <"|/home/ecartis/ecartis -s linux-mips"> (uid 0) X-Orcpt: rfc822;linux-mips@linux-mips.org Original-Recipient: rfc822;linux-mips@linux-mips.org X-archive-position: 7887 X-ecartis-version: Ecartis v1.0.0 Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org X-original-sender: ppopov@embeddedalley.com Precedence: bulk X-list: linux-mips --=-Prjo5kPrED460n4iSWkI Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Here you go, courtesy of AMD: ---- here's the driver and patch and instructions that we use... # On AMD Alchemy Au1200 eval boards, the SMSC LAN91C111 is the # network chipset. unzip -a ../linux26-patches/LAN91C111_Linux_V201.zip smc91111.c -d drivers/net unzip -a ../linux26-patches/LAN91C111_Linux_V201.zip smc91111.h -d drivers/net patch -p1 < ../linux26-patches/smslan91c111.patch ---- Pete On Fri, 2005-05-06 at 17:12 +0300, Ruslan V.Pisarev wrote: > >[In reply to "dbau1200 ethernet driver?" from sjhill@realitydiluted.com to Ruslan V.Pisarev 06/05/2005 16:32] > > >> There is a smc91c111 network chip on board, so my question is - what > >> driver is suitable with him? Is it "MIPS AU1000 Ethernet support" > >> which fails to compile with "error: `NUM_ETH_INTERFACES' undeclared" > >> (and it must be?) or something different? It seems that I have enabled > >> all other options for ethernet functionality. > src> Without having access to a source tree currently, how about you grep > src> through the 'arch/mips/au1000' directory and friends for the string > src> NUM_ETH_INTERFACES. I think you will find that each board-specific > src> setup file is responsible for defining it. Either that, or look in > src> 'include/asm-mips'. In the future, make sure you grep through all of > src> the source to find other possible uses or examples. > > Well, problem is something more complicated... At least for me :) > > NUM_ETH_INTERFACES is defined /include/asm-mips/mach-au1x00/au1000.h > for all machines (au1000 au1100 au1500 au1550) except au1200. I dont > think that someone forgot to add NUM_ETH_INTERFACES for au1200. And > even what it means? All these machines have "on-board" ethernet > controller in processor core, so I think there's no external chip on > development board. au1200 haven't internal controller and has > dedicated chip on board... > > Furtermore, I found now, that Linux 2.4.26 distributed by AMD has an > additional option CONFIG_AU1XXX_SMC91111 in config for DBAu1200 which > controls compiling drivers/net/smc91111.c. > In 2.6 this file disappeared but we have drivers/net/smc91x.c which > configures in some arm, ppc, and superh architectures. MIPS knows > nothing about him. Is it the right file? I suppose it is, but... > > Am I first who put 2.6 kernel on this board and see that is there no > drivers for it ? :) > > > > > ()_() > --( °,° )---[21398845]-[jerry¤wicomtechnologies.com]- > (") (") -- -<06/05/2005 16:38>- > > --=-Prjo5kPrED460n4iSWkI Content-Disposition: attachment; filename=LAN91C111_Linux_V201.zip Content-Type: application/zip; name=LAN91C111_Linux_V201.zip Content-Transfer-Encoding: base64 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 --=-Prjo5kPrED460n4iSWkI Content-Disposition: attachment; filename=smslan91c111.patch Content-Type: text/x-patch; name=smslan91c111.patch; charset=utf-8 Content-Transfer-Encoding: 7bit This patch changes the SMSC-authored LAN91C111 Linux Ethernet driver to work with the AMD Alchemy Au1x00 SOCs, utilizing the static bus controller. This patch is developed against SMSC LAN91C111 Linux driver 2.01, which was obtained here: http://www.smsc.com/main/catalog/lan91c111.html --- linux26.cvs/drivers/net/Kconfig 2005-01-24 22:28:23.000000000 -0600 +++ linux26.amd/drivers/net/Kconfig 2005-02-24 15:45:40.000000000 -0600 @@ -472,6 +472,14 @@ config MIPS_AU1X00_ENET If you have an Alchemy Semi AU1X00 based system say Y. Otherwise, say N. +config MIPS_SMSCLAN91C111_ENET + bool "SMSC LAN91C111 on AMD Alchemy Static Bus support" + depends on NET_ETHERNET && SOC_AU1X00 + select CRC32 + help + Use SMSC LAN91C111 with AMD Alchemy Statis Bus + say Y. Otherwise, say N. + config SGI_IOC3_ETH bool "SGI IOC3 Ethernet" depends on NET_ETHERNET && PCI && SGI_IP27 --- linux26.cvs/drivers/net/Makefile 2005-01-13 08:06:10.000000000 -0600 +++ linux26.amd/drivers/net/Makefile 2005-02-24 15:46:18.000000000 -0600 @@ -166,6 +166,7 @@ obj-$(CONFIG_EQUALIZER) += eql.o obj-$(CONFIG_MIPS_JAZZ_SONIC) += jazzsonic.o obj-$(CONFIG_MIPS_GT96100ETH) += gt96100eth.o obj-$(CONFIG_MIPS_AU1X00_ENET) += au1000_eth.o +obj-$(CONFIG_MIPS_SMSCLAN91C111_ENET) += smc91111.o obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o obj-$(CONFIG_DECLANCE) += declance.o obj-$(CONFIG_ATARILANCE) += atarilance.o --- linux.org/drivers/net/smc91111.c 2004-12-13 13:32:50.000000000 -0600 +++ linux.amd/drivers/net/smc91111.c 2005-03-03 10:40:43.000000000 -0600 @@ -64,11 +64,11 @@ static const char version[] = "SMSC LAN91C111 Driver (v2.01), (Linux Kernel 2.4 + Support for Odd Byte) 12/13/04\n\n"; -#ifdef MODULE +#include #include +#ifdef MODULE #include #endif - #include #include #include @@ -95,6 +95,65 @@ static const char version[] = #include #endif +#if defined(CONFIG_SOC_AU1X00) +#define SMC_DEBUG 1 // Must be defined in makefile + +#ifdef CONFIG_MIPS_PB1550 +#include +#endif +#ifdef CONFIG_MIPS_PB1200 +#include +#endif +#ifdef CONFIG_MIPS_DB1200 +#include +#endif +#ifdef CONFIG_MIPS_FICMMP +#include +#endif + +#include +#undef inb +#undef inw +#undef outb +#undef outw + +#define inb(x) au_readb(x) +#define inw(x) au_readw(x) +#define outb(d,x) au_writeb(d,x) +#define outw(d,x) au_writew(d,x) + +/* Can't use io.h version since it inlines incorrect inw() and outw() */ +#undef insw +#define insw auinsw +static inline void auinsw(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + *(u16 *)addr = inw(port); + addr += 2; + } +} + +#undef outsw +#define outsw auoutsw +static inline void auoutsw(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + outw(*(u16 *)addr, port); + addr += 2; + } +} + +/* extern functions */ +extern int get_ethernet_addr(char *ethenet_addr); + +/* Compiled-in defaults can be over-ridden at boot-time by board setup code */ +uint32_t au1xxx_smc91111_base = KSEG1ADDR(AU1XXX_SMC91111_PHYS_ADDR); +int au1xxx_smc91111_irq = AU1XXX_SMC91111_IRQ; +int au1xxx_smc91111_nowait = 1; + +#define RPC_DEFAULT (RPC_ANEG | (RPC_LED_100_10 << RPC_LSXA_SHFT) | (RPC_LED_TX_RX << RPC_LSXB_SHFT)) +#endif /* end CONFIG_SOC_AU1X00 */ + #include "smc91111.h" /*------------------------------------------------------------------------ . @@ -106,7 +165,9 @@ static const char version[] = . Do you want to use 32 bit xfers? This should work on all chips, as . the chipset is designed to accommodate them. */ +#if !defined(CONFIG_SOC_AU1X00) #define USE_32_BIT 1 +#endif /* @@ -368,7 +429,7 @@ static void smc_phy_configure(struct net /* . Handles the actual interrupt */ -static void smc_interrupt(int irq, void *, struct pt_regs *regs); +static irqreturn_t smc_interrupt(int irq, void *, struct pt_regs *regs); /* . This is a separate procedure to handle the receipt of a packet, to . leave the interrupt code looking slightly cleaner @@ -546,7 +607,7 @@ static void smc_reset( struct net_device */ static void smc_enable( struct net_device *dev ) { - unsigned short ioaddr = dev->base_addr; + unsigned int ioaddr = dev->base_addr; struct smc_local *lp = (struct smc_local *)dev->priv; PRINTK2("%s:smc_enable\n", dev->name); @@ -701,7 +762,7 @@ static int crc32( char * s, int length ) static int smc_wait_to_send_packet( struct sk_buff * skb, struct net_device * dev ) { struct smc_local *lp = (struct smc_local *)dev->priv; - unsigned short ioaddr = dev->base_addr; + unsigned int ioaddr = dev->base_addr; word length; unsigned short numPages; word time_out; @@ -823,7 +884,7 @@ static void smc_hardware_send_packet( st byte packet_no; struct sk_buff * skb = lp->saved_skb; word length; - unsigned short ioaddr; + unsigned int ioaddr; byte * buf; PRINTK3("%s:smc_hardware_send_packet\n", dev->name); @@ -935,7 +996,7 @@ static void smc_hardware_send_packet( st int __init smc_init(struct net_device *dev) { int i; - int base_addr = dev ? dev->base_addr : 0; + unsigned int base_addr = dev ? dev->base_addr : 0; PRINTK2("CARDNAME:smc_init\n"); @@ -1118,6 +1179,7 @@ static int __init smc_probe(struct net_d so I can access the base address register */ SMC_SELECT_BANK(1); base_address_register = inw( ioaddr + BASE_REG ); +#ifndef CONFIG_SOC_AU1X00 if ( ioaddr != ( base_address_register >> 3 & 0x3E0 ) ) { printk("CARDNAME: IOADDR %x doesn't match configuration (%x)." @@ -1128,6 +1190,7 @@ static int __init smc_probe(struct net_d retval = -ENODEV; goto err_out; } +#endif /* check if the revision register is something that I recognize. These might need to be added to later, as future revisions @@ -1157,6 +1220,7 @@ static int __init smc_probe(struct net_d /* . Get the MAC address ( bank 1, regs 4 - 9 ) */ +#ifndef CONFIG_SOC_AU1X00 SMC_SELECT_BANK( 1 ); for ( i = 0; i < 6; i += 2 ) { @@ -1166,6 +1230,10 @@ static int __init smc_probe(struct net_d dev->dev_addr[ i + 1] = address >> 8; dev->dev_addr[ i ] = address & 0xFF; } +#else + /* Obtain address from Boot PROM (no EEPROM) */ + get_ethernet_addr(dev->dev_addr); +#endif /* get the memory information */ @@ -1445,7 +1513,7 @@ static void smc_timeout (struct net_devi . and finally restore state. . ---------------------------------------------------------------------*/ -static void smc_interrupt(int irq, void * dev_id, struct pt_regs * regs) +static irqreturn_t smc_interrupt(int irq, void * dev_id, struct pt_regs * regs) { struct net_device *dev = dev_id; int ioaddr = dev->base_addr; @@ -1466,7 +1534,7 @@ static void smc_interrupt(int irq, void if (dev == NULL) { printk(KERN_WARNING "%s: irq %d for unknown device.\n", dev->name, irq); - return; + return IRQ_RETVAL(1); } /* will Linux let this happen ?? If not, this costs some speed @@ -1490,6 +1558,18 @@ static void smc_interrupt(int irq, void outb( 0, ioaddr + IM_REG ); + #if defined(CONFIG_MIPS_FICMMP) + //Check if the unit is still docked + if(((*((u32*)0xB170000C)) >> 15 & 0x01) == 0) + //if(au1xxx_gpio_read(215) == 0) //Ugh! why isn't this symbol getting exported?!?!? + { + //Disable the ethernet IRQ. Removing from dock pulls IRQ high (always on!) + free_irq(devSMC91111.irq, &devSMC91111); + mask = 0; + goto no_device; + } + #endif + /* set a timeout value, so I don't stay here forever */ timeout = 4; @@ -1500,6 +1580,9 @@ static void smc_interrupt(int irq, void if (!status ) break; + // Acknowledge the interrupt + outb(status, ioaddr + INT_REG ); + PRINTK3(KERN_WARNING "%s: Handling interrupt status %x \n", dev->name, status); @@ -1512,8 +1595,6 @@ static void smc_interrupt(int irq, void PRINTK2(KERN_WARNING "%s: TX ERROR handled\n", dev->name); smc_tx(dev); - // Acknowledge the interrupt - outb(IM_TX_INT, ioaddr + INT_REG ); } else if (status & IM_TX_EMPTY_INT ) { /* update stats */ SMC_SELECT_BANK( 0 ); @@ -1534,8 +1615,6 @@ static void smc_interrupt(int irq, void SMC_SELECT_BANK( 2 ); PRINTK2(KERN_WARNING "%s: TX_BUFFER_EMPTY handled\n", dev->name); - // Acknowledge the interrupt - outb( IM_TX_EMPTY_INT, ioaddr + INT_REG ); mask &= ~IM_TX_EMPTY_INT; lp->stats.tx_packets += lp->packets_waiting; lp->packets_waiting = 0; @@ -1559,25 +1638,22 @@ static void smc_interrupt(int irq, void } else if (status & IM_RX_OVRN_INT ) { lp->stats.rx_errors++; lp->stats.rx_fifo_errors++; - // Acknowledge the interrupt - outb( IM_RX_OVRN_INT, ioaddr + INT_REG ); } else if (status & IM_EPH_INT ) { PRINTK("%s: UNSUPPORTED: EPH INTERRUPT \n", dev->name); } else if (status & IM_MDINT ) { smc_phy_interrupt(dev); - // Acknowledge the interrupt - outb(IM_MDINT, ioaddr + INT_REG ); } else if (status & IM_ERCV_INT ) { PRINTK("%s: UNSUPPORTED: ERCV INTERRUPT \n", dev->name); - // Acknowledge the interrupt - outb( IM_ERCV_INT, ioaddr + INT_REG ); } } while ( timeout -- ); /* restore register states */ +#if defined(CONFIG_MIPS_FICMMP) +no_device: +#endif SMC_SELECT_BANK( 2 ); @@ -1590,7 +1666,7 @@ static void smc_interrupt(int irq, void //dev->interrupt = 0; PRINTK3("%s: Interrupt done\n", dev->name); - return; + return IRQ_RETVAL(1); } /*------------------------------------------------------------- @@ -1874,7 +1950,7 @@ static struct net_device_stats* smc_quer */ static void smc_set_multicast_list(struct net_device *dev) { - short ioaddr = dev->base_addr; + int ioaddr = dev->base_addr; PRINTK2("%s:smc_set_multicast_list\n", dev->name); @@ -1930,7 +2006,7 @@ static void smc_set_multicast_list(struc } } -#ifdef MODULE +//#ifdef MODULE static struct net_device devSMC91111; int io = 0; @@ -1944,7 +2020,7 @@ MODULE_PARM(nowait, "i"); /*------------------------------------------------------------ . Module initialization function .-------------------------------------------------------------*/ -int init_module(void) +int __init smc91111_init_module(void) { int result; @@ -1954,9 +2030,21 @@ int init_module(void) CARDNAME": You shouldn't use auto-probing with insmod!\n" ); /* copy the parameters from insmod into the device structure */ +#ifdef CONFIG_SOC_AU1X00 + if (au1xxx_smc91111_base == 0) + { + printk(KERN_WARNING + CARDNAME": Wrong SMC91111 Base Address!\n" ); + return -ENODEV; + } + devSMC91111.base_addr = au1xxx_smc91111_base; + devSMC91111.irq = au1xxx_smc91111_irq; + devSMC91111.dma = au1xxx_smc91111_nowait; +#else devSMC91111.base_addr = io; devSMC91111.irq = irq; devSMC91111.dma = nowait; // Use DMA field for nowait +#endif devSMC91111.init = smc_init;/* Kernel 2.4 Changes - Pramod */ if ((result = register_netdev(&devSMC91111)) != 0) return result; @@ -1967,7 +2055,7 @@ int init_module(void) /*------------------------------------------------------------ . Cleanup when module is removed with rmmod .-------------------------------------------------------------*/ -void cleanup_module(void) +void __exit smc91111_cleanup_module(void) { /* No need to check MOD_IN_USE, as sys_delete_module() checks. */ unregister_netdev(&devSMC91111); @@ -1979,8 +2067,10 @@ void cleanup_module(void) kfree(devSMC91111.priv); /* Kernel 2.4 Changes - Pramod */ } -#endif /* MODULE */ +//#endif /* MODULE */ +module_init(smc91111_init_module); +module_exit(smc91111_cleanup_module); #ifdef CONFIG_SYSCTL @@ -2065,7 +2155,7 @@ static const char smc_info_string[] = . Sysctl handler for all integer parameters .-------------------------------------------------------------*/ static int smc_sysctl_handler(ctl_table *ctl, int write, struct file * filp, - void *buffer, size_t *lenp) + void *buffer, size_t *lenp, loff_t *fpos) { struct net_device *dev = (struct net_device*)ctl->extra1; struct smc_local *lp = (struct smc_local *)ctl->extra2; @@ -2294,7 +2384,7 @@ static int smc_sysctl_handler(ctl_table val = *valp; // Perform the generic integer operation - if ((ret = proc_dointvec(ctl, write, filp, buffer, lenp)) != 0) + if ((ret = proc_dointvec(ctl, write, filp, buffer, lenp, fpos)) != 0) return(ret); // Write changes out to the registers --- linux.org/drivers/net/smc91111.h 2005-03-02 13:48:34.000000000 -0600 +++ linux.amd/drivers/net/smc91111.h 2005-03-02 13:48:48.000000000 -0600 @@ -89,7 +89,7 @@ typedef unsigned long int dword; #define TCR_CLEAR 0 /* do NOTHING */ /* the default settings for the TCR register : */ /* QUESTION: do I want to enable padding of short packets ? */ -#define TCR_DEFAULT TCR_ENABLE +#define TCR_DEFAULT (TCR_ENABLE | TCR_SWFDUP) // EPH Status Register @@ -151,7 +151,9 @@ typedef unsigned long int dword; #define RPC_LED_100 (0x05) // LED = 100Mbps link dectect #define RPC_LED_TX (0x06) // LED = TX packet occurred #define RPC_LED_RX (0x07) // LED = RX packet occurred +#ifndef RPC_DEFAULT #define RPC_DEFAULT (RPC_ANEG | (RPC_LED_100 << RPC_LSXA_SHFT) | (RPC_LED_FD << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX) +#endif /* Bank 0 0x000C is reserved */ --=-Prjo5kPrED460n4iSWkI--