Hi Lennart,

many thanks,

i did some key steps forward:
- created my 5307/boards/amcore.c with platform_device/resources structures.
Now the dm9000_probe is executed correctly.
- had some problems in setting correct .start / .end addresses, but now i get them working correctly (done debug through scope). - finally, when the CMD is issued (IO_W# asserted + CMD low), trying to read VIDL (vendor id, register 28h), the 0x28 is present, but from D24:D31, so seems there is an endiannes problem.

So you seen right from the start one critical issue.
Probably, i can manage this inside the driver with some swaps, and have it working, but i don't think it is the right way to go ahead, since i would like my changes to be pubblic and commited someday.

Any suggestion is appreciated,
Regards,
Angelo






On 01/06/2010 22:08, Lennart Sorensen wrote:
On Tue, Jun 01, 2010 at 09:16:08PM +0200, angelo wrote:
i connected stright D0:D31 of coldfire with D0:31 of the chip. I still
didn't looked too much inside the driver, but actually, probably i am
one step before, the dm9000_probe is not called at all (i put some
printk inside).
Perhaps you need a call in the platform setup code.  It isn't PCI after
all and almost certainly doesn't have any kind of autodetection facility.

Looks like you need something like this in your board specific startup
(for example stamp.c on blackfin)

#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
static struct resource dm9000_resources[] = {
         [0] = {
                 .start  = 0x203FB800,
                 .end    = 0x203FB800 + 1,
                 .flags  = IORESOURCE_MEM,
         },
         [1] = {
                 .start  = 0x203FB804,
                 .end    = 0x203FB804 + 1,
                 .flags  = IORESOURCE_MEM,
         },
         [2] = {
                 .start  = IRQ_PF9,
                 .end    = IRQ_PF9,
                 .flags  = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
         },
};

static struct platform_device dm9000_device = {
         .name           = "dm9000",
         .id             = -1,
         .num_resources  = ARRAY_SIZE(dm9000_resources),
         .resource       = dm9000_resources,
};
#endif

and then in platform_device something like:

&dm9000_device,

Many of the arm boards using it look very similar.


_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to