Friday, 2020-05-08

*** tpb has joined #litex00:00
*** Skip has quit IRC00:17
*** CarlFK has quit IRC00:38
*** CarlFK has joined #litex00:48
*** HoloIRCUser1 has joined #litex00:52
*** HoloIRCUser has quit IRC00:55
*** CarlFK has quit IRC01:30
*** Degi has quit IRC03:38
*** Degi has joined #litex03:38
_florent_sajattack[m]: the XC7K325T boards could be interesting, but the nice thing with the Acorn is that it's a NiteFury: https://www.crowdsupply.com/rhs-research/nitefury, so already fully documented :)08:20
zypoh, I didn't realize, that's nice08:23
zypI also ordered one of those things yesterday08:24
benh_florent_: I orderd one :-) Do you know of some place that sells adapters M2 <-> female PCIe connector to use it as PCIe master ?08:24
benhor M2 <- > M208:24
benh_florent_: also what do you typically use to program it ?08:26
_florent_benh: the issue when for using it as master will be the clocking, the adapter will need to generate the clock08:29
_florent_benh: you could use traditional M2 to PCIe adapter and then connect the two PCIe boards using 2 USB3 to PCIe riser and a USB3 cable (that will swap the pairs)08:31
benhsounds ... messy :-) but ok08:32
_florent_benh: but that's only for the PCIe lanes, you'll have to add the 100MHz clock.08:32
benhcan't the Artix generate it ?08:32
benhthat would be violating the slot standard but ...08:33
benhin the meantime, I'll probably need to sort out the jtag cable... what do you use for it ? custom made ?08:34
benhand do you get the UART out somewhere ?08:34
zypit shouldn't be that hard to do a board with either two M.2 sockets or an M.2 and a pcie socket, cross routed plus a clock generator08:35
benhif you are a hw guy who has done boards in the past :)08:36
benhbut I can probably find such quirky individuals around here :)08:37
benhpaulus might be able to08:37
benhzyp: additionally such a board could provide power... it would be handy for a number of other things imho08:37
benhI was just wondering if such a thing already existed somewhere08:38
_florent_benh: the jtag, you could use this https://www.digikey.com/product-detail/en/molex/0369200601/WM26622-ND/1023301808:38
tpbTitle: 0369200601 Molex | Cable Assemblies | DigiKey (at www.digikey.com)08:38
_florent_to do a cable like this: https://www.eevblog.com/forum/fpga/sqrl-acorn-as-an-interesting-artix-7-board/msg3046402/#msg304640208:38
tpbTitle: SQRL Acorn as an interesting Artix-7 board? - Page 2 (at www.eevblog.com)08:38
_florent_and the same for the UART (in my case the UART was done over PCIe)08:39
benhyup, thx08:41
benhwhat USB jtag adapter do you guys favor these days ?08:46
daveshahAny generic FT2232H is good enough for 99% of stuff imo08:47
benhyup08:47
*** futarisIRCcloud has quit IRC08:55
benh_florent_: I assume you haven't had a chance to look at litedram_gen when using cpu "None" ?09:04
benh_florent_: If you can't, I'll try to spend some time this weekend understand how the SoC stuff got refactored and see if I can fix it09:05
_florent_benh: not yet no sorry09:05
benh_florent_: btw, Paulus got Linux booting on microwatt :-)09:05
benhstill hacks, esp since the toolchain basically assumes that powerpc64le has float & vectors09:05
_florent_benh: great, using LiteDRAM?09:05
benhbut he got it to busybox09:05
benhyup09:05
benhI've cleaned up my litedram adapter09:05
benhI now ship pre-generated cores and a script to re-generate so ppl dont' need to install Litex and don't have to deal with breakage when things change09:06
benhI'll send Anton a pull request soon09:06
benhdoing a bit more testing09:06
benh_florent_: I also haven't had much time to dig again into pipelining the wishbone <-> native litedram interface09:07
benhthat will be a good boost when I can do it09:07
_florent_benh: i could try to help that; that would be easier if we get things working with ghdl-synth before to be able to simulate with litex_sim09:09
*** captain_morgan has quit IRC09:12
*** captain_morgan has joined #litex09:12
benhyes, it would, I need to learn about it a bit09:22
benhAnton knows more but he is a bit scarce at the moment :)09:22
benh_florent_: btw, stupid vivado issue but you might know what it's about ... if I build with litedram disabled, I basically have the dram wires still in the xdc and the toplevel but I don't plumb them to anything09:55
benh_florent_: that leads to the following error in vivado09:55
benhERROR: [DRC IOSTDTYPE-1] IOStandard Type: I/O port ddram_clk_n is Single-Ended but has an IOStandard of DIFF_SSTL135 which can only support Differential09:55
benhERROR: [DRC IOSTDTYPE-1] IOStandard Type: I/O port ddram_clk_p is Single-Ended but has an IOStandard of DIFF_SSTL135 which can only support Differential09:55
benhinterestingly it doesn't seem to complain about any other DIFF_SSTL135 wire09:55
benhany idea what that means ?09:55
benhie, it's not complaining about dqs_p and dqs_n afaik09:57
dkozelMy CLE-215+ have arrived. VRM heatsinks need to be reattached and I've ordered the JTAG cables. I haven't tried using an FT2232H (or similar) to load the FPGA and Flash, Sounds well worth a shot.10:01
benh_florent_: the weird thing is I'm  pretty sure that used to work ...10:12
_florent_benh: Vivado is probably considering it as single ended when not connected, the difference with the others DIFF signals is that clk is an output, the others are inouts10:15
benh_florent_: interestingly enough that used not to happen ... any suggestion on how to work around it without having separate toplevels ?10:32
benh_florent_: what would go wrong if I made it inout for example ?10:32
_florent_benh: you can try to make it inout10:33
benhotherwise I'd have to hookup a differential buff of some sort right ?10:33
daveshahAn OBUFDS with I connected to 0 would work10:34
benhyup, I was thinking of that, I just couldn't remember the name :) thx. I'll try that10:34
*** benh has quit IRC10:55
*** benh has joined #litex10:55
*** scanakci has quit IRC11:10
benh_florent_: so I started having a look at "raw" sdram generation... the new structure makes it hard to completely take out the wishbone :)11:46
benh_florent_: you end up with self.bus = None in the SoC stuff and you have to add a lot of conditionals... a bit ugly11:46
benh_florent_: I suppose I could continue down that path, or make a dummy "bus" object that does nothing11:46
benh_florent_: one problem I haven't solved yet is exposing the CSRs... add_csr_master() is gone or replaced with something else ... digging11:47
benh_florent_: it gets really messy to remove the bus completely now :(11:50
benh_florent_: another approach would be to just leave a wishbone on top of the CSRs with just the CSRs on it and expose that to microwatt11:50
benhwhat do you reckon ?11:51
benhI tend to prefer less extraneous logic as we are trying to fit into the little arty and the core's growing... maybe I'll see about a dummy bus object11:53
benhno bus at all wreaks havoc with mem regions etc...11:53
benhI'm making progress with a dummy SoCBusHandler... now to get the CSR bus exposed...12:04
somloso, 64-bit Litex+Rocket is now technically capable of self-hosting :) http://www.contrib.andrew.cmu.edu/~somlo/BTCP/LitexRocketSelfHosting.mp412:07
somlohere's the transcript if you don't feel like waiting for the (slow) video: http://www.contrib.andrew.cmu.edu/~somlo/BTCP/LitexRocketSelfHosting.log12:07
benhso CSR bus exposed... now to get CSRs in csr.h would be nice :)12:13
*** Claude has quit IRC12:16
*** rvense has quit IRC12:17
*** rvense has joined #litex12:17
sajattack[m]@somlo nifty12:18
somlosajattack[m]: thanks :) Free-as-in-Freedom all-the-way-down (to the gateware)12:21
somlonow I need to make it faster before it's *useful*, but hey, that's a "simple matter of programming" :)12:22
sajattack[m]haha12:28
sajattack[m]would be curious to see how long it takes to synth and pnr, looks like you were bottlenecking on I/O12:39
*** Claude has joined #litex12:46
somloloading things from the sdcard (over SPI) is slow. I guess I'll circle back on LiteSDCard, see what I can get away with once that starts working reliably12:57
benh_florent_: I think I'm getting there so don't bother about it until you start seeing patches from me, and then hopefully you won't puke :)12:58
somloalso, last time I checked, synth with yosys needed 1.3GB resident memory (on intel), and I only have 1GB on the trellisboard. I should refresh my toolchain and see if the latest and greatest somehow fits in a bit less RAM12:59
Findebenh: that is awesome about microwatt linux! are there any pics of the boot to share?13:14
Findeis there an irc channel or something for microwatt enthusiasts to gather on? :)13:15
benhFinde: not yet :) There's a slack but I don't know if it's public13:22
benhFinde: you can ask Mikey13:22
benhMichael Neuling <[email protected]>13:23
*** HoloIRCUser has joined #litex13:23
benhAt the last LCA we just got our icache and dcache, and at that point I discovered in horror that I had written about half of microwatt :)13:23
benhthankfully I got back to doing real work and Paul has been the busy bee since, adding a little MMU13:24
benhhe's adding enough FP support now so that the core can do basic FP load/stores and we can emulate the rest in SW :)13:24
*** HoloIRCUser1 has quit IRC13:26
*** Skip has joined #litex13:29
*** HoloIRCUser1 has joined #litex13:30
*** HoloIRCUser has quit IRC13:32
Findehahaha14:01
benh_florent_: hrm... sdram.c now depends on the LiteX timer being there.. that's rather ... annoying :)14:57
zypsomlo, I'm tempted to do an ecp5 board with a sodimm socket, to make a cheap design with lots of ram14:57
zyppartly because it'd be cool to have a design that can synthesize itself14:58
benh_florent_: I might try to hid that behind a simple abstraction...14:58
benh_florent_: not just for standalone microwatt inits, but also bcs even if run in LiteX, microwatt doesn't really need/want that external timer14:58
benhpowerpc has an architected timebase & decrementer facility in the core14:59
somlozyp: I was told it's supposed to be a fiddly endeavor, with lots of trial-and-error, getting all the traces "just right" to a sodimm15:07
somlobut if you pull it off, I'll definitely want to put in for a batch of 5-10 of such boards :)15:08
somloideally, I'd like to see the trellisboard (https://github.com/daveshah1/TrellisBoard) modded to support a sodimm socket15:11
tpbTitle: GitHub - daveshah1/TrellisBoard: Ultimate ECP5 development board (at github.com)15:11
somlodisclaimer: I have zero skill designing PCBs, so this is just me flapping my gums at this point :D15:12
benhanything powered off the same USB that does FTDI JTAG & UART will rock for me :)15:13
benhideally with PCIe *host* as well ... hehe15:13
benhI can't design PCBs for the life of me... 4 decades doing SW, I just skimmed some HW design skills off colleagues over the year, just enough to hack FPGAs a bit but don't let me go anywhere near anything analog :)15:14
zypsomlo, to me, routing a sodimm socket looks easier than routing to soldered ICs15:14
zypthe challenge is that a sodimm is 64-bits wide15:15
benhan M2 connector would do for PCIe as well15:15
benhzyp: aren't there "interesting" issues with trace lenght ?15:15
somlobenh: I think I see where you're going with pci host: plant the fpga dev board into something like this: https://www.onestopsystems.com/product/cube2-metal-expansion-enclosure-5-pcie-slots15:16
tpbTitle: CUBE2 METAL expansion enclosure, 5 PCIe slots | One Stop Systems (at www.onestopsystems.com)15:16
zypas far as I can tell, it'll need IO from both left and right side banks to get enough DQS groups, which makes clocking the design more challenging15:16
somloand have support for off-the-shelf peripherals, like a regular pc motherboard, except with a risc-v cpu and northbridge15:16
zypbut ecp5 has an «edge clock bridge» which apparently is supposed to solve that15:17
benhsomlo: well, I want a way to get PCIe master, anything will do15:17
zypso it might work :)15:17
benhM2 female, PCIe female etc...15:17
benhthat way you can stick an M2 for storage15:17
benhor a cable card to an external expansion for more stuff15:17
benhand get real IOs15:17
benhbut that's the guy who use to work on server chips talking so .... :)15:17
somlozyp: all I can do is say encouraging stuff, cheer you on, and kibbitz from the sidelines until you have something that works, but it WOULD rock if you pulled it off! :)15:18
benhbut once you have the host connector, the sky's the limit. From just a local nvme M2 or wifi to bridges with sockets etc...15:18
benhwell, if it looks like it's going to rock enough for me I can chip some $ in too15:18
benh(mind you personal hobby $, so you won't get rich)15:18
benhmaybe some friends might too15:19
benhAt some stage I might try to tweak microwatt into a 32-bit cpu I can run old MacOS on :)15:19
benhthough not before Paulus gets an FPU going :)15:19
benhanyway, I'm way out of topic for the channel, sorry guys :) Friday night ....15:20
somlobenh: oh, cool, it's Friday... totally forgot ;)15:20
benhwell it's Sat. already here :)15:20
benhoh btw, now that I have some experienced ppl around ...15:21
benhone issue I've been seeing with microwatt when I use litedram (which might relate to sourcing the clock from litedram's pll rather than our old clock generator)15:21
sajattack[m]there's a different connector for pcie host and device?15:21
benhthe UART output is crappola for a few hundred milliseconds15:21
benhso the first messages out of the core are garbled15:22
benhif I put a wait loop before outputing things, it's fine15:22
benhit looks like the clocks aren't rigght for some amount of time despite the PLL being locked15:22
benhbut it could be something else too...15:23
benhsajattack[m]: well... yes and no ...15:23
benhPCIe is symetrical P2P mostly15:23
benhbut someone has to provide the clock and power15:23
sajattack[m]oh ok15:23
benhand I yet have to see a base board that provides power, has an M2 female, and wires that to a PCIe female connector (or another M2 female) :)15:24
benhso far the best idea is _florent_'s (iirc) to use cable cards and swap wires15:24
benh(the ones that use a USB cable)15:24
sajattack[m]yeah I was talking with my friend about the board florent discovered and he said it would be possible to do stuff like take over the audio card in a pc and make a synth and stuff15:24
sajattack[m]bit overkill for a synth but the concept I mean15:25
sajattack[m]taking over random pc peripherals15:25
sajattack[m]which didn't jive with what you were saying about a different connection in my mind15:25
sajattack[m]but I get it now15:25
benhwell, if somebody is good at doing PCBs it shouldn't be hard to do something like that15:26
benha base board with M2 female connector, power, and a PCIe female socket15:26
benhwe could probably get away with generating the clock from the Artix, not sure there15:26
zypbenh, or just put a clock on it15:27
sajattack[m]if you like it then you shoulda put a clock on it15:27
sajattack[m]I was talking about just sticking the nvme on the cler? board in a pc15:29
benhzyp: yup... PCIe is 100Mhz oscillator right ?\15:29
sajattack[m]and hijacking things15:29
benhallright, off to bed..15:29
_florent_somlo: nice self hosting demo, glad you manage to get all the pieces working! (now it would indeed need to be faster :))17:42
_florent_benh: even with a board as PCIe endpoint, if Bus mastering is enabled, you can already do interesting things in the system from the board. LitePCIe  only support Endpoint for now, adding Root support should not be too complicated (the lower layers could probably be reused), but it's still a bit of work/testing17:46
somlo_florent_: thanks, now my OCD will finally allow me to focus on other things (like maybe reconciling the spi-master gateware and linux driver at bpw > 8bit) :)18:16
somloand studying the ecp5 oddr added-delay impact on litesdcard -- that's probably the best chance I have to get faster storage...18:18
Skip_florent_: Just FYI the May 5 commit to linux-on-litex-vexriscv "buildroot/linux.config: enable SMP" broke Linux on the pano_logic_g2 platform.18:24
Skip_florent_: I rolled back to May 1 " conda/requirements.txt: add required pythondata repositories." and that fixed it.18:24
SkipThe kernel booted, but hung after init was started.18:25
*** CarlFK has joined #litex18:58
_florent_Skip: ok thanks, i'll look at this19:19
zyp_florent_, is the DMA stuff in litepcie based on bus mastering?20:16
zypapologies if that's a stupid question, I'm not very familiar with pcie yet :)20:16
*** FFY00 has quit IRC20:20
*** FFY00 has joined #litex20:21
_florent_zyp: yes it's done using bus mastering20:29
zypit'll be interesting to delve into once I get that acorn board20:34
zypI don't have anything suitable to plug that into, so I went ahead and ordered one of these as well: https://www.seeedstudio.com/ODYSSEY-X86J4105864-p-4447.html, looked like a nice board for experimenting with this stuff :)20:35
tpbTitle: Seeed Studio Bazaar, Boost ideas, Extend the Reach (at www.seeedstudio.com)20:36
zypI think the only m.2 slot I've got in the house at the moment is in my wife's computer, and I don't think she'd appreciate me messing with that20:37
*** futarisIRCcloud has joined #litex22:03
futarisIRCcloudIf anyone is after a cheap x86 host system with mPCIe slots, I can recommend the APU2 series. https://www.pcengines.ch/apu2.htm . There is also good coreboot support on these.22:12
tpbTitle: PC Engines apu2 system boards (at www.pcengines.ch)22:12
futarisIRCcloudHas anyone made any breakout boards for the DF52 connectors on the NiteFury / Acorn CLE-215+ ?22:18
zypI figured I'll just make a breakout cable assembly22:19
zypDF52 in one end, header sockets in the other22:19
zypthose apu2 boards looks cute, but they'd be more interesting if they had m.222:39
dkozelthe ODYSSEY board from Seeedstudio looks cool22:41
dkozelstill hoping to get a Thunderbolt 3 to m.2 adapter :)22:43
dkozelOr USB 3.{1,2} to m.2 as consolation prize22:44
zypall the onboard IO looks convenient too, I figure I can use those to hook up the jtag port of the acorn22:45
*** Skip has quit IRC22:45
zypI believe openocd can already use sysfs gpio, but I guess that'd be fairly slow, so I guess the onboard microcontroller can do well as a jtag adapter22:47
*** Skip has joined #litex22:50
futarisIRCcloudhttps://www.eevblog.com/forum/fpga/sqrl-acorn-as-an-interesting-artix-7-board/23:17
tpbTitle: SQRL Acorn as an interesting Artix-7 board? - Page 1 (at www.eevblog.com)23:17
futarisIRCcloudmPCIe can be converted to m.2. I'm sure there's a cheap converter or two online somewhere...23:20
zypmpcie is only one lane IIRC23:21
futarisIRCcloudFor thunderbolt 3 to m.2, I thought someone was doing that with PCILeech FPGA.23:24
futarisIRCcloudhttps://github.com/ufrisk/pcileech-fpga23:24
tpbTitle: GitHub - ufrisk/pcileech-fpga: FPGA modules used together with the PCILeech Direct Memory Access (DMA) Attack Software (at github.com)23:24
zypyeah, there are thunderbolt to m.2 adapters around23:25
zype.g. https://www.aliexpress.com/item/4000557577340.html23:26
tpbTitle: Intel Certified USB C Thunderbolt 3 NVME SSD Enclosure Type C Case M Key NVMe connector Excellent Dissipation for Window Mac OS|HDD Enclosure| - AliExpress (at www.aliexpress.com)23:26
zypbut there's also usb3 to m.2 adapters around, which looks similar from the outside (just a usb-c port), but wouldn't work for generic pcie23:28
zyplooked a bit into that earlier, and the latter commonly seems to be based on ASM2362, which does usb3 mass storage to pcie nvme23:29

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