summaryrefslogtreecommitdiff
path: root/zephyr
AgeCommit message (Collapse)Author
2017-04-19zephyr/modmachine: Implement machine.reset().Paul Sokolovsky
2017-04-14socket_send: Don't send more than MTU allows.Paul Sokolovsky
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.
2017-04-13zephyr/modusocket: Strip packet header right in the receive callback.Paul Sokolovsky
Instead of complicating recv() implementation.
2017-04-11zephyr/modusocket: Call net_nbuf_print_frags() in recv callback if DEBUG > 1.Paul Sokolovsky
2017-04-08zephyr/machine_pin: Implement pin protocol for machine.Signal support.Paul Sokolovsky
2017-04-08zephyr/modmachine: Add Signal class.Paul Sokolovsky
2017-04-08zephyr/mpconfigport.h: Fix build if usocket module is disabled.Paul Sokolovsky
2017-04-08zephyr/modusocket: Implement accept().Paul Sokolovsky
2017-04-08zephyr/modusocket: socket_bind: Don't set recv callback on STREAM sockets.Paul Sokolovsky
For stream sockets, next exected operation is listen().
2017-04-07zephyr/modusocket: Implement listen().Paul Sokolovsky
2017-04-06modusocket: Handle a case when recv_q is empty when EOF is signaled.Paul Sokolovsky
In this case, we can mark socket as closed directly.
2017-04-05zephyr/modusocket: Factor out "extended k_fifo API".Paul Sokolovsky
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.
2017-04-05zephyr/Makefile: Add "test" target, runs testsuite in QEMU.Paul Sokolovsky
2017-04-04zephyr/zephyr_getchar: Explicitly yield to other threads on char availability.Paul Sokolovsky
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.
2017-04-04zephyr/modusocket: Factor out socket_new() function.Paul Sokolovsky
It will be reused e.g. for accept() implementation.
2017-04-04zephyr/modusocket: Be sure to use MP_OBJ_FROM_PTR.Paul Sokolovsky
2017-04-03zephyr/prj_base.conf: Add config for net_buf logging.Paul Sokolovsky
Disabled by default.
2017-04-02zephyr/modusocket: Implement recv() for TCP sockets.Paul Sokolovsky
Short read approach is taken - at most, the remaining data in the current fragment will be returned.
2017-04-01zephyr/modusocket: Implement recv() for UDP sockets.Paul Sokolovsky
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.
2017-04-01all: Move BYTES_PER_WORD definition from ports to py/mpconfig.hDamien George
It can still be overwritten by a port in mpconfigport.h but for almost all cases one can use the provided default.
2017-03-31zephyr/modusocket: Implement send().Paul Sokolovsky
2017-03-31zephyr/modusocket: Implement bind() and connect().Paul Sokolovsky
2017-03-31zephyr: Integrate modusocket into build.Paul Sokolovsky
2017-03-31zephyr/modusocket: Initial version of usocket module for Zephyr.Paul Sokolovsky
So far, socket creation and closure is implemented.
2017-03-30zephyr: Fix NLR segfault in minimal build.Paul Sokolovsky
Requires inclusion of zephyr.h to properly detect that we're building for Zephyr.
2017-03-30zephyr/Makefile: Add workaround (fix?) for broken builds for DTS targets.Paul Sokolovsky
2017-03-30zephyr/Makefile: Rework to use modern, official build integration.Paul Sokolovsky
Build happens in 3 stages: 1. Zephyr config header and make vars are generated from prj.conf. 2. libmicropython is built using them. 3. Zephyr is built and final link happens.
2017-03-29zephyr/prj_base.conf: Enable TCP (and UDP explicitly).Paul Sokolovsky
2017-03-27zephyr/prj_base.conf: Disable legacy kernel compatibility.Paul Sokolovsky
This keeps dependency on mdef, sysgen and other stuff which complicates build integration.
2017-03-27zephyr/zephyr_getchar: Use native k_sem instead of legacy nano_sem.Paul Sokolovsky
2017-03-26py/nlrx86: Better check for Zephyr (requires 1.7).Paul Sokolovsky
2017-03-14zephyr/main: Move lexer constructor to within NLR handler block.Damien George
And raise an exception when mp_lexer_new_from_file is called.
2017-03-14zephyr/main: Remove unused __fatal_error().Paul Sokolovsky
2017-03-13zephyr/main: nlr_jump_fail: Fix noreturn warning.Paul Sokolovsky
2017-03-12zephyr: Move "minimal" configuration building to a separate wrapper script.Paul Sokolovsky
Minimal config can be now build with: ./make-minimal BOARD=... This is required because of Makefile.exports magic, which in its turn depends on PROJ_CONF to be set correctly at the beginning of Makefile parsing at all times. Instead of adding more and more workarounds for that, it's better to just move minimal support to a separate wrapper. Also, remove Zephyr 1.5 era cruft from Makefile, and add support for Zephyr's "run" target which supercedes older "qemu" target in upstream.
2017-03-12zephyr: Make sure that generated prj.conf is updated only on content changes.Paul Sokolovsky
This is a typical problem with make: we want to trigger rebuilds only if file actually changed, not if its timestamp changed. In this case, it's aggravated by the fact that prj.conf depends on the value of BOARD variable, so we need to do some tricks anyway. We still don't try to detect if just BOARD changed, just try to generate new prj.conf.tmp every time (quick), but do actual replacement of prj.conf only if its content changed.
2017-03-09zephyr/modzephyr: Fix typo in identifier.Paul Sokolovsky
2017-03-08zephyr/modzephyr: Add a module for Zephyr-specific things.Paul Sokolovsky
Mostly intended to ease experimentation, no particular plans for APIs so far (far less their stability), is_preempt_thread() provided is mostly an example.
2017-02-17zephyr/README: Network startup issues with frdm_k64f resolved.Paul Sokolovsky
But leave a generic warning that users should be aware of Zephyr's limitations/issues for a board they use.
2017-02-14zephyr/main: Don't unconditionally dump stats on each GC.Paul Sokolovsky
This was a debug output for initial porting, breaks tests.
2017-02-14zephyr: Add qemu_cortex_m3 config fragment.Paul Sokolovsky
Should work for QEMU networking with soon-to-merged upstream patch.
2017-02-14zephyr: Enable IPv6 networking in addition to IPv4.Paul Sokolovsky
2017-02-01zephyr/README: Describe many gotchas of networked builds.Paul Sokolovsky
2017-01-30zephyr/Makefile.zephyr: Support and default to networked (SLIP) QEMU.Paul Sokolovsky
Also works for non-networked builds (like minimal).
2017-01-27zephyr/prj_frdm_k64f.conf: Add, enable Ethernet support.Paul Sokolovsky
2017-01-27zephyr: Allow to have per-board Zephyr config fragments.Paul Sokolovsky
To enable options which may be incompatible with other boards, etc.
2017-01-27zephyr: Make sure that correct Zephyr config is used for "minimal" build.Paul Sokolovsky
Overriding CONF_FILE in "minimal" target itself is too late due to include- pinned $(Z_EXPORTS) target.
2017-01-22zephyr: Convert to use builtin help function.Damien George
2017-01-21zephyr: Enable SLIP networking for the default build.Paul Sokolovsky
This makes MicroPython app running in QEMU be pingable from the host (by following QEMU networking setup instructions, https://www.zephyrproject.org/doc/samples/net/qemu_setup.html).
2017-01-21zephyr: Add separate Zephyr config for "minimal" build.Paul Sokolovsky
In anticipation of enabling more features in the default build. Also, fix compilation of minimal build.