Friday, 2015-11-13

*** tpb has joined #timvideos00:00
ysionneaumithro: good news, I'm able to load a small "led lighter" fw in the FX2LP (in less than 2 secs) with my EEPROM emulation00:40
ysionneauit works on my last commit:
tpbTitle: Working FX2LP loader · fallen/[email protected] · GitHub (at
ysionneauerr I forgot to push the firmware.h00:41
ysionneauOK, I forced push, this is the good commit:
tpbTitle: Working FX2LP loader · fallen/[email protected] · GitHub (at
ysionneaufor now I'm using a "static" firmware which lights a LED on my breadboard, the firmware is in a static array in firmware.h00:43
ysionneauthe firmware.h is the EEPROM content, so it's like a firmware.bin but with some header + footer, I generate it with the tool00:43
ysionneauso 1°) transform .ihx in .bin with objcopy -Iihex -Obinary in.hex out.bin00:44
ysionneau2°) generate firmware.h from firmware.bin using in.bin firmware.h00:45
ysionneaubut anyway, I guess you won't try that, you might not even have a pipistrello board00:45
ysionneauI'll just integrate that in your repo, without the firmware.h stuff (that was just for me for testing)00:46
ysionneaucalling it a day00:47
mithro_florent_: what did they end up sending you? I'm guessing a Nexys Video?01:55
mithro_florent_: they also said they are happy to offer me the academic pricing on the Genesys boards too01:55
*** Bertl_zZ is now known as Bertl06:31
*** Bertl is now known as Bertl_oO07:02
mithroEvening people07:41
mithrohey shenki - are you back from Singapore?08:02
shenkii'm back in Australia now :)08:02
shenkigot back yesterday08:02
mithroshenki: I'm in Adelaide from tomorrow08:02
shenkimithro: cool! you should drop into base64 if you get the chance08:03
mithroWhat is base64?08:03
mithroshenki: are you going to be around Adelaide next week?08:03
shenkimithro: that's where i work with rusty08:06
shenkimithro: i'll be around until friday, heading to Melbourne Friday morning08:06
mithroshenki: okay08:06
mithroshenki: I've got some stuff which I need a Linux kernel hacker to look at :)08:07
shenkihah okay. I'll ask Rutsy to put aside some time ;)08:08
mithroshenki: hasn't he been lost to bitcoin? :P08:08
mithroshenki: see the last message at
tpbTitle: #804350 - ITP: vizzini -- Kernel driver for Exar XR21V1414 USB UART - Debian Bug report logs (at
shenkimithro: oh cool08:13
shenkimithro: have you tried it?08:13
*** travis-ci has joined #timvideos08:25
travis-ci[mithro/HDMI2USB-misoc-firmware/fx2-refactor-new#52] (d1b89b9): The build failed. (
*** travis-ci has left #timvideos08:25
mithroshenki: No, I have not08:29
mithroshenki: I've also rewritten most of the FX2 firmware08:29
mithroshenki: Take a look at - I think it makes the USB descriptors much easier to read08:30
tpbTitle: HDMI2USB-misoc-firmware/descriptors.c at fx2-refactor · mithro/HDMI2USB-misoc-firmware · GitHub (at
mithroshenki: I basically took the Linux kernel USB headers and with some macro defines made them work on the fx2+sdcc08:31
mithroshenki: have you gotten to the point of being able to build the misoc firmware / make a change yet?08:34
mithroshenki: I also got a 4k monitor for testing the Opsis DisplayPort output with08:35
mithroshenki: it's *really* nice :P08:35
mithroanyway, home time for me09:21
seaLnemithro: does tofe use prnst in the pcie way?09:33
mithroseaLne: we don't really use it at all09:38
mithroseaLne: but probably should just follow the PCI-Express spec09:39
seaLneso just connect them together?09:40
seaLnei guess we aren't doing hotplug so don't need to have then shorter than the other pads09:41
mithroSure, I haven't read that part of PCIe spec all that well09:43
seaLneor rather connecting prnst1 to b48 prnst209:44
mithroseaLne: I'll be looking at the Opsis stuff full time from lunch tomorrow for a week09:44
mithroSo will try and reproduce your issue with capture09:45
xfxfmithro: unsure if this is in your plans, but what some hardware switches let to do is take a 'freeze' of an active frame from an input and store it09:47
xfxfand it will output that over the HDMI output when there is no input selected09:47
xfxfit's useful for showing the conferences logo when people plug in and out laptops09:47
xfxfassume this would be a good feature?09:47
xfxfobv lower priority than critical things :)09:48
mithroWhy not just have the output switch back to the other input?09:48
xfxfbecause you won't always have another laptop driving the other output09:48
mithroBTW, that could already be implemented entirely in C code right now09:49
xfxfshould I create a github issue?09:49
xfxfalso is there any way to store generated data like that somewhere on the opsis that'll remain there between power cycles?09:50
mithroI think it would be to big to store in the spi09:51
mithroBut on the Opsis you have a SD card09:51
mithroMorning ysionneau09:53
xfxfoh neat09:53
mithroysionneau: it sounds like you got the fx2 working?09:54
xfxfer re above, I meant you won't always have another laptop driving the other input09:55
xfxfwill clarify with a clear description in a issue09:55
ysionneauso cool to see it working o/09:56
mithro2 seconds seems a long time? Was that just an estimate or an actual measurement?10:00
ysionneaua cheap measurment with a phone timer10:01
ysionneaubut it's pretty close to 2 seconds I would say10:01
ysionneauI will try to put I2C at 400 kHz10:01
mithroto get 400kHz I2C working efficiently, we would really need the next buffer I think?10:05
ysionneauit works right now10:06
mithrootherwise you'll spend most of your time in clock stretching mode?10:06
ysionneauI've just done the test10:06
ysionneauit was just one bit to change in the eeprom header10:06
ysionneauI would say it takes 500 ms now10:07
ysionneaubut hard to tell10:07
ysionneauyes something between 0.5 and 0.6 sec10:08
ysionneauI guess adding one buffer would speed it up a bit yes10:09
mithroysionneau: okay10:12
mithroysionneau: could you take a look at doing
tpbTitle: Calculate CRC code on pixels during frame transfer · Issue #130 · timvideos/HDMI2USB-misoc-firmware · GitHub (at
ysionneauin priority before doing the integration work to put the I2C stuff in your repo?10:12
mithroysionneau: Yeah, I think so - I can probably look at the integration stuff tomorrow when trying to replicate your work.10:17
ysionneauok then10:18
ysionneaudo you mean to check some CRC which is in the HDMI stream and is not checked yet?10:18
ysionneauor do you mean to add ourself some CRC to the decoded pixels10:18
ysionneauso that it can be checked by lm32 when moving them around10:18
mithroysionneau: the second one10:22
mithroysionneau: basically, after a frame has been transferred, we should be able to read a CRC out of a register somewhere and save it10:23
mithroysionneau: then when transferring the frame out, we can check the same CRC is generated10:24
ysionneau"after a frame has been transferred" < from where to where for example?10:28
ysionneauI'm trying to understand which part of the code I would need to modify10:28
mithroysionneau: the DMA engines in the HDMI10:41
tpbTitle: HDMI2USB-misoc-firmware/architecture.png at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at
mithroysionneau: probably here
tpbTitle: HDMI2USB-misoc-firmware/ at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at
_florent_ysionneau: you could probably reuse that:
tpbTitle: misoc/ at master · m-labs/misoc · GitHub (at
ysionneauOk I see10:47
mithro_florent_: I think there is some generic crc stuff in misoc too?10:47
_florent_no since it's in fact all crc are a little bit different and it's difficult to be generic10:49
mithrolooks like it was just software based stuff -> ?10:49
tpbTitle: misoc/crc32.c at da171d8d0a1c54f132ca973f9e5f4836874fc411 · m-labs/misoc · GitHub (at
ysionneauyes for instance to check the runtime/fw integrity, it's a software crc32 which is computed by the lm3210:50
_florent_yes but you need hardware crc10:50
_florent_the crc in liteeth is the same: crc3210:51
_florent_IEEE 802.3 CRC10:51
mithrosounds good to me10:57
ysionneauWhat worries me a bit is that I don't have anything to test what I would do11:02
ysionneauI could port the design to the pipistrello but that would take a bit of time11:06
mithroysionneau: the pipistrello target in misoc should already have the output side working, right?11:16
ysionneauhdmi out ?11:16
ysionneauI don't see any HDMI stuff in the pipistrello target11:17
ysionneauI think the pipistrello MiSoC target is just a regular SDRAMSoC11:19
mithroysionneau: hrm, Guess I'm wrong - it has an onboard HDMI out, right?11:31
mithroysionneau: It shouldn't be to hard to add?11:42
mithrobtw I do have a pipistrello here too11:42
ysionneau12:40 <@mithro> btw I do have a pipistrello here too < ah cool!11:43
mithroatleast I think its a pipistrello11:45
_florent_ysionneau, to add CRC on hdmi_out, you can:11:45
_florent_- reuse that:
tpbTitle: HDMI2USB-misoc-firmware/ at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at
_florent_- and only keep one hdmi_out11:46
_florent_the firmware will handle it11:46
_florent_and you will be able to send the video pattern to hdmi out11:46
_florent_mithro: yes I got a nexys video from digilent :)11:47
ysionneau*afk phone*11:47
_florent_mithro: the academic price for the Genesys 2 is also very interesting, I'm tempted...11:47
_florent_but I'll first do some work on the nexys11:48
mithroOpsis V2 will be either an Artix or a Kintex11:50
ysionneau12:40 <@mithro> ysionneau: It shouldn't be to hard to add? < yes I guess it's not that hard sinceit's the same FPGA as Opsis it should be fine, I'm just thinking about the time11:50
ysionneauif I get one day and need to port the code to a new board + understand the current hdmi code + add crc11:51
mithro_florent_: so I'm very interested in getting all the HDMI2USB components working on both11:51
ysionneauI don't feel confortable that I can do that in one day11:51
_florent_Kintex are really expensive no?11:51
ysionneaubtw, on the pipistrello, the hdmi port can do hdmi in *and* out, right? (I don't know much about hdmi actually)11:52
mithro_florent_: yes and no11:52
mithroysionneau: I thought it can only do out11:52
ysionneauah ok11:52
mithroInteresting - USB device interface: High-speed (480 Mbits/s) interface using a 2-channel FTDI FT2232H chip. Channel A is wired for JTAG. Channel B is wired for serial (max 12 Mbaud) or async FIFO mode (max 8 MB/s).11:52
mithrowhen I finish my FTDI emulation for the FX2, it'll work pretty much identically to the above11:53
ysionneau(+ I'm not very confortable yet with the DMA+dataflow paradigm, I never touch those topics)11:53
seaLnemithro: initial refactoring done if you have a chance to look at it
tpbTitle: HDMI2USB-TOFE-VGA/TOFE-VGA.pdf at master · sealne/HDMI2USB-TOFE-VGA · GitHub (at
mithroysionneau: neither am I :)11:53
mithroysionneau: and one of us is going to have to do it :P11:54
ysionneauI'm confident I can do it, but in one day that does not seem realistic11:54
mithroysionneau: do you think you can do it in 2-3 days?11:55
ysionneau3 days seem more realistic to me yes11:57
ysionneau_florent_: I might ask you a few questions about the dma+crc stuff then11:58
mithroseaLne: Looks like you need to merge the latest version of the template - your TOFE connector has the 4x position in the wrong place11:58
mithroseaLne: I think you want the VSOUT and HSOUT on clock pins11:59
ysionneauabout the hdmi port on pipistrello I can see several example  projects using it as HDMI out, so at least this should work :
tpbTitle: Pipistrello (at
mithroysionneau: they only claim HDMI out on their page12:00
ysionneauah yes "output interface"12:00
ysionneauit's clearly stated12:00
seaLnemithro: what about SOGOUT?12:01
ysionneauI wonder what's the difference between and output and an input interface12:01
mithroysionneau: I can tell you a lot about them, but its not really all that relevant to getting this working :)12:01
mithroseaLne: yeah, and DATACK12:02
ysionneauyep ok just being curious :)12:02
ysionneauso first step : getting hdmi out working on the pipistrello12:02
mithroysionneau: yeah, add a "" target to our repo?12:03
ysionneau12:43 < _florent_> and you will be able to send the video pattern to hdmi out < I guess I just need to write the frame to memory and write a few CSR?12:03
ysionneaumithro: ok!12:03
_florent_ysionneau: no, just build the VideoMixer for the pipistrello with only 1 hdmi_out12:04
_florent_then in the firmware:12:04
_florent_video_matrix connect pattern output012:05
_florent_and you should get video_out12:05
ysionneauok, I should have a deeper look at the code base, so far I didn't look that much at it since the I2C slave task was kind of "out of tree"12:06
ysionneausorry for the dumb questions :)12:06
mithroseaLne: I'd avoid using the DIFF_CLK_XP/XN pair as well12:06
mithroseaLne: what are the B_ANI1 / G_AIN1 / R_AIN1 pins?12:08
seaLneif the inputs were diff12:09
seaLnelet me double check12:09
mithroseaLne: it looks more like it actually supports two VGA inputs?12:10
seaLnehmm you could be right, page 11 of is a bit vague12:12
seaLnemithro: ah i think you are right they go into a mux on page 112:14
mithroseaLne: we should break it out to another input I think?12:14
seaLneyeah, though might abandon depending how it looks during routing?12:16
mithroseaLne: maybe one input is direct, the other is pass thru?12:16
*** se6astian|away is now known as se6astian12:26
mithroseaLne: or we could have one be composite12:26
seaLnemithro: i think channel select at the top of page 35 is what switches between them12:29
*** CarlFK has quit IRC13:47
*** rohitksingh has joined #timvideos13:50
*** se6astian is now known as se6astian|away14:49
*** se6astian|away is now known as se6astian15:30
*** nueces has joined #timvideos15:38
*** se6astian has left #timvideos15:57
*** se6astian has joined #timvideos16:34
*** se6astian is now known as se6astian|away16:35
*** rohitksingh has quit IRC16:37
ysionneau13:02 < _florent_> and you should get video_out < yes, it works o/ thanks!16:47
ysionneauI can see color stripes and the "HDMI2USB" text16:47
*** rohitksingh has joined #timvideos16:51
*** se6astian|away is now known as se6astian17:36
*** se6astian is now known as se6astian|away18:26
*** rohitksingh has quit IRC19:05
ysionneauinitial support for pipistrello board:
tpbTitle: initial support for pipistrello board · fallen/[email protected] · GitHub (at
*** Bertl_oO is now known as Bertl_zZ20:20
mithroysionneau: can you split the fix to firmware/lm32/processor.c into a seperate commit?21:42
*** nueces has quit IRC21:52
ysionneauah yes22:01
ysionneausorry about that22:01
ysionneaumithro: what's the process? do I send patches on some mailing list? do I push directly?22:06
mithroysionneau: just a GitHub pull request22:10
mithroGetting on a plane now.22:11
ysionneauok see you later22:11
ysionneauhere I don't leave home, Paris is "under attack" :/22:11
ysionneauI forced push to fix my commits into "atomic" ones22:15

Generated by 2.13.1 by Marius Gedminas - find it at!