Saturday, 2020-08-01

*** tpb has joined #litex00:00
*** jeanthom has quit IRC00:05
*** Degi has quit IRC00:49
*** Degi has joined #litex00:50
*** jaseg has quit IRC02:23
*** jaseg has joined #litex02:25
mithro@_florent_: The SymbiFlow toolchain has Zynq support -- we should get that working in a similar manner to the arty version03:26
*** _whitelogger has quit IRC07:30
*** _whitelogger has joined #litex07:32
*** jeanthom has joined #litex07:52
pepijndevosHow do I exit litex_term?08:24
jeanthomctrl+c ?08:39
pepijndevosnope08:49
daveshahAt one point it was double ctrl+c08:49
pepijndevoslol okay will try, I just killed it now08:50
pepijndevosyeah works09:02
*** jeanthom has quit IRC09:10
*** tcal has quit IRC10:39
pepijndevosHow can I see what variants are available for a cpu?11:45
zypnot sure there's a way to list it apart from looking in the source11:56
zypwhich cpu?11:56
pepijndevosyea, looking at the source now11:57
pepijndevoswas mainly looking at vexrisc and picorv32, to match them with the correct Rust tripple11:58
_florent_mithro: we could had a Zynq target example with Symbiflow, but supporting Symbiflow still requires some workarounds, so that would be good also working on https://github.com/enjoy-digital/litex/issues/554 before adding Symbiflow support to other targets11:59
tpbTitle: improve Symbiflow/Arty support · Issue #554 · enjoy-digital/litex · GitHub (at github.com)11:59
somlo_florent_: I'm wrestling with this line: https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc.py#L84812:02
tpbTitle: litex/soc.py at master · enjoy-digital/litex · GitHub (at github.com)12:02
_florent_pepijndevos: to exit lxterm, it's ctrl+c two times quickly, this was added to be able to do ctrl+c in the linux shell when linux is running on the FPGA12:02
pepijndevosewps, when I change the CPU type on ulx3s.py to picorv I get interrupt errors when compiling the bios12:03
pepijndevosundefined reference to `_irq_mask'12:03
somloif I read the rest of the DMA patch (d38048baa), if the cpu exposes a dma_bus, then the dma masters are connected to the cpu dma slave on a dedicated (separate from the "main" mmio wishbone bus) interconnect12:03
somlowhich means that any and all DMA accesses are routed through the cpu's dma_bus slave, either to DRAM, or back out the mmio wishbone "main" bus12:04
somlowhich then means that `size` should be (at least) 0x10000_0000 (to cover the whole 4GB physical address space we currently support)12:06
somlo(e.g., rocket has DRAM *starting* at 0x8000_0000)12:06
pepijndevosCan LiteX on ULX3S actually run with picorv32, or is the bios thingy not compatible?12:06
_florent_pepijndevos: we should indeed improve --help on the targets to provide more useful information, i wanted to revisit things a bit, but haven't been able to work on this yet12:08
_florent_pepijndevos: but i think if you give a wrong variant, it should give you an error message and list the supported ones12:09
pepijndevosIt does actually12:09
somlo_florent_ but if I bump size up beyond 0x8000_0000, vivado craps fails to synthesize with "part-select [29:30] does not match declaration" when trying to access dma_bus_interconnect_shared_adr[29:30]12:09
somlo(unsurprisingly, since it's declared as a "wire [29:0]" somewhere earlier in the generated verilog.... Hmmm, maybe I need to find the corresponding Signal() statement in the migen sources :)12:11
_florent_pepijndevos: you should be able to run picorv32 on the ULX3S, if not it's broken, could you open a PR?12:11
pepijndevos_florent_, where does this bios stuff live?12:14
pepijndevosah found it12:15
pepijndevosI think...12:15
_florent_https://github.com/enjoy-digital/litex/tree/master/litex/soc/software12:15
tpbTitle: litex/litex/soc/software at master · enjoy-digital/litex · GitHub (at github.com)12:15
pepijndevos_florent_, https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/cpu/picorv32/irq.h externs _irc_mask but apparently it's not there.12:19
tpbTitle: litex/irq.h at master · enjoy-digital/litex · GitHub (at github.com)12:19
pepijndevoswhich seems defined here... https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/cpu/picorv32/crt0.S#L30412:20
tpbTitle: litex/crt0.S at master · enjoy-digital/litex · GitHub (at github.com)12:20
pepijndevosis that somehow not getting linked correctly?12:21
somlo_florent_: address width *appears* to come from here: https://github.com/enjoy-digital/litex/blob/master/litex/soc/interconnect/wishbone.py#L3812:22
tpbTitle: litex/wishbone.py at master · enjoy-digital/litex · GitHub (at github.com)12:22
somlobumped it up to 32, see if 1. vivado survives the build run and 2. it actually works once built :D12:23
somlo_florent_: looks like vivado won't crap out; testing the bitstream will have to wait though, until I get back from doing chauffeur duty for the family, in a few hours :)12:27
pepijndevos_florent_, issue created https://github.com/enjoy-digital/litex/issues/61612:34
pepijndevosI'm looking at https://github.com/enjoy-digital/litex/blob/master/litex/soc/software/bios/Makefile#L54 and wondering how crt0.o does (not) get in there12:34
tpbTitle: litex/Makefile at master · enjoy-digital/litex · GitHub (at github.com)12:34
_florent_key2, jeanthom: i saw you were porting LiteDRAM to nMigen in https://github.com/jeanthom/gram, but wouldn't it be better to help us eventually make LiteX work with nMigen in compat mode in a first time if you really want to reuse the LiteDRAM codebase with nMigen? (or generate a standalone controller to verilog which is already possible?)12:53
_florent_somlo: sorry, i also have the family around and will have difficulties looking at that closely now :), would you mind eventually creating an issue to follow your changes/progress and be able to answer there?13:52
pepijndevosMy LiteX core defines rom, sram, csr, and main_ram, what is each typcially used for?14:52
somlo_florent_: sure thing; I'll do that later today; for now, with the modified wishbone interface adr_width and dma_bus region I got it to copy boot.bin to 0x80000000 successfully. It hangs at "liftoff", so there's still some lingering badness, but I think I'm on to something :)15:36
*** lambda has quit IRC16:19
*** lambda has joined #litex16:24
pepijndevosWhy does this version have 32 bit values, while mine has 4 8 bit values?16:48
pepijndevoshttps://github.com/icebreaker-fpga/icebreaker-litex-examples/blob/a3d1b9d6ded576faf7b299bbd17260ccc6893f66/rust/icebesoc-pac/iCEBESOC.svd#L21116:48
tpbTitle: icebreaker-litex-examples/iCEBESOC.svd at a3d1b9d6ded576faf7b299bbd17260ccc6893f66 · icebreaker-fpga/icebreaker-litex-examples · GitHub (at github.com)16:48
pepijndevosWhy is my litex stuck at 0% uploading?17:43
pepijndevosuhhhh. maybe because my binary is 1GB???17:46
daveshahsounds like a linker script gone wrong17:47
daveshahnot seen this with litex before though17:47
daveshahusually it is because it tried to put both ROM and RAM in the binary, and they are at base addresses 1GB apart or whatever17:47
pepijndevosthat would be a nice oops17:51
zypyeah, that's not an uncommon mistake18:03
*** Finde has quit IRC18:14
*** Finde has joined #litex18:15
_florent_pepijndevos: it's possible to configure the data-width of the CSR bus (that is used for the registers), for historical we are still using 8-bit as default (thus the 4 8 bit value you see) and the icebreaker design you are linking is probably using --csr-data-width=3218:22
pepijndevos_florent_, is there a good reason to not use that?18:23
_florent_somlo: nice, that's already better :) now just need to understand why the data is not valid...18:23
_florent_pepijndevos: until a few months, some features were still requiring csr-data-with=8, but it's no longer the case now, and we'll switch the default value to 32 soon18:24
_florent_pepijndevos: so you can use 32 and it will provide better performance. (csr-data-width=8 was initially used to reduce resource usage/improve timing on the CSR bus, but 32-bit seems to work fine even in iCE40 and relatively large designs, so there are no real reason to continue using it).18:27
*** kgugala has joined #litex18:46
pepijndevosokay thanks, I'll try that later. Probably saves a bunch of bit magic18:46
*** kgugala__ has quit IRC18:49
*** kgugala has quit IRC18:55
*** kgugala has joined #litex18:55
*** kgugala has quit IRC18:55
*** kgugala has joined #litex18:56
somlo_florent_: I'll need another  hour or so of peace and quiet to dig into it, then I'll post an RFC PR with what I have so far and we can take it from there over the next few days18:56
*** kgugala_ has joined #litex19:00
*** kgugala has quit IRC19:02
*** kgugala_ has quit IRC19:23
*** kgugala has joined #litex19:23
pepijndevosIs there any I2C core?19:30
sajattack[m]it's hiding https://github.com/betrusted-io/gateware/tree/master/gateware/i2c19:41
tpbTitle: gateware/gateware/i2c at master · betrusted-io/gateware · GitHub (at github.com)19:41
pepijndevossajattack[m], thanks :) is that just a third party implementation?20:10
sajattack[m]yeah, by bunnie huang20:10
pepijndevoscool cool i'll look at it later20:11
*** jeanthom has joined #litex21:26
*** jeanthom has quit IRC21:52
*** kgugala_ has joined #litex21:52
*** kgugala has quit IRC21:56
*** jeanthom has joined #litex22:21
*** jeanthom has quit IRC22:47
mithro_florent_: re:SymbiFlow -- I believe many of those issues are fixed already -- the PLL constant one will be shortly22:55
*** lf_ has quit IRC23:25
*** lf has joined #litex23:26
*** jeanthom has joined #litex23:51
*** CarlFK has quit IRC23:52

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!