voidcoder has quit [Remote host closed the connection]
voidcoder has joined #milkymist
elldekaa has quit [Ping timeout: 255 seconds]
azonenberg_work has joined #milkymist
voidcoder has quit [Read error: Connection reset by peer]
jimmythehorn has joined #milkymist
<lekernel>
azonenberg: how many DQ bits do you have between the dram chip and the fpga?
<lekernel>
and it's DDR (DDR1), right?
<lekernel>
wpwrak: the problem with DRAM is that you can have many other sources, e.g. violations of internal timing parameters, wrong array geometry, read problem vs. write problem, etc. if he used the milkymist dram controller, there would have been a nice way to eliminate those possible problem sources: bit-bang the DRAM from software, disable refresh, and just access the page buffer.
jimmythehorn has quit [Quit: jimmythehorn]
voidcoder has joined #milkymist
lekernel_ has joined #milkymist
lekernel has quit [Ping timeout: 276 seconds]
lekernel_ is now known as lekernel
kilae has joined #milkymist
<wpwrak>
lekernel: well, so he's got an opportunity to learn a lot about the art of debugging memory controllers :)
elldekaa has joined #milkymist
pablojavier has joined #milkymist
pablojavier has left #milkymist [#milkymist]
<Fallenou>
well now the SoC does not crash anymore while running itlb test, it just "reboots" to the bios entry point
<Fallenou>
weird
<Fallenou>
I forgot to add the exception handler in crt0.S now it's going into the exception handler, setting up the itlb mapping and then "freeze"
aeris has quit [Quit: en a pas]
<wpwrak>
does the core retry the instruction fetch ?
<Fallenou>
at the end of the instruction page fault exception handler there is "eret" instruction
<Fallenou>
which does PC = EA
<Fallenou>
EA being the virtual address which caused the exception
<wpwrak>
sounds good then
<Fallenou>
it should then try to fetch again the faulty instruction
<Fallenou>
it's working correctly in ISim
<Fallenou>
should be a minor - but boring - bug
<wpwrak>
;-)
<wpwrak>
if you preload the itlb with the correct value, does that code segment work ?
<Fallenou>
first arg of mmu_map() makes integer from pointer without a cast
<Fallenou>
expected unsigned int but argument is of type 'void (*)(void)'
<wpwrak>
also p = f
<wpwrak>
and pdest = 0x...
<Fallenou>
yes
<wpwrak>
but at least you've enabled warnings at all :)
<Fallenou>
I agree the code is kind of ugly :)
<Fallenou>
but the values are correct (at least it seems)
<Fallenou>
yes I have all the warnings printed I guess I will take the time to clean all this mess up someday
<wpwrak>
yes, looks correct. that was my review pattern "this should produce a warning" -> "did he enable them at all ?" -> "if not, there may be undetected more serious problems"
<Fallenou>
oh ok
<wpwrak>
known warnings may still mask unexpected problems (simply because you get used to seeing warnings, and don't notice when a new one pops up), though
<Fallenou>
good point
<Fallenou>
I agree
<Fallenou>
wpwrak: without invalidating the itlb line before using it : f() is called and it prints '@' and then nothing more
<Fallenou>
it should have returned to itlbtest() and printed 'DONE' and "BIOS>" etc
<Fallenou>
it's not totally desperate :'
<Fallenou>
need to shave and to run, see you !
<wpwrak>
hmm. not sure what would cause the return to go wrong
<wpwrak>
maybe try it without any relocation, just calling f directly
mumptai has joined #milkymist
kilae has quit [Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901]]
rejon_ has joined #milkymist
rejon has quit [Ping timeout: 246 seconds]
voidcoder has quit [Read error: Connection reset by peer]
voidcoder has joined #milkymist
wolfspra1l has joined #milkymist
wolfspraul has quit [Ping timeout: 264 seconds]
jimmythehorn has joined #milkymist
<lekernel>
Fallenou: maybe you have an outdated copy of the function's code in the instruction cache?
<lekernel>
you should flush the instruction cache after writing some code to memory
hypermodern has joined #milkymist
<Fallenou>
lekernel: I'm flushing both D and Icache actually
<Fallenou>
it must be something else, timing related problem