Thursday, 2020-06-25

*** tpb has joined #tomu00:00
*** CarlFK has joined #tomu01:13
promach3How does transfer bitstream to FOMU since there is no JTAG ? What if the usb part of the FOMU is bricked ?02:23
promach3 * How to transfer bitstream to FOMU since there is no JTAG ? What if the usb part of the FOMU is bricked ?02:23
xobsThat's why Fomu doesn't auto-boot, and why the bootloader doesn't allow you to overwrite the first 256 kB of flash.02:24
promach3xobs: 256kB of flash -> is this external SPI flash ?02:24
xobsYes, the bitstreams are stored on external SPI flash.02:25
xobsWhen you upload a new bitstream, it goes into "slot 3". The bootloader always loads from "slot 0".02:25
xobsWhen you say "execute program", or upload a new bitstream, it jumps to "slot 3". But cycling power always causes it to start again from "slot 0".02:26
*** squelch has quit IRC02:55
*** squelch has joined #tomu02:55
*** squelch has quit IRC04:10
*** cdmatter has quit IRC07:02
*** cdmatter has joined #tomu07:02
MadHackerxobs: Think touch can be made reliable enough to have "hold button for 5s to prevent autoboot" and update the bootloader to handle that?09:11
MadHackerSorry, passing thought.09:11
xobsMadHacker: that was a thought, thought right now the captouch stuff hasn't been widely tested, and it's rather large in terms of LC count.09:12
MadHackerAs in, doesn't fit?09:16
xobsNot currently, no.09:16
*** pmp-p has quit IRC09:45
*** pmp-p has joined #tomu09:47
acathlaCan I use litex_server with Fomu (on USB)? xobs, _florent_ ?10:13
xobsacathla: I believe so. There are command line arguments to set it up.10:14
acathlaLike: litex_server --usb --usb-vid 1209 --usb-pid "5bf0" ?10:14
xobsHowever, you can also use `wishbone-tool` in place of `litex_server` to server wishbone to remote devices e.g. to connect `lxterm`: `wishbone-tool -s wishbone`10:14
acathlait answers : ValueError: invalid literal for int() with base 0: '5bf0'10:14
xobsMaybe you need to specify `0x5bf0`?10:15
acathlahaha right! it works =)10:15
*** st-gourichon-fid has joined #tomu11:17
*** auscompgeek has quit IRC13:51
*** auscompgeek has joined #tomu13:52
acathlaIf I just switch the two usb lines in platform/ and I try to build --board evt, I got an error:13:54
acathlaERROR: PLL 'SB_PLL40_CORE' couldn't be placed anywhere, no suitable BEL found.13:54
acathlais there a hardcoded pin somewhere?13:56
xobsThat sounds like it's trying to place two PLLs for some reason. Do you have the error somewhere?13:57
acathlaYou mean the whole logs online?13:58
xobsYeah. Well, mostly interested in the last ~50 lines.13:59
acathlanot yet13:59
tpbTitle: PLL_placement_error - (at
xobsYour system clock is 12 MHz?14:03
acathlaI guess, I didn't change things except inverting some pins in platform14:04
acathlaI see only one PLL in the top.v14:05
xobsIt's as if your pnr tool doesn't know about plls. Here's what last night's build for foboot resulted in:
tpbTitle: foboot #114 Console [Jenkins] (at
xobsI see.14:08
xobsYours has `Info: constrained 'usb_pulldown' to bel 'X12/Y31/io1'` whereas foboot has `constrained PLL 'SB_PLL40_CORE' to X12/Y31/pll_3`. Perhaps you assigned the pad to a GPIO, but forgot to update the pin mapping?14:09
xobsSince the same X/Y is already in use.14:09
acathlaBut I only use litex, which generates a .pcf with pin numbers14:12
acathlaI'll rgrep that...14:13
xobsRight, but if you assign pin 44 to both the crystal and a usb pullup pin, litex will happily pass that through but nextpnr will choke on it.14:13
xobsCheck the generated pcf file and see if one pad isn't assigned to two signals.14:14
acathlaNope, all different.14:15
xobsWhich pad is the crystal connected to?14:15
acathlapin 4414:15
xobsand usb_pulldown?14:16
acathlaInfo: constrained 'clk48' to bel 'X6/Y0/io1' in the logs14:16
xobsGood point, foboot is generated for wlcsp parts.14:16
acathlapulldown pin 35 instead of pin 36, and pullup pin 36 instead of 35 (on EVT)14:17
acathlabut for SG48, evt, it works fine unless I switch those pins14:17
acathlaand it worked when building foboot with pins swaped, it's the that doesn't work today.14:18
acathlaI did a lot of git pull, I should try again foboot...14:18
xobsWhen building for EVT it also says `constrained PLL 'SB_PLL40_CORE' to X12/Y31/pll_3`.14:21
xobsIt's odd you'd see that, especially since it's not like we use the differential pairs' ability -- they should be entirely interchangeable.14:22
*** awe00 has joined #tomu14:25
*** rr1 has joined #tomu14:27
acathlaand foboot seems to build correctly, routing still running.14:27
acathlapulldown is useless, right? If I remove it, it works!14:43
xobsYeah, pulldown is useful if you want low speed support. It was an option on the EVT board, because when you build an EVT version you stick all the options on.14:44
rr1hello, a new fomu user here.14:46
rr1I did all of the workshop tutorials and they are working fine14:46
mithro -- RV32 on an icestick!14:46
tpbTitle: GitHub - BrunoLevy/learn-fpga: Learning FPGA, yosys, nextpnr, and RISC-V (at
rr1now I having trouble creating a vexriscv+blinky rom soc with litex14:47
rr1I build and flash but no usb and no led blinking14:47
rr1To debug, I removed the core and added the usb bridge and checked that the firmware is correctly in rom and that I can toggle the led with wishbone bridge14:47
rr1So I know that the bus, led, rom, usb hardware are ok14:48
rr1Any idea how I can continue debugging from here?14:48
xobsrr1: if your vexriscv doesn't have any USB drivers (i.e. tinyusb), then you may want to start with the dummyusb implementation and enable debug mode so you can poke things even with the cpu running.14:49
rr1I thought that was not possible because I am getting this error:14:51
rr1ERROR:SoC:EventManager not found in usb SubModule.14:51
xobsThat's because it's still trying to add an interrupt for the usb block, even though the dummyusb module doesn't have one.14:52
rr1oh, thanks, build issue solved14:53
rr1the error message is cryptic though14:53
xobsI agree.14:54
xobsI think what it's trying to say is "The event manager found an object called `usb`, which means there should be a property on it called `.ev`, but that wasn't there, so I don't know what to do"14:55
rr1xobs: so i think, my next step is to work with the debug variant + dummyusb, have a jtag and check the state of the core, does this sound reasonable?15:05
xobsThat does, yeah. Poke at it with wishbone-tool, either with a CPU debugger or just peek and poke, and get a feel of what could be going wrong.15:05
rr1I found the issue; endieness. In lxsocsupport/ in FirmwareROM class, I changed the unpack endiness, the firmware is running, thanks xobs!15:33
rr1maybe that function needs a parameter to set the endieness15:35
*** awe00 has quit IRC15:46
*** emeb has joined #tomu15:47
*** awe00 has joined #tomu15:48
*** rr1 has quit IRC16:07
*** rr1 has joined #tomu16:26
*** awe00 has quit IRC16:53
*** rr1 has quit IRC16:54
*** im-tomu has left #tomu17:53
*** im-tomu has joined #tomu17:53
*** js has quit IRC18:31
*** js has joined #tomu18:33
*** futarisIRCcloud has quit IRC18:54
*** js has quit IRC20:13
*** js has joined #tomu20:15
*** st-gourichon-f has joined #tomu22:27
*** st-gourichon-fid has quit IRC22:28
*** st-gourichon-f has quit IRC22:37
*** st-gourichon-fid has joined #tomu22:45
*** st-gourichon-fid has quit IRC22:54
*** emeb has quit IRC23:30

Generated by 2.17.2 by Marius Gedminas - find it at!