<futarisIRCcloud> https://www.embeddedonlineconference.com/ - May 20, 2020
<tpb> Title: Embedded Online Conference (at www.embeddedonlineconference.com)
freemint has joined #litex
rohitksingh has joined #litex
atommann has joined #litex
CarlFK has quit [Quit: Leaving.]
freemint has quit [Ping timeout: 248 seconds]
rohitksingh has quit [Ping timeout: 245 seconds]
CarlFK has joined #litex
_whitelogger has joined #litex
CarlFK has quit [Quit: Leaving.]
CarlFK has joined #litex
m4ssi has joined #litex
<atommann> _florent_, seems that at this time netboot does not support KC705, is it easy to port other code to KC705?
<atommann> (my background was microcontroller programming and I am kinda new to FPGA stuff)
<atommann> It takes relative long time to transfer software to KC705 board.
<atommann> Ethernet will be much faster than serial port.
<tpb> Title: linux-on-litex-vexriscv/make.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)
<_florent_> can you try with kc705.EthernetSoC?
<sajattack> _florent_: I updated my PR with my work-in-progress code
<atommann> OK. I try it now.
<_florent_> sajattack: ok, it seems fine, are you able to build it?
<sajattack> no it errors when I run targets/de10nano.py, and there are some spots I'm not happy with
<sajattack> particularly where I have to concat the io and the sdram_io to get access to it, and the soc args
<sajattack> that's the error
<mithro> _florent_: Do you follow the nmigen soc stuff?
<_florent_> sajattack: instead of AlteraPlatform.__init__(self, "5CSEBA6U23I7", _io+_mister_sdram_module_io)
<_florent_> you can do AlteraPlatform.__init__(self, "5CSEBA6U23I7", _io)
<_florent_> and the line after: self.add_extension(_mister_sdram_module_io)
<sajattack> ok thanks
<sajattack> I think it's building now
<_florent_> :)
<sajattack> oh I forgot the --with-sdram
<sajattack> false alarm
<sajattack> yeah still fmt error
<mithro> _florent_: You would probably find the pull requests at https://github.com/m-labs/nmigen-soc/pulls interesting
<tpb> Title: Pull Requests · m-labs/nmigen-soc · GitHub (at github.com)
<_florent_> mithro: i'm following a bit the nmigen-soc work yes, things could indeed be probably be improved a lot but it's not possible to have such radical changes for the projects i maintain that are using Migen/LiteX. So i'm also trying to improve LiteX progressively while trying to keep old code compatible or easy to port. One of the next things i want to do is to be able to switch between Migen and nMigen (in compat mode)
<_florent_> for the verilog generation and then evaluate nMigen while doing a new core. And then see if LiteX should also switch to real nMigen (non compat).
<sajattack> any ideas for my error?
<miek> sajattack / _florent_: it looks like there's a typo in the code https://github.com/enjoy-digital/litex/blob/master/litex/build/altera/quartus.py#L36 - "fmt.r" should be "fmt_r" ?
<tpb> Title: litex/quartus.py at master · enjoy-digital/litex · GitHub (at github.com)
<sajattack> thanks
<sajattack> hmm so I got it compiled and now I'm not getting into the bios
<sajattack> oh I got it now
<sajattack> oh dear memtest fails every test
<_florent_> miek: thanks for the catch
synaption[m] has left #litex ["Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days."]
<sajattack> do I have to do something to set up the sdram clock?
<sajattack> it's a separate section of the _mister_sdram_module_io and I'm not initializing it anywhere afaik
<daveshah> sajattack: yeah, you probably want to create a phase shifted clock and drive it by that - e.g. https://github.com/enjoy-digital/litex/blob/master/litex/boards/targets/de0nano.py#L69
<tpb> Title: litex/de0nano.py at master · enjoy-digital/litex · GitHub (at github.com)
<sajattack> thanks
<sajattack> sweet it passed now
<sajattack> so now I have to load OS over sfl?
<daveshah> yes, if by OS you mean Linux you will need to build linux-on-litex-vexriscv
<sajattack> ok, in any case, PR should be ready, linux will probably have to wait until I have an ftdi cable :P
<sajattack> is it normal for linux-on-litex to not give a bios prompt?
<sajattack> with only gateware loaded
atommann has quit [Ping timeout: 248 seconds]
<daveshah> There should still be a bios prompt with linux-on-litex, but IIRC it uses a different baudrate
<daveshah> something like 500000 or 1000000 for faster kernel loads
<Claude> afaik 1Mbaud
<sajattack> ah ok
<tpb> Title: linux-on-litex-vexriscv/soc_linux.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)
<sajattack> it's ok, I got it now at 1mbaud
<Claude> hmm anyone got a hint for me where to look? i have my own ecp5 board with ddr3 mem. i'm using litesdram with a MT41J128M16JT ddr chip which is in the list of drams supported by litedram. the ddr seems to work, the vecx bios memory test doesn't show any errors and i can write and read data in the bios without errors. so far so fine :) but as soon as i use litesdram my fpga and ddr3 chips get quite hot. same board with just
<Claude> an risc-v blinking around is cool. i think i got the basic ddr3 layout right, because it seems to work. now i supect something in the ODT termination / and or fpga side termination is off. i can almost adjust the temperature of the ddr3 and fpga by changing the fpga side termination value from 50 to 70 to 100 ohms . 50 = hotest , 100 lowest temperature
<daveshah> A degree of heat is pretty normal tbh
<daveshah> given those low termination values, the current involved in DDR3 is pretty high
<Claude> ok so , for example the ecp5 versa ddr3 gets hot too ? with hot i mean almost too hot to touch
<daveshah> maybe not quite that hot, but certainly a lot warmer than idle
<Claude> i will take the board on friday at work, then i can look for excessive under/overshot on the ddr3 lines. currently i have build 3 boards and all show the same symptoms
atommann has joined #litex
<Claude> actually on a cyclone 5 based design with ddr3 all stays very cool. fpga and ddr get lukewarm
<sajattack> linux soc in 2727 ALMs, love it! smaller than MiSTer framework :)
<sajattack> 4180 luts
<atommann> _florent_, that's cool. netboot works for KC705, and it's fast.
<_florent_> atommann: it's indeed a bit faster than serialboot :)
<_florent_> atommann: how fast is the Linux boot on the KC705? 5-6s?
<atommann> about 10 seconds.
<_florent_> including the netboot?
<atommann> yes.
<atommann> Last year one of my friend designed a board which uses Xilinx 7K325T.
<atommann> Here's a photo https://imagebin.ca/v/5AbgW9SRnTPA
<atommann> I am working with him trying to make it work with LiteX.
<_florent_> Nice board, what is it used for?
<atommann> Just a dev board. Like students can use it to learn digital electronics etc.
<_florent_> You should be able to get support for it by adapting the KC705 target/platform
<atommann> In the design my friend used a 12MHz single-ended crystal clock instead of a 200MHz differential clock source.
<atommann> Today he tried to modify the python file according to Arty board but no success.
<_florent_> What was the issue? Compilation or not working on hardware?
<sajattack> what does this assert mean? for framebuffer assert platform.device[:4] == "xc7a"
<daveshah> I think it's because the HDMI output stuff is Artix-7 only
<sajattack> darn
<sajattack> t'would be quite nice to make use of my hdmi port
<tpb> Title: litevideo/s7.py at master · enjoy-digital/litevideo · GitHub (at github.com)
<sajattack> hmm, that doesn't look impossible, but this is my first migen project
<atommann> _florent_, I just called him, compilation passed, I guess he is getting there.
<_florent_> sajattack: that could be a bit tricky as a first project, but S7HDMIOutClocking generates the pixel clock (with dynamic configuration, but dynamic configuration could be avoided as a first step), and S7HDMIOutEncoderSerializer is doing the 10:1 serialization.
<_florent_> i'm not well aware of the Altera primitives, if 10:1 is possible or not
<sajattack> yeah idk
<_florent_> if not, you will need to use Gearbox to do 10:N and then use the primitive to do N:1, but that becomes a bit complicated for a first project
<_florent_> sajattack: using VGA with an external extension board would be easier
<sajattack> yeah
<sajattack> oh ok
<sajattack> yeah I have the vga board
<_florent_> ok, then adding VGA support to Linux-on-LiteX-Vexriscv could be a good contribution and should not be too complicated :)
<sajattack> yeah I'm fairly familiar with vga in verilog
<sajattack> my first project was a vga test pattern from 8bitworkshop and I've done some MiSTer stuff too
<_florent_> ok nice
<sajattack> MiSTer automagically does vga to hdmi haha
<_florent_> ah ok, so if you want to add VGA, you need to add define the VGA pads to your platform, similar to https://github.com/timvideos/litex-buildenv/blob/master/platforms/mimasv2.py#L103-L113
<tpb> Title: litex-buildenv/mimasv2.py at master · timvideos/litex-buildenv · GitHub (at github.com)
<tpb> Title: litevideo/driver.py at master · enjoy-digital/litevideo · GitHub (at github.com)
<_florent_> and create a pix clock domain directly in the target CRG
<mithro> sajattack: There are a lot of tunnables -- you can make it a *lot* smaller than that I believe
<_florent_> then remove the xc7a assert and remove the specific timing constraints: https://github.com/litex-hub/linux-on-litex-vexriscv/blob/master/soc_linux.py#L161-L168
<tpb> Title: linux-on-litex-vexriscv/soc_linux.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)
<mithro> Claude: _florent_ is doing a lot of work around LiteDRAM at the moment -- I'm sure he would be very interested in information like that
<_florent_> Claude: indeed, that's interesting to know. I'm not sure it was that hot on the ECP5 boards i tested, but i could do more tests if needed. Feel free to open an issue on LiteDRAM to discuss that.
<sajattack> ok I'll try that soon _florent_
<sajattack> I'll borrow or buy an ftdi tomorrow
<Claude> mithro: ok as soon as I'm sure my hardware is okay I will give more feedback
<Claude> Ok , but first I triple check the hardware:)
<daveshah> I remember when I was using the TrellisBoard with a weak USB cable, it actually browned out just when Linux started booting. I do suspect increased DDR3 activity was more significant here than anything going on inside the FPGA
sajattack has quit [Ping timeout: 240 seconds]
sajattack has joined #litex
<daveshah> TrellisBoard just idling is getting warm but not hot, that's the biggest package so might be spreading the heat more. I definitely remember the Versa ECP5 chip getting significantly warmer
<Claude> Thanks a lot for testing
<mithro> kgugala: <tumbleweed> mithro: ERROR: [Place 30-640] Place Check : This design requires more RAMB18 and RAMB36/FIFO cells than are available in the target device. This design requires 132 of such cell types but only 100 compatible sites are available in the target device. Please analyze your synthesis results and constraints to ensure the design is mapped to Xilinx primitives as expected. If so, please consider targeting a
<mithro> larger device.
<mithro> kgugala - tumbleweed is trying to work on getting NeTV2 for PCIe going
<_florent_> mithro: which design is it? is it https://github.com/enjoy-digital/netv2/?
<tpb> Title: GitHub - enjoy-digital/netv2: NeTV2 SoC based on LiteX (at github.com)
<mithro> _florent_: No the one in litex-buildenv
<tpb> Title: litex-buildenv/hdmi2pcie.py at master · timvideos/litex-buildenv · GitHub (at github.com)
<_florent_> mithro: ah ok, it's indeed a bit tricky to have PCIe + HDMI on the xc7a35t
<tpb> Title: litex-buildenv/netv2.py at master · timvideos/litex-buildenv · GitHub (at github.com)
<mithro> I actually believe this NeTV2 is a 100T
<mithro> But I'm unsure how to check given the part is covered by a head sink...
<mithro> _florent_: Can you use jtag to read which part?
<_florent_> mithro: as just discussed with kgugala, i just added optional CSRs to LiteDRAM DMAs, this make it very easy to let the CPU program the DMA and from the user logic, just used the source or sink
<tpb> Title: frontend/dma: add optional CSR control · enjoy-digital/litedram@090620c · GitHub (at github.com)
<_florent_> used/use
<_florent_> mithro: OpenOCD will read the device ID
* tumbleweed can try to read that
<tpb> Title: shadow_base was replaced by base_address by stefanor · Pull Request #310 · timvideos/litex-buildenv · GitHub (at github.com)
<tpb> Title: netv2/netv2.py at master · enjoy-digital/netv2 · GitHub (at github.com)
<tumbleweed> Info : JTAG tap: xc7.tap tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)
<tumbleweed> _florent_: OK, so no magics needed
<tpb> Title: jtag-mpsse/jtag-mpsse.c at master · swetland/jtag-mpsse · GitHub (at github.com)
<somlo> _florent_: haven't been following the conversation carefully, but +1 to DMA support in LiteDRAM :)
<_florent_> somlo: the DMA was already there, but the used was generating the address stream, not this can be controlled by the CPU
<_florent_> so for a DMA Reader, the CPU just programs the base address, length, and start the transfer. The source if the DMA will generate the data and the user can just use it.
<_florent_> same for a DMA Writer but in the others direction: the CPU programs the transfer and the user provides the data in the DMA sink.
<_florent_> others/other
<somlo> I'll have to sit down and study all the moving parts, but I'd love to have DMA support in the LiteX+Rocket computer (I think LiteETH would/could be much faster that way)
<_florent_> somlo: in fact there were already similar features in LiteVideo, but directly integrated in LiteVideo. Here it becomes more generic and usable for others purposes. (for example here we want to use the DMA Reader to read data from the DDR3 and send it to the PCIe DMA and the opposite).
<_florent_> somlo: ie the DMA you can see between LiteDRAM and LitePCIe in https://github.com/enjoy-digital/netv2/blob/master/doc/architecture.png
<tpb> Title: netv2/architecture.png at master · enjoy-digital/netv2 · GitHub (at github.com)
<tpb> Title: litex-buildenv/netv2.py at c27ca257f49e580183222aa2b10623ae6c544553 · timvideos/litex-buildenv · GitHub (at github.com)
<kgugala> mithro: I have it going on 35t
<tumbleweed> mithro: yeah, trying it
<mithro> tumbleweed: It's a bit of a distraction, but we should really finish of https://github.com/timvideos/litex-buildenv/pull/311 too...
<tpb> Title: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)
<kgugala> with DMA capable of moving data between liteDRAM and host RAM via PCIE
<kgugala> very dirty code is here https://github.com/antmicro/netv2/tree/v4l2
<tpb> Title: GitHub - antmicro/netv2 at v4l2 (at github.com)
<kgugala> this one have V4L2 driver
<kgugala> *has
<mithro> Well, I don't think you can use a 35t bitstream on a 100t part anyway?
rohitksingh has joined #litex
<mithro> hey rohitksingh!
<mithro> rohitksingh: Would love your eyes looking over https://github.com/timvideos/litex-buildenv/pull/311
<tpb> Title: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)
<rohitksingh> mithro: Hi! Sure, let me go through the PR!
<tpb> Title: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)
<mithro> tumbleweed: That should probably be merged before the modernize one...
atommann has left #litex [#litex]
freemint has joined #litex
rohitksingh has quit [Ping timeout: 245 seconds]
freemint has quit [Remote host closed the connection]
freemint has joined #litex
CarlFK has quit [Ping timeout: 240 seconds]
rohitksingh has joined #litex
CarlFK has joined #litex
rohitksingh has quit [Ping timeout: 272 seconds]
CarlFK has quit [Ping timeout: 265 seconds]
CarlFK has joined #litex
sajattack has quit [Remote host closed the connection]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 260 seconds]
rohitksingh has joined #litex
freemint has quit [Ping timeout: 245 seconds]
_franck_ has quit [Remote host closed the connection]
_franck_ has joined #litex
rohitksingh has quit [Ping timeout: 248 seconds]
rohitksingh has joined #litex
tumbleweed has quit [*.net *.split]
tumbleweed has joined #litex
tumbleweed has joined #litex
<mithro> _florent_: Why do you have to provide a `origin` value to add_memory_region *and* something in mem_map?
<mithro> Oh - this is the `add_mem_region` verse `add_memory_region` :-/
freemint has joined #litex
rohitksingh has quit [Ping timeout: 248 seconds]
rohitksingh has joined #litex
andresfcalderon6 has joined #litex
andresfcalderon6 has quit [Remote host closed the connection]
andresfcalderon has joined #litex
<_florent_> mithro: yes, i haven't finish validation of add_mem_region, but we should be able to switch to it soon and simplify the targets
<mithro> _florent_: I have an alternative I'm about to push
<mithro> _florent_: Your alloc_mem_region doesn't seem to do what I expected....
<mithro> _florent_: https://github.com/enjoy-digital/litex/pull/369/files -- this doesn't quite work
<tpb> Title: WIP: Attempt at doing a better add_memory_region by mithro · Pull Request #369 · enjoy-digital/litex · GitHub (at github.com)
rohitksingh has quit [Ping timeout: 245 seconds]
<andresfcalderon> Hi, I'm new here ... but I've already begun to see the magic of LiteX
<andresfcalderon> Currently I'm testing LiteX on an unsupported board (MATRIX Voice), the board has an FPGA XC6SLX9 with 64MBytes of DDR2. The initialization seems fine (Memtest OK) https://imagebin.ca/v/5AeUVHjSE9dD
<andresfcalderon> I got an error booting:
<andresfcalderon> [FLTERM] Got unknown reply 'T' from the device, aborting.
<andresfcalderon> the full boot message:
<andresfcalderon> --============== Boot ==================--Booting from serial...Press Q or ESC to abort boot completely.sL5DdSMmkekro[FLTERM] Received firmware download request from the device.[FLTERM] Uploading kernel (50356 bytes)...[FLTERM] Got unknown reply 'T' from the device, aborting.[FLTERM] Booting the device.[FLTERM] Got unknown reply 'i' from the
<andresfcalderon> device, aborting.meoutBooting from flash...Error: Invalid image length 0xffffffffNo boot medium found
rohitksingh has joined #litex
<mithro> xobs: I don't think the loopback uart is working for me anymore...
_whitelogger has joined #litex
tpb has quit [Remote host closed the connection]
tpb has joined #litex