01:19
sb0 has joined #m-labs
01:32
kuldeep has quit [Ping timeout: 272 seconds]
01:49
kuldeep has joined #m-labs
03:30
mumptai has quit [Ping timeout: 264 seconds]
03:44
mumptai has joined #m-labs
03:49
<
GitHub137 >
llvm-or1k/artiq-3.8 ed46799 whitequark: [SelectionDAG] Fix calling convention in expansion of ?MULO....
03:58
rohitksingh_work has joined #m-labs
04:56
sandeepkr has joined #m-labs
04:57
sandeepkr has quit [Max SendQ exceeded]
04:58
sandeepkr has joined #m-labs
05:10
sb0 has quit [Quit: Leaving]
05:21
<
GitHub199 >
artiq/master 6bbaff8 whitequark: Rust: implement idle kernels.
05:21
<
GitHub199 >
artiq/master 398b709 whitequark: Rust: use try_borrow where applicable.
05:28
<
whitequark >
sb0: can you elaborate on the "startup kernel" feature
05:28
<
whitequark >
since when do we ship software to startups?
05:47
sb0 has joined #m-labs
05:48
<
sb0 >
whitequark, it's very easy. you just run it once when the device boots, and wait until it terminates before proceeding further (idle kernel/network sessions)
06:08
<
GitHub183 >
artiq/master 2b3bc30 whitequark: Rust: implement startup kernels.
06:08
<
GitHub183 >
artiq/master 0cd87af whitequark: Rust: don't crash kernel CPU when no flash kernel is present.
06:11
Gurty has quit [Quit: Kooll ~o~ datalove <3³\infty]
06:41
sb0 has quit [Ping timeout: 248 seconds]
06:43
<
GitHub15 >
artiq/master 0e2cd38 whitequark: Rust: set the SOF_KEEPALIVE flag on session sockets.
07:05
FabM has joined #m-labs
08:15
<
GitHub60 >
misoc/master 3dc110a whitequark: Rust CSR: generate --cfg flags for extant regions and CONFIG_* consts.
08:15
<
GitHub181 >
artiq/master b590c6c whitequark: Rust: import --cfg flags generated by misoc.
08:31
EvilSpirit has joined #m-labs
09:51
sandeepkr has quit [Remote host closed the connection]
09:57
sandeepkr has joined #m-labs
10:06
sb0 has joined #m-labs
10:08
bentley` has quit [Ping timeout: 264 seconds]
10:16
<
whitequark >
sb0: how do I test moninj?
11:50
<
larsc >
_florent_: how did you check whether the CGS succeeded?
12:04
<
rjo >
_florent_: nice.
12:16
sb0 has quit [Ping timeout: 244 seconds]
12:17
sb0 has joined #m-labs
12:30
<
whitequark >
ok, dashboard has it...
12:36
Gurty has joined #m-labs
12:45
<
GitHub107 >
artiq/master 2fefd0a whitequark: Rust: implement moninj.
12:45
<
GitHub107 >
artiq/master 2e4d19a whitequark: Rust: add some conditional compilation back to rtio_crg.
12:46
<
whitequark >
sb0: moninj in rust appears to work as intended, except that OEs don't work
12:46
<
whitequark >
but they also don't work in the current C runtime
12:46
<
whitequark >
is that a known problem?
13:04
rohitksingh_work has quit [Read error: Connection reset by peer]
13:24
<
sb0 >
how do they not work?
13:25
<
whitequark >
or maybe not OEs
13:25
<
whitequark >
basically, OVERRIDE_ENABLE works
13:25
<
sb0 >
I told you to use TCP
13:25
<
whitequark >
then I try setting a channel to high and nothing changes in the monitor packets
13:26
<
whitequark >
hm? I'm specifically not changing any protocol details until I have a complete port running
13:26
<
whitequark >
it's about five lines of change on the Rust side anyway, no big deal
13:27
<
sb0 >
bah, this UDP stuff is a waste of time (including getting the lwip side to work), and if moninj is broken, it shouldn't be a big deal to fix it, right?
13:29
<
whitequark >
I don't really know how it's done...
13:29
<
sb0 >
I don't get what does not work
13:30
<
whitequark >
I try to set OE=1 by doing:
13:30
<
whitequark >
csr::rtio_moninj::inj_override_sel_write(MONINJ_TTL_OVERRIDE_OE);
13:30
<
whitequark >
csr::rtio_moninj::inj_value_write(1);
13:30
<
whitequark >
OE does not become 1 as read using the monitor
13:30
<
sb0 >
is the C runtime touching OE?
13:31
<
whitequark >
and the override part is working
13:31
<
sb0 >
yes. OE is supposed to be set (and generally untouched) by kernels only (and in particular the startup kernel)
13:31
<
whitequark >
csr::rtio_moninj::inj_override_sel_write(MONINJ_TTL_OVERRIDE_ENABLE);
13:31
<
whitequark >
csr::rtio_moninj::inj_value_write(1);
13:31
<
whitequark >
results in the override bit being set in monitor response
13:31
<
whitequark >
hm, I don't understand it then, why does moninj write to OE?
13:31
<
whitequark >
shouldn't it only write to O then?
13:32
<
sb0 >
so what happens when you write to OE?
13:33
<
sb0 >
and did you write to OE on a TTLOut or a TTLInOut?
13:33
<
whitequark >
absolutely nothing happens
13:33
<
whitequark >
well, from the software POV
13:33
<
whitequark >
I didn't look at the outputs themselves
13:34
<
whitequark >
and I tried to write to OE on almost every channel
13:34
<
sb0 >
what happens when you read it back?
13:35
<
sb0 >
output-only TTL RTIO PHYs don't have OE.
13:35
<
whitequark >
setting value to 1 also didn't seem to produce any effect...
13:36
<
whitequark >
hm, I'm not at the lab anymore and ssh doesn't forward UDP
13:36
<
whitequark >
ok, I'll just add an issue then and fix it once the transition is done
13:36
<
sb0 >
yes. I told you to use TCP for a reason...
13:37
<
whitequark >
well I'm not arguing with that
13:37
<
sb0 >
actually the current code does set OE
13:37
<
sb0 >
and is supposed to set any channel to output when overriden
13:38
<
whitequark >
when OE is read back via the monitor, it's always zero
13:39
<
sb0 >
did you do rtio_moninj_mon_value_update_write(1)?
13:39
<
whitequark >
both c and rust code does that
13:39
<
sb0 >
and are you sure the TTL PHY you are targeting is not a output-only PHY?
13:39
<
whitequark >
I tried every TTL
13:41
<
sb0 >
are you using the correct probe number?
13:41
<
whitequark >
I just translated the C code
13:41
<
sb0 >
writing to OE is 2, reading is 1
13:42
<
whitequark >
ok, I'll poke it again tomorrow morning. I need to go now
13:43
<
sb0 >
a output-only TTL PHY gives the "erroneous" behavior you are describing. but the IO ones support OE.
13:46
<
sb0 >
on output-only, writing to OE is a nop and reading returns 0
14:53
<
_florent_ >
larsc: I check CGS with CODEGRPSYNC register and by looking at the SYNC signal (released to 1 when CGS passed on all lanes)
15:09
<
larsc >
_florent_: thanks, got things to work.
15:09
<
larsc >
with the DAQ2
15:09
<
larsc >
I asked around about the dividers
15:10
<
larsc >
the guy who did the software said that he got the config from the product line and they said to use that setup to get something that works...
15:20
jboulder has joined #m-labs
15:24
<
_florent_ >
larsc: ok thanks, I think the schematic of the AD9161/AD9162 makes senses for the AD9154, at least it's coherent with the behaviour I have.
15:25
<
_florent_ >
larsc: I now have ILAs with correct checksum on all lanes, PRBS test is also working. Now I have to check the transport layer.
15:34
<
larsc >
well done, transport is luckily not that complicated if you are going with a more or less static setup
16:08
bentley` has joined #m-labs
16:13
<
larsc >
_florent_: did you read back the ILAS register from the part?
16:13
EvilSpirit has quit [Ping timeout: 252 seconds]
16:14
<
_florent_ >
larsc: yes it's fine. The computed checksum also match the expected checksums.
16:16
<
larsc >
hm, the checksum is the only thing that works for me
16:17
<
larsc >
does initializing a ROM with initial rom = .... work with the Xilinx tools?
16:17
<
larsc >
maybe that is my issue
16:17
EvilSpirit has joined #m-labs
16:25
<
_florent_ >
larsc: maybe your are indeed only sending zeros
16:25
<
_florent_ >
larsc: which would give correct checksum...
16:26
<
larsc >
I'm sending zeros everywhere except for the lane ID
16:26
<
larsc >
I'm just wondering why
16:27
<
larsc >
interestingly enough things still work fine as well
16:27
EvilSpirit has quit [Ping timeout: 244 seconds]
16:28
<
larsc >
works fine in simulation
16:30
<
rjo >
_florent_: you have ERR_KUNSUPP: 1, ERR_JESDBAD: 1 and SERPLLLOST: 1. or are those latching?
16:32
<
larsc >
those are sticky
16:35
sandeepkr has quit [Read error: Connection reset by peer]
17:31
_rht has joined #m-labs
17:40
jboulder has quit [Quit: Page closed]
18:16
<
larsc >
I could hav sworn that the inital method works for Xilinx, but it looks like it does not
18:17
<
larsc >
and you have to do the checksum over the individual fields and not the bytestream? that is just terrible
18:33
<
rjo >
larsc: you can do it over the bytes.
18:33
<
larsc >
but that's a special mode of the ad converters it seems
18:33
<
larsc >
the standard says over the fields
18:35
<
rjo >
larsc: i think for viviado $readmemh() works as an initial. at least we use it in migen
18:36
<
larsc >
yes, readmem works, but that's it
18:36
<
larsc >
simple assigments do not
19:24
<
GitHub179 >
artiq/phaser 206462f Robert Jordens: phaser: kernel support for ad9154 spi
19:24
<
GitHub179 >
artiq/phaser 6f86e98 Robert Jordens: phaser: move spi to kernel cpu
19:24
<
GitHub179 >
artiq/phaser 19a3733 Robert Jordens: phaser: cleanup pins
19:31
acathla has quit [Quit: Coyote finally caught me]
19:44
acathla has joined #m-labs
19:45
acathla has quit [Changing host]
19:45
acathla has joined #m-labs
20:59
mumptai has quit [Quit: Verlassend]
23:42
_rht has quit [Quit: Connection closed for inactivity]