Commit graph

32606 commits

Author SHA1 Message Date
Gregory Nutt
7edf921c5e Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:54:36 -06:00
Gregory Nutt
de50bc82a7 Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:21:36 -06:00
Gregory Nutt
b7cbbab761 Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:10:21 -06:00
Gregory Nutt
f6e49caba8 All SPI-based device drivers needs to call SPI_HWFEATURES() with zero in order to co-exist with drivers that use H/W features 2016-01-23 16:18:13 -06:00
Gregory Nutt
00aaceaf2f All SPI-based device drivers needs to call SPI_HWFEATURES() with zero in order to co-exist with drivers that use H/W features 2016-01-23 16:17:42 -06:00
Gregory Nutt
e8ff3c3d59 Mark bash scripts executable 2016-01-23 15:30:45 -06:00
Gregory Nutt
c36c49657b Remove carriage returns from files 2016-01-23 15:26:10 -06:00
Gregory Nutt
5e5cdd6ea4 Remove carriage returns from files 2016-01-23 15:23:02 -06:00
Gregory Nutt
3850b9b70c Remove carriage returns from a file 2016-01-23 15:19:57 -06:00
Gregory Nutt
accd99db25 Add an optional hwfeatures method to the SPI interface 2016-01-23 15:12:45 -06:00
Gregory Nutt
075bc100a1 Update a configuration 2016-01-23 15:10:05 -06:00
Gregory Nutt
4bd6adb725 Add dummy hwfeatures method to all SPI interfaces 2016-01-23 15:09:38 -06:00
Gregory Nutt
9ece46e917 Costmetic update 2016-01-23 11:18:39 -06:00
Gregory Nutt
91b762aa86 Networking: Fix an error that I introduced with my last review changes 2016-01-22 17:35:06 -06:00
Gregory Nutt
3ba9e82c72 Update README 2016-01-22 17:21:49 -06:00
Gregory Nutt
d8cff2ab49 Cosmetic updates 2016-01-22 17:21:07 -06:00
Gregory Nutt
07f931fa57 Update index 2016-01-22 17:07:19 -06:00
Gregory Nutt
b48a2439a1 Minor document clean-up 2016-01-22 16:58:48 -06:00
Gregory Nutt
bf2106a684 Update ChangeLog 2016-01-22 16:26:16 -06:00
Andrew Webster
5c589e5b9c Net: use nlldbg since an iob can be added from an interrupt 2016-01-22 16:23:31 -06:00
Andrew Webster
49e5cc5a6f TCP: check for an active connection before cleaning it up
If there is no active connection (e.g. it is waiting in accept), then
the connection object, which doesn't yet exist, should not be cleaned
up when the socket is closed.
2016-01-22 16:22:09 -06:00
Andrew Webster
5e3023bef1 TCP: return from write when there is no buffer space
During a write, if there is no more buffer space for the user data,
return the amount that was written instead of waiting until there
is free space.  If nothing has been written yet, then block as before.

This solves a deadlock that occurs if the user data is too large to
fit in the available buffer:  the write thread will block before any
data is added to the write queue, leaving no possibility that more
buffers will free up when they are ACKed (since they have not yet been
sent).  The write thread will then block forever and hold all of the
buffers.
2016-01-22 16:19:20 -06:00
Andrew Webster
e221777a7a TCP: post buffer semaphore before re-acquiring both
TCP uses two semaphores for buffers, one for the entire buffer pool,
and one for the number of allowed buffers for readahead.  To avoid
double taking a semaphore under heavy load, release the semaphore
after waiting before trying to acquire both again.
2016-01-22 16:15:10 -06:00
Andrew Webster
4875c6bbe3 TCP: check for connection before deleting it
It is possible for a socket to have no connection, for example if a TCP
socket is waiting in accept.  This checks for this condition in case the
socket is closed from a different thread.
2016-01-22 15:59:15 -06:00
Andrew Webster
f1ef2c6cde TCP: attempt to flush the write buffers before closing
When a socket is closed, it should make sure that any pending write
data is sent before the FIN is sent.  It already would wait for all
sent data to be acked, however it would discard any pending write
data that had not been sent at least once.

This change adds a check for pending write data in addition to unacked
data.  However, to be able to actually send any new data, the send
callback must be left.  The callback should be freed later when the socket
is actually destroyed.
2016-01-22 15:58:02 -06:00
Andrew Webster
cdd187a7f3 TCP: check for sndcb before using it 2016-01-22 15:54:45 -06:00
Andrew Webster
df211ee46a TCP: add writable check during poll
When a poll requesting POLLOUT happens, the poll should return
immediately if a write will not block.  This change adds that, as
opposed to the old behaviour of blocking until a timer from the
Ethernet driver eventually triggers the poll to complete.

This is only implemented for buffered TCP.  Unbuffered TCP should
behave as before.
2016-01-22 15:52:14 -06:00
Andrew Webster
99f5fcda70 iTCP: use lowlevel syslog to avoid infinte recursion
If stdout is a socket (e.g. telnet), then the debug message will cause
more TCP data to be sent, which generates another message, and so on
2016-01-22 15:41:48 -06:00
Gregory Nutt
84d4cb007b clock_systimer: 64-bit timer accesses are not atomic. Noted by Freddie Chopin. 2016-01-22 12:24:36 -06:00
Gregory Nutt
7ead6b4972 Update submodules 2016-01-22 10:46:43 -06:00
Gregory Nutt
382e00b294 Update some configurations 2016-01-22 10:43:56 -06:00
Gregory Nutt
f9f00d474f Update NSH login features 2016-01-22 10:43:00 -06:00
Gregory Nutt
2dcebe1e3d Purely cosmetic changes from review of last commit 2016-01-22 07:11:29 -06:00
Stefan Kolb
2b05f3e830 I/O Expander: Fix some bad macros, make naming consisted 2016-01-22 07:08:59 -06:00
Gregory Nutt
2de5be34e5 Update ChangeLog 2016-01-21 19:29:43 -06:00
Gregory Nutt
ece6517607 Kinetis ENET: Move ioctl function; add prototype and function header; split up some long lines 2016-01-21 19:14:04 -06:00
Andrew Webster
43303a5786 Kinetis: add MK60N512VLL100 support 2016-01-21 19:07:18 -06:00
Andrew Webster
9d0c378dbc Kinetis enet: switch to built-in byte swapper. Depends on GCC __builtin functions 2016-01-21 19:05:51 -06:00
Andrew Webster
d3238e6f95 Kinetis enet: buffer management update
This patch manages the packet buffer used by the upper layers by making sure it is always set to a valid transmit buffer that can be used by the MAC-NET core.  The only exception to this is when the upper layer re-uses a receive buffer to send a response. In this case, the updated receive buffer is swapped with an empty transmit buffer.  If there is no empty transmit buffer available, the packet will be dropped.

Signed-off-by: Andrew Webster <awebster@arcx.com>

Kinetis enet: add support for DBSWP

Signed-off-by: Andrew Webster <awebster@arcx.com>
2016-01-21 19:00:21 -06:00
Andrew Webster
64a0f54767 Kinetis enet: add PHY ioctl support. 2016-01-21 18:54:04 -06:00
Andrew Webster
a118233a59 Kinetis enet: set the MII_MODE bit. The RM states that this bit should always be 1. 2016-01-21 18:50:53 -06:00
Andrew Webster
36408697ca Kinetis enet: leave the write buffer wrap bit alone. The wrap buffer bit is initialized when the buffers are set up and should not be changed later 2016-01-21 18:49:23 -06:00
Andrew Webster
6ba74a281a Kinetis enet: RDAR should be called after ETHER_EN 2016-01-21 18:46:54 -06:00
Andrew Webster
c1a8443416 inetis enet: disallow transmit when the queue is full 2016-01-21 18:45:46 -06:00
Andrew Webster
a3f8be04ac Kinetis enet: initialize the MAC address 2016-01-21 18:44:10 -06:00
Andrew Webster
a16cae2b74 Kinetis enet: support multiple transmits between interrupts. Accounts for the unlikely event that more than one packet has been transmitted before the tx done is processed 2016-01-21 18:40:52 -06:00
Andrew Webster
409d499fc8 Kinetis enet: use rounded up MTU size for buffers. The buffers must be evenly divisible by 16, so round up the MTU size and use that for the buffer sizes 2016-01-21 18:39:12 -06:00
Andrew Webster
d09eec1066 Kinetis enet: fix minor logic errors 2016-01-21 18:36:27 -06:00
Andrew Webster
8dc63d6016 Kinetis enet: fix typos 2016-01-21 18:35:19 -06:00
Gregory Nutt
d68d9cbd32 Fix typo introduced in the last commit 2016-01-21 16:51:28 -06:00