Commit Graph

166 Commits

Author SHA1 Message Date
whitequark
653eeb476f runtime: fix serialization of object lists.
Fixes #500.
2016-07-07 12:40:50 +00:00
whitequark
933ea53c77 compiler: add basic numpy array support (#424). 2016-07-06 09:51:57 +00:00
c8dc6ca07c inter-experiment smooth handover 2016-06-29 02:37:50 +08:00
ef8f60c78d Revert "runtime: save now on RPC"
This reverts commit 155794a671.
2016-06-29 02:37:50 +08:00
whitequark
5c54a6a0e9 Upgrade lwip to 2.0.0 to fix the keepalive bug #456. 2016-06-21 14:47:19 +00:00
whitequark
cae6e8639e Revert "runtime: disable lwip TCP keepalive."
This reverts commit 0db6ef0e1c.
2016-06-21 09:45:53 +00:00
whitequark
0db6ef0e1c runtime: disable lwip TCP keepalive.
This sometimes results in an RST sent by lwip after a retransmission,
although it is not clear exactly why. See #456.
2016-06-20 18:55:29 +00:00
155794a671 runtime: save now on RPC 2016-06-19 19:29:46 +08:00
0acc52d513 runtime: minor cleanup 2016-06-19 19:26:30 +08:00
8e308481c1 runtime: save now when terminating with exception 2016-06-19 19:07:09 +08:00
2ae20fbc4d runtime: cleanup now_init/now_save 2016-06-19 19:06:32 +08:00
2b447055e5 lwip/liteethif: cleanup, drop frames above MTU (#398) 2016-05-07 17:42:22 +08:00
ff721ff136 Revert "lwip: set MTU to 9000 to support jumbo frames"
This reverts commit dbbd11d798.

Breaks more than it fixes.
2016-04-30 08:20:47 +02:00
dbbd11d798 lwip: set MTU to 9000 to support jumbo frames 2016-04-30 00:30:24 +08:00
whitequark
1464bae6b7 compiler: don't typecheck RPCs except for return type.
Fixes #260.
2016-04-26 01:12:36 +00:00
whitequark
bb064c67a9 runtime: add kernel-accessible sqrt.
Fixes #382.
2016-04-06 23:17:42 +00:00
3c9e4074d5 runtime: fix ddstest help (#365) 2016-03-31 10:27:18 +08:00
whitequark
ca7463a054 compiler: do not write back kernel constant attributes.
Fixes #322.
2016-03-28 00:05:57 +00:00
b190581102 Revert "runtime/i2c: more conservative timings"
This reverts commit 799c2c77c4.
2016-03-25 14:55:40 +08:00
799c2c77c4 runtime/i2c: more conservative timings 2016-03-23 12:54:19 +08:00
ffe4d81f3e runtime/net_server: restore connection close behavior when len<0 2016-03-19 22:46:42 +08:00
fc558bcd27 analyzer: adapt analyzer_poll to new network code 2016-03-19 22:08:08 +08:00
641831e0e1 dds: improve error reporting 2016-03-19 12:15:19 +08:00
whitequark
501de30626 Report watchdog expiration and RTIO clock failure as exceptions.
Fixes #316.
2016-03-18 22:29:53 +00:00
whitequark
dbc0a89903 dds.c: turn off batch mode before an underflow can be raised.
Fixes #334.
2016-03-18 05:00:05 +00:00
whitequark
f4ab507ab2 Bring back target print function. 2016-03-18 04:42:06 +00:00
8a6873cab2 analyzer: use EOP, flush pipeline on stop 2016-03-15 17:49:59 +08:00
349a66124b Merge branch 'master' into rtiobusy
* master:
  coredevice: fix _DDSGeneric __init__ args
  rtio/core: fix syntax
  rtio: disable replace on rt2wb channels
  examples: dds_bus -> core_dds
  fix more multi-DDS-bus problems
  runtime: fix dds declarations
  support for multiple DDS buses (untested)
2016-03-09 17:58:58 +01:00
bf188d05bf rtio: cleanup RTIOBusy message 2016-03-09 13:42:32 +01:00
db5231216d rtio: remove unused include 2016-03-09 13:42:15 +01:00
861c4a9ae5 fix more multi-DDS-bus problems 2016-03-09 19:03:05 +08:00
de37487a5c runtime: fix dds declarations 2016-03-09 18:27:51 +08:00
f0b0b1bac7 support for multiple DDS buses (untested) 2016-03-09 17:12:50 +08:00
2cb58592ff rtio: add RTIOBusy 2016-03-08 18:04:34 +01:00
71105fd0d7 rtio: collision_error -> collision 2016-03-08 15:38:35 +08:00
whitequark
739568fcb8 runtime: fix sloppy memory management in cache_put. 2016-03-07 21:12:03 +00:00
125ab3e076 runtime/i2c_read: fix MSB 2016-03-05 19:00:14 +08:00
6b8efd10fd runtime/i2c: fix artiq_raise_from_c invokation 2016-03-05 00:19:08 +08:00
ff4a46c278 runtime/i2c: make syscalls more ARTIQ-Python-friendly 2016-03-05 00:16:23 +08:00
c2fcefc31f runtime/rtio: cleanup include 2016-03-03 19:48:06 +08:00
423ca03f3b runtime: bit-banged i2c support (untested) 2016-03-03 17:46:42 +08:00
5ba753425d runtime/rtio: rtio_process_exceptional_status() has only one user 2016-03-01 21:38:51 +01:00
f30dc4b39e runtime: rt2wb_input -> rtio_input_data 2016-03-01 19:22:42 +01:00
81b35be574 bridge: really fix O/OE 2016-03-01 18:49:04 +01:00
135643e3a6 runtime: define constants for ttl addresses 2016-03-01 18:22:42 +01:00
6f9656dcbe bridge: fix ttl o/oe addresses 2016-03-01 18:19:06 +01:00
8adef12781 runtime: refactor ttl*()
* remove rt2wb_output
* remove ttl_*() ttl.c ttl.h
* use rtio_output() and rtio_input_timestamp()
* adapt coredevice/compiler layer
* adapt bridge to not artiq_raise_from_c()
2016-03-01 16:36:59 +01:00
aa10791ddf rtio: rm rtio_write_and_process_status 2016-03-01 15:40:35 +01:00
324660ab40 rt2wb, exceptions: remove RTIOTimeout
Assume that rt2wb transactions either collide and are then
reported (https://github.com/m-labs/artiq/issues/308) or that
they complete and the delay with which they complete does not matter.

If a transaction is ack'ed with a delay because the WB core's downstream
logic is busy, that may lead to a later collision with another WB
transaction.
2016-03-01 14:44:07 +01:00
7d7a710a56 runtime/rt2wb: use input/output terminology and add (async) input 2016-03-01 00:35:56 +01:00
7ab7f7d75d Merge branch 'master' into spimaster
* master:
  artiq_flash: use term 'gateware'
  targets/kc705-nist_clock: add clock generator on LA32 for testing purposes
  doc: insist that output() must be called on TTLInOut. Closes #297
  doc: update install instructions
  coredevice: do not give up on UTF-8 errors in log. Closes #300
  use m-labs setup for defaults
  fix indentation
2016-02-29 20:47:52 +01:00
6c899e6ba6 runtime/rtio: fix rtio_input_wait(), add RTIOTimeout 2016-02-29 19:49:15 +01:00
ecedbbef4c runtime/ttl: use rtio_output and rtio_input_wait 2016-02-29 19:20:07 +01:00
5dae9f8aa8 runtime: refactor rt2wb/dds 2016-02-29 19:16:29 +01:00
d3c94827eb runtime/ttl: simplify ttl_get() a bit 2016-02-29 17:58:54 +01:00
6903a1d88a runtime/rt2wb: accurate exception strings 2016-02-29 14:56:04 +01:00
572c49f475 use m-labs setup for defaults 2016-02-29 21:35:23 +08:00
df7d15d1fe runtime: refactor spi into rt2wb 2016-02-29 13:54:36 +01:00
aeae565d35 runtime/spi: don't apply channel offset 2016-02-29 11:53:36 +01:00
ad34927b0a spi: RTIO_SPI_CHANNEL -> RTIO_FIRST_SPI_CHANNEL 2016-02-29 11:35:49 +01:00
d63a63531a spi: add runtime support 2016-02-29 00:38:36 +01:00
whitequark
a1dd909bc4 Take alignment into account during attribute writeback (fixes #293). 2016-02-25 01:44:05 +00:00
649f3b9094 Revert "Add workaround for analyzer core bug (#206)."
This reverts commit e94a9236aa.
2016-02-15 09:57:23 +01:00
whitequark
e94a9236aa Add workaround for analyzer core bug (#206). 2016-02-15 03:56:56 +00:00
whitequark
74a75841f6 Add rtio_log() and make print() an RPC (#206). 2016-02-15 03:56:56 +00:00
whitequark
b9448c069a Make rtio_log() accept variable number of arguments. 2016-02-15 03:56:56 +00:00
whitequark
cd7f12e4b1 Remove lognonl(); rename log() to core_log() to avoid math.h conflict.
Also, make core_log() exactly equivalent to printf(), since the lack
of a drop-in universally usable printf() equivalent annoys me.

Note that this breaks compiled experiments. They'll be fixed in
the following commits.
2016-02-15 03:56:56 +00:00
10d78a5d0b flash: grow runtime limit to 512 kB 2016-01-30 14:50:15 -07:00
e92d52314b flash storage: move to flash + 0x70000
This requires recompiling and flashing the runtime and the entire
storage area file system (ip address and idle kernel).

* with ppp the runtime is larger than 0x40000 now
* 0x60000 for the runtime should give enough space for a while,
  even including a fatter scheduler or runtime components
  in other languages
* for both pipistrello and kc705 this leaves the unused space
  starting at a nice round number
* the relevant flashes nowadays are 0x1000000 large
2016-01-28 18:08:30 -07:00
0079aa4037 runtime/main: style, wording, 1s ppp holdoff 2016-01-25 13:38:58 -07:00
2bc2cd0064 ppp: remove unneeded objects 2016-01-18 21:26:36 -07:00
1adeeabbed ppp: wait for connection 2016-01-18 21:04:51 -07:00
dc709a77b8 PPP support (TCP broken) 2016-01-18 20:09:10 -07:00
whitequark
e2910fba99 runtime: define NDEBUG to disable debug mode of __artiq_personality.
There shouldn't be any bugs left and all the printing it does slows
exception handling considerably.
2016-01-19 01:52:57 +00:00
whitequark
5c6b1517d0 Rigorously treat builtin core device exceptions. 2016-01-19 01:45:25 +00:00
53b06a0b9b RTIOUnderflow: show slack 2016-01-18 17:28:37 -07:00
15039e1d74 runtime/dds: DDS_ONEHOT_SEL -> CONFIG_DDS_ONEHOT_SEL 2016-01-15 09:32:17 -07:00
whitequark
1b9713115c runtime: link libm and libbase-nofloat where appropriate. 2016-01-14 21:02:23 +00:00
whitequark
225f7d7302 Commit missing parts of 9366a29. 2016-01-10 20:01:26 +00:00
whitequark
d1319b83e5 runtime: properly format addresses in InternalError message. 2016-01-10 18:07:08 +00:00
whitequark
bbd0ca7827 Commit missing parts of 9366a29. 2016-01-10 15:45:56 +00:00
whitequark
f8e50f2b0c Remove redundant ksupport API. 2016-01-10 14:27:46 +00:00
whitequark
cc45694f5a Commit missing parts of 9366a29. 2016-01-10 13:08:26 +00:00
whitequark
9366a29483 Implement core device storage (fixes #219). 2016-01-10 13:04:55 +00:00
whitequark
027d54ca94 Enlarge coredevice buffers to 2.5MiB (fixes #215).
This should be enough for sending a 2MiB int32 list.
2016-01-07 18:29:35 +00:00
whitequark
dcc4763914 Remove kernel-related constants from runtime.ld.
It's not used anywhere and it's one more place to adjust, which
will someday lead to obscure copy-paste bugs.
2016-01-07 18:27:38 +00:00
whitequark
577108554f Move kernel CPU address space up to 0x40800000. 2016-01-07 18:26:11 +00:00
whitequark
81427af506 Remove selective attribute writeback; always synchronize all attributes.
The reasons are:
  1. Shadow memory manipulation added ~12 instructions to TTLOut.pulse
     (without inlining), and it's already barely fast enough.
  2. More importantly, code such as self.ts[1] did not trigger
     attribute writeback, and there seems to be no easy way to fix
     that.
2016-01-03 04:57:58 +08:00
whitequark
38a99fde52 Implement selective attribute writeback using shadow memory. 2016-01-02 22:51:04 +08:00
whitequark
71d8cbb431 runtime/artiq_personality: add missing cast. 2015-12-31 22:10:30 +08:00
whitequark
a2618f0b5b runtime/artiq_personality.c: add missing cast. 2015-12-31 22:06:01 +08:00
whitequark
f9e90d90fa runtime/artiq_personality.c: don't dereference nonexistent typeInfoPtr. 2015-12-31 21:16:18 +08:00
whitequark
51e966edf2 Commit missing parts of 0b69e488. 2015-12-31 21:09:24 +08:00
whitequark
0b69e488e6 transforms.llvm_ir_generator: compare exn typeinfo using strcmp.
This is necessary to correctly catch exceptions from RPCs.
2015-12-31 19:53:28 +08:00
048dcbee92 runtime/rtio: reverse char ordering in log messages 2015-12-27 01:07:18 +08:00
50a463a6fd runtime: support for RTIO logging 2015-12-26 22:44:50 +08:00
e41e2c088d analyzer: encapsulate decoded dump, get onehot sel from header 2015-12-24 00:31:21 +08:00
007a7170e1 analyzer: report DDS channel number 2015-12-21 18:37:53 +08:00
whitequark
d5216879d4 runtime: implement round() (fixes #198).
From https://github.com/bpowers/musl/blob/master/src/math/round.c.
2015-12-20 04:06:11 +08:00
whitequark
e9afe5a93b runtime: include __powidf2. 2015-12-19 00:14:51 +08:00