Thursday, 2020-01-30

*** tpb has joined #litex00:00
futarisIRCcloudhttps://www.embeddedonlineconference.com/ - May 20, 202000:53
tpbTitle: Embedded Online Conference (at www.embeddedonlineconference.com)00:54
*** freemint has joined #litex01:03
*** rohitksingh has joined #litex01:28
*** atommann has joined #litex01:54
*** CarlFK has quit IRC03:52
*** freemint has quit IRC04:51
*** rohitksingh has quit IRC05:02
*** CarlFK has joined #litex05:26
*** _whitelogger has quit IRC05:58
*** _whitelogger has joined #litex06:01
*** CarlFK has quit IRC08:05
*** CarlFK has joined #litex08:28
futarisIRCcloudhttps://twitter.com/pdp7/status/1222582567137947648?s=1908:37
*** m4ssi has joined #litex08:38
atommann_florent_, seems that at this time netboot does not support KC705, is it easy to port other code to KC705?09:03
atommann(my background was microcontroller programming and I am kinda new to FPGA stuff)09:03
atommannIt takes relative long time to transfer software to KC705 board.09:04
atommannEthernet will be much faster than serial port.09:04
_florent_atommann: it's probably a typo here: https://github.com/litex-hub/linux-on-litex-vexriscv/blob/master/make.py#L8709:36
tpbTitle: linux-on-litex-vexriscv/make.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)09:36
_florent_can you try with kc705.EthernetSoC?09:36
sajattack_florent_: I updated my PR with my work-in-progress code09:55
atommannOK. I try it now.09:56
_florent_sajattack: ok, it seems fine, are you able to build it?09:57
sajattackno it errors when I run targets/de10nano.py, and there are some spots I'm not happy with09:57
sajattackparticularly where I have to concat the io and the sdram_io to get access to it, and the soc args09:58
sajattackhttps://hastebin.com/raw/eyadexosuj10:00
sajattackthat's the error10:00
mithro_florent_: Do you follow the nmigen soc stuff?10:01
_florent_sajattack: instead of AlteraPlatform.__init__(self, "5CSEBA6U23I7", _io+_mister_sdram_module_io)10:03
_florent_you can do AlteraPlatform.__init__(self, "5CSEBA6U23I7", _io)10:03
_florent_and the line after: self.add_extension(_mister_sdram_module_io)10:03
sajattackok thanks10:03
sajattackI think it's building now10:05
_florent_:)10:05
sajattackoh I forgot the --with-sdram10:06
sajattackfalse alarm10:06
sajattackyeah still fmt error10:06
mithro_florent_: You would probably find the pull requests at https://github.com/m-labs/nmigen-soc/pulls interesting10:07
tpbTitle: Pull Requests · m-labs/nmigen-soc · GitHub (at github.com)10:07
_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)10:26
_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).10:26
sajattackany ideas for my error?10:54
mieksajattack / _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" ?10:59
tpbTitle: litex/quartus.py at master · enjoy-digital/litex · GitHub (at github.com)10:59
sajattackthanks11:03
sajattackhmm so I got it compiled and now I'm not getting into the bios11:20
sajattackoh I got it now11:22
sajattackoh dear memtest fails every test11:23
_florent_miek: thanks for the catch11:23
*** synaption[m] has left #litex11:24
sajattackdo I have to do something to set up the sdram clock?11:29
sajattackit's a separate section of the _mister_sdram_module_io and I'm not initializing it anywhere afaik11:30
daveshahsajattack: 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#L6911:32
tpbTitle: litex/de0nano.py at master · enjoy-digital/litex · GitHub (at github.com)11:32
sajattackthanks11:32
sajattacksweet it passed now11:39
sajattackso now I have to load OS over sfl?11:40
daveshahyes, if by OS you mean Linux you will need to build linux-on-litex-vexriscv11:45
sajattackok, in any case, PR should be ready, linux will probably have to wait until I have an ftdi cable :P11:46
sajattackis it normal for linux-on-litex to not give a bios prompt?11:52
sajattackwith only gateware loaded11:53
*** atommann has quit IRC11:54
daveshahThere should still be a bios prompt with linux-on-litex, but IIRC it uses a different baudrate11:56
daveshahsomething like 500000 or 1000000 for faster kernel loads11:56
Claudeafaik 1Mbaud11:56
sajattackah ok11:56
daveshahyou can change it here https://github.com/litex-hub/linux-on-litex-vexriscv/blob/master/soc_linux.py#L9711:57
tpbTitle: linux-on-litex-vexriscv/soc_linux.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)11:57
sajattackit's ok, I got it now at 1mbaud11:58
Claudehmm 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 just12:02
Claudean 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 temperature12:02
daveshahA degree of heat is pretty normal tbh12:03
daveshahgiven those low termination values, the current involved in DDR3 is pretty high12:03
Claudeok so , for example the ecp5 versa ddr3 gets hot too ? with hot i mean almost too hot to touch12:04
daveshahmaybe not quite that hot, but certainly a lot warmer than idle12:05
Claudei 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 symptoms12:06
*** atommann has joined #litex12:06
Claudeactually on a cyclone 5 based design with ddr3 all stays very cool. fpga and ddr get lukewarm12:07
sajattacklinux soc in 2727 ALMs, love it! smaller than MiSTer framework :)12:09
sajattack4180 luts12:12
atommann_florent_, that's cool. netboot works for KC705, and it's fast.12:22
_florent_atommann: it's indeed a bit faster than serialboot :)12:34
_florent_atommann: how fast is the Linux boot on the KC705? 5-6s?12:34
atommannabout 10 seconds.12:38
_florent_including the netboot?12:39
atommannyes.12:40
atommannLast year one of my friend designed a board which uses Xilinx 7K325T.12:46
atommannHere's a photo https://imagebin.ca/v/5AbgW9SRnTPA12:46
atommannI am working with him trying to make it work with LiteX.12:47
_florent_Nice board, what is it used for?12:48
atommannJust a dev board. Like students can use it to learn digital electronics etc.12:49
_florent_You should be able to get support for  it by adapting the KC705 target/platform12:49
atommannIn the design my friend used a 12MHz single-ended crystal clock instead of a 200MHz differential clock source.12:49
atommannToday he tried to modify the python file according to Arty board but no success.12:50
_florent_What was the issue? Compilation or not working on hardware?12:51
sajattackwhat does this assert mean? for framebuffer assert platform.device[:4] == "xc7a"12:52
daveshahI think it's because the HDMI output stuff is Artix-7 only12:53
sajattackdarn12:53
sajattackt'would be quite nice to make use of my hdmi port12:54
daveshahYou would have to make an equivalent to https://github.com/enjoy-digital/litevideo/blob/master/litevideo/output/hdmi/s7.py12:55
tpbTitle: litevideo/s7.py at master · enjoy-digital/litevideo · GitHub (at github.com)12:55
sajattackhmm, that doesn't look impossible, but this is my first migen project12:56
atommann_florent_, I just called him, compilation passed, I guess he is getting there.12:57
_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.13:00
_florent_i'm not well aware of the Altera primitives, if 10:1 is possible or not13:01
sajattackyeah idk13:02
_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 project13:02
_florent_sajattack: using VGA with an external extension board would be easier13:03
sajattackyeah13:03
sajattackoh ok13:03
sajattackyeah I have the vga board13:03
_florent_ok, then adding VGA support to Linux-on-LiteX-Vexriscv could be a good contribution and should not be too complicated :)13:07
sajattackyeah I'm fairly familiar with vga in verilog13:08
sajattackmy first project was a vga test pattern from 8bitworkshop and I've done some MiSTer stuff too13:11
_florent_ok nice13:13
sajattackMiSTer automagically does vga to hdmi haha13:13
_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-L11313:19
tpbTitle: litex-buildenv/mimasv2.py at master · timvideos/litex-buildenv · GitHub (at github.com)13:19
_florent_then in a first time, comment this: https://github.com/enjoy-digital/litevideo/blob/master/litevideo/output/driver.py#L5213:19
tpbTitle: litevideo/driver.py at master · enjoy-digital/litevideo · GitHub (at github.com)13:19
_florent_and create a pix clock domain directly in the target CRG13:19
mithrosajattack: There are a lot of tunnables -- you can make it a *lot* smaller than that I believe13:20
_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-L16813:21
tpbTitle: linux-on-litex-vexriscv/soc_linux.py at master · litex-hub/linux-on-litex-vexriscv · GitHub (at github.com)13:21
mithroClaude: _florent_ is doing a lot of work around LiteDRAM at the moment -- I'm sure he would be very interested in information like that13:23
_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.13:27
sajattackok I'll try that soon _florent_13:28
sajattackI'll borrow or buy an ftdi tomorrow13:28
Claudemithro: ok as soon as I'm sure my hardware is okay I will give more feedback13:28
ClaudeOk , but first I triple check the hardware:)13:29
daveshahI 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 FPGA13:33
*** sajattack has quit IRC13:35
*** sajattack has joined #litex13:35
daveshahTrellisBoard 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 warmer13:36
ClaudeThanks a lot for testing13:58
mithrokgugala: <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 a14:28
mithrolarger device.14:28
mithrokgugala - tumbleweed is trying to work on getting NeTV2 for PCIe going14:29
_florent_mithro: which design is it? is it https://github.com/enjoy-digital/netv2/?14:30
tpbTitle: GitHub - enjoy-digital/netv2: NeTV2 SoC based on LiteX (at github.com)14:30
mithro_florent_: No the one in litex-buildenv14:30
mithrohttps://github.com/timvideos/litex-buildenv/blob/master/targets/netv2/hdmi2pcie.py I assume...14:31
tpbTitle: litex-buildenv/hdmi2pcie.py at master · timvideos/litex-buildenv · GitHub (at github.com)14:31
_florent_mithro: ah ok, it's indeed a bit tricky to have PCIe + HDMI on the xc7a35t14:31
mithrohttps://github.com/timvideos/litex-buildenv/blob/master/platforms/netv2.py#L21314:31
tpbTitle: litex-buildenv/netv2.py at master · timvideos/litex-buildenv · GitHub (at github.com)14:31
mithroI actually believe this NeTV2 is a 100T14:32
mithroBut I'm unsure how to check given the part is covered by a head sink...14:32
mithro_florent_: Can you use jtag to read which part?14:32
_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 sink14:32
_florent_https://github.com/enjoy-digital/litedram/commit/090620c9d6ef245af7122b39c6f405201e8fe00114:32
tpbTitle: frontend/dma: add optional CSR control · enjoy-digital/litedram@090620c · GitHub (at github.com)14:33
_florent_used/use14:33
_florent_mithro: OpenOCD will read the device ID14:35
* tumbleweed can try to read that14:36
tumbleweed_florent_: also: https://github.com/timvideos/litex-buildenv/pull/31014:36
tpbTitle: shadow_base was replaced by base_address by stefanor · Pull Request #310 · timvideos/litex-buildenv · GitHub (at github.com)14:36
_florent_tumbleweed: https://github.com/enjoy-digital/netv2/blob/master/netv2.py#L17114:39
tpbTitle: netv2/netv2.py at master · enjoy-digital/netv2 · GitHub (at github.com)14:39
tumbleweedInfo : JTAG tap: xc7.tap tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)14:41
tumbleweed_florent_: OK, so no magics needed14:42
_florent_tumbleweed: that's an xc7a100t: https://github.com/swetland/jtag-mpsse/blob/master/jtag-mpsse.c#L4314:44
tpbTitle: jtag-mpsse/jtag-mpsse.c at master · swetland/jtag-mpsse · GitHub (at github.com)14:44
somlo_florent_: haven't been following the conversation carefully, but +1 to DMA support in LiteDRAM :)14:45
_florent_somlo: the DMA was already there, but the used was generating the address stream, not this can be controlled by the CPU14:46
_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.14:48
_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.14:48
_florent_others/other14:48
somloI'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)14:50
_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).14:52
_florent_somlo: ie the DMA you can see between LiteDRAM and LitePCIe in https://github.com/enjoy-digital/netv2/blob/master/doc/architecture.png14:53
tpbTitle: netv2/architecture.png at master · enjoy-digital/netv2 · GitHub (at github.com)14:53
mithrotumbleweed: You should just be able to change the https://github.com/timvideos/litex-buildenv/blob/c27ca257f49e580183222aa2b10623ae6c544553/platforms/netv2.py#L213 to use a 100t?15:03
tpbTitle: litex-buildenv/netv2.py at c27ca257f49e580183222aa2b10623ae6c544553 · timvideos/litex-buildenv · GitHub (at github.com)15:03
kgugalamithro: I have it going on 35t15:04
tumbleweedmithro: yeah, trying it15:04
mithrotumbleweed: It's a bit of a distraction, but we should really finish of https://github.com/timvideos/litex-buildenv/pull/311 too...15:04
tpbTitle: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)15:04
kgugalawith DMA capable of moving data between liteDRAM and host RAM via PCIE15:05
kgugalavery dirty code is here https://github.com/antmicro/netv2/tree/v4l215:05
tpbTitle: GitHub - antmicro/netv2 at v4l2 (at github.com)15:05
kgugalathis one have V4L2 driver15:05
kgugala*has15:06
mithroWell, I don't think you can use a 35t bitstream on a 100t part anyway?15:07
*** rohitksingh has joined #litex15:08
mithrohey rohitksingh!15:08
mithrorohitksingh: Would love your eyes looking over https://github.com/timvideos/litex-buildenv/pull/31115:09
tpbTitle: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)15:09
rohitksinghmithro: Hi! Sure, let me go through the PR!15:09
mithrotumbleweed: https://github.com/timvideos/litex-buildenv/pull/311/commits/39274117bbd6c55428df5bbaba8747718031712215:30
tpbTitle: WIP -- Modernize platforms + target files by mithro · Pull Request #311 · timvideos/litex-buildenv · GitHub (at github.com)15:30
mithrotumbleweed: That should probably be merged before the modernize one...15:30
*** atommann has left #litex15:36
*** freemint has joined #litex15:53
*** rohitksingh has quit IRC16:31
*** freemint has quit IRC16:56
*** freemint has joined #litex16:56
*** CarlFK has quit IRC18:08
*** rohitksingh has joined #litex18:23
*** CarlFK has joined #litex18:25
*** rohitksingh has quit IRC18:32
*** CarlFK has quit IRC18:33
*** CarlFK has joined #litex18:56
*** sajattack has quit IRC19:02
*** rohitksingh has joined #litex19:03
*** rohitksingh has quit IRC19:31
*** rohitksingh has joined #litex19:32
*** freemint has quit IRC19:33
*** _franck_ has quit IRC19:35
*** _franck_ has joined #litex19:36
*** rohitksingh has quit IRC20:31
*** rohitksingh has joined #litex20:32
*** tumbleweed has quit IRC20:36
*** tumbleweed has joined #litex20:37
*** tumbleweed has joined #litex20:37
mithro_florent_: Why do you have to provide a `origin` value to add_memory_region *and* something in mem_map?21:33
mithroOh - this is the `add_mem_region` verse `add_memory_region` :-/21:36
*** freemint has joined #litex21:46
*** rohitksingh has quit IRC21:50
*** rohitksingh has joined #litex21:52
*** andresfcalderon6 has joined #litex22:17
*** andresfcalderon has joined #litex22:17
_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 targets22:18
mithro_florent_: I have an alternative I'm about to push22:20
mithro_florent_: Your alloc_mem_region doesn't seem to do what I expected....22:31
mithro_florent_: https://github.com/enjoy-digital/litex/pull/369/files -- this doesn't quite work22:36
tpbTitle: WIP: Attempt at doing a better add_memory_region by mithro · Pull Request #369 · enjoy-digital/litex · GitHub (at github.com)22:36
*** rohitksingh has quit IRC22:39
andresfcalderonHi, I'm new here ... but I've already begun to see the magic of LiteX22:42
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/5AeUVHjSE9dD22:42
andresfcalderonI got an error booting:22:42
andresfcalderon[FLTERM] Got unknown reply 'T' from the device, aborting.22:42
andresfcalderonthe full boot message:22:45
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 the22:45
andresfcalderondevice, aborting.meoutBooting from flash...Error: Invalid image length 0xffffffffNo boot medium found22:45
*** rohitksingh has joined #litex22:56
mithroxobs: I don't think the loopback uart is working for me anymore...23:21
*** _whitelogger has quit IRC23:45
*** _whitelogger has joined #litex23:48

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!