<MoeIcenowy>
_florent_: I did a simple port of ECP5DDRPHY to GW2A, and surely it does not work now
<MoeIcenowy>
how could I disable L2 fully?
<_florent_>
MoeIcenowy: It's already not that bad it it compiles :)
<MoeIcenowy>
currently if I write 0x55555555, then I got 0xff 0x55 for most words, but sometimes the 0x55 could be other thing like 0x0f, 0x04, 0xff, etc
<_florent_>
MoeIcenowy: To disable the L2, you can set --l2_size=0 and add some checks to be sure you are disabling it here:
<MoeIcenowy>
oh I used `l2_cache_size = kwargs.get("l2_size", 0)` and it surely loads some default value
<MoeIcenowy>
I switched to use a picorv32 core and add `--l2_size=0`, the mem_read behavior looks right
<_florent_>
MoeIcenowy: but there is also an initial calibration that needs to succeeds before being able to access the DRAM
<MoeIcenowy>
it can get different value in different reads
<MoeIcenowy>
_florent_: is there any debugging facility for that calibration
<_florent_>
MoeIcenowy: for the read, you can try to do a large dump and compare various dumps
<_florent_>
MoeIcenowy: if similar, that's already a good sign
<MoeIcenowy>
hahahahaha for a start the requirement is always low
<MoeIcenowy>
currently one DQ group totally broken (marked L on schematics), but another DQ group seems to be at least slightly working
<MoeIcenowy>
I start to wonder whether I got the DQS/DM pins wrong...
<_florent_>
:) but yes, being able to read a DRAM is already a very good step: this means the initialization work, command work and read path is almost working
<_florent_>
For the debug, the read leveling is already displayed during the calibration
<MoeIcenowy>
_florent_: but I got nothing meaningful
<MoeIcenowy>
all lines are `|00000000| delays: -`
<MoeIcenowy>
maybe some skew is beyond software calibration, and needs to be tweaked in HW?
<_florent_>
ie, define a connector and connector pins for the peripherals of the base board
<_florent_>
this could be regrouped in a single platform file, but using a connector would ease reading/reviewing the code I think, while also simplifying use of other base board / SoM
<MoeIcenowy>
_florent_: the problem is that I don't think the baseboard will be reused
swetland has quit [Quit: Connection closed for inactivity]
Shatur has quit [Quit: Konversation terminated!]
<MoeIcenowy>
_florent_: how to decipher sdram_debug command output
<MoeIcenowy>
BTW I think maybe we need to implement some kind of write leveling, consider there's a WSTEP for DQS of GW2
<_florent_>
MoeIcenowy: if the baseboard will not be reused, that's maybe not worth splitting the platform file.
<_florent_>
MoeIcenowy: I don't remember if WSTEP was present on ECP5 or not. If this is additional on GW2, this could make sense to the the write leveling yes.
<MoeIcenowy>
_florent_: currently I found that the data at 0x0, 0x8 is okay but 0x4, 0xc is bullshit
<MoeIcenowy>
is it possible that something get wrong when handling BL8?
<_florent_>
if latency/timing are not correct, you'll only have a part of the BL8 burst written/read correctly, so yes
xenador77 has joined #litex
xenador77 has quit [Remote host closed the connection]
MoeIcenowy has quit [Read error: Connection reset by peer]