whitequark
07ccb9eebd
firmware: support configuration without ethphy ( #886 ).
...
Currently, this is kasli.
2018-01-08 22:16:17 +00:00
whitequark
3a3f44af53
firmware: update smoltcp.
2018-01-08 21:41:53 +00:00
whitequark
987a9c8308
conda: update rustc to 1.23.0.
2018-01-08 21:39:15 +00:00
Sebastien Bourdeauducq
161a414567
serwb: debug print on error
2018-01-04 22:23:59 +08:00
Sebastien Bourdeauducq
e1a75ac1c1
runtime: set log level early
...
We want to debug startup.
2018-01-04 22:19:48 +08:00
whitequark
fc9766d2fa
firmware: reset ethphy before initializing smoltcp ( fixes #884 ).
2018-01-04 11:42:35 +00:00
whitequark
b7f38b123b
frimware: update to log 0.4.
2018-01-01 11:45:55 +00:00
whitequark
a371b25525
bootloader: allow using without Ethernet.
2017-12-31 09:21:28 +00:00
whitequark
70ebe431fd
satman: fix build after b8f3d28b
.
2017-12-31 09:21:02 +00:00
whitequark
e1253db0e8
firmware: update crc dependency, use it in libdrtioaux.
2017-12-31 09:16:11 +00:00
whitequark
b8f3d28bc0
firmware: update compiler_builtins dependency and move it to libboard.
...
This is so that we only specify it once.
2017-12-31 09:16:11 +00:00
Sebastien Bourdeauducq
a897d82324
ad9154: retry initialization ( #727 )
2017-12-31 11:27:43 +08:00
whitequark
3505878176
bootloader: add basic network support.
2017-12-28 15:26:12 +00:00
whitequark
d2687ce3c4
firmware: fix a typo replacing spiflash::SECTOR_SIZE with PAGE_SIZE.
2017-12-28 15:26:12 +00:00
whitequark
33e0393e4a
firmware: move mod ethmac to libboard.
2017-12-28 14:40:15 +00:00
whitequark
55cfdec644
firmware: enlarge bootloader partition to 4 sectors.
2017-12-28 14:39:26 +00:00
whitequark
acd13837ff
firmware: implement the new bootloader.
2017-12-28 13:18:51 +00:00
whitequark
b9754e7108
firmware: deduplicate libbuild_misoc and libbuild_artiq.
2017-12-28 13:18:51 +00:00
whitequark
d94db1de5d
Revert accidentally committed parts of 1b9b5602
.
2017-12-28 08:23:34 +00:00
whitequark
fcc438524c
firmware: use main.rs as the root source for non-library crates. NFC.
2017-12-28 08:20:23 +00:00
whitequark
1b9b560242
firmware: use libbuild_misoc in libdrtioaux. NFC.
2017-12-28 08:20:23 +00:00
whitequark
8f33061a6d
firmware: fix sayma_amc_standalone build with sawg.
2017-12-28 08:20:23 +00:00
Sebastien Bourdeauducq
4ea801b2ea
firmware: si5324 moved to board_artiq
2017-12-28 15:45:45 +08:00
whitequark
3b18ece3b7
satman: update for changes in firmware elsewhere.
2017-12-28 07:36:33 +00:00
whitequark
d3066e5044
firmware: oops, misoc #[cfg]s were missing from libboard_artiq.
2017-12-28 07:36:33 +00:00
whitequark
ca419aa3c2
firmware: split out libboard_artiq from libboard.
2017-12-28 07:07:00 +00:00
whitequark
b443fbd8f7
runtime: remove #[repr(simd)] hack.
2017-12-28 04:46:27 +00:00
whitequark
7687a34285
firmware: remove dependency on compiler-rt.
2017-12-28 04:08:29 +00:00
whitequark
4dfe71676e
firmware: remove dependency on libbase.
2017-12-28 04:03:27 +00:00
whitequark
68f128944a
firmware: clean up makefiles.
2017-12-27 23:10:47 +00:00
whitequark
d7cb4963e1
firmware: prepare config block for access from BIOS/bootloader.
...
* remove liballoc dependency from mod config,
* move mod config to libboard,
* move config sector immediately after BIOS sector.
2017-12-27 21:28:40 +00:00
whitequark
5a2cbe7088
runtime: remove borrow_mut!() in favor of backtraces.
2017-12-27 19:15:25 +00:00
whitequark
edfacbd063
conda: ship runtime.elf in board-specific packages.
...
This is so that backtraces may be symbolized.
2017-12-26 21:50:31 +00:00
whitequark
8b4a006855
runtime: update smoltcp.
2017-12-26 14:33:56 +00:00
whitequark
71eca5ad61
runtime: fix some final flash storage issues.
2017-12-26 14:09:17 +00:00
whitequark
188764693e
runtime: we're growing, put storage at 1M instead of 512K.
2017-12-26 03:34:16 +00:00
whitequark
e2513a2401
runtime: ensure flash storage never overlaps with runtime sections.
2017-12-26 03:31:37 +00:00
whitequark
6e341da3a1
runtime: simplify. NFC.
2017-12-26 02:31:28 +00:00
whitequark
061fb3dcd5
runtime: remove accidentally committed parts of a Makefile.
2017-12-25 20:30:13 +00:00
whitequark
230f2e5e18
runtime: print (address-only) backtraces on core device panics.
2017-12-25 18:32:41 +00:00
whitequark
3eec15c01d
firmware: fix compatibility with newer rustc. NFC.
2017-12-25 17:16:05 +00:00
Sebastien Bourdeauducq
00ed51f6f4
satman: use new alloc_list ( #880 )
2017-12-23 22:15:39 +08:00
Sebastien Bourdeauducq
a6ffe9f38d
drtio: add Sayma top-level designs
2017-12-21 23:08:56 +08:00
Sebastien Bourdeauducq
a23251276d
Revert "sayma: set up Si5324 for RGMII clock rerouting"
...
This reverts commit 2b01aa22b6
.
2017-12-21 14:42:15 +08:00
whitequark
701308474f
runtime: update smoltcp.
2017-12-19 15:51:03 +00:00
whitequark
aaba36be7a
runtime: log moninj messages at TRACE level, like all others.
2017-12-16 22:39:13 +00:00
whitequark
8cece4f260
runtime: hotswap slightly more carefully.
...
This generally lets some last characters out of UART, last ACKs
out of queues, etc. Nothing guaranteed though.
2017-12-16 22:39:13 +00:00
whitequark
4a9d8c9459
runtime: fix a warning.
2017-12-16 22:39:13 +00:00
Sebastien Bourdeauducq
2b01aa22b6
sayma: set up Si5324 for RGMII clock rerouting
2017-12-17 00:25:33 +08:00
Sebastien Bourdeauducq
f02c74cb7b
libboard/si5324: enable both clock outputs
2017-12-15 16:56:44 +08:00
Sebastien Bourdeauducq
9caef3c1d3
libboard/si5324: configure I2C mux on Sayma
2017-12-15 16:45:26 +08:00
Sebastien Bourdeauducq
77977932f2
firmware: remove AD9516 support
...
This was only used in KC705 phaser.
2017-12-14 19:16:39 +08:00
Sebastien Bourdeauducq
5809e08686
runtime: no startup_clock config is not an error
2017-12-14 12:39:26 +08:00
whitequark
9e8bb1d51c
runtime: update smoltcp.
2017-12-08 07:36:56 +00:00
Sebastien Bourdeauducq
66e089b376
libboard/serwb: more explicit retry log message
2017-12-02 10:51:13 +08:00
Florent Kermarrec
0eb9f93611
libboard/serwb: retry serwb initialization on error
2017-12-01 22:45:05 +01:00
Sebastien Bourdeauducq
2e5b20d53d
libboard/hmc830_7043: enable HMC830
2017-11-30 12:06:54 +08:00
Sebastien Bourdeauducq
ad2a32d381
libboard/ad9154: small cleanup
2017-11-30 11:33:58 +08:00
Florent Kermarrec
bd75954192
libboard/ad9154: update for sayma (spi, jesd parameters, linerate), breaks kc705/ad9154 fmc support
2017-11-29 18:09:39 +01:00
Florent Kermarrec
8b8da39a8f
libboard/hmc830_7043.rs: fix HMC7043 comments
2017-11-29 17:59:42 +01:00
Sebastien Bourdeauducq
19498e59f9
libboard: fix JESD reset release
2017-11-29 18:18:41 +08:00
Sebastien Bourdeauducq
cfb41e71a8
libboard: print serwb settings at the debug log level
2017-11-28 01:23:33 +08:00
whitequark
8e8f037971
runtime: print ethmac preamble error count.
...
Also, print total error count, not the difference (but still compute
the difference to determine *when* to print).
2017-11-26 22:35:26 +00:00
whitequark
26fdd42f8f
runtime: update smoltcp.
2017-11-22 08:09:06 +00:00
Florent Kermarrec
a3383c340c
firmware/satman/lib.rs: has_serwb_phy to has_serwb_phy_amc
2017-11-18 18:09:35 +01:00
Florent Kermarrec
39a8fc682d
artiq/firmware/libboard/hmc830_7043.rs: some cleanup, don't use hmc830 for now
2017-11-18 18:08:31 +01:00
Florent Kermarrec
aff1609a53
firmware/libboard: use correct jesd clocking
2017-11-10 10:56:45 +01:00
Florent Kermarrec
d90d624877
firmware/libboard/serwb: revert init reset, show delay
2017-11-10 10:53:20 +01:00
Florent Kermarrec
76ddb063cf
gateware/targets/sayma: get hmc830/7043 spi working (still need to test clock generation)
2017-11-06 12:08:28 +01:00
whitequark
fcd660d682
runtime: remove accidentally deleted code.
2017-11-03 16:10:59 +00:00
whitequark
dfb2fe0b80
runtime: allow #[cfg(not(has_ethmac))] builds.
2017-11-03 16:09:22 +00:00
whitequark
4835431ac3
runtime: allow #[cfg(not(has_kernel_cpu))] builds.
2017-11-03 16:04:17 +00:00
whitequark
ad8fcb8b86
runtime: has_rtio -> has_rtio_core.
...
has_rtio is the cfg for the kernel CPU, has_rtio_core is the one
for the comms CPU.
Also remove a few useless #[cfg]s.
2017-11-03 15:59:59 +00:00
whitequark
2404a0d8c8
runtime: allow #[cfg(not(has_rtio))] builds.
2017-11-03 15:49:30 +00:00
Florent Kermarrec
b3e920b3c8
firmware/libboard/serwb: fix init
2017-11-03 12:16:16 +01:00
Sebastien Bourdeauducq
0d8bad5128
runtime: fix rtio::log
2017-11-03 09:25:37 +08:00
Sebastien Bourdeauducq
4387b0be1e
clean up rtio_log
2017-11-03 00:52:53 +08:00
whitequark
b03e36e4e9
conda: update misoc.
2017-10-30 09:33:02 +00:00
whitequark
7f32ae31de
runtime: fix a typo.
2017-10-30 08:48:35 +00:00
whitequark
a66450b0af
runtime: temporarily revert ethmac statistics collection.
2017-10-30 08:27:51 +00:00
whitequark
ae2d7abbed
runtime: update smoltcp.
2017-10-30 08:26:54 +00:00
whitequark
cdf63c5ea0
runtime: interrogate ethmac error counters and display changes.
2017-10-30 07:46:23 +00:00
whitequark
978c0d98aa
runtime: update smoltcp.
2017-10-30 07:22:47 +00:00
whitequark
8e91856426
runtime: parse the "ip" configuration as IP, not CIDR.
...
Or it defaults to the default IP on settings that were previously
perfectly valid.
2017-10-30 04:25:58 +00:00
whitequark
6bdeddd201
runtime: remove UDP-related code.
2017-10-25 02:55:01 +00:00
whitequark
cdba330845
Update smoltcp.
...
Fixes #840 .
2017-10-25 02:31:27 +00:00
whitequark
9d356ed93b
firmware: implement board::pcr.
2017-10-18 11:04:13 +00:00
Robert Jördens
e1e1f58ba9
libboard: fix use
2017-10-13 12:26:34 +02:00
whitequark
e7dac530c1
runtime: avoid hardcoding ethmac slot layout, use info from CSR.
2017-10-03 19:16:11 +00:00
Sebastien Bourdeauducq
a89b053473
firmware: wait for HMC830 lock
2017-10-04 01:42:57 +08:00
whitequark
2684aec4c6
firmware: use read_unaligned instead of a hack. NFC.
2017-10-02 03:38:31 +00:00
whitequark
fd07c3f4d7
runtime: get rid of config_dummy.rs. NFC.
...
Use the same strategy as elsewhere.
2017-10-02 03:20:50 +00:00
whitequark
73c76ebb9a
firmware: eliminate most transmutes and document the rest. NFC.
2017-10-02 03:09:46 +00:00
whitequark
7ad54e1dcf
firmware: unbreak heap view.
...
This was missing since 7799413a
for no good reason.
2017-10-02 02:02:45 +00:00
Sebastien Bourdeauducq
b4c52c34f7
Merge branch 'sinara'
2017-09-30 01:11:16 +08:00
Sebastien Bourdeauducq
6c049ad40c
rtio: report channel numbers in asynchronous errors
2017-09-29 16:32:57 +08:00
Sebastien Bourdeauducq
5437f0e3e3
rtio: make sequence errors consistently asychronous
2017-09-29 14:40:06 +08:00
whitequark
c00b3fe8cd
firmware: update smoltcp.
2017-09-24 22:57:27 +00:00
whitequark
7799413a41
firmware: update Rust from 1.18.0 to 1.20.0.
2017-09-24 22:51:44 +00:00
Sebastien Bourdeauducq
20d79c930c
drtio: use SED and input collector
2017-09-24 12:23:47 +08:00
whitequark
c1829f3eda
runtime: update smoltcp.
2017-09-22 19:05:18 +00:00
Sebastien Bourdeauducq
928cffb09b
firmware: export floor() in ksupport. Closes #828
2017-09-10 12:07:06 +08:00
Sebastien Bourdeauducq
264d5fde83
runtime: fix Rust types in RTIO
...
Previous code assumed all RTIO registers were u32, but this was changed
by misoc c5edcd08.
2017-09-06 19:21:39 +08:00
Sebastien Bourdeauducq
2b2b345eb9
firmware: wait for serwb to be ready before proceeding further
2017-09-06 11:07:07 +08:00
Sebastien Bourdeauducq
33f053cff8
libboard: complete but undebugged support for HMC830/7043 programming
2017-09-06 10:46:02 +08:00
Sebastien Bourdeauducq
4baf17cebe
libboard: generate HMC7043 register write list
2017-09-05 21:46:03 +08:00
Sebastien Bourdeauducq
091bb28043
libboard: use libbuild_artiq
2017-09-05 21:13:04 +08:00
whitequark
74b7010d67
runtime: allow safely pulling logs even on TRACE log level.
...
Before this commit, this resulted in a packet flood, because
sending a TRACE log message to the host caused more TRACE log
messages to be emitted.
2017-08-31 14:13:51 +00:00
Sebastien Bourdeauducq
b609366c6f
runtime: fix Rust types in RTIO
...
Previous code assumed all RTIO registers were u32, but this was changed
by misoc c5edcd08.
2017-08-31 13:42:32 +08:00
Sebastien Bourdeauducq
44edba0c65
firmware: add placeholder code for HMC830/7043 initialization
2017-08-31 13:35:47 +08:00
Sebastien Bourdeauducq
0a5904bbaa
firmware: support for multiple JESD DACs
2017-08-31 13:05:48 +08:00
whitequark
4883eea252
libproto: simplify (NFC).
2017-08-31 02:48:59 +00:00
whitequark
20f43d5792
firmware: fix ethmac MTU value.
...
1500 is the maximum payload size, not maximum frame size.
2017-08-31 00:57:35 +00:00
whitequark
737c1044a4
firmware: update smoltcp.
2017-08-31 00:45:56 +00:00
whitequark
f26e698f31
Revert "firmware: reduce ethmac maximum burst size by one."
...
This reverts commit 2231b16e0a
.
Only made a difference with TRACE log level to UART, i.e. only
because UART was the bottleneck.
2017-08-30 15:22:20 +00:00
whitequark
39ecbc0d68
firmware: update smoltcp.
2017-08-30 14:35:45 +00:00
whitequark
2231b16e0a
firmware: reduce ethmac maximum burst size by one.
...
Empirically, this much reduces packet loss. I'm not really sure why,
but it seems safe to do the change.
2017-08-30 14:35:25 +00:00
whitequark
e6e176fa14
Revert "firmware: update smoltcp."
...
This reverts commit 7c340f6b48
.
2017-08-25 12:03:01 +00:00
whitequark
7c340f6b48
firmware: update smoltcp.
2017-08-25 07:20:38 +00:00
whitequark
f5e1d9568d
firmware: update smoltcp.
2017-08-24 05:50:59 +00:00
Sebastien Bourdeauducq
ac83bfbd8e
runtime: add support for targets without SPI flash
2017-08-20 11:28:57 -04:00
Sebastien Bourdeauducq
8459cfe8db
firmware: remove unnecessary git_describe rust-cfg
2017-08-15 08:14:17 -06:00
whitequark
dd87508a7f
Implement forwarding of logs from core device to master.
...
Fixes #691 .
2017-07-18 05:31:59 +00:00
whitequark
819440f839
runtime: split log timestamp into secs.micros.
2017-07-18 05:31:59 +00:00
Sebastien Bourdeauducq
9045b4cc19
drtio: initial firmware support for multi-link
2017-07-18 00:40:21 +08:00
whitequark
d06d53b00d
firmware: don't bail out if building not from a git checkout ( #783 ).
2017-07-15 03:16:21 +00:00
whitequark
1e2603572a
runtime: fix a bug causing sockets to get stuck in CLOSE-WAIT.
2017-07-05 16:27:36 +00:00
whitequark
ee1d5dbccb
runtime: allow a much larger log buffer and avoid hacks.
2017-07-04 18:18:31 +00:00
whitequark
6a49c114c8
runtime: update smoltcp.
2017-06-28 00:27:22 +00:00
whitequark
370f22541c
runtime: update smoltcp.
2017-06-27 21:06:45 +00:00
whitequark
f17a6616b2
runtime: ensure management interface buffer can hold log buffer.
...
Otherwise we get weird edge cases where the network stack could try
to append to log buffer while management interface is holding
the log buffer and trying to push it out, and it's just no good.
The serialized log buffer at its maximum length is slightly longer
than 32 KiB, so we just allocate the largest possible TCP buffer
to the management interface to keep it simple.
2017-06-24 17:09:28 +00:00
whitequark
12357d884e
runtime: update smoltcp.
2017-06-24 16:55:59 +00:00
Sebastien Bourdeauducq
66dee9d1ad
drtio: send/process I2C and SPI aux packets ( #740 )
2017-06-21 16:50:51 +08:00
Sebastien Bourdeauducq
f58f16ccd4
drtioaux: add default timeout
2017-06-21 16:23:11 +08:00
Sebastien Bourdeauducq
7675dd063b
drtioaux: add I2C and SPI packets ( #740 )
2017-06-21 14:07:16 +08:00
Sebastien Bourdeauducq
c86029bca2
i2c: expose restart as syscall, add structure for I2C-over-DRTIO
2017-06-19 23:44:51 +08:00
Sebastien Bourdeauducq
6c6bb67618
libboard: fix compiler warning on not(has_i2c)
2017-06-19 14:57:15 +08:00
Sebastien Bourdeauducq
5d63489080
i2c,spi: add busno error detection
2017-06-19 14:27:30 +08:00
Sebastien Bourdeauducq
8399f8893d
add kernel access to non-realtime SPI buses ( #740 )
2017-06-18 12:45:07 +08:00
Sebastien Bourdeauducq
8fea361412
firmware: always use 8 characters to abbreviate git commit hashes
2017-06-17 14:43:50 +08:00
Robert Jördens
2a76034fbc
cri: add note about clearing of o_data
2017-06-16 19:06:00 +02:00
whitequark
284382b1f5
compiler: add support for bytearray values in RPC ( #714 ).
2017-06-09 07:15:25 +00:00
whitequark
66a683f583
compiler: add support for bytes values in RPC ( #714 ).
2017-06-09 07:10:48 +00:00
whitequark
d0e92067c3
ksupport: fix UB.
2017-06-09 06:18:20 +00:00
Chris Ballance
0b6fb95deb
firmware: fix revision of compiler_builtins for satman
2017-05-13 15:12:53 +01:00
Florent Kermarrec
79c339d4ac
gateware/targets/phaser: jesd core now handles jsync completely
2017-04-26 22:25:08 +02:00
whitequark
a820ae98cf
ksupport: avoid allocations on I/O error paths.
...
Fixes #715 .
2017-04-21 17:20:50 +00:00
whitequark
b913d1d6f2
runtime: make a copy of startup/idle kernel firmware before loading.
...
Fixes #716 .
2017-04-21 16:46:40 +00:00
whitequark
726ee7370a
runtime: update smoltcp.
...
This brings in correct TIME-WAIT handling. Fixes #722 .
2017-04-21 16:08:04 +00:00
whitequark
0e68eaa879
runtime: print a heap dump on out-of-memory condition.
2017-04-21 14:48:10 +00:00
whitequark
db494967c5
firmware use Rust 0.18.0.
2017-04-19 09:38:24 +00:00
Sebastien Bourdeauducq
fe05aede78
firmware: DmaPlayback → DMARetrieve
2017-04-19 11:11:42 +08:00
Sebastien Bourdeauducq
e8f7f8ef9c
DMA: speed up playback
...
Time reduced from 1.53µs to 1.37µs.
2017-04-19 10:59:12 +08:00
whitequark
41c4de4556
DMA: add API for a much faster replay using handles.
2017-04-18 08:20:12 +00:00
whitequark
c6e8d5c901
runtime: allow setting UART log level explicitly.
...
This is way more convenient than commenting out parts
of session.rs when debugging.
2017-04-15 08:27:18 +00:00
whitequark
0531dc45c3
DMA: erase trace before re-recording it.
...
Or we could needlessly OOM replacing a large trace.
2017-04-15 07:48:02 +00:00
whitequark
9dfe9c1248
DMA: improve recording performance.
...
This commit moves DMA serialization code to the kernel CPU
(to cope with the existence of rtio_output_wide) and batches
the resulting sequences. This results in less data being transferred
between kernel and comms CPUs (24 octets with one pointer before,
18 octets with no pointers now, for the common case of rtio_output),
but most importantly reduces cache flushes, which now happen
once per 64k octets.
On average, it now takes about 15us to record a single RTIO event
in a DMA trace.
Fixes #712 .
2017-04-15 07:29:52 +00:00
whitequark
ea753bed17
runtime: advise to set panic_reboot=1 on panic.
2017-04-15 07:29:36 +00:00
whitequark
296dc3b0c4
artiq_coreboot: allow hot-rebooting the device.
2017-04-11 03:24:24 +00:00
whitequark
14ae1cc100
runtime: advance now on DMA replay.
...
Fixes #700 .
2017-04-05 18:34:36 +00:00
Sebastien Bourdeauducq
5e3aef45dc
drtio: support collision/replace + detect sequence errors at satellite
2017-04-06 01:06:56 +08:00
whitequark
391660e545
gateware: simplify the CRI arbiter to use a plain mux.
2017-04-05 15:09:19 +00:00
Sebastien Bourdeauducq
008678b741
drtio: add infrastructure for reporting busy/collision errors
2017-04-02 23:45:55 +08:00
Sebastien Bourdeauducq
0a687b7902
drtio: report satellite errors through firmware
2017-04-01 12:18:00 +08:00
whitequark
d04d7ed120
runtime: show a more informative message for interrupted sessions.
...
Fixes #690 .
2017-03-29 03:36:49 +00:00
whitequark
948ed6fb0a
Extract core device management interface from session interface ( #691 ).
2017-03-29 03:36:21 +00:00
Sebastien Bourdeauducq
2c3f720301
runtime: report asynchronous RTIO errors (collision, busy) in log. Closes #681
2017-03-27 17:14:14 +08:00
Sebastien Bourdeauducq
b74d6fb9ba
make collision and busy asynchronous errors, and simplify CPU/gateware handshake for output errors and reads
2017-03-27 16:32:23 +08:00
Sebastien Bourdeauducq
f5aa73b8fa
satman: unbreak after c586035c
2017-03-15 17:26:09 +08:00
whitequark
c586035caa
runtime: add an option to reboot after a panic.
2017-03-14 09:02:28 +00:00
whitequark
80c75ed505
firmware: fix for unwinder update.
2017-03-14 08:50:32 +00:00
whitequark
5bbb05362b
runtime: update smoltcp.
2017-03-07 11:36:28 +00:00
whitequark
d52723d5bc
runtime: allow setting log level in configuration.
2017-03-07 11:36:28 +00:00
whitequark
795a3e24d8
artiq_coreboot: block until hotswap image is actually received.
2017-03-07 11:36:28 +00:00
whitequark
b0cdef3211
firmware: implement hotswap through artiq_coreboot tool.
2017-03-06 16:01:28 +00:00
whitequark
98454e9bda
runtime: remove unnecessary dcache flush.
...
Data cache is write-through, so sending data to DMA doesn't need
a flush.
2017-03-04 09:46:55 +00:00
whitequark
924ae73000
firmware: fix DMA trace alignment and flush caches.
2017-03-04 09:40:22 +00:00
whitequark
30ac42de3f
ksupport: fix an exception safety issue.
...
Raising from inside a recv! will never send an acknowledgement.
2017-03-04 09:40:22 +00:00
Sebastien Bourdeauducq
1e6a33b586
rtio: handle input timeout in gateware
...
The information passed by the runtime will be used by the DRTIO core
to poll the remote side appropriately.
2017-03-03 17:37:47 +08:00
whitequark
4f94709e9f
firmware: move packet dumps to the DEBUG log level.
2017-03-03 06:11:35 +00:00
whitequark
e8c093deb3
Allow changing runtime log level without recompilation.
...
This shouldn't affect performance much, as the log crate guards
every log statement with a branch, adding just two instructions.
2017-03-03 06:06:26 +00:00
whitequark
fe77fcc45f
firmware: fix a warning.
2017-03-03 05:35:28 +00:00
whitequark
3070a2fac1
runtime: fix more bugs in DMA trace encoder.
2017-03-03 05:15:54 +00:00
Sebastien Bourdeauducq
0b4922e0f4
dma: request RTIO control
2017-03-01 18:59:45 +08:00
whitequark
a4ece19614
Implement DMA playback.
2017-02-28 21:28:40 +00:00
Sebastien Bourdeauducq
7481eaff52
moninj: use smaller network buffer
2017-02-27 11:44:29 +08:00
whitequark
88bf7d2233
firmware: specialize protocol read/write functions.
...
Before this commit, proto::io::{read,write}_* functions were taking
a &mut {Read,Write}. This means a lot of virtual dispatch.
After this commit, all these functions are specialized for
the specific IO trait.
This could be achieved with just changing the signature from
fn read_x(reader: &mut Read)
to
fn read_x<R: Read>(reader: &mut R)
but the functions were also grouped into ReadExt and WriteExt
traits as a refactoring.
Initially, it was expected that the generic traits from
the byteorder crate could be used, but they require endianness
to be specified on every call and thus aren't very ergonomic.
They also lack the equivalent to our read_string and read_bytes.
Thus, it seems fine to just define a slightly different extension
trait.
This also optimized the test_rpc_timing test: 1.7ms→1.2ms.
2017-02-26 18:24:37 +00:00
Sebastien Bourdeauducq
dff23293c7
Merge branch 'master' of github.com:m-labs/artiq
2017-02-27 01:05:40 +08:00
whitequark
5d3b00cf12
Implement recording of DMA traces on the core device.
2017-02-26 02:50:20 +00:00
whitequark
a07bd918f0
firmware: use Rust naming conventions for enum variants.
2017-02-25 22:34:11 +00:00
whitequark
2a81819eb0
firmware: restructure to avoid #[path = "..."] mod ...;
...
Such code is fragile, introduces mess in dependencies, and
inflates compile times.
2017-02-25 17:54:14 +00:00
whitequark
d04e611232
firmware, compiler: rename rpc functions to be more consistent.
2017-02-25 14:12:58 +00:00
Sebastien Bourdeauducq
98be556143
drtioaux: fix compiler warnings
2017-02-25 12:18:57 +08:00
Sebastien Bourdeauducq
5a16660aa2
runtime: new moninj protocol, TCP-based, with DRTIO support
2017-02-25 12:07:00 +08:00
Sebastien Bourdeauducq
7d568b4bac
style
2017-02-25 12:06:12 +08:00
whitequark
13c6e96760
firmware: implement dyld::Library::rebind.
2017-02-25 00:10:40 +00:00
whitequark
04ad267055
firmware: rewrite the dynamic linker in Rust.
2017-02-24 18:57:29 +00:00
whitequark
907589fb58
satman: simplify Makefile.
2017-02-23 10:29:25 +00:00
whitequark
623a605d3b
satman: refactor type conversions.
2017-02-23 08:59:27 +00:00
Sebastien Bourdeauducq
b34c6ba6b9
satman: process moninj packets
2017-02-23 16:24:05 +08:00
Sebastien Bourdeauducq
45ac0dcf57
drtioaux: add moninj packets
2017-02-23 16:23:51 +08:00
Sebastien Bourdeauducq
016743f079
libdrtioaux: do not attempt to access non-existent DRTIO gateware
2017-02-22 16:45:02 +08:00
Sebastien Bourdeauducq
257527629a
firmware: use aux ping to determine when DRTIO satellite is ready
2017-02-22 15:26:32 +08:00
Sebastien Bourdeauducq
a8ea557406
firmware: add DRTIO aux packet library (WIP)
2017-02-21 21:55:36 +08:00
whitequark
a12876b239
firmware: update Cargo.lock.
2017-02-21 05:28:48 +00:00
Robert Jördens
bc3fc26e34
coredevice: expose PCU
2017-02-18 14:09:12 +01:00
Robert Jördens
6b5b679659
libboard: PCU regs
2017-02-18 14:09:12 +01:00
Sebastien Bourdeauducq
9501d37378
firmware: wait longer for Si5324 lock + more monitoring
2017-02-18 17:24:46 +08:00
Sebastien Bourdeauducq
7e8348a73e
si5324: fix error handling
2017-02-18 14:12:18 +08:00
Sebastien Bourdeauducq
59e79673f7
satman: program Si5324 BWSEL depending on frequency
2017-02-18 14:12:01 +08:00
Sebastien Bourdeauducq
0bfce37fae
satman: do not use Si5324 automatic clock switching
...
The Si5324 is easily confused by the broken clock generated during link
initialization with BruteforceClockAligner. This commit prevents this problem.
2017-02-18 13:32:40 +08:00
whitequark
52a046d0fd
conda: roll cargo back to 0.11.0, then fix revision of compiler_builtins.
2017-02-05 15:25:43 +00:00
whitequark
25c9b8827a
firmware: mark __artiq_{re,}raise as #[unwind].
...
This is required for correctness.
2017-02-05 09:04:22 +00:00
Sebastien Bourdeauducq
3eef0bcc1a
firmware: give si5324 more time to lock
2017-02-04 19:19:25 +08:00
whitequark
c39394b4d5
firmware: port the exception handling routines to Rust.
2017-02-04 08:21:07 +00:00
whitequark
b9cbedceb1
firmware: migrate last vestiges of the old runtime build system.
2017-02-03 12:59:35 +00:00
whitequark
cde2054926
firmware: do not link to C code in runtime and satman.
2017-02-03 12:12:41 +00:00
whitequark
fd8b11532f
compiler, firmware: use Pascal strings everywhere.
...
This removes a large amount of very ugly code, and also simplifies
the compiler and runtime.
2017-02-03 11:53:27 +00:00
whitequark
f48cf9d9a0
firmware: use libcompiler_builtins to build satman.
2017-02-03 08:11:42 +00:00
Sebastien Bourdeauducq
a8ecbd6041
firmware: do not attempt to build Si5324 code when gateware does not support it
2017-02-03 12:27:13 +08:00
Sebastien Bourdeauducq
6fe1c9ff45
firmware: read back reserved bits from Si5324, use SFOUT2_REG=b001 instead of reserved b000
2017-02-03 12:24:13 +08:00
Sebastien Bourdeauducq
f6e9d571c2
satman: use rust liballoc
2017-02-03 12:23:38 +08:00
Sebastien Bourdeauducq
d181989de9
drtio: reset Si5324 at each boot
2017-02-03 12:00:58 +08:00
Sebastien Bourdeauducq
90ac915dd1
firmware: do not clear si5324 reserved bit
2017-02-02 20:54:50 +08:00
Sebastien Bourdeauducq
6bea253f82
firmware: fix misleading si5324 comment
2017-02-02 20:53:39 +08:00
whitequark
259319e456
firmware: use compiler_builtins crate instead of our compiler-rt.
...
This cannot be done for ksupport yet because compiler_builtins
misses most soft-float operations.
2017-02-02 10:55:35 +00:00
whitequark
44a9a79f96
firmware: port allocator to Rust.
2017-02-02 10:55:35 +00:00
Sebastien Bourdeauducq
f512ea42dc
drtio: initialize si5324 in firmware
2017-02-02 18:11:24 +08:00
Sebastien Bourdeauducq
3488b4a857
firmware: si5324 cleanups/fixes
2017-02-02 18:11:00 +08:00
whitequark
3b54736c02
firmware: port flash storage management to Rust.
2017-02-02 05:26:06 +00:00
whitequark
c2cf60e7f6
firmware: use the cslice crate to get rid of unsafe code in ksupport.
2017-02-02 00:51:58 +00:00
whitequark
9a9a3aa7de
firmware: remove unnecessary inline assembly in libboard.
2017-02-02 00:21:34 +00:00
whitequark
6fd149f048
Show a message when interrupting a running kernel (except idle kernel).
...
Fixes #625 .
2017-01-31 22:53:38 +00:00
whitequark
bc22d1c009
firmware: libksupport → ksupport.
...
The idea is that support libraries are called lib*, and the final
products that linked into an executable are not.
2017-01-31 22:24:37 +00:00
whitequark
7a14cf503b
firmware: fix a warning.
2017-01-31 22:19:45 +00:00
whitequark
680a7067a8
firmware: use ? instead of try! everywhere.
2017-01-31 22:18:59 +00:00
whitequark
ee1b2fa3ea
compiler: swap the order of ptr/len fields in lists.
...
This is to make them match the Rust slices.
Once the cslice crate becomes #![no_std] we'll also use its (tidier)
conversion functions.
2017-01-31 22:11:13 +00:00
whitequark
b95db4fa4e
Use four ethmac buffers instead of two.
...
This should address an issue where the host sends a packet burst,
the second packet in a burst gets dropped, the rest also gets
dropped since smoltcp doesn't do reassembly, and the entire dance
is repeated on every retransmit.
2017-01-30 07:42:27 +00:00
whitequark
3a19a9fb77
firmware: minor cleanup in board::si5324.
2017-01-30 07:29:44 +00:00
Sebastien Bourdeauducq
d8e9949266
drtio: initialize AD9516 clock chip
2017-01-30 11:06:45 +08:00
Sebastien Bourdeauducq
54295b1699
firmware: use has_ad9154 instead of has_converter_spi for conditional compilation
...
DRTIO designs do not have a JESD core yet, so we need to support converter SPI buses with only the clock chip.
2017-01-30 11:03:55 +08:00
Sebastien Bourdeauducq
43aad0914e
python3.5 -> python3
...
Many things also work with Python 3.6.
2017-01-30 09:24:43 +08:00
whitequark
be0953d98f
firmware: unbreak Io::sleep().
...
Fixes #663 .
2017-01-27 18:18:02 +00:00
Sebastien Bourdeauducq
82c4c61290
fix 7b2eba9f
2017-01-27 23:44:59 +08:00
Sebastien Bourdeauducq
7b2eba9fbd
firmware: misoc_registers -> misoc_cfg
2017-01-27 23:28:00 +08:00
Sebastien Bourdeauducq
11994d1900
satman: unbreak build
2017-01-27 23:26:40 +08:00
Sebastien Bourdeauducq
6acb8021e1
satman: remove stale reference to main.c
2017-01-27 23:24:07 +08:00
whitequark
6891b5fcfd
firmware: accept sessions even when startup kernel is running.
...
Fixes #625 .
Fixes #649 .
2017-01-27 13:46:32 +00:00
whitequark
24ce9a057b
firmware: add missing try!.
2017-01-27 13:46:32 +00:00
whitequark
74b910e97d
In case of a load error, pass the reason to host interpreter.
...
Fixes #654 .
2017-01-27 12:49:48 +00:00
whitequark
50f234bea4
firmware: update smoltcp to take advantage of TCP MSS option.
2017-01-27 03:47:57 +00:00
whitequark
b7f6bfffeb
firmware: fix embedding of software version during build.
2017-01-26 17:40:29 +00:00
whitequark
31e5f9a810
firmware: read MAC/IP address configuration from flash.
2017-01-26 17:40:29 +00:00
Sebastien Bourdeauducq
f7dec72f02
firmware: give satman whole RAM in linker script
2017-01-26 15:58:42 +08:00
whitequark
7b6de36d1d
firmware: cap loglevel at DEBUG to increase RPC throughput ~3x.
2017-01-25 06:50:56 +00:00
whitequark
3c177c6d71
firmware: update smoltcp, to fix analyzer dump extraction.
2017-01-25 06:36:26 +00:00
whitequark
6721c1e82f
firmware: update smoltcp.
2017-01-25 04:08:06 +00:00
whitequark
82cd9e27f7
ksupport: fix I2C function signatures.
2017-01-25 02:11:32 +00:00
whitequark
58a0e4c97f
Fix 2de3770
.
2017-01-25 01:24:03 +00:00
whitequark
6414e40deb
firmware: fix race condition between TCP listen and accept.
2017-01-25 00:17:46 +00:00
whitequark
2de3770c06
firmware: rewrite cache flushing code in Rust.
2017-01-24 23:07:28 +00:00
whitequark
209be73204
firmware: simplify ksupport build script.
2017-01-24 23:07:28 +00:00
whitequark
b29e2d5bfe
Globally update UART baudrate to 921600.
2017-01-24 22:25:58 +00:00
whitequark
3633671656
firmware: factor out console and logging from runtime/satman.
2017-01-24 21:58:58 +00:00
whitequark
5604d9bb55
firmware: factor out build scripts from runtime/satman.
2017-01-24 21:15:41 +00:00
whitequark
4d05c70dfa
firmware: update smoltcp.
2017-01-23 22:37:33 +00:00
whitequark
527b1e986c
firmware: integrate smoltcp instead of lwip.
2017-01-23 13:59:34 +00:00
whitequark
0253e0a89d
firmware: remove false dependency from runtime to ksupport.
...
This significantly speeds up no-change builds.
2017-01-23 13:57:08 +00:00
whitequark
971e4c3026
firmware: increase post-boot UART speed to 921600.
2017-01-23 13:57:08 +00:00
Sebastien Bourdeauducq
ce31ffddb0
firmware: add satellite manager
...
The code duplication with the runtime should be cleaned up later.
2017-01-18 16:50:32 -06:00
Sebastien Bourdeauducq
6805feb494
drtio: report truncated packets
2017-01-12 23:44:45 -06:00
Sebastien Bourdeauducq
7c699e2f80
drtio: add FIFO space request count debug API
2017-01-11 13:48:14 -06:00
Sebastien Bourdeauducq
c25186fae1
drtio: print packet error descriptions in log
2017-01-10 18:03:01 -06:00
Sebastien Bourdeauducq
7af152ed22
firmware: pass spawner around instead of scheduler
2017-01-10 16:15:39 -06:00
Sebastien Bourdeauducq
d3d23d0d3b
drtio: report get FIFO space timeouts to log
2017-01-10 16:12:46 -06:00
Sebastien Bourdeauducq
fdfaa377db
drtio: add debug syscalls
2017-01-08 15:06:14 -06:00
Sebastien Bourdeauducq
4f97d00e79
firmware: make i2c busno u8
2017-01-05 14:54:48 +01:00
Sebastien Bourdeauducq
13c45c8766
firmware: add si5324 programming functions
2017-01-05 14:50:00 +01:00
Sebastien Bourdeauducq
6c685205ce
firmware: support i2c restart
2017-01-05 14:49:24 +01:00
Sebastien Bourdeauducq
082fdaf450
move i2c to libboard, do bit-banging on comms CPU
2017-01-04 21:04:38 +01:00
Sebastien Bourdeauducq
3dd9d54b22
firmware: fix compilation warning without moninj/analyzer
2017-01-04 21:04:08 +01:00
Sebastien Bourdeauducq
c08fc8aae9
firmware: support moninj without DDS. Closes #650
2017-01-04 11:26:02 +01:00
Sebastien Bourdeauducq
455250b3f9
remove DDS_AD9914 and DDS_ONEHOT_SEL
2017-01-03 22:04:25 +01:00
whitequark
c2ba718efa
firmware: remove unnecessary --cfg injection.
2017-01-03 20:56:56 +00:00
Sebastien Bourdeauducq
9b4c1ddc8e
libboard: use --cfg
2017-01-03 21:39:40 +01:00
Sebastien Bourdeauducq
fbf5a4d4a2
Merge branch 'phaser2-rust-init'
2017-01-03 21:31:21 +01:00
whitequark
c2d86c4f67
firmware: apply build flags globally, move --cfg handling to build.rs.
2017-01-03 20:12:56 +00:00
Sebastien Bourdeauducq
7ff77bceac
move AD9616 and AD9154 initialization to firmware
2017-01-03 16:11:38 +01:00
Sebastien Bourdeauducq
6b7e6a53f7
firmware: ad9154 timeouts and logging
2017-01-03 15:19:51 +01:00
Sebastien Bourdeauducq
eef3f50016
firmware: fix compilation problems in ad9154 and ad9516
2017-01-02 22:14:20 +01:00
Sebastien Bourdeauducq
26e7f68b5d
firmware: move clock to libboard
2017-01-01 18:23:27 +01:00
Sebastien Bourdeauducq
bb056c1d2c
firmware: load *_reg correctly
2017-01-01 18:21:12 +01:00
whitequark
74f46cb965
firmware: fix merge screwup.
2016-12-31 14:03:39 +00:00
whitequark
58a95c1f40
firmware: libboard: extract irq.rs, csr.rs.
2016-12-31 14:00:43 +00:00
Sebastien Bourdeauducq
6c1fc2987a
libbsp: add ad9154 and ad9516 init code (untested)
2016-12-31 14:48:43 +01:00
Sebastien Bourdeauducq
62596a733d
libbsp: add ad9154 and ad9516 register maps
2016-12-31 14:48:43 +01:00
whitequark
4bb7132848
firmware: prune stabilized and unused features.
2016-12-31 13:41:32 +00:00
whitequark
4480a1c2ff
firmware: libbsp::board → libboard.
2016-12-31 13:41:32 +00:00
whitequark
bd33dca203
firmware: extract liballoc_none into its own crate.
2016-12-31 13:41:32 +00:00
whitequark
010ce019b3
firmware: remove spurious build-dependency on winapi.
2016-12-29 13:06:40 +00:00
whitequark
aed91292e2
firmware: remove cargo profiles.
...
These are specified per-workspace, and anyhow are mostly overridden
by our Makefile, so specify everything in it.
2016-12-29 13:06:40 +00:00
whitequark
9df7932169
firmware: add a Cargo workspace.
...
The Rust editor plugin for Sublime Text tries to invoke cargo,
which disregards our Makefile and places junk all around the source
tree. This calms it down, and now it only does that where our
.gitignore already handles it.
2016-12-26 17:20:29 +00:00
whitequark
c45a170bb4
firmware: update for Rust 1.16.0.
2016-12-26 17:20:29 +00:00
whitequark
5f3033b518
firmware: remove max_level_debug.
...
Tracing to the core log isn't particularly slow, and is handy
when debugging.
2016-12-19 13:24:29 +00:00
whitequark
739da9f1b3
runtime: print trace level log messages to UART during startup.
...
There's no way to retrieve them otherwise if the startup kernel
hangs.
This commit was mistakenly removed in 88ad054
.
2016-12-19 13:21:21 +00:00
whitequark
b9588ddf03
firmware: don't crash on artiq_compile'd kernels ( fixes #641 ).
2016-12-19 13:01:18 +00:00
Sebastien Bourdeauducq
db5957a7e7
firmware: use bsp crate in ad9154
2016-12-17 11:43:29 +08:00
Sebastien Bourdeauducq
9a564e07c0
firmware: make libbsp a crate
2016-12-16 21:28:25 +08:00
Sebastien Bourdeauducq
c99388f80f
firmware: use M-Labs as author in Cargo.toml files
2016-12-16 20:14:11 +08:00
Sebastien Bourdeauducq
9967dfc5ca
runtime: reorganize to support DRTIO satellite firmware
2016-12-16 19:11:19 +08:00