mirror of
https://github.com/apache/nuttx.git
synced 2026-06-01 07:45:16 +08:00
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:
@@ -44,7 +44,9 @@ o Network
|
|||||||
- IPv6 support is incomplete
|
- IPv6 support is incomplete
|
||||||
- Incoming UDP broadcast should only be accepted if listening on INADDR_ANY(?)
|
- 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
|
- 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
|
o USB
|
||||||
- Implement USB device support
|
- Implement USB device support
|
||||||
@@ -78,10 +80,6 @@ o ARM
|
|||||||
user stack allocation larger than needed.
|
user stack allocation larger than needed.
|
||||||
|
|
||||||
o ARM/C5471
|
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
|
o ARM/DM320
|
||||||
- It seems that when a lot of debug statements are added, the system no
|
- It seems that when a lot of debug statements are added, the system no
|
||||||
|
|||||||
@@ -238,7 +238,7 @@
|
|||||||
|
|
||||||
#define ENET_ADR_PROMISCUOUS 0x00000008 /* Bit 3: Enable snoop address comparison */
|
#define ENET_ADR_PROMISCUOUS 0x00000008 /* Bit 3: Enable snoop address comparison */
|
||||||
#define ENET_ADR_BROADCAST 0x00000004 /* Bit 2: Enable broadcast 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 */
|
#define ENET_ADDR_PCOMPARE 0x00000001 /* Bit 0: Enable physical address comparison */
|
||||||
|
|
||||||
/* ENET0_MODE bit settings */
|
/* ENET0_MODE bit settings */
|
||||||
@@ -1321,8 +1321,6 @@ static void c5471_receive(struct c5471_driver_s *c5471)
|
|||||||
c5471->c_rxdropped++;
|
c5471->c_rxdropped++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1849,7 +1847,7 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
|
|||||||
putreg32(pbuf, desc);
|
putreg32(pbuf, desc);
|
||||||
desc += sizeof(uint32);
|
desc += sizeof(uint32);
|
||||||
|
|
||||||
putreg32(0, pbuf);;
|
putreg32(0, pbuf);
|
||||||
pbuf += EIM_PACKET_BYTES;
|
pbuf += EIM_PACKET_BYTES;
|
||||||
|
|
||||||
putreg32(0, pbuf);
|
putreg32(0, pbuf);
|
||||||
@@ -1875,10 +1873,10 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
|
|||||||
putreg32(pbuf, desc);
|
putreg32(pbuf, desc);
|
||||||
desc += sizeof(uint32);
|
desc += sizeof(uint32);
|
||||||
|
|
||||||
putreg32(0, pbuf);;
|
putreg32(0, pbuf);
|
||||||
pbuf += EIM_PACKET_BYTES;
|
pbuf += EIM_PACKET_BYTES;
|
||||||
|
|
||||||
putreg32(0, pbuf);;
|
putreg32(0, pbuf);
|
||||||
pbuf += sizeof(uint32); /* Ether Module's "Buffer Usage Word" */
|
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);
|
putreg32(pbuf, desc);
|
||||||
desc += sizeof(uint32);
|
desc += sizeof(uint32);
|
||||||
|
|
||||||
putreg32(0, pbuf);;
|
putreg32(0, pbuf);
|
||||||
pbuf += EIM_PACKET_BYTES;
|
pbuf += EIM_PACKET_BYTES;
|
||||||
|
|
||||||
putreg32(0, pbuf);;
|
putreg32(0, pbuf);
|
||||||
pbuf += sizeof(uint32); /* Ether Module's "Buffer Usage Word" */
|
pbuf += sizeof(uint32); /* Ether Module's "Buffer Usage Word" */
|
||||||
}
|
}
|
||||||
ndbg("END desc: %08x pbuf: %08x\n", desc, pbuf);
|
ndbg("END desc: %08x pbuf: %08x\n", desc, pbuf);
|
||||||
|
|||||||
Reference in New Issue
Block a user