Hi Hans,
At Tue, 9 Mar 2004 15:58:26 -0700,
Hans Meyer wrote:
[...]
> Now I want to get the SMSC LAN91C111 lan chip to work. ..my choice of an
> affordable solution without $$$s for the license..
> I was happy to see that the driver for that chip is actually listed in the
> configuration.
> But after including the driver the network didn't work. I take it that there
> is some place where I need to map the hardware address of the LAN chip into
> the configuration?
> Is there anybody that has used this MAC/PHY already to point me in the right
> direction? Or are experiences with porting other MAC/PHY's applicable?
i haven't made it as generic as i want but here is a preliminary patch
you can look at if you wanna make smc91111.c work with microblaze,
well with SUZAKU in this case.
# if we have time, we should make generic big endian support in
# smc91111.c. suzaku_smc.h is really just a copy of mcfsmc.h
ps. next time you post, create a new thread instead of replying to
others.
regards,
--
yashi
Index: smc91111.c
===================================================================
RCS file: /var/cvs/uClinux-2.4.x/drivers/net/smc91111.c,v
retrieving revision 1.6
diff -u -r1.6 smc91111.c
--- smc91111.c 2003/10/01 15:24:17 1.6
+++ smc91111.c 2004/03/23 01:47:50
@@ -86,6 +86,9 @@
#include <asm/mcfsmc.h>
#include <asm/coldfire.h>
#include <asm/mcfsim.h>
+#elif defined(CONFIG_SUZAKU)
+#define CONFIG_SMC16BITONLY 1
+#include <asm/suzaku_smc.h>
#else
#include <asm/io.h>
#endif
@@ -119,6 +122,7 @@
# define USE_32_BIT 1
#endif
+#undef USE_32_BIT
/*
.the LAN91C111 can be at any of the following port addresses. To change,
@@ -132,6 +136,9 @@
static unsigned int smc_portlist[] = { 0x30600300, 0 };
static unsigned int smc_irqlist[] = { 68, 0 };
unsigned char smc_defethaddr[] = { 0x00, 0xd0, 0xcf, 0x00, 0x01, 0x21 };
+#elif defined(CONFIG_SUZAKU)
+static unsigned int smc_portlist[] = { 0xffe00300, 0 };
+static unsigned int smc_irqlist[] = { 2, 0 };
#else
static unsigned int smc_portlist[] __initdata =
{ 0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0,
@@ -1008,7 +1015,7 @@
SET_MODULE_OWNER (dev);
-#if defined(CONFIG_COLDFIRE)
+#if defined(CONFIG_COLDFIRE) || defined(CONFIG_SUZAKU)
{
static int index = 0;
@@ -1214,7 +1221,7 @@
so I can access the base address register */
SMC_SELECT_BANK(1);
base_address_register = inw( ioaddr + BASE_REG );
-#if defined(CONFIG_M5249C3) || defined(CONFIG_GILBARCONAP) || defined(CONFIG_RTE_CB_ME2)
+#if defined(CONFIG_M5249C3) || defined(CONFIG_GILBARCONAP) || defined(CONFIG_RTE_CB_ME2) || defined(CONFIG_SUZAKU)
if ((ioaddr & 0xfff) != (base_address_register >> 3 & 0x3E0))
#else
if ( ioaddr != ( base_address_register >> 3 & 0x3E0 ) )
@@ -1330,6 +1337,7 @@
/* now, reset the chip, and put it into a known state */
smc_reset( dev );
+#if !defined(CONFIG_SUZAKU)
/*
. If dev->irq is 0, then the device has to be banged on to see
. what the IRQ is.
@@ -1371,6 +1379,7 @@
*/
dev->irq = 9;
}
+#endif
/* now, print out the card info, in a short format.. */
Attachment:
suzaku_smc.h
Description: Binary data