lekernel changed the topic of #milkymist to: Milkymist One, Migen, Milkymist SoC & Flickernoise :: Logs: http://en.qi-hardware.com/mmlogs :: EHSM Berlin Dec 28-30 http://ehsm.eu :: latest video http://www.youtube.com/playlist?list=PL181AAD8063FCC9DC
wpwrak has quit [Ping timeout: 244 seconds]
wpwrak has joined #milkymist
jimmythehorn has quit [Quit: jimmythehorn]
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> let's try not invalidating the itlb :)
<Fallenou> good idea
<Fallenou> because right now I set up ITLB mapping, then invalidate it, then use it (in order to trigger a beautiful exception)
<Fallenou> let's try the "normal way"
<wpwrak> hmm .. your pastebin looks strange: f() is located at 0x00865a44
<wpwrak> Mapping f() into virtual memory at 0x44004000 [physical == 0x44005000]
<Fallenou> f must be somewhere in 0x008XXXXX because it's a bios function
<Fallenou> but I copy it into 0x44004000
<wpwrak> ah, you copy the function. i see
<Fallenou> and then I map 0x44004000 to 0x44005000
<Fallenou> err
<wpwrak> and it's PIC ? well, you'll find out soon enough :)
<Fallenou> I copy it to 0x44005000 :)
<wpwrak> and you're sure the code is relocatable ?
<Fallenou> yes
<Fallenou> let me paste it to you
<Fallenou> it's just a load and a store, no call or branch
<wpwrak> hmm, doesn't that code produce a few warnings ? (when compiling with -Wall)
<Fallenou> the same paste with assembly code http://pastebin.com/YbzcP8AQ
<Fallenou> hum yes a bunch of warnings ^^"
<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
<Fallenou> the software seems correct
elldekaa has quit [Ping timeout: 255 seconds]
mumptai has quit [Ping timeout: 260 seconds]
elldekaa has joined #milkymist