Hi all,
i dumped finally the vector table:
00000000 : 00 00 00 00 ff c0 04 00 00 00 0a e8 00 00 0b 4c
00000001 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000002 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000003 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000004 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000005 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
*00000006 : 00 00 39 30 00 00 39 30 00 00 39 30 00 00 39 30
00000007 : 00 00 39 30 00 00 39 30 00 00 39 3000 00 39 30 *
00000008 : 00 00 37 c0 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000009 : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000a : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000b : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000c : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000d : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000e : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
0000000f : 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c 00 00 0b 4c
00000010 : 00 00 39 30 00 00 39 30 00 00 39 30 00 00 39 30
00000011 : 00 00 39 30 00 00 39 30 00 00 39 30 00 00 39 30
00000012 : 00 00 39 30 00 00 39 30 00 00 39 30 00 00 39 30
The vector related to IRQ7 pin (31), where dm9000 interrupt is
physically wired, seems not to be set from the driver to the
dm9000_interrupt routine offset.
I am sure i am missing something basic. Going on studying/searching ..
Regards,
Angelo
On 04/06/2010 20:34, angelo wrote:
Hi all,
i have interfaced a dm9000 chip with a Coldfire MCF5307. Driver is
written for little-endian cpu, but with some job i could have it
working, almost for the transmission part.
Anyway, i am not receiving any network packet, while i am able to send
them out correctly.
Interrupt pin of dm9000 (active low) is now wired to the IRQ7 pin on
MCF5307.
I put some traces on the dm9000.c and i have seen that:
- RX circuit to the chip works properly, since i checked the dm9000
ISR registry (0xfeh), and interrupt bit get set when a packet arrive.
- At start up the driver displays: "dm9000 dm9000: WARNING: no IRQ
resource flags set."
- dm9000_interrupt() routine is never entered.
Even if my resource structure set the IRQ flags as below, probably
some other task disable the interrupt maybe.
This are my board resources:
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
static struct resource dm9000_resources[] = {
/* physical address of the address register (CMD [A2] to 0)*/
[0] = {
.start = MCF5307_CS1,
.end = MCF5307_CS1,
.flags = IORESOURCE_MEM,
},
/* physical address of the data register (CMD [A2] to 1)*/
[1] = {
.start = MCF5307_CS1 + 0x4,
.end = MCF5307_CS1 + 0x4 + 03,
.flags = IORESOURCE_MEM,
},
/* IRQ line the device's interrupt pin is connected to */
[2] = {
.start = 0 + INT_IRQ7,
.end = 0 + INT_IRQ7,
.flags = IORESOURCE_IRQ,
},
};
static struct dm9000_plat_data dm9000_platdata = {
.flags = DM9000_PLATF_32BITONLY,
};
static struct platform_device dm9000_device = {
.name = "dm9000",
.id = -1,
.num_resources = ARRAY_SIZE(dm9000_resources),
.resource = dm9000_resources,
.dev = {
.platform_data = &dm9000_platdata,
}
};
#endif
Thanks,
Regards,
Angelo
_______________________________________________
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