Title: arty-soc/test_sdram.py at master · enjoy-digital/arty-soc · GitHub (at github.com)
_florent_
cr1901_modern: also, in case this script does not report valid bitstlip/delays, you can try to adjust the sys4x_dqs phase
mithro
_florent_: Can we get that test_sdram.py script merged into the litedram repo?
_florent_
mithro: i'm planning to do it yes
mithro
_florent_: Awesome!
cr1901_modern
_florent_: Q's like, for instance: What is a bitslip in the context of DDR? :P
_florent_
cr1901_modern: the controller is working with sys_clk, but the ddr data are 8 time faster, so bitslip allow you to align the datas you get from ddr to the sys_clk
cr1901_modern
_florent_: So it's like HDMI, where the clock is 10x faster? Why doesn't HDMI need something similar?
Title: litevideo/charsync.py at master · enjoy-digital/litevideo · GitHub (at github.com)
cr1901_modern
Huh... I thought it was the PLL's job to ensure that data was aligned to the clock
_florent_
cr1901_modern: do you want to merge the s7 board now or wait you get ddr3 support?
cr1901_modern
_florent_: Well, the pinouts are correct, might as well merge it
_florent_
cr1901_modern: yes, but that's not the same thing
cr1901_modern
it's not?
_florent_
cr1901_modern: you have to be sure you are sampling your data correctly
cr1901_modern: and then align this data to your user clock
cr1901_modern: run the script i was linking with debug=True and you will understand :)
cr1901_modern
I don't think I understand. In the case of HDMI, the 10x clock should _already_ be aligned to the data (or rather, 180 degrees out of phase w/ where you should sample the data)
_florent_: Will do. I'll do that and come back w/ q's
_florent_
rohitksingh-demo: do you want to do some hack on netv2 after lunch?
rohitksingh-demo: i tried to find the xilinx cable this morning but was not able to find it
mithro: reloaded the OS on my laptop and noticed I had stuff on there I hadn't committed yet. I plan on doing work on the FX2 stuff at the video team sprint next week though
mithro
paddatrapper: Ahh cool
rohitksingh-demo has quit
futarisIRCcloud has quit
sb0 has quit
futarisIRCcloud joined the channel
aps joined the channel
danielki joined the channel
danielki
hi
I'm having massive trouble getting our opsis board to sync on an hdmi input
I've now resorted to feeding the board its own test pattern back to itself, with a super short cable, and it still doesn't get a stable sync
with the test pattern fed to itself and then routed to a monitor output, the picture is mostly there, but "fizzly"
I have tried all variations of firmware, power supply, hdmi cable, etc, to no avail
it is somewhat better at lower resolutions (= lower pixel clocks), but even then not 100% stable
so my question: is this a known problem? is our opsis board defective?
danielki1 joined the channel
danielki has left the channel
danielki1 is now known as danielki
danielki has quit
danielki joined the channel
futarisIRCcloud has quit
sb0 joined the channel
sb0 has quit
aps has quit
felix_
xfxf: when are you planning to drive to the blue mountains tomorrow? meey at 9:15 at the breakfast room of the hotel? would also good if you could tell rohit when we'll start
xfxf
felix_: unfortunately not anymore sorry, car is still full of equipment and still need to pack equipment tomorrow
I would like to do something in the afternoon but need to spend the morning at UTS
felix_
ok
yeah, sleeping a bit longer will probably good... ;)
so we'll go by train there
TimGremalm has quit
CarlFK joined the channel
danielki
update re. my opsis hdmi sync problems: I can get a stable image at "mode 0: 640x480@72.80Hz"; with a raspi as the source. only mode that worked so far
xfxf
danielki: are you using a redmere/amplified cable? the opsis requires them
danielki
amplified cable?
oh well, I didn't find anything about that in the docs anywhere :)
I'm using a 0.5m standard cable currently
the docs mentioned somewhere that output cables need to be short
btw increasing the output drive of the raspi didn't make any difference
we use the above with conferences, they work well. even longer ones are fine
i attached a 20 metre hdmi cable with a joiner and a short redmere cable at the end the other day and worked perfectly for the ~20 hours straight i ran it for at 720p50
non-amplified HDMI will give you headaches
you also probably want to firmware/gateware flash your opsis to a newer build too if you're running the factory firmware/gateware
danielki
already flashed several different versions
running 0.0.4-122 now
xfxf
ah, cool
get yourself some redmere cables then, you should have much more success
we just used the opsis's in 6 rooms at a conference to record about 160 talks so they certainly work well
danielki
alright, thank you, I will have them ordered right away
TimGremalm joined the channel
xfxf
I'll be in at UTS by around 9.45 by the way
sb0 joined the channel
olasd has quit
olasd joined the channel
cr1901_modern
_florent_: Tentatively I figured out a solution to my SD card woes.
Your firmware assumes that READ_MULTIPLE_BLOCK will terminate by itself. On older SD cards, the correct way to terminate a multiple block read is to send STOP_TRANSMISSION
Is litesdcard is capable of supporting this while a read is in progress?
_florent_
cr1901_modern: since you are targeting an old sd card, so are not wanting performance, i would suggest using single write/reads
cr1901_modern: it's always difficult to support all the features of a specification and we need to choose
cr1901_modern: here for low performance and good retro compatibility, i suggest using SPI mode of sd card
cr1901_modern: litesdcard was mainly designed for high speeds and assume we are using new sd cards
cr1901_modern: i'll add some informations about that in the README
cr1901_modern
_florent_: Regardless, there should be something in the firmware BIST as-is that detects SD card features and then uses the correct rd/wr commands
I think it's relatively safe to assume that a person who picks out any old SD card from their drawer is gonna find out the hard way that the self-test never terminates.
_florent_: Does the core itself prevent you from sending another command before the current command finishes?
_florent_
cr1901_modern: we can probably do that
cr1901_modern
_florent_: If you do that, then we could tolerate SD cards that don't support SET_BLOCK_COUNT. They can send STOP_TRANSMISSION after the relevant number of bytes are read/written
_florent_
cr1901_modern: i think it's already supported but needs to be checked
cr1901_modern
_florent_: In the meantime, I'll write the code to detect whether SET_BLOCK_COUNT is supported
Since I have the spec open and it's "just" checking a specific register.
_florent_
cr1901_modern: feel free to add features to support old sd cards to the core
cr1901_modern
Will do. Also this is an incredibly stupid question, but if _not_ using the BIST, how does code write to the source/sink buffers?
Looks like w/ the BIST, you start the generator, tell the SDcard command to start a write, and then the SD card core will grab from the BIST one word at a time...
_florent_: Or do you attach the source/sink to an existing memory on the CSR/wishbone bus?
_florent_
you have to have a module that generates 512bytes blocks for writes
and that consume them for reads
cr1901_modern
So potentially FIFO in/out CSRs would work
Or more likely, 512 byte memory buffers exposed on the wishbone bus.