Monday, 2020-06-29

*** tpb has joined #litex00:00
*** lf has quit IRC00:03
*** lf has joined #litex00:04
*** proteusguy has quit IRC00:57
*** _whitelogger has quit IRC01:09
*** proteusguy has joined #litex01:11
*** _whitelogger has joined #litex01:11
*** Degi has quit IRC01:55
*** Degi has joined #litex01:56
*** jaseg has quit IRC02:15
*** jaseg has joined #litex02:17
*** gregdavill has joined #litex02:50
gregdavill_florent_: Weird that I'd never seen this startup behaviour happening before.02:53
gregdavillI've got a test setup here, if the memtest passes it reboots. If it fails it will spin-wait.02:54
gregdavillFollowing the advice from Lattice notes, I've altered the init clock domain (also por) to be sourced from the internal OSCG. Results look good so far.02:55
gregdavillI've run through ~100 test/reboot cycles without failing. But my tree is dirty. Later I'll need to sync everything up and validate again.02:56
futarisIRCcloudbenh: https://github.com/antonblanchard/microwatt/commits/master - So 16550 UART and liteeth are in master now?03:11
tpbTitle: Commits · antonblanchard/microwatt · GitHub (at github.com)03:11
benhfutarisIRCcloud: looks like it :-)03:13
benhsomlo: I wouldn't expect it to be *that* slow unless it's going through layer for every bit...03:15
benhI am not that familiar with the MMC layer in Linux mind you03:15
benhperf is your friend to measure what's going on03:15
benhthe linux SPI MMC driver is ... a bit dumb03:19
benhI would rather write a dedicated MMC driver for litesdcard :)03:19
benhesp if you want to do dual or quad03:19
gregdavillTurns out I'd only changed the POR counter to be running from the OSCG (31MHz). That seems like enough to fix. Weird indeed.03:38
_florent_gregdavill: thanks for looking at this, i also don't remember having this behavior before. I will test your fix and will try to understand05:11
gregdavillIf I run init clock domain from the OSCG too, it is not fixed.05:14
_florent_which Lattice note where you following? (just to also have a look)05:17
gregdavillTN-02035: ECP5 High speed I/O interface. In Table 9.3 for the GDDR_SYNC soft IP (Which litedram implements similar function with a timeline)05:19
gregdavill`SYNC_CLK: Startup clock. This cannot be the RX_CLK or divided version. It can be other low speed continuously running clock. For example, oscillator clock`05:20
*** st-gourichon-fid has joined #litex05:32
*** kgugala_ has joined #litex05:58
*** kgugala has quit IRC06:00
*** kgugala has joined #litex06:00
*** kgugala_ has quit IRC06:04
*** kgugala_ has joined #litex06:48
*** kgugala has quit IRC06:50
*** gregdavill has quit IRC06:53
*** kgugala_ has quit IRC07:00
*** kgugala has joined #litex07:00
*** st-gourichon-fid has quit IRC07:26
*** gregdavill has joined #litex07:39
_florent_gregdavill: the issue seems related to the recent changes i did to the PHY (on the read/write control path + dqs), i'm looking at this08:12
gregdavillMaybe timing related? I've been able to run the same json-netlist through nextpnr with different seeds. One resulting bitstream works, another fails. (Or maybe I've hit a different bug :/ )08:45
*** st-gourichon-fid has joined #litex08:49
*** scanakci has quit IRC10:05
*** gregdavill has quit IRC12:33
*** jordigw has joined #litex13:17
*** Skip has joined #litex13:45
*** leons has quit IRC13:46
*** CarlFK[m] has quit IRC13:46
*** david-sawatzke[m has quit IRC13:46
*** john_k[m] has quit IRC13:46
*** xobs has quit IRC13:46
*** bunnie has quit IRC13:46
*** sajattack[m] has quit IRC13:46
*** nrossi has quit IRC13:46
*** disasm[m] has quit IRC13:46
*** sajattack[m] has joined #litex14:08
*** Skip has quit IRC14:08
*** xobs has joined #litex14:41
*** disasm[m] has joined #litex14:41
*** nrossi has joined #litex14:41
*** john_k[m] has joined #litex14:41
*** CarlFK[m] has joined #litex14:41
*** leons has joined #litex14:41
*** david-sawatzke[m has joined #litex14:41
*** bunnie has joined #litex14:41
_florent_gregdavill: this should now be working. The issue is that the calibration can required different bitslip value between initialization and the changes i did on the Bitslip module was preventing it. I did a couple of others fix on things i wanted to investigate and also update the boards in litex-boards.14:49
_florent_i did a test on the 1GB OrangeCrab variant (at 96MHz since i still need to look at https://github.com/enjoy-digital/litedram/issues/130)14:50
tpbTitle: ECP5: CL settings behaviour · Issue #130 · enjoy-digital/litedram · GitHub (at github.com)14:50
_florent_next time i look at this i'll try to understand why we have a different Bitslip results between initilializations (we should be able have consistent results), but enough of this for today :)14:54
*** kgugala_ has joined #litex16:32
*** kgugala__ has joined #litex16:34
*** kgugala has quit IRC16:35
*** kgugala_ has quit IRC16:37
*** kgugala has joined #litex16:43
*** scanakci has joined #litex16:45
*** kgugala__ has quit IRC16:46
scanakci_florent_: I made the PR (https://github.com/litex-hub/pythondata-auto/pull/3). Please let me know if anything is missing.16:58
tpbTitle: Update BP main repo website by scanakci · Pull Request #3 · litex-hub/pythondata-auto · GitHub (at github.com)16:58
*** satnav has joined #litex18:13
satnavCan someone please advice me about the CSR bus and Wishbone bus in aspect for example of connecting UART core to SoC? I mean, what's the difference between make the UART core as wishbone slave and in the UART core code add CSR with wishbone2csr bridge. vs, just add UART as CSR to soc's CSR bus.18:17
*** bunnie has left #litex18:24
somlosatnav: the CSR bus is LiteX's way to auto-allocate MMIO addresses and auto-generate accessor methods for LiteX's own devices (part of the ecosystem, written in migen, hosted in one of the lite* projects on github under either enjoy-digital or litex-hub, etc.18:29
somloIf you have your own UART (with a wishbone interface already exposed), then probably hooking it directly into the wishbone bus would make more sense18:30
satnavHow I will interact with the UART core and CPU in aspect of registers? Should I use CSR?18:32
satnavBottom line, I try to understand how should I expose registers with wishbone slave core18:33
somlosatnav: if you are using the UART included with LiteX, it's already being generated to use CSR out of the box. If for some reason you have your own non-LiteX UART IP block, then you'll have to write some glue logic in migen to "connect" it to LiteX. In *that* case, it depends on what your IP block exposes in terms of an interface18:34
satnavthanks a lot for the informative answers somlo18:39
satnavJust to make sure that I understood correctly, according to the example here - https://github.com/enjoy-digital/litex/blob/master/litex/boards/targets/simple.py the LittleEthPHY added as slave to the wishbonebus and also added to the CSR bus? are they separated buses? also, can I make a SoC without wishbone bus at all, just CSR bus?18:47
tpbTitle: litex/simple.py at master · enjoy-digital/litex · GitHub (at github.com)18:47
*** palmer1 has quit IRC19:04
*** palmer has joined #litex19:05
somlosatnav: LiteETH has a more complex interface -- there's the phy (exposed as CSR mmio registers), there's the ethmac region (basically memory for tx/rx buffers), and an interrupt. But yeah, the configuration registers are set up as CSRs via that example you pointed out19:48
satnavthanks somlo!19:51
*** Skip has joined #litex21:16
*** satnav has quit IRC21:20
*** FFY00 has quit IRC21:41
*** FFY00 has joined #litex21:41
*** Skip has quit IRC22:42
*** CarlFK has quit IRC22:56
*** CarlFK has joined #litex23:08
*** gregdavill has joined #litex23:43

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