C5471 ethernet driver functional (but sensitive)

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@432 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2007-12-07 15:19:00 +00:00
parent 47b3a226af
commit 977d4d8779
2 changed files with 11 additions and 15 deletions

8
TODO
View File

@ -44,7 +44,9 @@ o Network
- IPv6 support is incomplete
- Incoming UDP broadcast should only be accepted if listening on INADDR_ANY(?)
- Should add some driver call to support throttling... when there is no listener
for new data, the driver should be throttled.
for new data, the driver should be throttled. Perhaps the driver should disable
RX interrupts when throttled and re-anable on each poll time. recvfrom would,
of course, have to un-throttle.
o USB
- Implement USB device support
@ -78,10 +80,6 @@ o ARM
user stack allocation larger than needed.
o ARM/C5471
- Ethernet driver has problems on receive side. The cause of the problem seems
to be that the hardware waits for about 3 seconds before interrupting the driver.
By then, the sender has already retransmitted and things are out of sync.
Probable cause: TX configuration problem.
o ARM/DM320
- It seems that when a lot of debug statements are added, the system no

View File

@ -238,7 +238,7 @@
#define ENET_ADR_PROMISCUOUS 0x00000008 /* Bit 3: Enable snoop address comparison */
#define ENET_ADR_BROADCAST 0x00000004 /* Bit 2: Enable broadcast address comparison */
#define ENET_ADDR_LCOMPARE 0x00000001 /* Bit 1: Enable logical address comparison */
#define ENET_ADDR_LCOMPARE 0x00000002 /* Bit 1: Enable logical address comparison */
#define ENET_ADDR_PCOMPARE 0x00000001 /* Bit 0: Enable physical address comparison */
/* ENET0_MODE bit settings */
@ -1321,8 +1321,6 @@ static void c5471_receive(struct c5471_driver_s *c5471)
c5471->c_rxdropped++;
}
#endif
}
/****************************************************************************
@ -1849,7 +1847,7 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
putreg32(pbuf, desc);
desc += sizeof(uint32);
putreg32(0, pbuf);;
putreg32(0, pbuf);
pbuf += EIM_PACKET_BYTES;
putreg32(0, pbuf);
@ -1875,10 +1873,10 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
putreg32(pbuf, desc);
desc += sizeof(uint32);
putreg32(0, pbuf);;
putreg32(0, pbuf);
pbuf += EIM_PACKET_BYTES;
putreg32(0, pbuf);;
putreg32(0, pbuf);
pbuf += sizeof(uint32); /* Ether Module's "Buffer Usage Word" */
}
@ -1933,10 +1931,10 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
putreg32(pbuf, desc);
desc += sizeof(uint32);
putreg32(0, pbuf);;
putreg32(0, pbuf);
pbuf += EIM_PACKET_BYTES;
putreg32(0, pbuf);;
putreg32(0, pbuf);
pbuf += sizeof(uint32); /* Ether Module's "Buffer Usage Word" */
}
ndbg("END desc: %08x pbuf: %08x\n", desc, pbuf);