Paul Sokolovsky
0161939ed1
zephyr/machine_pin: Use native Zephyr types for Zephyr API calls.
In 1.8, Zephyr made a controversial change of dumping C99 stdint types
and switching to its own types.
8 years ago
Paul Sokolovsky
4352b944d2
zephyr: Define MICROPY_PY_SYS_PLATFORM (to "zephyr").
8 years ago
Paul Sokolovsky
43f58386e0
zephyr/modusocket: getaddrinfo: Fix mp_obj_len() usage.
Return value is mp_obj_t, so needs to be accessed using
MP_OBJ_SMALL_INT_VALUE().
8 years ago
Ville Skyttä
ca16c38210
various: Spelling fixes
8 years ago
Paul Sokolovsky
011684bd4f
zephyr/modusocket: Use DEBUG_PRINT macro name as other modules do.
Indeed, just "DEBUG" is too generic.
8 years ago
Paul Sokolovsky
982e676902
zephyr/modusocket: getaddrinfo: Raise OSError on resolution timeout, etc.
8 years ago
Paul Sokolovsky
bcf31a3908
esp8266, stmhal, zephyr: Rename machine.Pin high/low methods to on/off.
For consistent Pin/Signal class hierarchy. With it, Signal is a proper
(while still ducktyped) subclass of a Pin, and any (direct) usage of Pin
can be replace with Signal.
As stmhal's class is reused both as machine.Pin and legacy pyb.Pin,
high/low methods actually retained there.
8 years ago
Paul Sokolovsky
0912334f54
zephyr/modusocket: getaddrinfo: Use RAISE_ERRNO for proper error decoding.
8 years ago
Paul Sokolovsky
5f648ff60e
zephyr/main: Check default netif before applying operations to it.
If no network driver is enabled (e.g., it doesn't exist for a particular
board), it will be NULL.
8 years ago
Paul Sokolovsky
aa9ce283c2
zephyr/modusocket: Get rid of cur_pkt object member.
Instead, just peek a packet at the head of the queue and work with it.
8 years ago
Paul Sokolovsky
a3008e447c
zephyr/modusocket: First step to switch to alternative FIFO processing.
Here we wait for non-empty FIFO, and then directly access/drop its head
element.
8 years ago
Paul Sokolovsky
0c57979ce2
zephyr/modusocket: Implement getaddrinfo().
8 years ago
Paul Sokolovsky
86c4544ef9
zephyr/modusocket: If there're no packets in recv_q, cancel waiter.
This solves a case when socker_read() has blocked on fifo, and then peer
closed event arrives.
8 years ago
Paul Sokolovsky
69f0b4ad5b
zephyr/modusocket: Switch to net_pkt_append() returning length.
Requires patch in review.
8 years ago
Paul Sokolovsky
39d3335606
zephyr/modusocket: Update for net_pkt refactor.
8 years ago
Paul Sokolovsky
c022c9a2f0
zephyr/modusocket: Wrap pkt_get_info() call.
The most important info it returns are numbers of free buffers
in different pools (rx/tx packet headers, data fragments).
8 years ago
Paul Sokolovsky
5383a50072
zephyr/README: Update to require Zephyr 1.8.
There're a lot of changes and fixes in 1.8 regarding IP stack,
incompatible with previous Zephyr versions, so supporting them
doesn't make sense.
This is the last commit which should build with Zephyr 1.7.
8 years ago
Paul Sokolovsky
d57c6564dc
zephyr/prj_qemu_x86.conf: Bump RAM size to 320K.
8 years ago
Paul Sokolovsky
50d7ed325a
zephyr/modusocket: Add SOL_SOCKET and SO_REUSEADDR constants.
8 years ago
Paul Sokolovsky
1659c0645d
zephyr/modusocket: Add dummy setsockopt() implementation.
8 years ago
Paul Sokolovsky
4c2fa83f2a
zephyr/main: Remove superfluous include.
8 years ago
Paul Sokolovsky
b5159a9149
zephyr/mpconfigport.h: Enable line number information for scripts.
8 years ago
Paul Sokolovsky
674da04e2e
zephyr/Makefile: Add debugserver Zephyr target.
8 years ago
Paul Sokolovsky
31bbcd448c
zephyr/modusocket: Add dummy makefile() implementation.
8 years ago
Paul Sokolovsky
868453d3d8
zephyr/modusocket: sock_read: Check socket status only at the start of packet.
Otherwise, if we already have a packet in progress, finish it first, before
check "peer closed" status.
8 years ago
Paul Sokolovsky
1fe0f678f8
zephyr/modusocket: Add read/readline/readinto stream methods.
8 years ago
Paul Sokolovsky
ef55be159c
zephyr/modusocket: Refactor recv() into stream read() method.
8 years ago
Paul Sokolovsky
63068875c5
zephyr/modusocket: Enable stream write() method.
8 years ago
Paul Sokolovsky
0e177e0649
zephyr/modusocket: Refactor send() into stream write() method.
8 years ago
Kushal Das
083cd21a74
zephyr: Add 96b_carbon configuration.
As there's no networking support in mainline yet, networking is disabled,
because otherwise the board hangs on startup.
8 years ago
Paul Sokolovsky
5e66f2b751
zephyr/main: Configure IPv4 netmask and gateway to allow Internet access.
8 years ago
Paul Sokolovsky
5846770997
zephyr/modmachine: Implement machine.reset().
8 years ago
Paul Sokolovsky
209eaec599
socket_send: Don't send more than MTU allows.
As Zephyr currently doesn't handle MTU itself (ZEP-1998), limit amount
of data we send on our side.
Also, if we get unsuccessful result from net_nbuf_append(), calculate
how much data it has added still. This works around ZEP-1984.
8 years ago
Paul Sokolovsky
84e17063c3
zephyr/modusocket: Strip packet header right in the receive callback.
Instead of complicating recv() implementation.
8 years ago
Paul Sokolovsky
81d302b8f8
zephyr/modusocket: Call net_nbuf_print_frags() in recv callback if DEBUG > 1.
8 years ago
Paul Sokolovsky
0a88b44248
zephyr/machine_pin: Implement pin protocol for machine.Signal support.
8 years ago
Paul Sokolovsky
e05cb4183a
zephyr/modmachine: Add Signal class.
8 years ago
Paul Sokolovsky
cf70f9a474
zephyr/mpconfigport.h: Fix build if usocket module is disabled.
8 years ago
Paul Sokolovsky
8ef469f7ca
zephyr/modusocket: Implement accept().
8 years ago
Paul Sokolovsky
96166ec165
zephyr/modusocket: socket_bind: Don't set recv callback on STREAM sockets.
For stream sockets, next exected operation is listen().
8 years ago
Paul Sokolovsky
f1c0676a70
zephyr/modusocket: Implement listen().
8 years ago
Paul Sokolovsky
1da8404647
modusocket: Handle a case when recv_q is empty when EOF is signaled.
In this case, we can mark socket as closed directly.
8 years ago
Paul Sokolovsky
faf333c04f
zephyr/modusocket: Factor out "extended k_fifo API".
Internal structure of k_fifo changed between 1.7 and 1.8, so we need
to abstract it away. This adds more functions than currently used, for
future work.
8 years ago
Paul Sokolovsky
a9e6f08adb
zephyr/Makefile: Add "test" target, runs testsuite in QEMU.
8 years ago
Paul Sokolovsky
58168c8e6b
zephyr/zephyr_getchar: Explicitly yield to other threads on char availability.
Without this, if there's a large chunk of data coming from hardware (e.g.
clipboard paste, or fed programmatically from the other side of the console),
there's a behavior of initial mass fill-in of the buffer without any
consumption, which starts much later and doesn't catch up with further
filling, leading to buffer overflow.
8 years ago
Paul Sokolovsky
2908c3ca41
zephyr/modusocket: Factor out socket_new() function.
It will be reused e.g. for accept() implementation.
8 years ago
Paul Sokolovsky
6e99a8c94e
zephyr/modusocket: Be sure to use MP_OBJ_FROM_PTR.
8 years ago
Paul Sokolovsky
4c392243ae
zephyr/prj_base.conf: Add config for net_buf logging.
Disabled by default.
8 years ago
Paul Sokolovsky
ca81c3ab0b
zephyr/modusocket: Implement recv() for TCP sockets.
Short read approach is taken - at most, the remaining data in the current
fragment will be returned.
8 years ago
Paul Sokolovsky
3df65e9bae
zephyr/modusocket: Implement recv() for UDP sockets.
The foundation of recv() support is per-socket queue of incoming packets,
implemented using Zephyr FIFO object. This patch implements just recv()
for UDP, because TCP recv() requires much more fine-grained control of
network fragments and handling other issues, like EOF condition, etc.
8 years ago