URL
https://opencores.org/ocsvn/plasma/plasma/trunk
Subversion Repositories plasma
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 430 to Rev 431
- ↔ Reverse comparison
Rev 430 → Rev 431
/plasma/trunk/kernel/ethernet.c
32,6 → 32,7
static OS_Semaphore_t *SemEthernet, *SemEthTransmit; |
static int gIndex; //byte index into 0x13ff0000 receive buffer |
static int gCrcChecked; |
static volatile int ethTxBusy; |
|
|
//Read received data from 0x13ff0000. Data starts with 0x5d+MACaddress. |
47,6 → 48,9
int byteCrc; |
volatile unsigned char *buf = (unsigned char*)ETHERNET_RECEIVE; |
int packetExpected; |
|
while(ethTxBusy) |
OS_ThreadSleep(1); |
|
//Find the start of a frame |
packetExpected = MemoryRead(IRQ_STATUS) & IRQ_ETHERNET_RECEIVE; |
154,6 → 158,7
volatile unsigned char *buf = (unsigned char*)ETHERNET_TRANSMIT; |
|
OS_SemaphorePend(SemEthTransmit, OS_WAIT_FOREVER); |
ethTxBusy = 1; |
|
//Wait for previous transfer to complete |
for(i = 0; i < 10000; ++i) |
194,6 → 199,14
MemoryWrite(ETHERNET_REG, length); |
Led(2, 0); |
|
//Wait for previous transfer to complete |
for(i = 0; i < 10000; ++i) |
{ |
if(MemoryRead(IRQ_STATUS) & IRQ_ETHERNET_TRANSMIT) |
break; |
} |
ethTxBusy = 0; |
|
OS_SemaphorePost(SemEthTransmit); |
} |
|
389,3 → 402,4
//Start receive DMA |
MemoryWrite(GPIO0_SET, ETHERNET_ENABLE); |
} |
|
/plasma/trunk/kernel/tcpip.c
955,7 → 955,8
} |
|
//Check if FIN flag set |
if((packet[TCP_FLAGS] & TCP_FLAGS_FIN) && socket->ack >= seq) |
if((packet[TCP_FLAGS] & TCP_FLAGS_FIN) && socket->ack >= seq && |
socket->state < IP_CLOSED) |
{ |
notify = 1; |
socket->timeout = SOCKET_TIMEOUT; |
969,7 → 970,7
++socket->ack; |
TCPSendPacket(socket, frameOut, TCP_DATA); |
if(socket->state == IP_FIN_SERVER) |
socket->timeout = SOCKET_TIMEOUT; |
IPClose2(socket); |
else if(socket->state == IP_TCP) |
socket->state = IP_FIN_CLIENT; |
} |