Friday, 2022-04-29

*** tpb <[email protected]> has joined #litex00:00
*** TMM_ is now known as TMM00:28
*** TMM is now known as TMM_00:28
*** Degi <[email protected]> has quit IRC (Ping timeout: 240 seconds)00:29
*** Degi <[email protected]> has joined #litex00:32
sajattack[m]Did the cle215 carrier board ever come to fruition?00:48
zypmaybe stuck on part availability like everything else?01:14
sajattack[m]probably :P01:58
_florent_sajattack[m]: we still have to finish the validation of the ECP5 <-> Artix7 link and ECP5/Ethernet PHY are not available currently, so even if fully validated it would not be possible to produce it. 06:40
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Remote host closed the connection)07:03
*** FabM <[email protected]> has joined #litex07:33
pepijndevos[m]welp I know too little about JTAG. Trying to program the colorlight board with some FT2232 thingy but not having much luck08:09
tntpepijndevos[m]: openfpgaloader should handle pretty much all of it right ?08:10
pepijndevos[m]yea but I'm getting weird errors and I think it's maybe an electronic problem08:10
pepijndevos[m]I get inconsistent IDCODE readouts08:11
pepijndevos[m]JTAG init failed with: Unknown device with IDCODE: 0xe8244003 (manufacturer: 0x001 (), part: 0x41 vers: 0xe08:11
tntwhat speed are you using ?08:12
pepijndevos[m]I tried --freq 1000 with little difference08:12
pepijndevos[m]one time it randomly worked. Most of the time it gets the manufacturer right...08:13
tntyou can try --invert-read-edge   but if it doesn't work even at 1 MHz, not sure it would help08:14
pepijndevos[m]yea no change08:14
pepijndevos[m]$ openFPGALoader --cable ft2232 --freq 100 --invert-read-edge --detect08:14
pepijndevos[m]Jtag frequency : requested 100.00Hz  -> real 100.00Hz 08:14
pepijndevos[m]JTAG init failed with: Unknown device with IDCODE: 0xe0891043 (manufacturer: 0x021 (lattice), part: 0x04 vers: 0xe08:14
pepijndevos[m]and uh... JTAG is a clocked protocol yea? So it's not like UART where you can get garbage if the oscillators is running wrong or whatever08:15
tntyes08:15
pepijndevos[m]and... if I have the wiring wrong it wouldn't work at all right...08:18
tntheh ... that I'm not sure.08:18
tntseems unlikely but maybe some random thing on tdi/tms would still read something on tdo08:19
pepijndevos[m]I have the Colorlight 5A-75B V8.0 and the way I have it hooked up now is that TCK/TMS/TDI/TDO go to the header, ground to the other header, and 5V to the main power input. So it gets 3.3v from there, not from the FTDI thing, which I've left disconnected.08:20
pepijndevos[m]I guess I'll double-check all the wires and maybe try giving it an external power supply08:20
gatecat0xe8244003 still kinda looks a bit like an ecp5 idcode but shifted or a bit corrupted or something08:20
tntdoes the fpga need to be held in reset ? Can't remember ...08:21
pepijndevos[m]yea, it reports that it's a latice device half of the time, which made me think it's like a slightly wrong frequency.08:21
gatecatcould be something like a bad clock signal causing double clocking08:22
gatecatyou could try like a 100r series resistor on tck, close to the ftdi08:22
gatecatI think I've also seen like 1k pulldown on tck used to try and prevent this08:22
pepijndevos[m]time to move it to the lab for some close inspection I guess08:23
pepijndevos[m]hmmmm TDO looks wonky when it's connected to the JTAG08:48
* pepijndevos[m] uploaded an image: (48KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/UwmhYFtcwlPjCxUrCJjPQcWn/RigolDS0.png >08:50
* pepijndevos[m] uploaded an image: (48KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/ViHEgVRpRESUUqsHqDNexpkq/RigolDS1.png >08:50
pepijndevos[m]There also shouldn't be any confusion over TDI/TDO like RX/TX right?08:53
tntDepends how your jtag adapter is labelled ...08:54
tntpin 18 should be connected to the FPGA TDO.08:55
tnthttps://i.imgur.com/QbxuBXE.png08:56
* pepijndevos[m] uploaded an image: (158KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/UUkdPVPLOxVOuLulIebSLAvI/IMG_20220429_105738.jpg >08:57
pepijndevos[m]are any of these pins supposed to bidirectional? because there is some output on TDO when disconnected09:02
tntno09:08
* pepijndevos[m] uploaded an image: (52KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/hsbJlgklbHqOBDcQQYPKNjJP/RigolDS2.png >09:08
tnthttps://raw.githubusercontent.com/q3k/chubby75/master/5a-75b/jtag.jpg09:12
tntAren't you wired backward ?09:12
pepijndevos[m]> Note that the pinout below only works for V6.1 and V7.0 boards. V8.0 board has a different pinout, check the corresponding board page.09:27
pepijndevos[m]if I'm getting output on the TDO pin of the FTDI thing, that seems extremely wrong??09:29
tntwell tbh, at the beginning it's not surprising because during init/config the ftdi tends to go random stuff since it's not _only_ a jtag chip ...09:30
tntand the fpga only drives TDO actively in some states of the jtag FSM ans is HiZ at other times.09:31
tntalthough during the whole shifting it should be active (and TMS=0 means it should stay in that state).09:31
tntI only ever used glasgow with those boards and it has jtag pinout autodetect ...09:32
pepijndevos[m]well what makes me say that is the little blips you get when you hook up the SDO make it look like it's not an high impedence input09:32
pepijndevos[m]wait, I have a glsgow09:32
key2have you connected the VCC to your cable ?09:33
key2I've seen this kind of behavior when the FTDI's VCCIO pin is fed from the VCC of the target board09:34
pepijndevos[m]no only ground, I'm powering it externally now09:35
pepijndevos[m]or do I need to connect the 3.3v together?09:36
pepijndevos[m]ok how do i use glasgow to do jtag09:38
key2I don't know your cable. but I know that if the vccio of the FTDI is not powered, it will not output on the other pins what you want10:44
pepijndevos[m]ive managed to use glasgow as tnt suggested10:44
*** zjason` is now known as zjason10:46
pepijndevos[m]hurraaay!! I'm now connected to etherbone with wishbone tool11:10
pepijndevos[m]is there a --kernel equivalent to wishbone-tool?11:12
pepijndevos[m]do I pass load-name and load-address?11:13
pepijndevos[m]no luck so far12:11
pepijndevos[m]so wishbone-tool doesn't have a --kernel option and load-name doesn't seem to do anything... and litex_term doesn't seem to have any way to connect to a remote bus12:18
pepijndevos[m]wat... so I can tell wishbone-tool to host a wishbone server, and then I can pass "crossover" to litex_term which... seems to make it really slow. And still not load the kernel :(((12:22
_florent_pepijndevos[m]: what are you trying to do? If you want to load a binary over etherbone:12:25
_florent_litex_server --udp12:25
_florent_litex_term crossover --kernel=firmware.bin --safe12:25
_florent_with a crossover uart12:25
pepijndevos[m]heyyyyy!!! that did the trick12:26
pepijndevos[m]lol this board doesn't seem to have a reset button configured.12:27
_florent_probably this: https://github.com/litex-hub/litex-boards/blob/master/litex_boards/targets/colorlight_5a_75x.py#L13212:29
_florent_but since you are using Etherbone, you could set with_rst to Trye12:29
_florent_True12:29
pepijndevos[m]ah yea12:51
pepijndevos[m]another future problem is how to program the stuff to flash. I'm now using glasgow with the svd file that loads the bios into ram. I have no idea how I'd get the bios and eventually also the kernel into flash.12:57
_florent_you can look at icebreaker/fomu targets for BIOS XiP from Flash13:07
_florent_regarding Flash programmation, pretty sure OpenFPGALoader supports it (otherwise probably ecpprog: https://github.com/gregdavill/ecpprog)13:08
pepijndevos[m]yea problem is my usb JTAG thingy seems broken so I'm using glasgow and that seems to have its own whole thing13:22
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving)14:45
pepijndevos[m]<_florent_> "you can look at icebreaker/..." <- hmmm by the sounds of it maybe I'm asking the wrong question. All I want to do is... you know, run standalone. I suspect running from SDRAM is a lot faster and the ice40 only run from flash because limited BRAM. So actually maybe what I want is to load the kernel into SDRAM at startup? But it still has to be stored somewhere...14:59
_florent_pepijndevos[m]: ok, for this, it you still want to use the BIOS and make it jump to your firmware in Flash, you can just add a ROM_BOOT_ADDRESS constant to your SoC pointing to the based address of the firmware in Flash.18:07
pepijndevos[m]Basically, I don't know what I want. What does a typical deployment scenario look like on a board with plenty of space?18:09
pepijndevos[m]<_florent_> "https://github.com/litex-hub/..." <- actually I'm not sure I completely understand where the divide happens here. There is only one PHY, one MAC, and the MAC gets memory mapped *and* is used by the hardware IP stack?18:12
*** genpaku <[email protected]> has quit IRC (Ping timeout: 276 seconds)18:18
*** genpaku <genpaku!~gen@2604:180::efde:e8ce> has joined #litex18:23
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #litex18:32
_florent_pepijndevos[m]: For standalone operation you can have Bitstream in flash + BIOS + firmware (with ROM_BOOT_ADDRESS specified in the SoC definition)20:03
_florent_pepijndevos[m]: This will load the bistream, execute the BIOS and jump to your firmware20:03
_florent_pepijndevos[m]: for the Hybrid MAC, things are happening here: https://github.com/enjoy-digital/liteeth/blob/master/liteeth/mac/__init__.py#L82-L16720:04
pepijndevos[m]Ah I see20:06
*** absurdfatalism <absurdfatalism!~absurdfat@pool-100-34-141-221.phlapa.fios.verizon.net> has joined #litex21:45
tpw_rules(hi)21:47
absurdfatalismHello folks I wanted to ask about video/vga timings from this core21:48
absurdfatalismhttps://github.com/litex-hub/litevideo/blob/master/litevideo/output/core.py21:48
absurdfatalismIIUC, under += sync, as in inferring a FF21:50
absurdfatalismhttps://github.com/litex-hub/litevideo/blob/41f30143075ece3fff5c33a332ed067d1837cbb3/litevideo/output/core.py#L15421:50
absurdfatalismThere is this expression21:50
absurdfatalismIf(hcounter == 0, hactive.eq(1)),21:50
absurdfatalismWhich IIUC means active is HIGH a cycle delayed from hcounter==021:52
absurdfatalismI come here wanting to confirm that since in testing a 640x480 design21:52
absurdfatalismI see active=1 when x=1,2,..64021:52
absurdfatalismAs opposed to what I would have expected21:52
absurdfatalismactive=1 for x=0...63921:52
absurdfatalismA off by one cycle kind of thing?21:52
absurdfatalism(I was looking to detect start of from x==0 y==0 and active==1 but was never seeing it!)21:52

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