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
<ysionneau> the firmware can just set EBA to the right address
<cr1901_modern> Oh, I don't think I've ever done that. HDMI2USB doesn't handle that?
<ysionneau> upon exception, the lm32 cpu jumps at the address contained in the EBA CSR + offset (offset depends on the exception nature)
<ysionneau> EBA = exception base address
<ysionneau> so if you just modify with wcsr instr the EBA CSR, you're OK
<cr1901_modern> Though I suppose it doesn't matter in a microcontroller application, there's nothing preventing your firmware that loads after the BIOS from editing EBA at will?
<ysionneau> the 1st instructions of the firmware is to update EBA
<cr1901_modern> then there's no problem then. Your firmware that loads after the BIOS should be linking in the startup code anyway.
<ysionneau> sure, fw is linking with crt0-$(CPU) : for instance https://github.com/m-labs/mixxeo-soc/blob/master/software/Makefile#L23
<ysionneau> cr1901_modern: nothing will prevent any write to any CSR at all.
<cr1901_modern> Fair, was just wondering
<ysionneau> there is no "protected mode" or thing like that
<cr1901_modern> Well you wrote a MMU for it, didn't you?
<ysionneau> yes I was talking about the basic lm32 cpu without mmu
<cr1901_modern> Okay :)
<cr1901_modern> And I *assume* that user fw is always going to be linked such that it exclusively uses the main_ram section? From what I can tell, crt0, particularly the reset_handler, is going to be hardcoded, so the BIOS better load reset_handler at the proper address. >>
<cr1901_modern> (This of course doesn't apply if you're using libdyld, which isn't default)
<cr1901_modern> And I don't know if MiSoC BIOS even knows about it?
<ysionneau> the BIOS is responsible for loading the fw in RAM at the correct address
<cr1901_modern> I had started a SoC this month where it was actually necessary to *not* have a UART. So I looked into my options and concluded that just using FPGA block RAM as (partially) ROM will be sufficient for my purposes. So I didn't need to really think about making sure firmware was at the correct address :P.
<cr1901_modern> (*not* have a UART == I can't use MiSoC BIOS b/c it expects a UART)
<ysionneau> well I guess you can just hack MiSoC BIOS not to use any uart
<cr1901_modern> Might be an interesting pull request in the future. Main reason I haven't done it is b/c it could potentially break artiq stuff
<cr1901_modern> and I don't want to be responsible for breaking the builds :P
<shenki> ysionneau: thank you
<ysionneau> you're welcome!
<ysionneau> gn8
<cr1901_modern> Leave it ysionneau to dish out that important advice! :)
kuldeep has quit [Read error: Connection reset by peer]
kuldeep has joined #m-labs
<mithro> ysionneau: Ahh, so it uses a dynamic jump vector location
<mithro> shenki: See above
<shenki> mithro: :)
flaviusb has quit [Ping timeout: 260 seconds]
flaviusb has joined #m-labs
balrog_ has joined #m-labs
balrog has quit [Ping timeout: 244 seconds]
balrog_ is now known as balrog
<GitHub155> [artiq] jordens pushed 5 new commits to phaser2: https://git.io/vX9iS
<GitHub155> artiq/phaser2 b9ce2bb Robert Jordens: Merge branch 'phaser' into phaser2...
<GitHub155> artiq/phaser2 424a1f8 Robert Jordens: dsp: move test tools
<GitHub155> artiq/phaser2 ea0c304 Robert Jordens: phaser2: wip
sb0 has quit [Quit: Leaving]
sb0 has joined #m-labs
balrog has quit [Quit: Bye]
balrog has joined #m-labs
rohitksingh_work has joined #m-labs
rohitksingh has joined #m-labs
cr1901_modern1 has joined #m-labs
cr1901_modern has quit [Ping timeout: 240 seconds]
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined #m-labs
kuldeep has quit [Ping timeout: 258 seconds]
kuldeep has joined #m-labs
<ysionneau> 01:47 < mithro> ysionneau: Ahh, so it uses a dynamic jump vector location < upon exception the address is fetched from EBA so yes it's dynamic
Gurty has quit [Ping timeout: 256 seconds]
sb0 has quit [Ping timeout: 248 seconds]
rohitksingh has quit [Ping timeout: 260 seconds]
rohitksingh has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
rohitksingh_work has quit [Read error: Connection reset by peer]
sb0 has joined #m-labs
rohitksingh has joined #m-labs
<larsc> do you know how multi-lane alignment in buffer bypass mode works with the GTX? How does it compensate the phase difference between the lanes?
<GitHub49> [artiq] sbourdeauducq pushed 1 new commit to drtio: https://git.io/vXHSq
<GitHub49> artiq/drtio bb047aa Sebastien Bourdeauducq: drtio: simpler link layer
<sb0> larsc, in TX you mean?
<sb0> as I understand it, in TX it adjusts its internal clocks to match TXUSRCLK
<sb0> so there is no phase difference
<sb0> oh there's a RX multi-lane buffer bypass as well... haven't looked at that one
<sb0> mh, no idea how that can even work
<sb0> perhaps there is some sort of internal delay line on the data
<larsc> sb0: RX
<larsc> ok, thanks
<sb0> it's probably not det-lat
<sb0> well, of one serial UI
<sb0> hm
<GitHub68> [artiq] whitequark pushed 1 new commit to master: https://git.io/vXHb1
<GitHub68> artiq/master c7844d5 whitequark: runtime: use proper format for git commit....
<larsc> the thing is the buffer on the rx side is super expensive in terms of latency
<larsc> because it has all these features like char insertation/removal and what not
<larsc> and the comma alignment also seems to be quite expensive
<larsc> comma alignment in fabric would basically just be a mux right?
<sb0> I do comma alignment by resetting the xilinx garbage until it aligns itself
<larsc> but I wonder if you can still do the buffer bypass in that case
<sb0> in theory you could make its clock divider slip, but it looks like they messed up the silicon
<sb0> well if you have many lanes it gets tedious
<sb0> and yes, you can comma-align in fabric easily
<sb0> register the previous word, and then barrel-shift the concatenation of the previous and current
<sb0> they ought to fix their PMA issues instead of implementing hard blocks for this...
<sb0> in misoc dvi_sampler there's a soft comma aligner and soft lane aligner
<sb0> larsc, isn't clock correction (aka char insert/remove I suppose) a feature of the elastic buffer that gets bypassed?
<larsc> yes, but when it does not get bypassed you still get the penalty even if you only want to do phase alignment
<larsc> there is a special mode for just phase alignment, but th e documentation
<larsc> the latency specification doesn't mention it
<sb0> are you building a jesd204 receiver?
<larsc> I can neither confirm nor deny that
<larsc> well, the answer is no, I did built one a while ago, just looking at the latency right now
<larsc> cause the GTX latency is pretty bad
<bb-m-labs> build #195 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/195
<bb-m-labs> build #385 of artiq-win64-test is complete: Failure [failed python_unittest] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/385 blamelist: whitequark <whitequark@whitequark.org>
<bb-m-labs> build #1095 of artiq is complete: Failure [failed] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/1095 blamelist: whitequark <whitequark@whitequark.org>
<larsc> is there a good way to dynamically generate the sensitiviy list based on configuration parameters?
FabM has quit [Quit: ChatZilla 0.9.93 [Firefox 45.4.0/20160921204512]]
<rjo> larsc: which sensitivity list? which config paramters?
<larsc> for a always statement
<larsc> based on module parameters
<larsc> in verilog
<rjo> larsc: is '*' not adequate?
<larsc> I want either * or posedge clk
<rjo> larsc: not that i know. in migen it's trivial though. ;)
<larsc> yeah
<larsc> well, I guess I just have to have two blocks with the second one registering the output of the first
Gurty has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
sandeepkr has joined #m-labs
<cr1901_modern1> Is "posedge clk" legal in the context of an if statement in Verilog (that's also inside an always @)?
cr1901_modern1 is now known as cr1901_modern
<larsc> only in a sensitive list I belive
<larsc> sensitivity
<cr1901_modern> sb0: *Is it okay if this is not supported*, but... is it possible to make a wishbone memory (add_mem_region) and a wishbone peripheral to share the same 256MB region in MiSoC? Or does the address decoding for MiSoC not support this?
<cr1901_modern> Making the peripheral part of the CSR bus isn't possible b/c the core I want to attach isn't designed to operate at 32 or 50 MHz. So wait states will be necessary during reads.
<cr1901_modern> (And well, only wishbone provides these :P)
<cr1901_modern> If it's not supported, I'll just use another 256MB chunk for peripheral output buffers (read only from CPU's POV) and call it a day.
mumptai has joined #m-labs
sandeepkr_ has joined #m-labs
sandeepkr has quit [Ping timeout: 256 seconds]
kuldeep has quit [Ping timeout: 265 seconds]
sandeepkr__ has joined #m-labs
kuldeep has joined #m-labs
sandeepkr_ has quit [Ping timeout: 265 seconds]
sandeepkr_ has joined #m-labs
sandeepkr__ has quit [Read error: Connection reset by peer]
sandeepkr__ has joined #m-labs
sandeepkr__ has quit [Read error: Connection reset by peer]
sandeepkr_ has quit [Ping timeout: 268 seconds]
sandeepkr__ has joined #m-labs
mumptai has quit [Remote host closed the connection]