sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
_rht has quit [Quit: Connection closed for inactivity]
fengling has joined #m-labs
attie has quit [Ping timeout: 276 seconds]
attie has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
attie has quit [Ping timeout: 244 seconds]
attie has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
rohitksingh_work has joined #m-labs
<sb0> whitequark, nice!
<GitHub55> [artiq] whitequark pushed 1 new commit to master: https://git.io/vPt0o
<GitHub55> artiq/master b3b1ea7 whitequark: Rust: implement basic communication with kernel CPU.
<whitequark> sb0: and btw I am rather happy with how the scheduling/io stuff turned out
<whitequark> it is very easy to add new events and otherwise write code using io even if unconventionally
<whitequark> e.g. the session handler uses a mix of polling (it needs to poll for e.g. rtio clock failure) and blocking
<whitequark> and now the session handler also blocks (not busy waits) on mailbox
<whitequark> such that if the kernel CPU hangs, the session thread can be interrupted
<whitequark> or otherwise preempted by another one
<sb0> great! yes, this is why I wanted to do this in the first place. the C code was becoming hairy and it would get worse.
<whitequark> ah, and I made the mailbox safe (or rather it will be safe when both sides use Rust)
<whitequark> in the sense that it's impossible to put something in and then deallocate before the other side is done
<whitequark> were a few bugs like that too...
<whitequark> btw why don't we get rid of ksupport?
<whitequark> it's stupid to have two copies of libbase, libcompiler-rt, etc linked in...
<whitequark> (and it annoys me in particular because code is loading for >30s on this 115200 link)
<bb-m-labs> build #85 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/85
<bb-m-labs> build #976 of artiq is complete: Failure [failed] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/976 blamelist: whitequark <whitequark@whitequark.org>
<sb0> what do you want to replace it with?
<whitequark> with nothing. put a copy of crt0 there that points to separate main and isr inside the runtime
<whitequark> then just put ex-ksupport code into the runtime
<sb0> the idea of ksupport was to try to have a separate memory space for the kernel cpu, but that may not be necessary after all
<sb0> (and never happened anyway)
<whitequark> I mean, we already don't have a real separate memory space since the mailbox results in exchange of pointers
<sb0> ok
<whitequark> there are two issues with this plan
<whitequark> 1) it is mildly annoying to boot it
<sb0> yes, but the comms CPU could have access to the kernel CPU memory space, but not vice-versa
<whitequark> 2) we need some way for code to tell whether it's running on kernel or comms CPU
<whitequark> (could have access) I'm not so sure, e.g. how would the cache work?
<sb0> the cpus have separate caches
<whitequark> no
<sb0> and you should flush them
<whitequark> not the CPU cache
<whitequark> the ARTIQ cache
<sb0> put it in kernel CPU space
<sb0> the comms CPU needs a relatively limited space for itself anyway doesn't it
<sb0> ?
<sb0> couple megabytes at most
<whitequark> that's an order of magnitude overestimated
<sb0> yes
<sb0> but still small compared to SDRAM size
<whitequark> this reminds me, why is the comms CPU stack at the end of address space?
<whitequark> I should select some 4M at the front and put comms everything there
<sb0> for historical reasons I guess, misoc is doing that by default
<whitequark> ah ok
<sb0> anyway, I propose doing this cleanup/polishing after the rust runtime has feature parity with C + background RPCs are done
fengling has joined #m-labs
<whitequark> cleanup needs to wait until rust runtime is done anyway since I'm currently keeping the two in sync
fengling has quit [Ping timeout: 268 seconds]
<cyrozap> In Migen, is it possible to use a different clock domain for an FSM module than the default of "sys"? If not, am I using it incorrectly? I'm currently writing an I2C master module where I derive the I2C clock from the system clock and the I2C state machine should be using the I2C clock.
<sb0> yes, use ClockDomainsRenamer
fengling has joined #m-labs
sb0 has quit [Quit: Leaving]
fengling has quit [Ping timeout: 268 seconds]
<whitequark> it kind of makes me sad that we can't run *only* Rust anywhere
<whitequark> on comms CPU we're stuck with lwip, on kernel CPU we're stuck with libunwind
<whitequark> although....
fengling has joined #m-labs
sandeepkr_ has joined #m-labs
sandeepkr__ has joined #m-labs
sandeepkr has quit [Read error: No route to host]
sandeepkr_ has quit [Ping timeout: 264 seconds]
fengling has quit [Ping timeout: 268 seconds]
attie has quit [Ping timeout: 244 seconds]
attie has joined #m-labs
fengling has joined #m-labs
sb0 has joined #m-labs
<_florent_> sb0/rjo: just a status on jesd: I'm still not able to get K28.5 (CGS) from the KC705 recognized by the AD9154
<_florent_> sb0/rjo: my config is: 2Gbps line rate, 100MHz dacclk, 6Mhz sysref
<_florent_> sb0/rjo: I'm working on it and I'm going to generate the jesd phy from the Xilinx wizard to see if there is some differences
bentley` has quit [Ping timeout: 272 seconds]
kuldeep has quit [Ping timeout: 272 seconds]
sandeepkr__ has quit [Ping timeout: 272 seconds]
sandeepkr__ has joined #m-labs
kuldeep has joined #m-labs
sb0 has quit [Quit: Leaving]
key2 has joined #m-labs
key2 has left #m-labs [#m-labs]
sandeepkr_ has joined #m-labs
kuldeep_ has joined #m-labs
sandeepkr__ has quit [Ping timeout: 244 seconds]
kuldeep has quit [Ping timeout: 272 seconds]
<rjo> whitequark: are you in the lab by chance?
<rjo> whitequark: if yes, or next time you get there, could you connect the second kc705 (with the dac fmc) to the network?
rohitksingh_work has quit [Ping timeout: 244 seconds]
rohitksingh_work has joined #m-labs
attie has quit [Ping timeout: 264 seconds]
attie has joined #m-labs
<larsc> _florent_: if the DAC is not seeing the CGS something is seriously wrong, probably at the lowest level. Maybe bit-order or incorrect clock settings
<rjo> _florent_: that's without trying to use the ad9516's pll?
rohitksingh_work has quit [Read error: Connection reset by peer]
<rjo> _florent_: do the serdes plls lock?
<_florent_> larsc: thanks, I'm going to verify with an oscilloscope that the transceiver is really outputing something (with slow pattern like 20 bits at 1/ 20 bits at 0)
<_florent_> larsc: I checked bit order in simulation, maybe I have something wrong in the clock settings
<_florent_> rjo: I'm not using the ad9516's pll, just feed the clock input of the ad9516 with a the user_sma clock of the KC705 and enable the dividers/outputs on the ad9516 like you are doing.
<_florent_> rjo: no, I'm not able to get the lock on the serdes pll
<rjo> _florent_: ok
<GitHub8> artiq/phaser d2e9cf5 Robert Jordens: phaser: sync/sysref 33V banks
<GitHub8> artiq/phaser ccf6a39 Robert Jordens: phaser: ttl channel for sync
<GitHub8> [artiq] jordens pushed 11 new commits to phaser: https://git.io/vPtHd
<GitHub8> artiq/phaser a8fdb8b Robert Jordens: ad9154: 4x interp, status, tweaks
fengling has quit [Ping timeout: 268 seconds]
fengling has joined #m-labs
bentley` has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
<whitequark> rjo: ack
<whitequark> rjo: i'll need to go to the lab soon, no later than monday HKT
<GitHub187> [artiq] whitequark pushed 4 new commits to master: https://git.io/vPtNB
<GitHub187> artiq/master d3dcb4b whitequark: runtime: remove useless copy of flush_cpu_dcache()....
<GitHub187> artiq/master 999290f whitequark: runtime: link ksupport with libm, not runtime....
<GitHub187> artiq/master ab3bd67 whitequark: Rust: style (NFC).
fengling has joined #m-labs
<GitHub6> [artiq] whitequark pushed 1 new commit to master: https://git.io/vPtAf
<GitHub6> artiq/master d825393 whitequark: Rust: implement watchdogs.
<_florent_> rjo: I found an initialization issue on the transceiver, they were not sending data, now it's fine (tested with a 20 bits to 1 / 20 bits to 0 pattern and an oscilloscope)
<_florent_> rjo: now I'm pretty sure the K28.5 is sent correctly by the transceivers (simulated with xsim)
<_florent_> rjo: but I'm still not able to get the SERDES PLL to lock and don't know why... (it should only depends of the clock input of the ad9154)
<bb-m-labs> build #86 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/86
<bb-m-labs> build #373 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/373
<bb-m-labs> build #977 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/977
<rjo> whitequark: ok. the sooner the better. thanks!
<rjo> _florent_: yeah. registers... ;)
<rjo> _florent_: when do you plan to port it to misoc/migen?
<bb-m-labs> build #87 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/87
<bb-m-labs> build #374 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/374
<bb-m-labs> build #978 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/978
fengling has quit [Ping timeout: 268 seconds]
<rjo> _florent_: the bits in AD9154_REF_CLK_DIVIDER_LDO all have _SPI_ in their name. https://github.com/m-labs/artiq/commit/36fc2841bf587d7af866463a83689ced0976b56f#diff-c2a18abc6d4b2a8c15a5a0ae7d50a0deL865
<rjo> and afaict from the datasheet we won't be able to run 10 Gig speed, only 9.6 Gig. because a supply voltage is too low.
fengling has joined #m-labs
<GitHub140> [artiq] whitequark pushed 1 new commit to master: https://git.io/vPqeS
<GitHub140> artiq/master 8bced9d whitequark: Rust: implement cache.
fengling has quit [Ping timeout: 268 seconds]
<bb-m-labs> build #88 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/88
<bb-m-labs> build #375 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/375
<bb-m-labs> build #979 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/979
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]
<whitequark> sb0: is there a way to get a timer interrupt easily on comms cpu?
fengling has joined #m-labs
fengling has quit [Ping timeout: 268 seconds]