<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>
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
<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]