*** tpb has joined #timvideos | 00:00 | |
ysionneau | mithro: good news, I'm able to load a small "led lighter" fw in the FX2LP (in less than 2 secs) with my EEPROM emulation | 00:40 |
---|---|---|
ysionneau | it works on my last commit: https://github.com/fallen/i2cslave/commit/b1c572ea3e80f491d659e3bccf11c40d8eacef45 | 00:41 |
tpb | Title: Working FX2LP loader · fallen/i2cslave@b1c572e · GitHub (at github.com) | 00:41 |
ysionneau | err I forgot to push the firmware.h | 00:41 |
ysionneau | OK, I forced push, this is the good commit: https://github.com/fallen/i2cslave/commit/04552b48a877914f22d85e1835731cd14f8e2de1 | 00:42 |
tpb | Title: Working FX2LP loader · fallen/i2cslave@04552b4 · GitHub (at github.com) | 00:42 |
ysionneau | for now I'm using a "static" firmware which lights a LED on my breadboard, the firmware is in a static array in firmware.h | 00:43 |
ysionneau | the firmware.h is the EEPROM content, so it's like a firmware.bin but with some header + footer, I generate it with the fw2header.py tool | 00:43 |
ysionneau | so 1°) transform .ihx in .bin with objcopy -Iihex -Obinary in.hex out.bin | 00:44 |
ysionneau | 2°) generate firmware.h from firmware.bin using fw2header.py in.bin firmware.h | 00:45 |
ysionneau | but anyway, I guess you won't try that, you might not even have a pipistrello board | 00:45 |
ysionneau | I'll just integrate that in your repo, without the firmware.h stuff (that was just for me for testing) | 00:46 |
ysionneau | calling it a day | 00:47 |
ysionneau | gn8! | 00: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 too | 01:55 |
*** Bertl_zZ is now known as Bertl | 06:31 | |
*** Bertl is now known as Bertl_oO | 07:02 | |
mithro | Evening people | 07:41 |
shenki | hello | 08:01 |
mithro | hey shenki - are you back from Singapore? | 08:02 |
shenki | i'm back in Australia now :) | 08:02 |
shenki | got back yesterday | 08:02 |
mithro | shenki: I'm in Adelaide from tomorrow | 08:02 |
shenki | mithro: cool! you should drop into base64 if you get the chance | 08:03 |
mithro | What is base64? | 08:03 |
mithro | shenki: are you going to be around Adelaide next week? | 08:03 |
shenki | mithro: that's where i work with rusty | 08:06 |
shenki | mithro: i'll be around until friday, heading to Melbourne Friday morning | 08:06 |
mithro | shenki: okay | 08:06 |
mithro | shenki: I've got some stuff which I need a Linux kernel hacker to look at :) | 08:07 |
shenki | hah okay. I'll ask Rutsy to put aside some time ;) | 08:08 |
mithro | shenki: hasn't he been lost to bitcoin? :P | 08:08 |
mithro | shenki: see the last message at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804350 | 08:09 |
tpb | Title: #804350 - ITP: vizzini -- Kernel driver for Exar XR21V1414 USB UART - Debian Bug report logs (at bugs.debian.org) | 08:09 |
shenki | mithro: oh cool | 08:13 |
shenki | mithro: have you tried it? | 08:13 |
*** travis-ci has joined #timvideos | 08:25 | |
travis-ci | [mithro/HDMI2USB-misoc-firmware/fx2-refactor-new#52] (d1b89b9): The build failed. (https://travis-ci.org/mithro/HDMI2USB-misoc-firmware/builds/90895407) | 08:25 |
*** travis-ci has left #timvideos | 08:25 | |
mithro | shenki: No, I have not | 08:29 |
mithro | shenki: I've also rewritten most of the FX2 firmware | 08:29 |
mithro | shenki: Take a look at https://github.com/mithro/HDMI2USB-misoc-firmware/blob/fx2-refactor/firmware/fx2/descriptors.c - I think it makes the USB descriptors much easier to read | 08:30 |
tpb | Title: HDMI2USB-misoc-firmware/descriptors.c at fx2-refactor · mithro/HDMI2USB-misoc-firmware · GitHub (at github.com) | 08:30 |
mithro | shenki: I basically took the Linux kernel USB headers and with some macro defines made them work on the fx2+sdcc | 08:31 |
mithro | shenki: have you gotten to the point of being able to build the misoc firmware / make a change yet? | 08:34 |
mithro | shenki: I also got a 4k monitor for testing the Opsis DisplayPort output with | 08:35 |
mithro | shenki: it's *really* nice :P | 08:35 |
mithro | anyway, home time for me | 09:21 |
seaLne | mithro: does tofe use prnst in the pcie way? | 09:33 |
mithro | seaLne: we don't really use it at all | 09:38 |
mithro | seaLne: but probably should just follow the PCI-Express spec | 09:39 |
seaLne | so just connect them together? | 09:40 |
seaLne | i guess we aren't doing hotplug so don't need to have then shorter than the other pads | 09:41 |
mithro | Sure, I haven't read that part of PCIe spec all that well | 09:43 |
seaLne | or rather connecting prnst1 to b48 prnst2 | 09:44 |
mithro | seaLne: I'll be looking at the Opsis stuff full time from lunch tomorrow for a week | 09:44 |
mithro | So will try and reproduce your issue with capture | 09:45 |
xfxf | mithro: 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 it | 09:47 |
xfxf | and it will output that over the HDMI output when there is no input selected | 09:47 |
seaLne | cool | 09:47 |
xfxf | it's useful for showing the conferences logo when people plug in and out laptops | 09:47 |
xfxf | assume this would be a good feature? | 09:47 |
xfxf | obv lower priority than critical things :) | 09:48 |
mithro | Why not just have the output switch back to the other input? | 09:48 |
xfxf | because you won't always have another laptop driving the other output | 09:48 |
mithro | BTW, that could already be implemented entirely in C code right now | 09:49 |
xfxf | should I create a github issue? | 09:49 |
xfxf | also is there any way to store generated data like that somewhere on the opsis that'll remain there between power cycles? | 09:50 |
mithro | I think it would be to big to store in the spi | 09:51 |
mithro | But on the Opsis you have a SD card | 09:51 |
ysionneau | morning | 09:53 |
mithro | Morning ysionneau | 09:53 |
xfxf | oh neat | 09:53 |
mithro | ysionneau: it sounds like you got the fx2 working? | 09:54 |
ysionneau | yes! | 09:54 |
xfxf | er re above, I meant you won't always have another laptop driving the other input | 09:55 |
xfxf | will clarify with a clear description in a issue | 09:55 |
ysionneau | so cool to see it working o/ | 09:56 |
mithro | 2 seconds seems a long time? Was that just an estimate or an actual measurement? | 10:00 |
ysionneau | a cheap measurment with a phone timer | 10:01 |
ysionneau | but it's pretty close to 2 seconds I would say | 10:01 |
ysionneau | I will try to put I2C at 400 kHz | 10:01 |
mithro | to get 400kHz I2C working efficiently, we would really need the next buffer I think? | 10:05 |
ysionneau | it works right now | 10:06 |
mithro | otherwise you'll spend most of your time in clock stretching mode? | 10:06 |
ysionneau | I've just done the test | 10:06 |
ysionneau | it was just one bit to change in the eeprom header | 10:06 |
ysionneau | I would say it takes 500 ms now | 10:07 |
ysionneau | but hard to tell | 10:07 |
ysionneau | yes something between 0.5 and 0.6 sec | 10:08 |
ysionneau | I guess adding one buffer would speed it up a bit yes | 10:09 |
mithro | ysionneau: okay | 10:12 |
mithro | ysionneau: could you take a look at doing https://github.com/timvideos/HDMI2USB-misoc-firmware/issues/130? | 10:12 |
tpb | Title: Calculate CRC code on pixels during frame transfer · Issue #130 · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com) | 10:12 |
ysionneau | in priority before doing the integration work to put the I2C stuff in your repo? | 10:12 |
mithro | ysionneau: Yeah, I think so - I can probably look at the integration stuff tomorrow when trying to replicate your work. | 10:17 |
ysionneau | ok then | 10:18 |
ysionneau | do you mean to check some CRC which is in the HDMI stream and is not checked yet? | 10:18 |
ysionneau | or do you mean to add ourself some CRC to the decoded pixels | 10:18 |
ysionneau | so that it can be checked by lm32 when moving them around | 10:18 |
mithro | ysionneau: the second one | 10:22 |
mithro | ysionneau: basically, after a frame has been transferred, we should be able to read a CRC out of a register somewhere and save it | 10:23 |
mithro | ysionneau: then when transferring the frame out, we can check the same CRC is generated | 10:24 |
ysionneau | hmmm | 10:27 |
ysionneau | "after a frame has been transferred" < from where to where for example? | 10:28 |
ysionneau | I'm trying to understand which part of the code I would need to modify | 10:28 |
mithro | ysionneau: the DMA engines in the HDMI | 10:41 |
mithro | ysionneau: https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/doc/architecture.png | 10:42 |
tpb | Title: HDMI2USB-misoc-firmware/architecture.png at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com) | 10:42 |
mithro | ysionneau: probably here https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/gateware/hdmi_in/dma.py | 10:43 |
tpb | Title: HDMI2USB-misoc-firmware/dma.py at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com) | 10:43 |
_florent_ | ysionneau: you could probably reuse that: https://github.com/m-labs/misoc/blob/master/misoc/cores/liteeth_mini/mac/core/crc.py | 10:46 |
tpb | Title: misoc/crc.py at master · m-labs/misoc · GitHub (at github.com) | 10:46 |
ysionneau | Ok I see | 10: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 generic | 10:49 |
mithro | looks like it was just software based stuff -> https://github.com/m-labs/misoc/blob/da171d8d0a1c54f132ca973f9e5f4836874fc411/misoc/software/libbase/crc32.c ? | 10:49 |
tpb | Title: misoc/crc32.c at da171d8d0a1c54f132ca973f9e5f4836874fc411 · m-labs/misoc · GitHub (at github.com) | 10:49 |
ysionneau | yes for instance to check the runtime/fw integrity, it's a software crc32 which is computed by the lm32 | 10:50 |
_florent_ | yes but you need hardware crc | 10:50 |
mithro | yeah | 10:50 |
_florent_ | the crc in liteeth is the same: crc32 | 10:51 |
_florent_ | IEEE 802.3 CRC | 10:51 |
mithro | SGTM | 10:53 |
ysionneau | SGTM? | 10:54 |
mithro | sounds good to me | 10:57 |
ysionneau | What worries me a bit is that I don't have anything to test what I would do | 11:02 |
ysionneau | I could port the design to the pipistrello but that would take a bit of time | 11:06 |
mithro | ysionneau: the pipistrello target in misoc should already have the output side working, right? | 11:16 |
ysionneau | hdmi out ? | 11:16 |
mithro | yeah | 11:17 |
ysionneau | I don't see any HDMI stuff in the pipistrello target | 11:17 |
ysionneau | I think the pipistrello MiSoC target is just a regular SDRAMSoC | 11:19 |
mithro | ysionneau: hrm, Guess I'm wrong - it has an onboard HDMI out, right? | 11:31 |
ysionneau | yes | 11:39 |
mithro | ysionneau: It shouldn't be to hard to add? | 11:42 |
mithro | btw I do have a pipistrello here too | 11:42 |
ysionneau | 12:40 <@mithro> btw I do have a pipistrello here too < ah cool! | 11:43 |
mithro | atleast I think its a pipistrello | 11:45 |
_florent_ | ysionneau, to add CRC on hdmi_out, you can: | 11:45 |
_florent_ | - reuse that: https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/targets/opsis_hdmi2usb.py#L9 | 11:45 |
tpb | Title: HDMI2USB-misoc-firmware/opsis_hdmi2usb.py at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com) | 11:45 |
_florent_ | - and only keep one hdmi_out | 11:46 |
_florent_ | the firmware will handle it | 11:46 |
_florent_ | and you will be able to send the video pattern to hdmi out | 11: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 nexys | 11:48 |
mithro | Opsis V2 will be either an Artix or a Kintex | 11:50 |
ysionneau | 12: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 time | 11:50 |
ysionneau | if I get one day and need to port the code to a new board + understand the current hdmi code + add crc | 11:51 |
mithro | _florent_: so I'm very interested in getting all the HDMI2USB components working on both | 11:51 |
ysionneau | I don't feel confortable that I can do that in one day | 11:51 |
_florent_ | Kintex are really expensive no? | 11:51 |
ysionneau | btw, 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 no | 11:52 |
mithro | ysionneau: I thought it can only do out | 11:52 |
ysionneau | ah ok | 11:52 |
mithro | Interesting - 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 |
mithro | when I finish my FTDI emulation for the FX2, it'll work pretty much identically to the above | 11:53 |
ysionneau | (+ I'm not very confortable yet with the DMA+dataflow paradigm, I never touch those topics) | 11:53 |
seaLne | mithro: initial refactoring done if you have a chance to look at it https://github.com/sealne/HDMI2USB-TOFE-VGA/blob/master/board/TOFE-VGA.pdf | 11:53 |
tpb | Title: HDMI2USB-TOFE-VGA/TOFE-VGA.pdf at master · sealne/HDMI2USB-TOFE-VGA · GitHub (at github.com) | 11:53 |
mithro | ysionneau: neither am I :) | 11:53 |
mithro | ysionneau: and one of us is going to have to do it :P | 11:54 |
ysionneau | I'm confident I can do it, but in one day that does not seem realistic | 11:54 |
mithro | ysionneau: do you think you can do it in 2-3 days? | 11:55 |
ysionneau | 3 days seem more realistic to me yes | 11:57 |
ysionneau | _florent_: I might ask you a few questions about the dma+crc stuff then | 11:58 |
mithro | seaLne: Looks like you need to merge the latest version of the template - your TOFE connector has the 4x position in the wrong place | 11:58 |
mithro | seaLne: I think you want the VSOUT and HSOUT on clock pins | 11:59 |
ysionneau | about the hdmi port on pipistrello I can see several example projects using it as HDMI out, so at least this should work : http://pipistrello.saanlima.com/index.php?title=Welcome_to_Pipistrello#Bit_files_.28see_below_for_complete_Xilinx_projects.29 | 11:59 |
tpb | Title: Pipistrello (at pipistrello.saanlima.com) | 11:59 |
mithro | ysionneau: they only claim HDMI out on their page | 12:00 |
ysionneau | ah yes "output interface" | 12:00 |
ysionneau | it's clearly stated | 12:00 |
seaLne | mithro: what about SOGOUT? | 12:01 |
ysionneau | I wonder what's the difference between and output and an input interface | 12:01 |
ysionneau | an* | 12:01 |
mithro | ysionneau: I can tell you a lot about them, but its not really all that relevant to getting this working :) | 12:01 |
mithro | seaLne: yeah, and DATACK | 12:02 |
ysionneau | yep ok just being curious :) | 12:02 |
ysionneau | so first step : getting hdmi out working on the pipistrello | 12:02 |
mithro | ysionneau: yeah, add a "pipistrello_base.py" target to our repo? | 12:03 |
ysionneau | 12: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 |
ysionneau | mithro: ok! | 12:03 |
_florent_ | ysionneau: no, just build the VideoMixer for the pipistrello with only 1 hdmi_out | 12:04 |
_florent_ | then in the firmware: | 12:04 |
_florent_ | video_matrix connect pattern output0 | 12:05 |
_florent_ | and you should get video_out | 12:05 |
ysionneau | ok, 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 |
ysionneau | sorry for the dumb questions :) | 12:06 |
mithro | seaLne: I'd avoid using the DIFF_CLK_XP/XN pair as well | 12:06 |
mithro | seaLne: what are the B_ANI1 / G_AIN1 / R_AIN1 pins? | 12:08 |
seaLne | if the inputs were diff | 12:09 |
seaLne | let me double check | 12:09 |
seaLne | yeah | 12:10 |
mithro | seaLne: it looks more like it actually supports two VGA inputs? | 12:10 |
seaLne | hmm you could be right, page 11 of http://www.analog.com/media/en/technical-documentation/data-sheets/AD9984A.pdf is a bit vague | 12:12 |
seaLne | mithro: ah i think you are right they go into a mux on page 1 | 12:14 |
mithro | seaLne: we should break it out to another input I think? | 12:14 |
seaLne | yeah, though might abandon depending how it looks during routing? | 12:16 |
mithro | seaLne: maybe one input is direct, the other is pass thru? | 12:16 |
*** se6astian|away is now known as se6astian | 12:26 | |
mithro | seaLne: or we could have one be composite | 12:26 |
seaLne | mithro: i think channel select at the top of page 35 is what switches between them | 12:29 |
*** CarlFK has quit IRC | 13:47 | |
*** rohitksingh has joined #timvideos | 13:50 | |
*** se6astian is now known as se6astian|away | 14:49 | |
*** se6astian|away is now known as se6astian | 15:30 | |
*** nueces has joined #timvideos | 15:38 | |
*** se6astian has left #timvideos | 15:57 | |
*** se6astian has joined #timvideos | 16:34 | |
*** se6astian is now known as se6astian|away | 16:35 | |
*** rohitksingh has quit IRC | 16:37 | |
ysionneau | 13:02 < _florent_> and you should get video_out < yes, it works o/ thanks! | 16:47 |
ysionneau | I can see color stripes and the "HDMI2USB" text | 16:47 |
*** rohitksingh has joined #timvideos | 16:51 | |
*** se6astian|away is now known as se6astian | 17:36 | |
*** se6astian is now known as se6astian|away | 18:26 | |
*** rohitksingh has quit IRC | 19:05 | |
ysionneau | initial support for pipistrello board: https://github.com/fallen/HDMI2USB-misoc-firmware/commit/c205b989bdff9898ab8747584f670dd911cbf075 | 20:19 |
tpb | Title: initial support for pipistrello board · fallen/HDMI2USB-misoc-firmware@c205b98 · GitHub (at github.com) | 20:19 |
*** Bertl_oO is now known as Bertl_zZ | 20:20 | |
mithro | ysionneau: can you split the fix to firmware/lm32/processor.c into a seperate commit? | 21:42 |
*** nueces has quit IRC | 21:52 | |
ysionneau | ah yes | 22:01 |
ysionneau | sorry about that | 22:01 |
ysionneau | mithro: what's the process? do I send patches on some mailing list? do I push directly? | 22:06 |
mithro | ysionneau: just a GitHub pull request | 22:10 |
mithro | Getting on a plane now. | 22:11 |
mithro | Bblr | 22:11 |
ysionneau | ok see you later | 22:11 |
ysionneau | here I don't leave home, Paris is "under attack" :/ | 22:11 |
ysionneau | I forced push to fix my commits into "atomic" ones | 22:15 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!